rendered paste body.globl memsetup
memsetup:
mov r11, lr
adr r0, SystemUnitTable
bl reginit
@ Steps 2a..4d
adr r0,MemTable1
bl reginit
...
/**********************************************************************
*
* reginit
*
* PURPOSE: initialize stuff using a addr/data pair table
* PARAMS: r0 - address the the table
* REGISTERS: r0, r1, r2, r3
* CALLS: Nothing
* RETURNS: Nothing
**********************************************************************/
reginit:
1: ldmia r0!, {r1,r2} @ load reg/value from regtable
cmp r1, #0 @ at end?
strne r2, [r1] @ if not, store value into reg
ldrne r3, [r1] @ if not, read it back (see PXA errata)
bne 1b @ if not, branch back
mov pc, lr
...
MemTable1:
@ Info on this sequence is in the OS Developers Guide, Section 10.0 on page 13
@ also see Developers Manual, Section 6.12 on page 6-76
@ write MSC0, MSC1, MSC2 (6-44)
.long MSC0, 0x7ff0fdc3 @ f4c0
.long MSC1, 0x29842981
.long MSC2, 0x29842984
...