ENTRY(_boot) /* defined in boot.S; qemu needs it to run elf file */ /* Code starts at 0x8000 - that's where RPis in 32-bit mode load * kernel at. My experiments do, however, show, that qemu emulating * RPi2 loads the kernel at 0x10000! (took some pain to find out). * rpi-open-firmware, on the other hand, loads kernel at 0x2000000! * This is not really a problem, since: * 1. We can use our bootloader to load the kernel at 0x8000 * 2. We've rewritten stage 1 of both bootloader and kernel in * careful assembly, so that they should work regardless of * where they are loaded. * 3. In qemu, we can load kernel.elf instead of raw binary * (qemu will do the right thing then) */ SECTIONS { . = 0x8000; __start = .; .kernel_stage1 : { KEEP(kernel_stage1.o) } __end = .; }