aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLexi Winter <ivy@FreeBSD.org>2026-04-17 16:56:33 +0000
committerLexi Winter <ivy@FreeBSD.org>2026-04-17 16:56:33 +0000
commiteb0279550d52962241b4178101cd7f7d732eb682 (patch)
tree665b866f6b1bf56667765f3c380b4d7869017b0c
parent49e9b3061df036a73e8bc424c026158f3f57b183 (diff)
boot1.chrp: Improve comment for the SLOF hack
Since this original comment was written, the actual issue in SLOF was diagnosed and documented in commit 424089a0fc, which fixed it for loader(8). Update the comment in boot1 to be more informative to future readers. MFC after: 3 days Reviewed by: jhibbits, adrian Sponsored by: https://www.patreon.com/bsdivy Differential Revision: https://reviews.freebsd.org/D56470
-rw-r--r--stand/powerpc/boot1.chrp/boot1.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/stand/powerpc/boot1.chrp/boot1.c b/stand/powerpc/boot1.chrp/boot1.c
index 1a546f3473e2..1bb06bf82983 100644
--- a/stand/powerpc/boot1.chrp/boot1.c
+++ b/stand/powerpc/boot1.chrp/boot1.c
@@ -102,14 +102,11 @@ ofwh_t bootdevh;
ofwh_t stdinh, stdouth;
/*
- * Note about the entry point:
+ * Our entrypoint.
*
- * For some odd reason, the first page of the load appears to have trouble
- * when entering in LE. The first five instructions decode weirdly.
- * I suspect it is some cache weirdness between the ELF headers and .text.
- *
- * Ensure we have a gap between the start of .text and the entry as a
- * workaround.
+ * A bug in the SLOF shipped with some versions of QEMU causes the first
+ * 32 bytes of .text to be wrongly byte-swapped when loading LE programs.
+ * As a workaround, we add some padding at the start of the text section.
*/
__asm(" \n\
.data \n\
@@ -118,7 +115,7 @@ stack: \n\
.space 16384 \n\
\n\
.text \n\
- /* SLOF cache hack */ \n\
+ /* SLOF workaround */ \n\
.space 4096 \n\
.globl _start \n\
_start: \n\