All pastes #4523 Raw Edit

my memsetup structure

public text v1 · immutable
#4523 ·published 2005-01-21 14:10 UTC
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

...