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 |