@----------------------------------------------------------------------------- @ 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 @----------------------------------------------------------------------------- .section .startup,"ax" .arm .global flashstart flashstart: b reset b undefined_instruction b software_interrupt b prefetch_abort b data_abort b . @reserved ldr pc, [pc,#-0xF20] @ IRQ - read the AIC b fiq reset: ldr sp, =_stack_end @ initialize stack pointer to top of RAM @ copy bootloader to RAM (in case the user re-flashes the bootloader) ldr r0, =__bootphase2_src_start__ ldr r1, =__bootphase2_start__ ldr r2, =__bootphase2_end__ 1: ldr r3, [r0], #4 str r3, [r1], #4 cmp r1, r2 blo 1b ldr r3, =ram_start @ start address of RAM bootloader bx r3 @ jump to it .ltorg undefined_instruction: b . software_interrupt: b . prefetch_abort: b . data_abort: b . fiq: b .