Forum Discussion
Altera_Forum
Honored Contributor
11 years agoCyclone V: switching between application images using altremote_update
Hi all,
I am using a Cyclone V in a custom design and I have some issues while using the altremote_update megafunction: I have 3 different images stored in an EPCS device:- factory image, stored at 0x000000
- application image A, stored at 0x180000
- application image B, stored at 0x300000
14 Replies
- Altera_Forum
Honored Contributor
Extracting the 'rbf' data from a 'pof' file is relatively easy (sof is harder).
You do need to remember to bit-reverse the data (from a rbf or pof) before writing it to the epcq. This is all easily verified by reading what the altera tools write to the epcq. I do wish Altera had documented the 'remote update' block as a 'reconfigure from epcq' block and then explained how it could be used for user/factory (etc) images. I've managed to correctly write the epcq, but can't manage to request the fpga reconfigure itself (works ok on power up). This might be because I've added the jtag<->epcq block in order to expose the epcq interface. - Altera_Forum
Honored Contributor
Hi julianca,
For writing the data directly to the EEPROM using a USB-Blaster I use a .jic file. You can create a .jic file from a .sof file in Quartus via File > Convert Programming Files. Then you can put multiple image files, for instance a factory image and multiple application images, in 1 .jic file. In your case, you seem to write the EEPROM via the asmi core, so I assume you are trying to write a file with one image to a known location in the EEPROM. You cannot use .sof file format for that purpose. You need to use a .rbf file or a .rpd file, depending on the kind of FPGA you are using (you can create .rbf and .rpd files via the same tool, via Convert Programming Files). You can probably find which file you need in the documentation, or alternatively: you can first create a .jic file of your .sof file. Then you can create both a .rbf file and a .rpd file, and compare the contents to the .jic file, using a HEX editor (note that some of those files have an extra header). The file that matches the .jic file is the one you should use. Good luck! - Altera_Forum
Honored Contributor
Hello martenv,
I am working on something similar. What type of file did you store as a factory image? Thanks! J (I'm using a .sof as the new factory image (to address 0x00000000) using my logic to write via asmi core to the EPROM. The writing seems to happen, but the reboot isn't loading the new image correctly - I'm trying to identify my problem.) - Altera_Forum
Honored Contributor
Hi all,
in case someone is experiencing the same problem: I found a solution that works for me: In contrast to what Altera advices in the Cyclone 5 Handbook, I now do not set the AnF (Application / Not Factory) bit to 1 when I reconfigure to an application image. This allows the application images to write the Remote System Upgrade control registers, so the application images can directly switch to another application image, without going via the factory image (this is also different from the Cyclone V Handbook, Figure 7-22). In the case that an application image becomes corrupted, the remote_update circuitry reconfigures to address 0x0, which is the factory image. So this is the behavior I was looking for.