freebsd-nq/sys/powerpc/ofw
Nathan Whitehorn 8864f35942 Execute PowerPC64/AIM kernel from direct map region when possible.
When the kernel can be in real mode in early boot, we can execute from
high addresses aliased to the kernel's physical memory. If that high
address has the first two bits set to 1 (0xc...), those addresses will
automatically become part of the direct map. This reduces page table
pressure from the kernel and it sets up the kernel to be used with
radix translation, for which it has to be up here.

This is accomplished by exploiting the fact that all PowerPC kernels are
built as position-independent executables and relocate themselves
on start. Before this patch, the kernel runs at 1:1 VA:PA, but that
VA/PA is random and set by the bootloader. Very early, it processes
its ELF relocations to operate wherever it happens to find itself.
This patch uses that mechanism to re-enter and re-relocate the kernel
a second time witha new base address set up in the early parts of
powerpc_init().

Reviewed by:	jhibbits
Differential Revision:	D14647
2018-03-13 15:03:58 +00:00
..
ofw_machdep.c Make FDT-using parts of ofw_machdep.c condition on options FDT. This fixes 2018-03-11 01:09:31 +00:00
ofw_pcib_pci.c sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
ofw_pcibus.c sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
ofw_pcibus.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
ofw_real.c Move the powerpc64 direct map base address from zero to high memory. This 2018-03-07 17:08:07 +00:00
ofw_syscons.c sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
ofw_syscons.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
ofwcall32.S Make 32-bit PowerPC kernels, like 64-bit PowerPC kernels, position-independent 2015-03-07 20:14:46 +00:00
ofwcall64.S Execute PowerPC64/AIM kernel from direct map region when possible. 2018-03-13 15:03:58 +00:00
openpic_ofw.c sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
rtas.c sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00