FreeCalypso > hg > freecalypso-sw
annotate target-utils/tf-breakin/payload.S @ 876:c9f353b5d70c
rvinterf/asyncshell/rxctl.c: buglet in the implementation of dis/enable commands
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Sat, 30 May 2015 07:50:05 +0000 |
parents | 4e0aa166baa5 |
children | 7166c8311b0d |
rev | line source |
---|---|
356
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
1 .text |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
2 .org 0 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
3 .code 32 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
4 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
5 @ set CPSR like mot931c payload does |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
6 msr CPSR_c, #0xd3 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
7 @ disable the watchdog |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
8 ldr r1, =0xfffff802 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
9 mov r0, #0xf5 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
10 strh r0, [r1, #2] |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
11 mov r0, #0xa0 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
12 strh r0, [r1, #2] |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
13 @ MODEM UART |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
14 ldr r6, =0xffff5800 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
15 @ wait for any previous output to flush out |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
16 1: ldrb r0, [r6, #5] |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
17 tst r0, #0x20 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
18 beq 1b |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
19 @ send our indication |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
20 adr r1, outstr |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
21 mov r2, #6 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
22 1: ldrb r0, [r1], #1 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
23 strb r0, [r6] |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
24 subs r2, r2, #1 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
25 bne 1b |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
26 @ wait for this output to go out to the TxD pin |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
27 1: ldrb r0, [r6, #5] |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
28 tst r0, #0x40 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
29 beq 1b |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
30 @ enable the Calypso boot ROM |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
31 ldr r1, =0xFFFFFB10 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
32 mov r2, #0x0100 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
33 strh r2, [r1] |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
34 @ jump to it! |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
35 mov pc, #0 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
36 |
4e0aa166baa5
target-utils/tf-breakin: payload written for the TF C139 break-in attempt
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
37 outstr: .byte 2,2,2,'O','K',2 |