I have EPCS chip attached to FPGA, and have several images in it. Factory is at 0, loaded on power up. Then factory image automatically loads image located at page 8. It works properly. For this I just set remote_update accordingly on factory image start *if reconfiguration status bits are read as 0* (thus this reconfig to image at 8 happens only once, and system does not cycle if there's application image load error).
Now I put another image at address 0x10, and trying to reconfigure from application image loaded from 0x8 to this at 0x10. It does not work as I expected, because it seems I was wrong. Looking through scarce documentation I see that re-configuration should be performed through factory image. Documentation says:
Quote:
When Cyclone III devices successfully load the application image, the soft logic in the application image determines the arrival of remote system update. When a remote system update arrives, the soft logic receives the incoming data, writes it to the memory configuration memory devices, and triggers the system to load the factory reconfiguration. The factory image reads the remote system upgrade status register, determines the valid application image to load, writes the remote system upgrade control register accordingly, and initiates system reconfiguration.
Source at page 3.
I wonder how factory image determines valid application image to load, and how application image, which reconfigured to factory one, tells factory image which application image should be loaded.
Please advise.
Edit:
This document, pages 36-37, says it is possible to *read* current image boot address, but writing application boot address can be performed only in factory mode. Thus how I, from application 1, tell factory config that it should load application 2? Is there any register to pass info in?