1 // Arm assembly to copy the Gemini kernel on Storlink reference
2 // designs and derived devices with the same flash layout and
5 // This will execute at 0x01600000
7 // Copies the kernel from two fragments (originally zImage
8 // and initramdisk) to 0x00400000 making space for a kernel
9 // image of up to 8 MB except for these 512 bytes used for
12 // 0x01600200 .. 0x017fffff -> 0x00400000 .. 0x005ffdff
13 // 0x00800000 .. 0x00dfffff -> 0x005ffe00 .. 0x00bffdff
15 // Memory used for this bootstrap
16 .equ BOOT_HEADROOM, 0x200
18 .global _start // Stand-alone assembly code
23 add r1, r1, #BOOT_HEADROOM
24 sub r3, r3, #BOOT_HEADROOM