| plan 9 kernel history: overview | file list | diff list |
2001/0818/bitsy/l.s (diff list | history)
| 2001/0817/sys/src/9/bitsy/l.s:670,702 – 2001/0818/sys/src/9/bitsy/l.s:670,706 (short | long | prev | next) | ||
| 2001/0618 | loop: | |
| 2001/0621 | B loop | |
| 2001/0618 | ||
| 2001/0817 |
| |
| 2001/0818 | TEXT power_down(SB), $-4 | |
| 2001/0817 | /* disable clock switching */ MCR CpPWR, 0, R0, C(CpTest), C(0x2), 2 | |
| 2001/0818 | /* Adjust memory timing before lowering CPU clock * Clock speed ajdustment without changing memory * timing makes CPU hang in some cases */ MOVW $(MEMCONFREGS+0x1c),R0 MOVW (R0),R1 /* mdrefr */ ORR $(1<<22), R1 /* set K1DB2 */ MOVW R1,(R0) | |
| 2001/0817 | /* delay 90us and set CPU PLL to lowest speed */ /* fixes resume problem on high speed SA1110 */ | |
| 2001/0818 | MOVW $(90*206),R0 d1: SUB $1,R0 BNE d1 | |
| 2001/0817 | ||
| 2001/0818 | MOVW $(POWERREGS+0x14),R0 MOVW $0,R1 MOVW R1,(R0) /* clear PPCR */ | |
| 2001/0817 | ||
| 2001/0818 | MOVW $(90*206),R0 d2: SUB $1,R0 BNE d2 | |
| 2001/0817 | /* setup up register contents for jump to page containing SA1110 SDRAM controller bug fix suspend code * * r0 points to MSC0 register | |
| 2001/0817/sys/src/9/bitsy/l.s:716,777 – 2001/0818/sys/src/9/bitsy/l.s:720,781 | ||
| 2001/0817 | * */ | |
| 2001/0818 | MOVW $(MEMCONFREGS+0x10),R0 MOVW $(MEMCONFREGS+0x14),R1 MOVW $(MEMCONFREGS+0x2c),R2 | |
| 2001/0817 |
| |
| 2001/0818 | MOVW (R0),R3 BIC $0x00030003,R3 /* MSC_RT fields */ | |
| 2001/0817 |
| |
| 2001/0818 | MOVW (R1),R4 BIC $0x00030003,R4 /* MSC_RT fields */ | |
| 2001/0817 |
| |
| 2001/0818 | MOVW (R2),R5 BIC $0x00030003,R5 /* MSC_RT fields */ | |
| 2001/0817 |
| |
| 2001/0818 | MOVW $(MEMCONFREGS+0x1c),R6 | |
| 2001/0817 |
| |
| 2001/0818 | MOVW (R6),R7 BIC $0x0000FFF0,R7 /* DRI 0 .. 11 */ ORR $(1<<31),R7,R8 /* prepare to set self refresh */ | |
| 2001/0817 |
| |
| 2001/0818 | MOVW $(MEMCONFREGS+0x0),R9 MOVW (R9),R10 BIC $(0x00030003),R10 /* clear DE0 ⋯ DE3 */ | |
| 2001/0817 |
| |
| 2001/0818 | BIC $(1<<31 | 1<<20),R8,R11 /* self-refresh and e1pin */ | |
| 2001/0817 |
| |
| 2001/0818 | MOVW $(POWERREGS+0x0),R12 MOVW $1,R13 /* sleep force bit */ | |
| 2001/0817 |
| |
| 2001/0818 | MOVW R0,R0 MOVW R0,R0 MOVW R0,R0 MOVW R0,R0 MOVW R0,R0 MOVW R0,R0 MOVW R0,R0 /* Fall through */ | |
| 2001/0817 |
| |
| 2001/0818 | /* .align 5 Needs to be on a cache line boundary? */ TEXT sdram_controller_fix(SB),$0 | |
| 2001/0817 |
| |
| 2001/0818 | MOVW R3,(R0) MOVW R4,(R1) MOVW R5,(R2) | |
| 2001/0817 | /* Step 2 clear DRI field in MDREFR */ | |
| 2001/0818 | MOVW R7,(R6) | |
| 2001/0817 | /* Step 3 set SLFRSH bit in MDREFR */ | |
| 2001/0818 | MOVW R8,(R6) | |
| 2001/0817 | /* Step 4 clear DE bis in MDCNFG */ | |
| 2001/0818 | MOVW R10,(R9) | |
| 2001/0817 | /* Step 5 clear DRAM refresh control register */ | |
| 2001/0818 | MOVW R11,(R6) | |
| 2001/0817 | /* Wow, now the hardware suspend request pins can be used, that makes them functional for */ /* about 7 ns out of the entire time that the CPU is running! */ | |
| 2001/0817/sys/src/9/bitsy/l.s:778,787 – 2001/0818/sys/src/9/bitsy/l.s:782,791 | ||
| 2001/0817 | /* Step 6 set force sleep bit in PMCR */ | |
| 2001/0818 | MOVW R13,(R12) slloop: B slloop /* loop waiting for sleep */ | |
| 2001/0817 | ||
| 2000/1130 | /* The first MCR instruction of this function needs to be on a cache-line * boundary; to make this happen, it will be copied (in trap.c). | |