Repo: https://github.com/lersek/edk2.git Branch: exbar_mtrr_rhbz_1666941 Ref: https://bugzilla.redhat.com/show_bug.cgi?id=1666941 Ref: https://bugzilla.redhat.com/show_bug.cgi?id=1701710
When booting OVMF on QEMU with "weird" RAM sizes, QEMU's low-RAM split logic can trigger two assertion failures in OVMF: - conflict between PCIEXBAR (ECAM) and low-RAM, on q35, - running out of variable MTRRs when marking the uncacheable MMIO range in 32-bit address space, on both i440fx and q35. This series fixes both issues, by moving around the PCIEXBAR on q35, and by truncating the size of the uncacheable 32-bit area to a power of two. The latter idea was inspired by SeaBIOS. Tested on both machine types, with the following memory sizes (all in MB): 1025, 2815, 3583, 5120. On i440fx, the X64 build was used (without SMM). On q35, the IA32 and IA32X64 builds were used (with SMM). Testing included "/proc/mtrr" verification, 32-bit PCI MMIO aperture verification, general dmesg checks, and my usual regression tests too (ACPI S3, UEFI variable services, ...). Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> Cc: Gerd Hoffmann <kra...@redhat.com> Cc: Jordan Justen <jordan.l.jus...@intel.com> Thanks Laszlo Laszlo Ersek (4): OvmfPkg/PlatformPei: assign PciSize on both i440fx/q35 branches explicitly OvmfPkg/PlatformPei: hoist PciBase assignment above the i440fx/q35 branching OvmfPkg/PlatformPei: reorder the 32-bit PCI hole vs. the PCIEXBAR on q35 OvmfPkg/PlatformPei: fix MTRR for low-RAM sizes that have many bits clear OvmfPkg/OvmfPkgIa32.dsc | 5 +---- OvmfPkg/OvmfPkgIa32X64.dsc | 5 +---- OvmfPkg/OvmfPkgX64.dsc | 5 +---- OvmfPkg/PlatformPei/MemDetect.c | 23 +++++++++++++++++--- OvmfPkg/PlatformPei/Platform.c | 14 +++++------- OvmfPkg/PlatformPei/Platform.h | 2 ++ 6 files changed, 31 insertions(+), 23 deletions(-) -- 2.19.1.3.g30247aa5d201 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#39965): https://edk2.groups.io/g/devel/message/39965 Mute This Topic: https://groups.io/mt/31489694/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-