FreeCalypso > hg > freecalypso-tools
diff target-utils/tf-breakin/payload.S @ 0:e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 11 Jun 2016 00:13:35 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/target-utils/tf-breakin/payload.S Sat Jun 11 00:13:35 2016 +0000 @@ -0,0 +1,43 @@ + .text + .org 0 + +@ allow entry in Thumb state + .code 16 + bx pc + nop + + .code 32 + +@ set CPSR like mot931c payload does + msr CPSR_c, #0xd3 +@ disable the watchdog + ldr r1, =0xfffff802 + mov r0, #0xf5 + strh r0, [r1, #2] + mov r0, #0xa0 + strh r0, [r1, #2] +@ MODEM UART + ldr r6, =0xffff5800 +@ wait for any previous output to flush out +1: ldrb r0, [r6, #5] + tst r0, #0x20 + beq 1b +@ send our indication + adr r1, outstr + mov r2, #6 +1: ldrb r0, [r1], #1 + strb r0, [r6] + subs r2, r2, #1 + bne 1b +@ wait for this output to go out to the TxD pin +1: ldrb r0, [r6, #5] + tst r0, #0x40 + beq 1b +@ enable the Calypso boot ROM + ldr r1, =0xFFFFFB10 + mov r2, #0x0100 + strh r2, [r1] +@ jump to it! + mov pc, #0 + .ltorg +outstr: .byte 2,2,2,'O','K',2