Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21174 Discussions

How to program application image address in flash with Arria 10GX RSU IP?

ALMSlinger
New Contributor I
945 Views

Hello,

I am able to program the flash with application image using the GSFI IP.  But then, I notice that the application address in the first 20bytes of the flash is set to 0x4000_0000.  

I am not sure why this address appears in the boot location.  My flash device is 512Mb.  And the application image is at 0x0200_0000.  

I write to register 3 of the Remote Update Intel FPGA IP as indicated in this documentation - https://www.intel.com/content/www/us/en/docs/programmable/683695/18-0/register-map-12579.html

 

But then upon reading the flash, the location is not updated.  

How do I update the application image location in the flash using this IP block.  I am updating a PCIe card so I cannot force reconfiguration cause that crashes the PC.

 

Please help.

Thank you.

Best regards,

 

Labels (1)
0 Kudos
5 Replies
JingyangTeh
Employee
897 Views

Hi


First you would need to flash an initial image that will set the location of the images.


https://www.intel.com/content/www/us/en/design-example/714766/arria-10-intel-fpga-remote-system-update-via-pci-express.html


Please refer to the section 3.5 of creating an initial image that will allocate the images location.

This is done by using the Convert Programming File tool.


You need to allocation the image location in the tool. Once generated the initial image and flashed on the board, only then the RSU will get the image from the location.


You could try out the example design in the link above.

Please note that the example design was created on the Centos OS.


Regards

Jingyang, Teh


0 Kudos
ALMSlinger
New Contributor I
883 Views

Thank you for trying.  This doesn't answer the question though. 

I am asking when does RSU IP block update the image offset at location 0x10 in the flash so that next time the FPGA loads the configuration bitstream from that location. 

Register 3 specifies the address of the boot image.  But writing to it doesn't update the flash.

 

Thank you.

Best regards.

0 Kudos
JingyangTeh
Employee
845 Views

Hi


Usually for address starting from 0x10, it is allocated for the factory image.

If you set the RU_CONFIGURATION_MODE to boot from factory image it will load the factory image if not it will load from the other application start address.


If you want to update the flash image, you could write directly to the address image address.

The RU_PAGE_SELECT register is the address in which the RSU will boot from.


After you write the image directly to the address. Then you update the RU_PAGE_SELECT with the start address you written to. Lastly you can trigger a reconfiguration by writing to the RU_RECONFIG.


Regards

Jingyang, Teh


0 Kudos
JingyangTeh
Employee
776 Views

Hi


Any update on this case?


Regards

Jingyang, Teh


0 Kudos
JingyangTeh
Employee
717 Views

Hi


Since a solution have been provided and no feedback was received, I shall set this thread to close pending. If you still need further assistance, you are welcome reopen this thread within 20days or open a new thread, some one will be right with you. Please login to ‘https://supporttickets.intel.com’, view details of the desire request, and post a feed/response within the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you on your follow-up questions.


If you happened to close this thread you might receive a survey. If you think you would rank your support experience less than 10 out of 10, please allow me to correct it before closing or if the problem can’t be corrected, please let me know the cause so that I may improve your future service experience.


Regards

Jingyang, Teh


0 Kudos
Reply