diff options
author | Laszlo Ersek <lersek@redhat.com> | 2016-08-18 11:51:33 +0200 |
---|---|---|
committer | Laszlo Ersek <lersek@redhat.com> | 2016-09-01 22:56:04 +0200 |
commit | 3ef3209d3028b77af9f56f183370e7b67cd7c849 (patch) | |
tree | 55825a2c6a2fcaec84c98709add38ee2033dd055 | |
parent | 8731debefd1f0750cd033ce88a83f1d1dce9df3c (diff) | |
download | edk2-platforms-3ef3209d3028b77af9f56f183370e7b67cd7c849.tar.xz |
ArmVirtPkg: remove PcdKludgeMapPciMmioAsCached
In ARM/AARCH64 guests that run on KVM, we can now use virtio-gpu-pci, so
PcdKludgeMapPciMmioAsCached is no longer necessary. Standard VGA continues
to work on TCG without the kludge.
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Ref: https://tianocore.acgmultimedia.com/show_bug.cgi?id=66
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
-rw-r--r-- | ArmVirtPkg/ArmVirtPkg.dec | 24 | ||||
-rw-r--r-- | ArmVirtPkg/ArmVirtQemu.dsc | 3 | ||||
-rw-r--r-- | ArmVirtPkg/ArmVirtQemuKernel.dsc | 3 | ||||
-rw-r--r-- | ArmVirtPkg/PciHostBridgeDxe/PciHostBridge.c | 3 | ||||
-rw-r--r-- | ArmVirtPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf | 1 |
5 files changed, 1 insertions, 33 deletions
diff --git a/ArmVirtPkg/ArmVirtPkg.dec b/ArmVirtPkg/ArmVirtPkg.dec index 9f98f28f01..a5ec421664 100644 --- a/ArmVirtPkg/ArmVirtPkg.dec +++ b/ArmVirtPkg/ArmVirtPkg.dec @@ -61,30 +61,6 @@ [PcdsFeatureFlag]
#
- # "Map PCI MMIO as Cached"
- #
- # Due to the way Stage1 and Stage2 mappings are combined on Aarch64, and
- # because KVM -- for the time being -- does not try to interfere with the
- # Stage1 mappings, we must not set EFI_MEMORY_UC for emulated PCI MMIO
- # regions.
- #
- # EFI_MEMORY_UC is mapped to Device-nGnRnE, and that Stage1 attribute would
- # direct guest writes to host DRAM immediately, bypassing the cache
- # regardless of Stage2 attributes. However, QEMU's reads of the same range
- # can easily be served from the (stale) CPU cache.
- #
- # Setting this PCD to TRUE will use EFI_MEMORY_WB for mapping PCI MMIO
- # regions, which ensures that guest writes to such regions go through the CPU
- # cache. Strictly speaking this is wrong, but it is needed as a temporary
- # workaround for emulated PCI devices. Setting the PCD to FALSE results in
- # the theoretically correct EFI_MEMORY_UC mapping, and should be the long
- # term choice, especially with assigned devices.
- #
- # The default is to turn off the kludge; DSC's can selectively enable it.
- #
- gArmVirtTokenSpaceGuid.PcdKludgeMapPciMmioAsCached|FALSE|BOOLEAN|0x00000006
-
- #
# Pure ACPI boot
#
# Inhibit installation of the FDT as a configuration table if this feature
diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc index 2d2c653c9e..f8b6140262 100644 --- a/ArmVirtPkg/ArmVirtQemu.dsc +++ b/ArmVirtPkg/ArmVirtQemu.dsc @@ -100,9 +100,6 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
- # Activate KVM workaround for now.
- gArmVirtTokenSpaceGuid.PcdKludgeMapPciMmioAsCached|TRUE
-
!if $(PURE_ACPI_BOOT_ENABLE) == TRUE
gArmVirtTokenSpaceGuid.PcdPureAcpiBoot|TRUE
!endif
diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc index ba262ac919..ea722ddf8e 100644 --- a/ArmVirtPkg/ArmVirtQemuKernel.dsc +++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc @@ -101,9 +101,6 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
- # Activate KVM workaround for now.
- gArmVirtTokenSpaceGuid.PcdKludgeMapPciMmioAsCached|TRUE
-
[PcdsFixedAtBuild.common]
gArmPlatformTokenSpaceGuid.PcdCoreCount|1
!if $(ARCH) == AARCH64
diff --git a/ArmVirtPkg/PciHostBridgeDxe/PciHostBridge.c b/ArmVirtPkg/PciHostBridgeDxe/PciHostBridge.c index 4b2b6a562a..5063782bb3 100644 --- a/ArmVirtPkg/PciHostBridgeDxe/PciHostBridge.c +++ b/ArmVirtPkg/PciHostBridgeDxe/PciHostBridge.c @@ -365,8 +365,7 @@ InitializePciHostBridge ( );
ASSERT_EFI_ERROR (Status);
- MmioAttributes = FeaturePcdGet (PcdKludgeMapPciMmioAsCached) ?
- EFI_MEMORY_WB : EFI_MEMORY_UC;
+ MmioAttributes = EFI_MEMORY_UC;
Status = gDS->AddMemorySpace (
EfiGcdMemoryTypeMemoryMappedIo,
diff --git a/ArmVirtPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf b/ArmVirtPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf index 41e134b24b..8c75eda3de 100644 --- a/ArmVirtPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf +++ b/ArmVirtPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf @@ -56,7 +56,6 @@ gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress
[FeaturePcd]
- gArmVirtTokenSpaceGuid.PcdKludgeMapPciMmioAsCached
gArmVirtTokenSpaceGuid.PcdPureAcpiBoot
[depex]
|