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