summaryrefslogtreecommitdiffstats
path: root/sys/boot/forth/menu-commands.4th
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2011-05-28 04:10:44 +0000
committermarcel <marcel@FreeBSD.org>2011-05-28 04:10:44 +0000
commit4937594467d6072b2bb22d2bd2b3dccaba83b140 (patch)
tree253c835cd38d339f3e7ec9f7d2cd30b491c383da /sys/boot/forth/menu-commands.4th
parentced7835c06b507528a27a1ef54de7f2533a2200c (diff)
downloadFreeBSD-src-4937594467d6072b2bb22d2bd2b3dccaba83b140.zip
FreeBSD-src-4937594467d6072b2bb22d2bd2b3dccaba83b140.tar.gz
Better support different kernel hand-offs. When loaded directly
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.
Diffstat (limited to 'sys/boot/forth/menu-commands.4th')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud