static BOOT_CODE void disableWatchdog(void) { uint32_t wdt = WDT1_PPTR; // am335x ref man, sec 20.4.3.8 *WDT_REG(wdt, WDT_REG_WSPR) = 0xaaaa; while ((*WDT_REG(wdt, WDT_REG_WWPS) & WDT_WWPS_PEND_WSPR)) { continue; } *WDT_REG(wdt, WDT_REG_WSPR) = 0x5555; while ((*WDT_REG(wdt, WDT_REG_WWPS) & WDT_WWPS_PEND_WSPR)) { continue; } }
void bsp_reset(void) { rtems_interrupt_level level; rtems_interrupt_disable(level); /* Enable the watchdog timer, then wait for the world to end. */ WDT_REG(WDT_MR) = WDT_EN; while(1); }