Commit Graph

65 Commits

Author SHA1 Message Date
marqs cbe2611471 fix OSD size in interlace passthru mode 2021-07-31 18:13:22 +03:00
Ari Sundholm 760be1738e Userdata export (FAT16): Optimize code size.
Reorganize the and optimize the code to avoid redundant code and thus
reduce code size, while making sure to zero-initialize the used areas
on the SD card. These are the "clean" part of this change.

The "dirty" part:
Optimize the FAT16 export code further by introducing small deviations
from the FAT16 specification. These deviations should not be harmful
at all, unless the SD card is used for something requiring the jump
instruction and/or boot code in the boot sector to be valid. This is
typically only required when booting off the filesystem.

After these changes, a considerable reduction in code size can be
observed for sys_controller.elf and sys_onchip_memory2_0.bin:

sys_controller.elf:
   text	   data	    bss	    dec	    hex	filename
  32392	   2936	   2652	  37980	   945c	sys_controller.elf

sys_onchip_memory2_0.bin:
size: 35328 bytes

This reduces the cost of the FAT16 export feature to 446 bytes.
2020-11-24 23:50:05 +02:00
marqs 238cf0b285 update epcq_controller_mod to epcq_controller2 2020-11-10 19:46:07 +02:00
Ari Sundholm 32bbc49bf0 Userdata export: Fix menu behavior, particularly with the OSD.
The behavior of the menu option was all over the place, and would
easily leave the OSD in a weird state, requiring the user to blindly
do something that completely redraws the OSD.

Fix this by making the behavior similar to that of the userdata import
feature, with the difference of giving a more specific error message
when something goes wrong.
2020-11-07 01:39:06 +02:00
Ari Sundholm b890446e3d Implement userdata export.
A very simple implementation, as we are very short on remaining
block RAM. Simply blindly copies the entire userdata area to the
SD card. This may subject the SD card to some extra wear, as well
as potentially read-disturb some Flash memory pages, but this would
require more code.
2020-11-06 15:06:29 +02:00
marqs 9c5e7b5b83 advanced OSD implementation 2020-10-05 23:05:43 +03:00
marqs 9d496383c3 optimize clock network
* replace all clock muxes with a single cycloneive_clkctrl to minimize skew
* use a single dynamically configured PLL to comply with cycloneive_clkctrl
2019-10-06 23:54:32 +03:00
marqs 6266976114 first OSD implementation 2019-10-03 02:03:43 +03:00
marqs c7fc62c038 use symlinks for SW IP BSP files 2019-09-30 18:56:27 +03:00
marqs 5e0277fb48 add Panasonic hack for improving line count tolerance with line2x 2019-07-01 19:15:57 +03:00
marqs 9e81fb5922 Scanline updates and fixes
* Enable overlay pattern customization
* Fix non-alternating mode with line4x interlace sources
* Add alternate interval option for pre-linedoubled sources
2019-03-23 00:09:46 +02:00
marqs 2bac00fd82 TX improvements
* tweak audio parameters
* set AFE level based on PCLK
2019-01-11 00:26:40 +02:00
marqs 76d69d19bf switch to RV32E 2018-10-30 01:31:40 +02:00
marqs 525c08a777 fix debug mode printf 2018-10-21 00:04:46 +03:00
marqs 0905620b4d update qsys+bsp build logic and instructions 2018-10-11 00:04:32 +03:00
marqs 055a794b5e move bitswap inside epcq_controller driver 2018-10-09 23:16:37 +03:00
marqs 7914a2ee83 clean up and update README 2018-10-08 00:37:42 +03:00
marqs e8d5097ecb replace nios crcCI with hw_crc32 qsys module 2018-10-07 23:38:26 +03:00
marqs 0a747cbce6 i2c_opencores: fix compilation warnings 2018-10-07 23:34:29 +03:00
marqs 4676cbd2f0 integrate zero-riscy 2018-10-06 13:19:12 +03:00
marqs e1d8446752 BSP and sw modifications 2018-09-26 00:19:24 +03:00
marqs 22e49300df fix line2x reverse LPF trigger 2018-04-18 23:14:24 +03:00
marqs 37650ca22b misc improvements
* add character LCD backlight timeout option
* increase h.mask range
* show accurate (fpga-calculated) timings on infoscreen
2018-03-28 20:09:40 +03:00
marqs 9ad696dbc3 optimize away one pp stage and unify code formatting 2018-03-12 01:25:23 +02:00
marqs 0ab31b30b4 simplify timing constraints 2018-03-07 09:21:19 +02:00
marqs bc1b7419f2 pcm1862: add pre-ADC gain setting 2018-03-02 23:11:52 +02:00
marqs 1cc42b808d pcm1862: fix ADC clkdiv value and use low-latency IIR filter 2018-02-22 22:48:00 +02:00
marqs dd4ffde231 update to Quartus 17.1 2017-12-07 21:35:08 +02:00
marqs a24d6b0e3a Update latency tester
* Enable operation with all sources
* Measure strobe length on low-persistence displays
2017-10-28 12:10:54 +03:00
marqs 1bf279b2a7 Initial latency tester implementation 2017-10-22 22:45:29 +03:00
marqs 4b21a354b4 Fix and optimize reverse lpf activation 2017-10-12 02:31:19 +03:00
paulb-nl ac16008076 Add reverse LPF feature
reverse LPF can be used to mostly reverse the blur on pre 1-CHIP SNES.
For best results use 256x240 optimized mode.
2017-09-27 22:43:26 +02:00
marqs 9d14cc776e Misc small fixes and improvements
* Disable 480p scanlines in auto mode
* Remove inoperable 3x/4x processing modes from 1080i list
* Add 640x512 mode to 480p group and limit 480p sampler option to 525-line modes
* Fix occasional pixel repetion issue after HDMI<->DVI TX switch
* Add "Allow upsample2x" option
* Add comments to some unclear sections
2017-08-10 00:06:35 +03:00
marqs 2cd36cdd37 Fix PCM1862 input selection. 2017-06-12 01:00:34 +03:00
marqs 2aee3294e3 Fix HDTV mode parameters 2017-05-30 21:16:03 +03:00
marqs 2577470abe Clean up TX setup code and add compatibility options 2017-05-29 20:43:24 +03:00
marqs d98c23c8c1 Update project files to Quartus 17.0. 2017-05-29 19:15:34 +03:00
marqs 4f36278cb7 Sync processing rewritten and some issues fixed
* add 480i/576i line3x/4x
* clean up RTL and SDC
* update AVI infoframe properly
* add HDMI IT content option
2017-05-18 23:36:37 +03:00
marqs 01b5fe20ee Sync and masking improvements
* detect VSM=1 properly
* increase mask brightness
* add L2 optimized modes
* fix internal vsync alignment
2017-05-18 23:36:37 +03:00
marqs 97428ba3ad Add 288p line5x modes and hotkey for quick mode select 2017-02-12 02:37:46 +02:00
marqs 2c934c9dd0 Fix line3x 4:3 mode and VGA interlace detection 2017-02-09 23:14:24 +02:00
marqs 6e043ef577 Improve input mode handling
* New options and better compatibility for Line5x
* Add support for 960i and 1080i
* Make TVP HPLL2x option user-selectable
2017-02-07 23:04:30 +02:00
marqs 3b19b2843c Preliminary Line5x implementation 2017-01-29 13:02:12 +02:00
marqs d41c7522a0 Misc updates
* Fix mask placement and make its brightness adjustable
* Line4x
2017-01-24 00:18:15 +02:00
marqs 434186d64e Improve lo-res mode processing features
* workaround for phase shift issue on optimized modes
* add hscale option for 256x240 opt Line3x mode
* distribute video modes to groups and allow passthru for all modes
2017-01-23 00:56:17 +02:00
marqs a03c01ca4d Keep track of last used profile and (optionally) input 2017-01-08 12:02:32 +02:00
marqs d77c293b70 * Clean up some FPGA code
* Wrap sampling phase setting
* Enable hal.enable_lightweight_device_driver_api to reduce CPU code size
2016-12-31 14:18:21 +02:00
marqs 03bf4c2c9a Update to Quartus 16.1. 2016-12-13 20:55:10 +02:00
marqs d548d53272 Add dedicated SPI mode option to i2c_opencores. 2016-11-05 15:39:36 +02:00
marqs 611c8763c2 Improve SD card IO. 2016-10-27 01:08:23 +03:00