From: Laszlo Ersek Date: Tue, 8 Mar 2016 12:01:03 +0000 (+0100) Subject: OvmfPkg: PlatformPei: lower the 32-bit PCI MMIO base to 2GB on Q35 X-Git-Tag: edk2-stable201903~7654 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=b01acf6ea7e729a690ff6aa926a5ea20611eb117 OvmfPkg: PlatformPei: lower the 32-bit PCI MMIO base to 2GB on Q35 Gerd has advised us that long term support Q35 machine types have no low RAM above 2GB, hence we should utilize the [2GB, 3GB) gap -- that we currently leave unused -- for MMIO. (Plus, later in this series, for the PCIEXBAR too.) Cc: Gabriel Somlo Cc: Gerd Hoffmann Cc: Jordan Justen Cc: Marcel Apfelbaum Cc: Michał Zegan Ref: https://github.com/tianocore/edk2/issues/32 Ref: http://thread.gmane.org/gmane.comp.bios.edk2.devel/8707/focus=8817 Suggested-by: Gerd Hoffmann Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek Tested-by: Gabriel Somlo Tested-by: Michał Zegan Reviewed-by: Jordan Justen --- diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c index 7d0941209f..8e4da41001 100644 --- a/OvmfPkg/PlatformPei/Platform.c +++ b/OvmfPkg/PlatformPei/Platform.c @@ -218,11 +218,10 @@ MemMapInitialization ( TopOfLowRam = GetSystemMemorySizeBelow4gb (); if (mHostBridgeDevId == INTEL_Q35_MCH_DEVICE_ID) { // - // A 3GB base will always fall into Q35's 32-bit PCI host aperture, - // regardless of the Q35 MMCONFIG BAR. Correspondingly, QEMU never lets - // the RAM below 4 GB exceed it. + // On Q35 machine types that QEMU intends to support in the long term, + // QEMU never lets the RAM below 4 GB exceed 2 GB. // - PciBase = BASE_2GB + BASE_1GB; + PciBase = BASE_2GB; ASSERT (TopOfLowRam <= PciBase); } else { PciBase = (TopOfLowRam < BASE_2GB) ? BASE_2GB : TopOfLowRam;