OvmfPkg: don't assign PCI BARs above 4GiB when CSM enabled

Mostly, this is only necessary for devices that the CSM might have
native support for, such as VirtIO and NVMe; PciBusDxe will already
degrade devices to 32-bit if they have an OpROM.

However, there doesn't seem to be a generic way of requesting PciBusDxe
to downgrade specific devices.

There's IncompatiblePciDeviceSupportProtocol but that doesn't provide
the PCI class information or a handle to the device itself, so there's
no simple way to just match on all NVMe devices, for example.

Just leave gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size set to zero for
CSM builds, until/unless that can be fixed.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20190626113742.819933-5-dwmw2@infradead.org>
This commit is contained in:
David Woodhouse 2019-06-26 12:37:42 +01:00 committed by Laszlo Ersek
parent 4b04d9d736
commit c7341877f6
2 changed files with 8 additions and 0 deletions

View File

@ -543,7 +543,11 @@
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0x0
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x0
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Base|0x0
!ifdef $(CSM_ENABLE)
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x0
!else
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x800000000
!endif
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0

View File

@ -542,7 +542,11 @@
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0x0
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x0
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Base|0x0
!ifdef $(CSM_ENABLE)
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x0
!else
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x800000000
!endif
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0