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>
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
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