I Am trying to get the Watchdog to generate a warm reset on my HPS Baremetal Application.
My Setup:
Cyclone V custom board
Boot setup; BootRom -> Preloader -> HPS baremetal
Preloader and HPS loaded from QSPI Flash
Preloader in On Chip RAM and HPS in SDRAM
I use the following code to trigger the warm reset from the watchdog:
ALT_STATUS_CODE status = ALT_E_SUCCESS; //status |= alt_wdog_int_clear(ALT_WDOG0); //set to 90 second watchdog timer if (status == ALT_E_SUCCESS) {status = alt_wdog_counter_set(ALT_WDOG1, 0); if (status == ALT_E_SUCCESS) {status = alt_wdog_response_mode_set(ALT_WDOG1, ALT_WDOG_WARM_RESET ); } if (status == ALT_E_SUCCESS) {status = alt_wdog_start(ALT_WDOG1); }
I can see the watchdog count down, then the HPS goes into Hung/Reset state, but does not recover or boot again.
Does anyone know what I am doing wrong. Should the warm reset not trigger the HPS to reload from the application Entry point?