12d2bcd31SMagnus Damm /* kfr2r09 board specific boot code: 22d2bcd31SMagnus Damm * converts the "partner-jet-script.txt" script into assembly 32d2bcd31SMagnus Damm * the assembly code is the first code to be executed in the romImage 42d2bcd31SMagnus Damm */ 52d2bcd31SMagnus Damm 62d2bcd31SMagnus Damm /* The LIST command is used to include comments in the script */ 72d2bcd31SMagnus Damm .macro LIST comment 82d2bcd31SMagnus Damm .endm 92d2bcd31SMagnus Damm 102d2bcd31SMagnus Damm /* The ED command is used to write a 32-bit word */ 112d2bcd31SMagnus Damm .macro ED, addr, data 122d2bcd31SMagnus Damm mov.l 1f ,r1 132d2bcd31SMagnus Damm mov.l 2f ,r0 142d2bcd31SMagnus Damm mov.l r0, @r1 152d2bcd31SMagnus Damm bra 3f 162d2bcd31SMagnus Damm nop 172d2bcd31SMagnus Damm .align 2 182d2bcd31SMagnus Damm 1: .long \addr 192d2bcd31SMagnus Damm 2: .long \data 202d2bcd31SMagnus Damm 3: 212d2bcd31SMagnus Damm .endm 222d2bcd31SMagnus Damm 232d2bcd31SMagnus Damm /* The EW command is used to write a 16-bit word */ 242d2bcd31SMagnus Damm .macro EW, addr, data 252d2bcd31SMagnus Damm mov.l 1f ,r1 262d2bcd31SMagnus Damm mov.l 2f ,r0 272d2bcd31SMagnus Damm mov.w r0, @r1 282d2bcd31SMagnus Damm bra 3f 292d2bcd31SMagnus Damm nop 302d2bcd31SMagnus Damm .align 2 312d2bcd31SMagnus Damm 1: .long \addr 322d2bcd31SMagnus Damm 2: .long \data 332d2bcd31SMagnus Damm 3: 342d2bcd31SMagnus Damm .endm 352d2bcd31SMagnus Damm 362d2bcd31SMagnus Damm /* The EB command is used to write an 8-bit word */ 372d2bcd31SMagnus Damm .macro EB, addr, data 382d2bcd31SMagnus Damm mov.l 1f ,r1 392d2bcd31SMagnus Damm mov.l 2f ,r0 402d2bcd31SMagnus Damm mov.b r0, @r1 412d2bcd31SMagnus Damm bra 3f 422d2bcd31SMagnus Damm nop 432d2bcd31SMagnus Damm .align 2 442d2bcd31SMagnus Damm 1: .long \addr 452d2bcd31SMagnus Damm 2: .long \data 462d2bcd31SMagnus Damm 3: 472d2bcd31SMagnus Damm .endm 482d2bcd31SMagnus Damm 492d2bcd31SMagnus Damm /* The WAIT command is used to delay the execution */ 502d2bcd31SMagnus Damm .macro WAIT, time 512d2bcd31SMagnus Damm mov.l 2f ,r3 522d2bcd31SMagnus Damm 1: 532d2bcd31SMagnus Damm nop 542d2bcd31SMagnus Damm tst r3, r3 552d2bcd31SMagnus Damm bf/s 1b 562d2bcd31SMagnus Damm dt r3 572d2bcd31SMagnus Damm bra 3f 582d2bcd31SMagnus Damm nop 592d2bcd31SMagnus Damm .align 2 602d2bcd31SMagnus Damm 2: .long \time * 100 612d2bcd31SMagnus Damm 3: 622d2bcd31SMagnus Damm .endm 632d2bcd31SMagnus Damm 642d2bcd31SMagnus Damm /* The DD command is used to read a 32-bit word */ 652d2bcd31SMagnus Damm .macro DD, addr, addr2, nr 662d2bcd31SMagnus Damm mov.l 1f ,r1 672d2bcd31SMagnus Damm mov.l @r1, r0 682d2bcd31SMagnus Damm bra 2f 692d2bcd31SMagnus Damm nop 702d2bcd31SMagnus Damm .align 2 712d2bcd31SMagnus Damm 1: .long \addr 722d2bcd31SMagnus Damm 2: 732d2bcd31SMagnus Damm .endm 742d2bcd31SMagnus Damm 752d2bcd31SMagnus Damm #include "partner-jet-setup.txt" 76673b74beSMagnus Damm 77673b74beSMagnus Damm /* execute icbi after enabling cache */ 78673b74beSMagnus Damm mov.l 1f, r0 79673b74beSMagnus Damm icbi @r0 80673b74beSMagnus Damm 81673b74beSMagnus Damm /* jump to cached area */ 82673b74beSMagnus Damm mova 2f, r0 83673b74beSMagnus Damm jmp @r0 84673b74beSMagnus Damm nop 85673b74beSMagnus Damm 86673b74beSMagnus Damm .align 2 87673b74beSMagnus Damm 1: .long 0xa8000000 88673b74beSMagnus Damm 2: 89