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.
This commit is contained in:
Justin Hibbits 2018-12-11 02:03:00 +00:00
parent b2b1708d59
commit 9d720d45c9
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=341805

View File

@ -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