From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
To: Laszlo Ersek <lersek@redhat.com>
Cc: edk2-devel-01 <edk2-devel@ml01.01.org>,
Jordan Justen <jordan.l.justen@intel.com>
Subject: Re: [PATCH 11/11] ArmVirtPkg: remove PcdKludgeMapPciMmioAsCached
Date: Fri, 19 Aug 2016 15:16:46 +0200 [thread overview]
Message-ID: <CAKv+Gu8TwonT3hg-ZWZP8dmxiJh1SVv17Qo3uoGLLSNu7Aaxkg@mail.gmail.com> (raw)
In-Reply-To: <20160819124932.29711-12-lersek@redhat.com>
On 19 August 2016 at 14:49, Laszlo Ersek <lersek@redhat.com> wrote:
> 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>
> ---
> ArmVirtPkg/ArmVirtPkg.dec | 24 --------------------
> ArmVirtPkg/ArmVirtQemu.dsc | 3 ---
> ArmVirtPkg/ArmVirtQemuKernel.dsc | 3 ---
> ArmVirtPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf | 1 -
> ArmVirtPkg/PciHostBridgeDxe/PciHostBridge.c | 3 +--
> 5 files changed, 1 insertion(+), 33 deletions(-)
>
> diff --git a/ArmVirtPkg/ArmVirtPkg.dec b/ArmVirtPkg/ArmVirtPkg.dec
> index 9f98f28f01e1..a5ec42166445 100644
> --- a/ArmVirtPkg/ArmVirtPkg.dec
> +++ b/ArmVirtPkg/ArmVirtPkg.dec
> @@ -58,36 +58,12 @@ [PcdsFixedAtBuild, PcdsPatchableInModule]
> # EFI_VT_100_GUID.
>
> #
>
> gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x65, 0x60, 0xA6, 0xDF, 0x19, 0xB4, 0xD3, 0x11, 0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D}|VOID*|0x00000007
>
>
>
> [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
>
> # PCD is TRUE. Otherwise, the OS is presented with both a DT and an ACPI
>
> # description of the platform, and it is up to the OS to choose.
>
> #
>
> diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
> index 2eb2780a1fca..1d459756f61b 100644
> --- a/ArmVirtPkg/ArmVirtQemu.dsc
> +++ b/ArmVirtPkg/ArmVirtQemu.dsc
> @@ -97,15 +97,12 @@ [PcdsFeatureFlag.common]
>
>
> ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.
>
> # It could be set FALSE to save size.
>
> gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
>
> gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
>
>
>
> - # Activate KVM workaround for now.
>
> - gArmVirtTokenSpaceGuid.PcdKludgeMapPciMmioAsCached|TRUE
>
> -
>
> !if $(PURE_ACPI_BOOT_ENABLE) == TRUE
>
> gArmVirtTokenSpaceGuid.PcdPureAcpiBoot|TRUE
>
> !endif
>
>
>
> [PcdsFixedAtBuild.common]
>
> gArmPlatformTokenSpaceGuid.PcdCoreCount|1
>
> diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
> index d9e62c78d28e..99d2feba202b 100644
> --- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
> +++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
> @@ -98,15 +98,12 @@ [PcdsFeatureFlag.common]
>
>
> ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.
>
> # It could be set FALSE to save size.
>
> gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
>
> gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
>
>
>
> - # Activate KVM workaround for now.
>
> - gArmVirtTokenSpaceGuid.PcdKludgeMapPciMmioAsCached|TRUE
>
> -
>
> [PcdsFixedAtBuild.common]
>
> gArmPlatformTokenSpaceGuid.PcdCoreCount|1
>
> !if $(ARCH) == AARCH64
>
> gArmTokenSpaceGuid.PcdVFPEnabled|1
>
> !endif
>
>
>
> diff --git a/ArmVirtPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf b/ArmVirtPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf
> index 41e134b24b0e..8c75eda3deb5 100644
> --- a/ArmVirtPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf
> +++ b/ArmVirtPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf
> @@ -53,13 +53,12 @@ [Protocols]
> gFdtClientProtocolGuid ## CONSUMES
>
>
>
> [Pcd]
>
> gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress
>
>
>
> [FeaturePcd]
>
> - gArmVirtTokenSpaceGuid.PcdKludgeMapPciMmioAsCached
>
> gArmVirtTokenSpaceGuid.PcdPureAcpiBoot
>
>
>
> [depex]
>
> gEfiMetronomeArchProtocolGuid AND
>
> gEfiCpuArchProtocolGuid AND
>
> gFdtClientProtocolGuid
>
> diff --git a/ArmVirtPkg/PciHostBridgeDxe/PciHostBridge.c b/ArmVirtPkg/PciHostBridgeDxe/PciHostBridge.c
> index 4b2b6a562a3f..5063782bb392 100644
> --- a/ArmVirtPkg/PciHostBridgeDxe/PciHostBridge.c
> +++ b/ArmVirtPkg/PciHostBridgeDxe/PciHostBridge.c
> @@ -362,14 +362,13 @@ InitializePciHostBridge (
> EfiGcdIoTypeIo,
>
> IoBase,
>
> IoSize
>
> );
>
> ASSERT_EFI_ERROR (Status);
>
>
>
> - MmioAttributes = FeaturePcdGet (PcdKludgeMapPciMmioAsCached) ?
>
> - EFI_MEMORY_WB : EFI_MEMORY_UC;
>
> + MmioAttributes = EFI_MEMORY_UC;
>
>
>
> Status = gDS->AddMemorySpace (
>
> EfiGcdMemoryTypeMemoryMappedIo,
>
> MmioBase,
>
> MmioSize,
>
> MmioAttributes
>
> --
> 2.9.2
>
next prev parent reply other threads:[~2016-08-19 13:16 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-19 12:49 [PATCH 00/11] OvmfPkg, ArmVirtPkg: GOP driver for the VirtIo GPU (virtio-gpu-pci) Laszlo Ersek
2016-08-19 12:49 ` [PATCH 01/11] OvmfPkg/QemuVideoDxe: don't incorrectly bind virtio-gpu-pci Laszlo Ersek
2016-08-19 12:49 ` [PATCH 02/11] OvmfPkg/Virtio10Dxe: don't bind virtio-vga Laszlo Ersek
2016-08-19 12:49 ` [PATCH 03/11] OvmfPkg/PlatformBootManagerLib: relax device class requirement for ConOut Laszlo Ersek
2016-08-19 12:49 ` [PATCH 04/11] OvmfPkg/IndustryStandard: add type definitions for the virtio GPU device Laszlo Ersek
2016-08-19 12:49 ` [PATCH 05/11] OvmfPkg/VirtioGpuDxe: introduce with Component Name 2 and Driver Binding Laszlo Ersek
2016-08-19 12:49 ` [PATCH 06/11] OvmfPkg: include VirtioGpuDxe in the platform DSC/FDF files Laszlo Ersek
2016-08-19 12:49 ` [PATCH 07/11] ArmVirtPkg/ArmVirtQemu: " Laszlo Ersek
2016-08-19 13:14 ` Ard Biesheuvel
2016-08-19 12:49 ` [PATCH 08/11] OvmfPkg/VirtioGpuDxe: initialize and tear down VirtIo GPU device Laszlo Ersek
2016-08-19 12:49 ` [PATCH 09/11] OvmfPkg/VirtioGpuDxe: provide functions for sending VirtIo GPU commands Laszlo Ersek
2016-08-19 12:49 ` [PATCH 10/11] OvmfPkg/VirtioGpuDxe: implement EFI_GRAPHICS_OUTPUT_PROTOCOL Laszlo Ersek
2016-08-19 12:49 ` [PATCH 11/11] ArmVirtPkg: remove PcdKludgeMapPciMmioAsCached Laszlo Ersek
2016-08-19 13:16 ` Ard Biesheuvel [this message]
2016-08-19 13:06 ` [PATCH 00/11] OvmfPkg, ArmVirtPkg: GOP driver for the VirtIo GPU (virtio-gpu-pci) Ard Biesheuvel
2016-08-19 14:25 ` Laszlo Ersek
2016-08-31 20:43 ` Jordan Justen
2016-09-01 7:44 ` Ard Biesheuvel
2016-09-01 16:48 ` Laszlo Ersek
2016-09-01 16:29 ` Laszlo Ersek
2016-09-01 18:03 ` Jordan Justen
2016-09-01 18:46 ` Laszlo Ersek
2016-09-01 19:52 ` Jordan Justen
2016-09-01 20:23 ` Ard Biesheuvel
2016-09-01 20:26 ` Ard Biesheuvel
2016-09-01 20:52 ` Jordan Justen
2016-09-01 20:44 ` Laszlo Ersek
2016-09-05 14:17 ` Gerd Hoffmann
2016-08-30 15:07 ` Laszlo Ersek
2016-09-01 20:32 ` Jordan Justen
2016-09-01 21:07 ` Laszlo Ersek
2016-09-01 22:02 ` Laszlo Ersek
[not found] ` <57CD6463.90903@suse.de>
2016-09-05 12:56 ` Laszlo Ersek
[not found] ` <57CD6C25.7000406@suse.de>
2016-09-05 13:17 ` Laszlo Ersek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAKv+Gu8TwonT3hg-ZWZP8dmxiJh1SVv17Qo3uoGLLSNu7Aaxkg@mail.gmail.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox