| rjw | 6c1fd8f | 2022-11-30 14:33:01 +0800 | [diff] [blame] | 1 | .macro WDT_BOOT_INIT |
| 2 | .set noreorder | ||||
| 3 | |||||
| 4 | //mfc0 a0, C0_EBASE | ||||
| 5 | //ext a0, a0, 0, 4 | ||||
| 6 | //bnez a0, WDT_BOOT_INIT_DONE | ||||
| 7 | //nop | ||||
| 8 | |||||
| 9 | la a0, g_WATCHDOG_CTL_REG | ||||
| 10 | lw a0, 0x0(a0) | ||||
| 11 | |||||
| 12 | /* Load WDTCR */ | ||||
| 13 | lw a2, 0x0(a0) | ||||
| 14 | /* Clear BIT_0 and BIT_1 */ | ||||
| 15 | lui a1, 0xffff | ||||
| 16 | ori a1, 0xfffc | ||||
| 17 | and a2, a1 | ||||
| 18 | /* Disable WDT timer */ | ||||
| 19 | li a1, RSTCTL_WDTCR_KEY | ||||
| 20 | addu a2, a1 | ||||
| 21 | sw a2, 0x0(a0) | ||||
| 22 | |||||
| 23 | sync 0x3 | ||||
| 24 | lui t0, 0xA1FF | ||||
| 25 | lw t1,0(t0) | ||||
| 26 | sw t1,0(t0) | ||||
| 27 | WDT_BOOT_INIT_DONE: | ||||
| 28 | nop | ||||
| 29 | .endm WDT_BOOT_INIT | ||||