From 9d720d45c975670de38ea2187877c5adc389b349 Mon Sep 17 00:00:00 2001 From: Justin Hibbits Date: Tue, 11 Dec 2018 02:03:00 +0000 Subject: [PATCH] powerpc/booke: Don't get and use the load offset for TOC on APs The code was a near exact copy of the code in startup, but it doesn't need the complexity since the kernel is already relocated. With VM_MIN_KERNEL_ADDRESS as currently set to KERNBASE, this doesn't cause a problem, because it's a zero offset. However, when KERNBASE is changed to a physical load address, it then has a non-zero offset, and ends up with an invalid stack pointer, causing the AP to hang. --- sys/powerpc/booke/locore.S | 5 ----- 1 file changed, 5 deletions(-) diff --git a/sys/powerpc/booke/locore.S b/sys/powerpc/booke/locore.S index c8c082b11fc4..c0aa309bb713 100644 --- a/sys/powerpc/booke/locore.S +++ b/sys/powerpc/booke/locore.S @@ -549,14 +549,9 @@ bp_kernload: add %r2,%r1,%r2 mtspr SPR_SPRG8, %r2 - /* Get load offset */ - ld %r31,-0x8000(%r2) /* First TOC entry is TOC base */ - subf %r31,%r31,%r2 /* Subtract from real TOC base to get base */ - /* Set up the stack pointer */ ld %r1,TOC_REF(tmpstack)(%r2) addi %r1,%r1,TMPSTACKSZ-96 - add %r1,%r1,%r31 #else /* * Setup a temporary stack