]> cvs.zerfleddert.de Git - proxmark3-svn/blame_incremental - bootrom/flash-reset.s
CHG: Mea culpa, misspelled Aczid 's nick.
[proxmark3-svn] / bootrom / flash-reset.s
... / ...
CommitLineData
1@-----------------------------------------------------------------------------
2@ This code is licensed to you under the terms of the GNU GPL, version 2 or,
3@ at your option, any later version. See the LICENSE.txt file for the text of
4@ the license.
5@-----------------------------------------------------------------------------
6@ Reset vector for running from FLASH
7@-----------------------------------------------------------------------------
8
9.section .startup,"ax"
10
11.arm
12
13.global flashstart
14flashstart:
15 b reset
16 b undefined_instruction
17 b software_interrupt
18 b prefetch_abort
19 b data_abort
20 b . @reserved
21 ldr pc, [pc,#-0xF20] @ IRQ - read the AIC
22 b fiq
23
24reset:
25 ldr sp, =_stack_end @ initialize stack pointer to top of RAM
26
27 @ copy bootloader to RAM (in case the user re-flashes the bootloader)
28 ldr r0, =__bootphase2_src_start__
29 ldr r1, =__bootphase2_start__
30 ldr r2, =__bootphase2_end__
311:
32 ldr r3, [r0], #4
33 str r3, [r1], #4
34 cmp r1, r2
35 blo 1b
36
37 ldr r3, =ram_start @ start address of RAM bootloader
38 bx r3 @ jump to it
39
40 .ltorg
41
42undefined_instruction:
43 b .
44software_interrupt:
45 b .
46prefetch_abort:
47 b .
48data_abort:
49 b .
50fiq:
51 b .
Impressum, Datenschutz