One of the reasons for introducing virtio-gpu support to OvmfPkg and ArmVirtpkg was the fact that under KVM virtualization on ARM, the legacy VGA cannot be used reliably. This is due to an implementation detail of QEMU+KVM, which remaps cached host memory into the guest address space as a framebuffer behind a PCI BAR. Given that the purpose of a memory mapped framebuffer is its side effects, such BARs should never be mapped cacheable in the guest, and the mismatched attributes between host and guest result in a loss of coherency, visible as corruption in the framebuffer image. This issue does not occur under TCG emulation, nor did we expect it to actually bring down the guest under KVM, and so it was deemed harmless to keep support for the VGA device as well. However, as it turns out, the fact that the framebuffer BAR is mapped using device semantics by default may result in unalignment faults when we use the ordinary string copy routines on the contents. In theory, we could work around this by remapping the BAR as write combining, but it appears the generic PCI bus driver does not actually implement this. So let's remove the QemuVideoDxe driver altogether. This may result in loss of functionality for use cases that rely on the framebuffer to be directly addressable (such as EFIFB), but given that this never worked reliably under KVM in the first place, let's not let that stop us from dropping support for it. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
381 lines
14 KiB
Plaintext
381 lines
14 KiB
Plaintext
#
|
|
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
|
# Copyright (c) 2014, Linaro Limited. All rights reserved.
|
|
# Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.
|
|
#
|
|
# This program and the accompanying materials
|
|
# are licensed and made available under the terms and conditions of the BSD License
|
|
# which accompanies this distribution. The full text of the license may be found at
|
|
# http://opensource.org/licenses/bsd-license.php
|
|
#
|
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
#
|
|
#
|
|
|
|
################################################################################
|
|
#
|
|
# Defines Section - statements that will be processed to create a Makefile.
|
|
#
|
|
################################################################################
|
|
[Defines]
|
|
PLATFORM_NAME = ArmVirtQemu
|
|
PLATFORM_GUID = 37d7e986-f7e9-45c2-8067-e371421a626c
|
|
PLATFORM_VERSION = 0.1
|
|
DSC_SPECIFICATION = 0x00010005
|
|
OUTPUT_DIRECTORY = Build/ArmVirtQemu-$(ARCH)
|
|
SUPPORTED_ARCHITECTURES = AARCH64|ARM
|
|
BUILD_TARGETS = DEBUG|RELEASE
|
|
SKUID_IDENTIFIER = DEFAULT
|
|
FLASH_DEFINITION = ArmVirtPkg/ArmVirtQemu.fdf
|
|
|
|
#
|
|
# Defines for default states. These can be changed on the command line.
|
|
# -D FLAG=VALUE
|
|
#
|
|
DEFINE SECURE_BOOT_ENABLE = FALSE
|
|
|
|
!include ArmVirtPkg/ArmVirt.dsc.inc
|
|
|
|
[LibraryClasses.common]
|
|
ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
|
|
ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
|
|
|
|
# Virtio Support
|
|
VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
|
|
VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
|
|
QemuFwCfgLib|ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf
|
|
QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3LibNull.inf
|
|
|
|
ArmPlatformLib|ArmVirtPkg/Library/ArmVirtPlatformLib/ArmVirtPlatformLib.inf
|
|
ArmPlatformSysConfigLib|ArmPlatformPkg/Library/ArmPlatformSysConfigLibNull/ArmPlatformSysConfigLibNull.inf
|
|
|
|
TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
|
|
NorFlashPlatformLib|ArmVirtPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf
|
|
|
|
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
|
BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
|
|
PlatformBootManagerLib|ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
|
|
CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
|
|
QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf
|
|
FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
|
|
PciPcdProducerLib|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
|
PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
|
|
PciHostBridgeLib|ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf
|
|
|
|
[LibraryClasses.common.UEFI_DRIVER]
|
|
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
|
|
|
[BuildOptions]
|
|
RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmVirtPkg/Include
|
|
GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmVirtPkg/Include
|
|
*_*_AARCH64_PLATFORM_FLAGS == -I$(WORKSPACE)/ArmVirtPkg/Include
|
|
|
|
|
|
################################################################################
|
|
#
|
|
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
|
#
|
|
################################################################################
|
|
|
|
[PcdsFeatureFlag.common]
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderPciTranslation|TRUE
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderMmioTranslation|TRUE
|
|
|
|
## 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
|
|
|
|
[PcdsFixedAtBuild.common]
|
|
gArmPlatformTokenSpaceGuid.PcdCoreCount|1
|
|
!if $(ARCH) == AARCH64
|
|
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
|
!endif
|
|
|
|
gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x4007c000
|
|
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800
|
|
|
|
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
|
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
|
|
|
## Trustzone enable (to make the transition from EL3 to EL2 in ArmPlatformPkg/Sec)
|
|
gArmTokenSpaceGuid.PcdTrustzoneSupport|FALSE
|
|
|
|
#
|
|
# ARM PrimeCell
|
|
#
|
|
|
|
## PL011 - Serial Terminal
|
|
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|38400
|
|
|
|
## Default Terminal Type
|
|
## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
|
|
!if $(TTY_TERMINAL) == TRUE
|
|
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
|
|
!else
|
|
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|1
|
|
!endif
|
|
|
|
#
|
|
# ARM Virtual Architectural Timer -- fetch frequency from QEMU (TCG) or KVM
|
|
#
|
|
gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|0
|
|
|
|
# System Memory Base -- fixed at 0x4000_0000
|
|
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x40000000
|
|
|
|
# initial location of the device tree blob passed by QEMU -- base of DRAM
|
|
gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x40000000
|
|
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
|
|
|
|
#
|
|
# The maximum physical I/O addressability of the processor, set with
|
|
# BuildCpuHob().
|
|
#
|
|
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|16
|
|
|
|
[PcdsFixedAtBuild.AARCH64]
|
|
# KVM limits it IPA space to 40 bits (1 TB), so there is no need to
|
|
# support anything bigger, even if the host hardware does
|
|
gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|40
|
|
|
|
# Clearing BIT0 in this PCD prevents installing a 32-bit SMBIOS entry point,
|
|
# if the entry point version is >= 3.0. AARCH64 OSes cannot assume the
|
|
# presence of the 32-bit entry point anyway (because many AARCH64 systems
|
|
# don't have 32-bit addressable physical RAM), and the additional allocations
|
|
# below 4 GB needlessly fragment the memory map. So expose the 64-bit entry
|
|
# point only, for entry point versions >= 3.0.
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosEntryPointProvideMethod|0x2
|
|
|
|
# ACPI predates the AARCH64 architecture by 5 versions, so
|
|
# we only target OSes that support ACPI v5.0 or later
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiExposedTableVersions|0x20
|
|
|
|
[PcdsDynamicDefault.common]
|
|
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3
|
|
|
|
## If TRUE, OvmfPkg/AcpiPlatformDxe will not wait for PCI
|
|
# enumeration to complete before installing ACPI tables.
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE
|
|
|
|
# System Memory Size -- 1 MB initially, actual size will be fetched from DT
|
|
gArmTokenSpaceGuid.PcdSystemMemorySize|0x00100000
|
|
|
|
gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum|0x0
|
|
gArmTokenSpaceGuid.PcdArmArchTimerIntrNum|0x0
|
|
gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum|0x0
|
|
gArmTokenSpaceGuid.PcdArmArchTimerHypIntrNum|0x0
|
|
|
|
#
|
|
# ARM General Interrupt Controller
|
|
#
|
|
gArmTokenSpaceGuid.PcdGicDistributorBase|0x0
|
|
gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x0
|
|
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x0
|
|
|
|
## PL031 RealTimeClock
|
|
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0
|
|
|
|
# set PcdPciExpressBaseAddress to MAX_UINT64, which signifies that this
|
|
# PCD and PcdPciDisableBusEnumeration above have not been assigned yet
|
|
gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xFFFFFFFFFFFFFFFF
|
|
|
|
gArmTokenSpaceGuid.PcdPciIoTranslation|0x0
|
|
|
|
#
|
|
# Set video resolution for boot options and for text setup.
|
|
# PlatformDxe can set the former at runtime.
|
|
#
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|640
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480
|
|
|
|
#
|
|
# SMBIOS entry point version
|
|
#
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0300
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|FALSE
|
|
|
|
[PcdsDynamicHii]
|
|
gArmVirtTokenSpaceGuid.PcdForceNoAcpi|L"ForceNoAcpi"|gArmVirtVariableGuid|0x0|FALSE|NV,BS
|
|
|
|
################################################################################
|
|
#
|
|
# Components Section - list of all EDK II Modules needed by this Platform
|
|
#
|
|
################################################################################
|
|
[Components.common]
|
|
#
|
|
# PEI Phase modules
|
|
#
|
|
ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
|
|
MdeModulePkg/Core/Pei/PeiMain.inf
|
|
MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
|
|
<LibraryClasses>
|
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
|
}
|
|
ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
|
|
MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
|
|
|
MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
|
|
<LibraryClasses>
|
|
NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
|
}
|
|
|
|
#
|
|
# DXE
|
|
#
|
|
MdeModulePkg/Core/Dxe/DxeMain.inf {
|
|
<LibraryClasses>
|
|
NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
|
|
}
|
|
MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
|
|
<LibraryClasses>
|
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
|
}
|
|
|
|
#
|
|
# Architectural Protocols
|
|
#
|
|
ArmPkg/Drivers/CpuDxe/CpuDxe.inf
|
|
MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
|
MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
|
|
<LibraryClasses>
|
|
NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
|
|
}
|
|
!if $(SECURE_BOOT_ENABLE) == TRUE
|
|
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf {
|
|
<LibraryClasses>
|
|
NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf
|
|
}
|
|
SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
|
|
!else
|
|
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
|
!endif
|
|
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
|
MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
|
|
MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
|
MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
|
|
EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf {
|
|
<LibraryClasses>
|
|
NULL|ArmVirtPkg/Library/ArmVirtPL031FdtClientLib/ArmVirtPL031FdtClientLib.inf
|
|
}
|
|
EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
|
|
|
MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
|
|
MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
|
|
MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
|
|
MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
|
MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
|
|
|
|
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
|
|
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
|
ArmPkg/Drivers/TimerDxe/TimerDxe.inf {
|
|
<LibraryClasses>
|
|
NULL|ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.inf
|
|
}
|
|
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
|
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
|
|
|
#
|
|
# Platform Driver
|
|
#
|
|
ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
|
|
ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
|
|
ArmVirtPkg/HighMemDxe/HighMemDxe.inf
|
|
OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
|
|
OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
|
|
OvmfPkg/VirtioNetDxe/VirtioNet.inf
|
|
OvmfPkg/VirtioRngDxe/VirtioRng.inf
|
|
|
|
#
|
|
# FAT filesystem + GPT/MBR partitioning
|
|
#
|
|
MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
|
|
MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
|
|
MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
|
FatPkg/EnhancedFatDxe/Fat.inf
|
|
|
|
#
|
|
# Bds
|
|
#
|
|
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
|
MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
|
MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
|
|
MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
|
|
MdeModulePkg/Logo/LogoDxe.inf
|
|
MdeModulePkg/Application/UiApp/UiApp.inf {
|
|
<LibraryClasses>
|
|
NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
|
|
NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
|
|
NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
|
|
}
|
|
|
|
#
|
|
# SCSI Bus and Disk Driver
|
|
#
|
|
MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
|
|
MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
|
|
|
|
#
|
|
# SMBIOS Support
|
|
#
|
|
MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf {
|
|
<LibraryClasses>
|
|
NULL|OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf
|
|
}
|
|
OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
|
|
|
|
#
|
|
# PCI support
|
|
#
|
|
ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf {
|
|
<LibraryClasses>
|
|
NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
|
}
|
|
MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf
|
|
MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf {
|
|
<LibraryClasses>
|
|
NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
|
}
|
|
OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf
|
|
OvmfPkg/Virtio10Dxe/Virtio10.inf
|
|
|
|
#
|
|
# Video support
|
|
#
|
|
OvmfPkg/VirtioGpuDxe/VirtioGpu.inf
|
|
OvmfPkg/PlatformDxe/Platform.inf
|
|
|
|
#
|
|
# USB Support
|
|
#
|
|
MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
|
|
MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
|
|
MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
|
|
MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
|
|
MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
|
|
|
|
#
|
|
# ACPI Support
|
|
#
|
|
ArmVirtPkg/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf
|
|
[Components.AARCH64]
|
|
MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
|
|
OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpiPlatformDxe.inf {
|
|
<LibraryClasses>
|
|
NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
|
}
|