ebf84ceca7
from U-Boot, the kernel is passed a standard argc/argv pair. The Juniper loader passes the metadata pointer as the second argument and passes 0 in the first. The FreeBSD loader passes the metadata pointer in the first argument. As such, have locore preserve the first 2 arguments in registers r30 & r31. Change e500_init() to accept these arguments. Don't pass global offsets (i.e. kernel_text and _end) as arguments to e500_init(). We can reference those directly. Rename e500_init() to booke_init() now that we're changing the prototype. In booke_init(), "decode" arg1 and arg2 to obtain the metadata pointer correctly. For the U-Boot case, clear SBSS and BSS and bank on having a static FDT for now. This allows loading the ELF kernel and jumping to the entry point without trampoline. |
||
---|---|---|
.. | ||
clock.c | ||
copyinout.c | ||
interrupt.c | ||
locore.S | ||
machdep.c | ||
mp_cpudep.c | ||
platform_bare.c | ||
pmap.c | ||
swtch.S | ||
trap_subr.S | ||
trap.c | ||
vm_machdep.c |