diff options
author | Laszlo Ersek <lersek@redhat.com> | 2015-02-23 16:03:42 +0000 |
---|---|---|
committer | lersek <lersek@Edk2> | 2015-02-23 16:03:42 +0000 |
commit | f9a8be423cdd5ae0a4bf489189aac500cfe79d57 (patch) | |
tree | ca33a224a0cebf06c591883cb92dc3d7b0bb8663 /ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc | |
parent | 807c26d306fc3d5f8bb3330f280a0f1f00ad964d (diff) | |
download | edk2-platforms-f9a8be423cdd5ae0a4bf489189aac500cfe79d57.tar.xz |
ArmVirtualizationPkg/PciHostBridgeDxe: MMIO aperture must not be uncached
Quite non-intuitively, we must allow guest-side writes to emulated PCI
MMIO regions to go through the CPU cache, otherwise QEMU, whose accesses
always go through the cache, may see stale data in the region.
This change makes no difference for QEMU/TCG, but it is important for
QEMU/KVM, at the moment.
Because gDS->SetMemorySpaceAttributes() is ultimately implemented by
EFI_CPU_ARCH_PROTOCOL.SetMemoryAttributes() -- see
"MdeModulePkg/Core/Dxe/Gcd/Gcd.c" and "ArmPkg/Drivers/CpuDxe/" -- we add
the CPU architectural protocol to the module's DepEx.
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: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16904 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc')
-rw-r--r-- | ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc b/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc index 19776100a5..66fe9798c6 100644 --- a/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc +++ b/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc @@ -86,6 +86,9 @@ # It could be set FALSE to save size.
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|FALSE
+ # Activate KVM workaround for now.
+ gArmVirtualizationTokenSpaceGuid.PcdKludgeMapPciMmioAsCached|TRUE
+
[PcdsFixedAtBuild.common]
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
|