HomeFreeBSD

Move the powerpc64 direct map base address from zero to high memory. This

Description

Move the powerpc64 direct map base address from zero to high memory. This
accomplishes a few things:

  • Makes NULL an invalid address in the kernel, which is useful for catching bugs.
  • Lays groundwork for radix-tree translation on POWER9, which requires the direct map be at high memory.
  • Similarly lays groundwork for a direct map on 64-bit Book-E.

The new base address is chosen as the base of the fourth radix quadrant
(the minimum kernel address in this translation mode) and because all
supported CPUs ignore at least the first two bits of addresses in real
mode, allowing direct-map addresses to be used in real-mode handlers.
This is required by Linux and is part of the architecture standard
starting in POWER ISA 3, so can be relied upon.

Reviewed by: jhibbits, Breno Leitao
Differential Revision: D14499

Details

Provenance
nwhitehornAuthored on
Reviewer
jhibbits
Differential Revision
D14499: Move powerpc64 direct map from 0 to 0xc000000000000000
Parents
rS330609: Fixup the AH patch to properly compile.
Branches
Unknown
Tags
Unknown