Forum Discussion
RSU: Corrupted decision firmware after loading initial RSU image jic (Stratix 10)
Hi,
I'm programming an initial RSU image JIC containing a factory image and two application images and, after power cycling, the device always boots to the factory image with an RSU_STATUS of
Current Image : 0x00110000
Last Fail Image : 0x00100000
State : 0xf004d00f
Version : 0x0dcf0202
Error location : 0x00000000
Error details : 0x00000000
Retry counter : 0x00000000where state 0xF004D00F indicates decision firmware corruption. However, if I query the RSU DCMF status everything looks ok:
DCMF0: OK
DCMF1: OK
DCMF2: OK
DCMF3: OKPerhaps there's something wrong with the boot.rbf that I assigned to the BOOT_INFO section? I generated the boot.rbf as follows:
quartus_pfg -c factory_image.sof boot.rbf -o rsu_boot=ON
Extra info:
1) Note that the RSU image is otherwise fine, that is, the SPT/CPB are good and I can successfully switch to all the application images. Therefore, I don't believe there were any bit errors during JIC programming.
2) I tried programming the initial RSU image using an SPT/CPB size of 32 KB and also 64 KB, and both gave the same result.
3) I'm not using the HPS, I'm using a Nios II core connected to the mailbox although I'm not sure this affects the decision firmware at all.
4) I attached the pfg that I used to generate the initial RSU image. The factory and application images are signed RBFs.
Regards,
Phil
1 Reply
- plancheres
New Contributor
The pfg attachment isn't working so I'm copying the pfg file here, used to generate the initial RSU image:
<pfg version="1"> <settings custom_db_dir="./" mode="ASX4"/> <output_files> <output_file name="initial_rsu_dual_boot_image_64K_SPT_CPB" directory="." type="JIC"> <file_options/> <secondary_file type="MAP" name="initial_rsu_dual_boot_image_64K_SPT_CPB_jic"> <file_options/> </secondary_file> <flash_device_id>Flash_Device_1</flash_device_id> </output_file> </output_files> <bitstreams> <bitstream id="Bitstream_1"> <path>factory_boot.rbf</path> </bitstream> <bitstream id="Bitstream_2"> <path>factory.rbf</path> </bitstream> <bitstream id="Bitstream_3"> <path>Application_1.rbf</path> </bitstream> <bitstream id="Bitstream_4"> <path>Application_2.rbf</path> </bitstream> </bitstreams> <flash_devices> <flash_device type="MT25QU02G" id="Flash_Device_1"> <partition reserved="1" fixed_s_addr="1" s_addr="0x00000000" e_addr="0x0010FFFF" fixed_e_addr="1" id="BOOT_INFO" size="0"/> <partition reserved="1" extra_space="262144" fixed_s_addr="1" s_addr="0x00110000" e_addr="auto" fixed_e_addr="0" id="FACTORY_IMAGE" size="0"/> <partition reserved="1" fixed_s_addr="1" s_addr="auto" e_addr="auto" fixed_e_addr="1" id="SPT0" size="65536"/> <partition reserved="1" fixed_s_addr="1" s_addr="auto" e_addr="auto" fixed_e_addr="1" id="SPT1" size="65536"/> <partition reserved="1" fixed_s_addr="1" s_addr="auto" e_addr="auto" fixed_e_addr="1" id="CPB0" size="65536"/> <partition reserved="1" fixed_s_addr="1" s_addr="auto" e_addr="auto" fixed_e_addr="1" id="CPB1" size="65536"/> <partition reserved="0" fixed_s_addr="0" s_addr="auto" e_addr="auto" fixed_e_addr="0" id="P1" size="0"/> <partition reserved="0" fixed_s_addr="0" s_addr="auto" e_addr="auto" fixed_e_addr="0" id="P2" size="0"/> </flash_device> <flash_loader>1SM21BHU1AS</flash_loader> </flash_devices> <assignments> <assignment partition_id="BOOT_INFO"> <bitstream_id>Bitstream_1</bitstream_id> </assignment> <assignment page="0" partition_id="FACTORY_IMAGE"> <bitstream_id>Bitstream_2</bitstream_id> </assignment> <assignment page="1" partition_id="P1"> <bitstream_id>Bitstream_3</bitstream_id> </assignment> <assignment page="2" partition_id="P2"> <bitstream_id>Bitstream_4</bitstream_id> </assignment> </assignments> </pfg>