]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg/Bhyve: use static PCI32Base address
authorCorvin Köhne <c.koehne@beckhoff.com>
Mon, 5 Jul 2021 11:08:42 +0000 (13:08 +0200)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Mon, 5 Jul 2021 12:12:00 +0000 (12:12 +0000)
It's neccessary to allocate a Graphics Stolen Memory area to enable
GPU-Passthrough for integrated Intel GPUs. Therefore, use a new
memory layout with a static Pci32Baseaddress.

Old layout:
[...        , lowmemlimit] RAM
[lowmemlimit, 0xE000 0000] PCI Space
New layout:
[...        , lowmemlimit] RAM
[lowmemlimit, gsmbase    ] Memory hole (may be absent)
[gsmbase    , 0xC000 0000] GSM (may be absent)
[0xC000 0000, 0xE000 0000] PCI Space

Reviewed-by: Peter Grehan <grehan@freebsd.org>
Acked-by: Rebecca Cran <rebecca@bsdio.com>
Signed-off-by: Corvin Köhne <c.koehne@beckhoff.com>
Message-Id: <20210705110842.14088-2-c.koehne@beckhoff.com>

OvmfPkg/Bhyve/BhyveX64.dsc
OvmfPkg/Bhyve/PlatformPei/Platform.c

index bb79d99dab4e42147b78007a624e664a76ea76e0..006831449518b3c74d0319cbe806a5baefeaaeeb 100644 (file)
   gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId|0\r
   gUefiOvmfPkgTokenSpaceGuid.PcdPciIoBase|0x0\r
   gUefiOvmfPkgTokenSpaceGuid.PcdPciIoSize|0x0\r
-  gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0x0\r
-  gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x0\r
+  gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0xC0000000\r
+  gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x20000000\r
   gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Base|0x0\r
   gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x800000000\r
 \r
index 3a414ffcb7382927ff428e5635dc0917a5f0d11e..d980e3fcb06867fa7853d5bdadbdbd2b50003061 100644 (file)
@@ -191,7 +191,9 @@ MemMapInitialization (
       ASSERT (PciExBarBase <= MAX_UINT32 - SIZE_256MB);\r
       PciBase = (UINT32)(PciExBarBase + SIZE_256MB);\r
     } else {\r
-      PciBase = (TopOfLowRam < BASE_2GB) ? BASE_2GB : TopOfLowRam;\r
+      PciBase = PcdGet64 (PcdPciMmio32Base);\r
+      if (PciBase == 0)\r
+        PciBase = (TopOfLowRam < BASE_2GB) ? BASE_2GB : TopOfLowRam;\r
     }\r
 \r
     //\r