Agilex 5 RSU, application image addition fails
Dear all,
We are trying, unsuccessfully, to add new application images in a Agilex5 based project .
We re using am AXE5000 board with an Agilex5 A5EC008BM16AE6S (M16A) model and a 256 Mbit QSPI config Flash memory. We are working with Quartus Prime Pro 25.1.0 version.
Following the example here our programming file generator looks like this
Below is shown the content of our .map file:
BLOCK START ADDRESS END ADDRESS
BOOT_INFO 0x00000000 0x0020FFFF
FACTORY_IMAGE 0x00210000 0x00357FFF (0x00316FFF)
SPT0 0x00358000 0x0035FFFF
SPT1 0x00360000 0x00367FFF
CPB0 0x00368000 0x0036FFFF
CPB1 0x00370000 0x00377FFF
P1 0x00378000 0x0048BFFF
Configuration device: A5EC008BM16A
Configuration mode: Active Serial x4
Notes:
- Data checksum for this conversion is 0xE6BCBC7E
- All the addresses in this file are byte addresses
In this scenario, using system console and the script rsu1.tcl provided , we have been able to switch between Aplication and Factory images flawlessly using "rsu_image_update" function.
Then following the mentioned excample, we tryied to add a new application image
qspi_open
qspi_set_cs
program_flash ./output_files/RemoteImage_jic.rpd 0x0048C000 1024
Once finished, we can check how the memory possitions have been written changing from all 0xFFFFFFFF to different values, using :
qspi_read 0x0048C000 512
Then, we check the configuration pointer blocks:
qspi_read [expr { 0x00368000 + 0x20}] 1
qspi_read [expr { 0x00368000 + 0x28 }] 1
qspi_read [expr { 0x00370000 + 0x20}] 1
qspi_read [expr { 0x00370000 + 0x28}] 1Here we can see in both pointers how the current application image pointer entry has the value
0x00378000, while the next image pointer entry has all ones 0xFFFFFFFF. Then we update the aplication pointers with:
qspi_write_one_word [expr { 0x00368000 + 0x28}] 0x0048C000
qspi_write_one_word [expr { 0x00370000 + 0x28}] 0x0048C000Using "qspi_read" again we see how the pointer entries which before were all ones 0xFFFFFFFF, now contains the new address 0x0048C000. Then we close the qspi access with "qspi_close".
Now, if we restart the system we see how the application image loaded is the one which was originally set on address 0x00378000. Running "rsu_status", we see how the added image failed
The failing code returned is not listed in Error Code Responses
Could you please help us with this topic?
Thanks in advance
Hi,
Thanks for the screenshots. The rsu_status output shows:
- failing code: 0xF0030003 which means major error 0xF003 = BITSTREAM_CORRUPTION, with a minor code 0x0003. This is why it is not listed in the “Mailbox RSU Error Code Responses” table, because it is a different status format (major and minor), and the minor part is often not user defined. Refer: RSU Status and Error Codes & RSU Error Code Responses
- first failing image address: 0x0048C000 confirms the failure is on the newly added image.
Most common causes for this scenario:
1. Wrong .rpd content
- Please confirm RemoteImage_jic.rpd is an application image .rpd generated from the application .sof only, not an .rpd generated from the initial .jic flash image flow. The “add application image” procedure expects an application-only .rpd. Refer: Adding an Application Image & Generating an Application Image
- If you use rsu1.tcl/program_flash, generate the .rpd with Bit swap = Off because the script already handles the byte ordering.
2. Erase alignment / overlap
- Ensure the new image start address 0x0048C000 is aligned to your flash erase granularity, and that programming the new image does not erase a larger block that overlaps the end of the existing P1 image. Refer: Modifying the List of Application Images & Creating Initial Flash Image Containing Bitstreams for Factory Image and One Application Image
Next actions we recommend:
- Regenerate an application-only .rpd from the application .sof (Bit swap Off if using rsu1.tcl), then reprogram at an erase-aligned address, update both CPB0 and CPB1 pointers, and retry. Refer: Generating an Application Image & Adding an Application Image
If you share
(a) how RemoteImage_jic.rpd was generated and
(b) your QSPI flash part number and erase sizes, we can suggest a safe aligned start address and confirm the correct file settings. Check, Creating Initial Flash Image Containing Bitstreams for Factory Image and One Application Image
Regards,
Fakhrul