svn commit: r326182 - in head/stand: ofw/libofw powerpc/kboot powerpc/ps3
Nathan Whitehorn
nwhitehorn at FreeBSD.org
Fri Nov 24 23:41:05 UTC 2017
Author: nwhitehorn
Date: Fri Nov 24 23:41:04 2017
New Revision: 326182
URL: https://svnweb.freebsd.org/changeset/base/326182
Log:
Modify all FreeBSD bootloaders on PowerPC AIM (Book-S) systems to pass a
magic number to the kernel in r7 rather than the (currently unused and
irrelevant) width of the metadata pointer, which I believe was intended
for a never-used approach to the 64-bit port. This enables the kernel,
in a future commit, to switch on the cookie to distinguish a real
metadata pointer from loader(8) from garbage left in r6 by some other
boot loader.
MFC after: 3 weeks
Modified:
head/stand/ofw/libofw/elf_freebsd.c
head/stand/ofw/libofw/ppc64_elf_freebsd.c
head/stand/powerpc/kboot/ppc64_elf_freebsd.c
head/stand/powerpc/ps3/ppc64_elf_freebsd.c
Modified: head/stand/ofw/libofw/elf_freebsd.c
==============================================================================
--- head/stand/ofw/libofw/elf_freebsd.c Fri Nov 24 19:57:13 2017 (r326181)
+++ head/stand/ofw/libofw/elf_freebsd.c Fri Nov 24 23:41:04 2017 (r326182)
@@ -91,7 +91,7 @@ __elfN(ofw_exec)(struct preloaded_file *fp)
mdp, sizeof(mdp));
} else {
OF_chain((void *)reloc, end - (char *)reloc, (void *)entry,
- (void *)mdp, sizeof(mdp));
+ (void *)mdp, 0xfb5d104d);
}
panic("exec returned");
Modified: head/stand/ofw/libofw/ppc64_elf_freebsd.c
==============================================================================
--- head/stand/ofw/libofw/ppc64_elf_freebsd.c Fri Nov 24 19:57:13 2017 (r326181)
+++ head/stand/ofw/libofw/ppc64_elf_freebsd.c Fri Nov 24 23:41:04 2017 (r326182)
@@ -93,11 +93,11 @@ ppc64_ofw_elf_exec(struct preloaded_file *fp)
if (dtbp != 0) {
OF_quiesce();
- ((int (*)(u_long, u_long, u_long, void *, u_long))entry)(dtbp, 0, 0,
- mdp, sizeof(mdp));
+ ((int (*)(u_long, u_long, u_long, void *, u_long))entry)(dtbp,
+ 0, 0, mdp, 0xfb5d104d);
} else {
OF_chain((void *)reloc, end - (char *)reloc, (void *)entry,
- (void *)mdp, sizeof(mdp));
+ (void *)mdp, 0xfb5d104d);
}
panic("exec returned");
Modified: head/stand/powerpc/kboot/ppc64_elf_freebsd.c
==============================================================================
--- head/stand/powerpc/kboot/ppc64_elf_freebsd.c Fri Nov 24 19:57:13 2017 (r326181)
+++ head/stand/powerpc/kboot/ppc64_elf_freebsd.c Fri Nov 24 23:41:04 2017 (r326182)
@@ -96,7 +96,7 @@ ppc64_elf_exec(struct preloaded_file *fp)
trampoline[3] = dtb;
trampoline[6] = mdp;
- trampoline[7] = sizeof(mdp);
+ trampoline[7] = 0xfb5d104d;
printf("Kernel entry at %#jx (%#x) ...\n", e->e_entry, trampoline[2]);
printf("DTB at %#x, mdp at %#x\n", dtb, mdp);
Modified: head/stand/powerpc/ps3/ppc64_elf_freebsd.c
==============================================================================
--- head/stand/powerpc/ps3/ppc64_elf_freebsd.c Fri Nov 24 19:57:13 2017 (r326181)
+++ head/stand/powerpc/ps3/ppc64_elf_freebsd.c Fri Nov 24 23:41:04 2017 (r326182)
@@ -89,7 +89,7 @@ ppc64_elf_exec(struct preloaded_file *fp)
dev_cleanup();
entry(0 /* FDT */, 0 /* Phys. mem offset */, 0 /* OF entry */,
- (void *)mdp, sizeof(mdp));
+ (void *)mdp, 0xfb5d104d);
panic("exec returned");
}
More information about the svn-src-head
mailing list