view target-utils/tf-breakin/payload.S @ 992:a7b0b426f9ca

target-utils: boot ROM UART autodetection revamped The new implementation should work with both the familiar Calypso C035 boot ROM version found in our regular targets as well as the older Calypso F741979B version found on the vintage D-Sample board.
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Wed, 30 Dec 2015 21:28:41 +0000
parents 7166c8311b0d
children
line wrap: on
line source

	.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