S10 programming file conversion
I'm attempting to update the flash on an S10 board (Terasic Apollo S10), but I am having issue with u-boot.
I'm creating my JIC file with:
quartus_pfg -c test.sof output.jic -o device=MT25QU01G -o flash_loader=1SX280HU2F50E1VG -o hps_path=u-boot-spl-dtb.hex -o mode=ASX4
The sof and u-boot hex files being used are those provided by Terasic.
If I run this command with Quartus 19.1 or 19.4 and load the jic to the board then it boots with no issue. First few messages are:
U-Boot SPL 2019.04-00236-gd9c510007b (Mar 25 2020 - 10:07:36 +0800) MPU 1200000 kHz L3 main 400000 kHz Main VCO 2400000 kHz Per VCO 2000000 kHz EOSC1 25000 kHz HPS MMC 50000 kHz UART 100000 kHz DDR: Warning: DRAM size from device tree mismatch with hardware. DDR: 16384 MiB SDRAM-ECC: Initialized success with 3679 ms QSPI: Reference clock at 400000000 Hz ...
If I run the same conversion command with Quartus 22.1, 24.1, 24.2, or 24.3 and load the generated jic file to board then u-boot hangs indefinitely after these messages:
U-Boot SPL 2019.04-00236-gd9c510007b (Mar 25 2020 - 10:07:36 +0800) MPU 1200000 kHz L3 main 400000 kHz Main VCO 2400000 kHz Per VCO 2000000 kHz EOSC1 25000 kHz HPS MMC 50000 kHz UART 100000 kHz
I have also tried running with a newer version of u-boot that I generate which fixes the DRAM size issue from those provided by Terasic and it boot properly when converted with 19.4:
U-Boot SPL 2024.07-36773-g0dad0a0a478-dirty (Mar 18 2025 - 15:06:18 -0400) Reset state: Cold MPU 1200000 kHz L3 main 400000 kHz Main VCO 2400000 kHz Per VCO 2000000 kHz EOSC1 25000 kHz HPS MMC 50000 kHz UART 100000 kHz DDR: 32768 MiB SDRAM-ECC: Initialized success with 7879 ms QSPI: Reference clock at 400000 kHz ...
but it hangs at the same spot as the older u-boot when I create the jic file with Quartus 24.1.
I would just use 19.4 to convert all my files, but my design is compile with 24.1 and it gives me an error if I try to convert the sof generated by 24.1:
Error (19516): Detected Programming File Generator settings error: File test.sof is incompatible - Bitstream Assembler does not support feature "Power Management Page Command Payload" that required by SOF/PMSF/DMSF test.sof
Anything I need to change with the command in newer Quartus version to get this to work?