On Wed, 28 Nov 2018 at 15:34, Ard Biesheuvel <[email protected]> wrote:
>
> This v3 subsumes and/or supersedes
>
> [PATCH v2 00/13] ArmPkg, ArmVirtPkg: lift 40-bit IPA space limit
> [PATCH] MdePkg/ProcessorBind.h AARCH64: limit MAX_ADDRESS to 48 bits
> [PATCH v2 0/2] ArmVirtPkg: remove high peripheral space mapping
>
> The ArmVirtQemu targets currently limit the size of the IPA space to
> 40 bits because that is all what KVM supports. However, this is about
> to change, and so we need to update the code if we want to ensure that
> our UEFI firmware builds can keep running on systems that set values
> other than 40 (which could be > 40 or < 40)
>
> This series refactors how we handle the maximum size of the physical
> address space supported by the CPU in relation with the size of UEFI's
> 1:1 mapping and the size of the GCD memory space map, taking the following
> observations into account:
> - the range of the linear mapping can be tied to whatever the CPU supports
>   (as long as it doesn't exceed what the architecture permits for 4k pages)
>   since we mostly already use the maximum of 4 levels anyway, and there is
>   no memory cost involved beyond that
> - there is usually no point in mapping the entire address space, which does
>   involve a memory cost
> - the GCD memory space may be required to cover more than what UEFI can
>   address itself, since it is the based for the UEFI memory map that is
>   provided to the OS
>
> Patches #1 and #2 remove some unused code to avoid having to fix it.
>
> Patches #3 and #4 update ArmVirtQemu and ArmVirtQemuKernel to drop the high
> peripheral space mapping, and map whatever may reside there explicitly
> (currently only the ECAM space in practice, but the MMIO view of the PCI
> I/O space is mapped explicitly as well)
>
> Patch #5 was sent out before individually, and sets MAX_ADDRESS to the
> maximum value AArch64 can map in UEFI which runs with 4k pages.
>
> Patch #6 adds a helper to ArmLib to read the number of supported address
> bits and take this into account in the page table code (#8), which allows
> PcdPrePiCpuMemorySize to assume a value that exceeds the capabilities of
> the CPU.
>
> Patch #7 is mostly a cleanup patch, to switch to the new helper added in
> patch #6. No functional changes intended.
>
> Patches #9 to #12 modify building of the CPU hob (and thus the size of the
> GCD memory space) based on the CPU capabilities rather than the value of
> PcdPrePiCpuMemorySize, which is dropped in the last patch.
>
> Pacthes #13 and #14 remove some needless references to PcdPrePiCpuMemorySize
>
> Patch #15 drops the overrides of PcdPrePiCpuMemorySize from all ArmVirtPkg
> platforms.
>
> Cc: Laszlo Ersek <[email protected]>
> Cc: Leif Lindholm <[email protected]>
> Cc: Eric Auger <[email protected]>
> Cc: Andrew Jones <[email protected]>
> Cc: Philippe Mathieu-Daude <[email protected]>
> Cc: Julien Grall <[email protected]>
>
> Ard Biesheuvel (16):
>   EmbeddedPkg/TemplateSec: remove unused module
>   EmbeddedPkg/PrePiHobLib: drop CreateHobList() from library
>   ArmVirtPkg/FdtPciHostBridgeLib: map ECAM and I/O spaces in GCD memory
>     map
>   ArmVirtPkg/QemuVirtMemInfoLib: remove 1:1 mapping of top of PA range
>   MdePkg/ProcessorBind.h AARCH64: limit MAX_ADDRESS to 48 bits
>   ArmPkg/ArmLib: add support for reading the max physical address space
>     size
>   ArmVirtPkg/XenVirtMemInfoLib: refactor reading of the PA space size
>   ArmPkg/ArmMmuLib: take the CPU supported maximum PA space into account
>   ArmPkg/CpuPei: base GCD memory space size on CPU's PA range
>   ArmPlatformPkg/PrePi: base GCD memory space size on CPU's PA range
>   ArmVirtPkg/PrePi: base GCD memory space size on CPU's PA range
>   BeagleBoardPkg/PrePi: base GCD memory space size on CPU's PA range
>   ArmPlatformPkg/PlatformPei: drop unused PCD references
>   EmbeddedPkg/PrePiLib: drop unused PCD reference
>   ArmVirtPkg: drop PcdPrePiCpuMemorySize assignments from all platforms
>   EmbeddedPkg/EmbeddedPkg.dec: drop PcdPrePiCpuMemorySize declarations
>

Thanks all for the reviews.

Patches #1 .. #15 pushed as e979ea74aa14..55342094fb86

Patch #16 needs to wait until edk2-platforms is brought up to date
with the removal of PcdPrePiCpuMemorySize
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to