Forum Discussion
FabianL
Occasional Contributor
9 months agoHi Xiaoyan
- I do the following:
- set the start address at 0x00 to 0x1F in the flash as 0x01000020
- Generate a .rpd file and load the binary manually at address 0x01000018 in the flash memory
- I leave the factory & boot sectors of the flash memory untouched. This wouln't be the case if I directly load the .jic file using Intel programming tools
- We have this boot procedure:
- Boot into factory image (0x20 as boot address in flash boot sector 0x00 to 0x1F). We have certain HW which is sensible to boot up timing so we need this to guarantee an identical and reliable boot up procedure.
- Boot from factory load into application image
- Check for power up boot: Read RU_RECONFIG_TRIGGER_CONDITIONS register for power up state (0)
- do not reconfigure if Bit 4,2,1,0 is set
- Set AnF bit: write "1" to RU_CONFIGURATION_MODE
- Set application image address RU_PAGE_SELECT
- Enable Watchdog Set RU_WATCHDOG_TIMEOUT & RU_WATCHDOG_ENABLE
- Reconfigure: write "1" to RU_RECONFIG
- Check for power up boot: Read RU_RECONFIG_TRIGGER_CONDITIONS register for power up state (0)
- In Application mode we only read the RU_RECONFIG_TRIGGER_CONDITIONS as status info
- We do not write the RU_WATCHDOG_ENABLE nor RU_RESET_TIMER registers
The watchdog fix helps to trigger if between step 2 & 3 the application load is corrupt. So this scenario I would not assume to fall under the DTA mode and would assume that this does not apply "In the DTA mode, the watchdog timer is disabled by default. You cannot enable the watchdog timer in the initial or first application image loaded upon powering up the device".
However the application image we are loading is the first application image, but I'm not sure if the FPGA is able to distinguish between factory and application image based on the image flash address.
best regards
Fabian