-.extern CopyBootToRAM\r
- \r
-.section .startup,"ax"\r
- .code 32\r
- .align 0\r
-\r
-.global flashstart\r
-flashstart:\r
- b Reset\r
- b UndefinedInstruction\r
- b SoftwareInterrupt\r
- b PrefetchAbort\r
- b DataAbort\r
- b Reserved\r
- b Irq\r
- b Fiq\r
-\r
-Reset:\r
- ldr sp, = 0x0020FFF8 @ initialize stack pointer to top of RAM\r
- bl CopyBootToRAM @ copy bootloader to RAM (in case the\r
- @ user re-flashes the bootloader)\r
- ldr r3, = 0x00200000 @ start address of RAM bootloader\r
- bx r3 @ jump to it\r
-\r
-Fiq:\r
- b Fiq\r
-UndefinedInstruction:\r
- b UndefinedInstruction\r
-SoftwareInterrupt:\r
- b SoftwareInterrupt\r
-PrefetchAbort:\r
- b PrefetchAbort\r
-DataAbort:\r
- b DataAbort\r
-Reserved:\r
- b Reserved\r
-Irq:\r
- b Irq\r
+@-----------------------------------------------------------------------------
+@ This code is licensed to you under the terms of the GNU GPL, version 2 or,
+@ at your option, any later version. See the LICENSE.txt file for the text of
+@ the license.
+@-----------------------------------------------------------------------------
+@ Reset vector for running from FLASH
+@-----------------------------------------------------------------------------
+
+.extern CopyBootToRAM
+
+.section .startup,"ax"
+ .code 32
+ .align 0
+
+.global flashstart
+flashstart:
+ b Reset
+ b UndefinedInstruction
+ b SoftwareInterrupt
+ b PrefetchAbort
+ b DataAbort
+ b Reserved
+ b Irq
+ b Fiq
+
+Reset:
+ ldr sp, .stack_end @ initialize stack pointer to top of RAM
+ bl CopyBootToRAM @ copy bootloader to RAM (in case the
+ @ user re-flashes the bootloader)
+ ldr r3, .bootphase2_start @ start address of RAM bootloader
+ bx r3 @ jump to it
+
+ .stack_end:
+ .word _stack_end
+ .bootphase2_start:
+ .word __bootphase2_start__
+
+Fiq:
+ b Fiq
+UndefinedInstruction:
+ b UndefinedInstruction
+SoftwareInterrupt:
+ b SoftwareInterrupt
+PrefetchAbort:
+ b PrefetchAbort
+DataAbort:
+ b DataAbort
+Reserved:
+ b Reserved
+Irq:
+ b Irq