2016-02-05 14:57:57 +01:00
|
|
|
#
|
|
|
|
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
|
|
|
# Copyright (c) 2014, Linaro Limited. All rights reserved.
|
2016-02-24 13:15:52 +01:00
|
|
|
# Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.
|
2016-02-05 14:57:57 +01:00
|
|
|
#
|
|
|
|
# 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/ArmVirtQemuKernel-$(ARCH)
|
|
|
|
SUPPORTED_ARCHITECTURES = AARCH64|ARM
|
2017-12-06 12:35:15 +01:00
|
|
|
BUILD_TARGETS = DEBUG|RELEASE|NOOPT
|
2016-02-05 14:57:57 +01:00
|
|
|
SKUID_IDENTIFIER = DEFAULT
|
|
|
|
FLASH_DEFINITION = ArmVirtPkg/ArmVirtQemuKernel.fdf
|
|
|
|
|
|
|
|
#
|
|
|
|
# Defines for default states. These can be changed on the command line.
|
|
|
|
# -D FLAG=VALUE
|
|
|
|
#
|
|
|
|
DEFINE SECURE_BOOT_ENABLE = FALSE
|
2018-07-13 01:41:12 +02:00
|
|
|
DEFINE NETWORK_IP6_ENABLE = FALSE
|
2017-09-11 13:18:05 +02:00
|
|
|
DEFINE HTTP_BOOT_ENABLE = FALSE
|
2016-02-05 14:57:57 +01:00
|
|
|
|
|
|
|
!include ArmVirtPkg/ArmVirt.dsc.inc
|
|
|
|
|
|
|
|
[LibraryClasses.common]
|
2016-09-05 12:48:17 +02:00
|
|
|
ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
|
2016-06-16 11:51:10 +02:00
|
|
|
ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
|
|
|
|
|
2016-02-05 14:57:57 +01:00
|
|
|
# Virtio Support
|
|
|
|
VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
|
|
|
|
VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
|
|
|
|
QemuFwCfgLib|ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf
|
2017-02-22 02:17:00 +01:00
|
|
|
QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3LibNull.inf
|
2016-02-05 14:57:57 +01:00
|
|
|
|
2017-11-17 15:00:03 +01:00
|
|
|
ArmVirtMemInfoLib|ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf
|
2016-02-05 14:57:57 +01:00
|
|
|
|
|
|
|
TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
|
|
|
|
NorFlashPlatformLib|ArmVirtPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf
|
|
|
|
|
|
|
|
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
2016-05-25 13:08:15 +02:00
|
|
|
BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
|
ArmVirtPkg/ArmVirtQemu: use MdeModulePkg/BDS
Based on OvmfPkg commit 79c098b6d25d.
Unlike in OVMF, no USE_OLD_BDS fallback is introduced; I think that
ArmVirtPkg is less widely used by non-developers than OvmfPkg.
ArmVirtXen is not modified, as it uses PlatformIntelBdsLib from
ArmPlatformPkg.
About this patch:
- DxeServicesLib and SortLib are resolved generally (they have broad
client module type lists).
- ReportStatusCodeLib is resolved for UEFI_APPLICATION modules.
- GenericBdsLib and PlatformBdsLib are replaced with UefiBootManagerLib
and PlatformBootManagerLib, and resolved from under MdeModulePkg and
ArmVirtPkg, respectively.
- QemuBootOrderLib is pointed to the QemuNewBootOrderLib instance.
- FileExplorerLib no longer depends on SECURE_BOOT_ENABLE, it is nedeed by
BootMaintenanceManagerUiLib, which we link into UiApp.
- PcdBootManagerMenuFile carries the FILE_GUID of
"MdeModulePkg/Application/UiApp/UiApp.inf". The default PCD value from
"MdeModulePkg/MdeModulePkg.dec" points to
"MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf",
which, according to the commit that introduced it (a382952f8255), only
'provides a very simple UI showing all the boot options recorded by
"BootOrder" and user can select any of them to boot'.
- Include the new core BDS driver, and include the boot manager
application, with the usual main menu entries.
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Fixes: https://github.com/tianocore/edk2/issues/83
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Ruiyu Ni <ruiyu.ni@Intel.com>
2016-05-05 19:12:09 +02:00
|
|
|
PlatformBootManagerLib|ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
|
2016-02-05 14:57:57 +01:00
|
|
|
CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
|
2018-06-13 09:29:36 +02:00
|
|
|
FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf
|
2016-05-17 19:30:24 +02:00
|
|
|
QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf
|
2016-02-24 13:15:52 +01:00
|
|
|
FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
|
2016-04-08 11:45:00 +02:00
|
|
|
PciPcdProducerLib|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
2016-08-21 18:53:34 +02:00
|
|
|
PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
|
|
|
|
PciHostBridgeLib|ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf
|
2016-02-05 14:57:57 +01:00
|
|
|
|
|
|
|
[LibraryClasses.common.UEFI_DRIVER]
|
|
|
|
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
|
|
|
|
ArmVirtPkg/PrePiUniCoreRelocatable CLANG38: work around build issues
The self-relocating PrePi module that is used by the ArmVirtQemuKernel
and ArmVirtXen targets runs the linker in PIE mode so that it emits
dynamic relocations into the final image in a way that permits the
module to relocate itself into place before calling into the C code.
When building these targets using the CLANG38 toolchain, we switch
from the BFD to the GOLD linker, which behaves a bit differently when
building PIE executables, and insists on emitting GOT indirected symbol
references throughout, which means a) that we end up with absolute
addresses (which need to be fixed up at load time) for no good reason,
and b) we have to add support for handling GOT entries to GenFw if we
want to convert them into PE/COFF.
So instead, let's emit a shared library. Since the ELF image only serves
as the input to GenFw, this does not lead to any loss of functionality,
although it does require the -Bsymbolic linker option to be added to
ensure that no symbol based dynamic relocations are emitted (which
would, e.g., permit lazy binding for shared libraries). So for all
other toolchains, the linker option changes are a no-op.
Then, we have to convince CLANG38/GOLD that there is no need to refer
to symbols via a GOT entry. This is done by forcing hidden visibility
for all symbols in all components that make up the PrePi SEC module:
this informs the linker that a symbol is never exported or preempted,
making it safe to refer to it directly from anywhere in the code,
rather than indirectly via a GOT entry.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Laszlo Ersek <lersek@redhat.com>
2018-12-11 13:01:10 +01:00
|
|
|
[BuildOptions.common.EDKII.SEC, BuildOptions.common.EDKII.BASE]
|
|
|
|
#
|
|
|
|
# CLANG38 with LTO support enabled uses the GNU GOLD linker, which insists
|
|
|
|
# on emitting GOT based symbol references when running in shared mode, unless
|
|
|
|
# we override visibility to 'hidden' in all modules that make up the PrePi
|
|
|
|
# build.
|
|
|
|
#
|
|
|
|
GCC:*_CLANG38_*_CC_FLAGS = -include $(WORKSPACE)/ArmVirtPkg/Include/Platform/Hidden.h
|
2016-02-05 14:57:57 +01:00
|
|
|
|
|
|
|
################################################################################
|
|
|
|
#
|
|
|
|
# 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
|
2016-05-10 20:16:12 +02:00
|
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000
|
|
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800
|
2016-02-05 14:57:57 +01:00
|
|
|
|
|
|
|
# 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
|
|
|
|
|
2017-09-11 13:18:05 +02:00
|
|
|
!if $(HTTP_BOOT_ENABLE) == TRUE
|
|
|
|
gEfiNetworkPkgTokenSpaceGuid.PcdAllowHttpConnections|TRUE
|
|
|
|
!endif
|
|
|
|
|
2018-12-11 10:21:25 +01:00
|
|
|
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
|
|
|
|
|
2016-02-05 14:57:57 +01:00
|
|
|
[PcdsPatchableInModule.common]
|
|
|
|
#
|
|
|
|
# This will be overridden in the code
|
|
|
|
#
|
|
|
|
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x0
|
|
|
|
gArmTokenSpaceGuid.PcdSystemMemorySize|0x0
|
|
|
|
|
|
|
|
#
|
|
|
|
# Define a default initial address for the device tree.
|
|
|
|
# Ignored if x0 != 0 at entry.
|
|
|
|
#
|
|
|
|
gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x40000000
|
|
|
|
|
|
|
|
gArmTokenSpaceGuid.PcdFdBaseAddress|0x0
|
|
|
|
gArmTokenSpaceGuid.PcdFvBaseAddress|0x0
|
|
|
|
|
|
|
|
[PcdsDynamicDefault.common]
|
2016-05-05 17:09:04 +02:00
|
|
|
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3
|
|
|
|
|
2016-02-05 14:57:57 +01:00
|
|
|
## If TRUE, OvmfPkg/AcpiPlatformDxe will not wait for PCI
|
|
|
|
# enumeration to complete before installing ACPI tables.
|
|
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2016-04-08 11:45:00 +02:00
|
|
|
# set PcdPciExpressBaseAddress to MAX_UINT64, which signifies that this
|
|
|
|
# PCD and PcdPciDisableBusEnumeration above have not been assigned yet
|
|
|
|
gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xFFFFFFFFFFFFFFFF
|
2016-02-05 14:57:57 +01:00
|
|
|
|
2016-08-21 18:53:34 +02:00
|
|
|
gArmTokenSpaceGuid.PcdPciIoTranslation|0x0
|
|
|
|
|
2016-02-05 14:57:57 +01:00
|
|
|
#
|
|
|
|
# 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
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
#
|
|
|
|
# Components Section - list of all EDK II Modules needed by this Platform
|
|
|
|
#
|
|
|
|
################################################################################
|
|
|
|
[Components.common]
|
|
|
|
#
|
|
|
|
# PEI Phase modules
|
|
|
|
#
|
|
|
|
ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf {
|
|
|
|
<LibraryClasses>
|
|
|
|
ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
|
|
|
|
LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
|
|
|
PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
|
|
|
|
HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
|
|
|
|
PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
|
|
|
|
MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
|
|
|
# DXE
|
|
|
|
#
|
|
|
|
MdeModulePkg/Core/Dxe/DxeMain.inf {
|
|
|
|
<LibraryClasses>
|
|
|
|
NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
|
ArmVirtPkg: use protocol-based DevicePathLib instance for most DXE modules
Port OvmfPkg commit 5c3481b0b611e to ArmVirtPkg. Some explanation should
be in order (because 5c3481b0b611e doesn't offer any):
- The UefiDevicePathLibDevicePathProtocol instance uses the Device Path
Utilities Protocol, produced by DevicePathDxe, for formatting and
parsing the textual device path representation. This allows for a
lighter weight lib instance that gets linked into several DXE modules.
In comparison, the more standalone UefiDevicePathLib instance includes
the formatting and parsing routines in every client module.
- The DXE core needs DevicePathLib before it dispatches DevicePathDxe, so
it needs to stick with the standalone instance.
- DevicePathDxe itself also needs the standalone instance, for
implementing the protocol.
- The DXE-phase PCD driver, "MdeModulePkg/Universal/PCD/Dxe/Pcd.inf",
depends on DevicePathLib via UefiLib and DxeServicesLib at the least; so
with this update, it inherits a dependency on the protocol. In reverse,
DevicePathDxe depends on the PCD Protocol, via PcdLib. The cycle is
broken by using BasePcdLibNull in DevicePathDxe. That restricts it to
FixedAtBuild, Patch, and FeatureFlag PCDs, but that's fine.
Example space savings (using ArmVirtQemu and the GCC5 toolchain):
- NOOPT: 187KB in FVMAIN, 12KB in FVMAIN_COMPACT
- DEBUG: 147KB in FVMAIN, 20KB in FVMAIN_COMPACT
- RELEASE: 123KB in FVMAIN, 17KB in FVMAIN_COMPACT
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=940
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2018-04-24 01:36:27 +02:00
|
|
|
DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
2016-02-05 14:57:57 +01:00
|
|
|
}
|
2016-04-06 13:42:28 +02:00
|
|
|
MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
|
|
|
|
<LibraryClasses>
|
|
|
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
|
|
|
}
|
2016-02-05 14:57:57 +01:00
|
|
|
|
|
|
|
#
|
|
|
|
# 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
|
2018-04-11 23:07:59 +02:00
|
|
|
NULL|EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
|
2017-11-14 11:13:03 +01:00
|
|
|
# don't use unaligned CopyMem () on the UEFI varstore NOR flash region
|
|
|
|
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
2016-02-05 14:57:57 +01:00
|
|
|
}
|
|
|
|
!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
|
2017-07-03 15:46:18 +02:00
|
|
|
MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
|
2016-04-08 11:45:04 +02:00
|
|
|
EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf {
|
|
|
|
<LibraryClasses>
|
|
|
|
NULL|ArmVirtPkg/Library/ArmVirtPL031FdtClientLib/ArmVirtPL031FdtClientLib.inf
|
|
|
|
}
|
2016-02-05 14:57:57 +01:00
|
|
|
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
|
2016-04-08 11:44:56 +02:00
|
|
|
ArmPkg/Drivers/TimerDxe/TimerDxe.inf {
|
|
|
|
<LibraryClasses>
|
|
|
|
NULL|ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.inf
|
|
|
|
}
|
2016-02-05 14:57:57 +01:00
|
|
|
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
|
|
|
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
|
|
|
|
|
|
|
#
|
|
|
|
# Platform Driver
|
|
|
|
#
|
2016-04-08 11:45:11 +02:00
|
|
|
ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
|
2016-04-08 11:44:50 +02:00
|
|
|
ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
|
2016-07-12 10:49:55 +02:00
|
|
|
ArmVirtPkg/HighMemDxe/HighMemDxe.inf
|
2016-02-05 14:57:57 +01:00
|
|
|
OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
|
|
|
|
OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
|
|
|
|
OvmfPkg/VirtioNetDxe/VirtioNet.inf
|
2016-07-12 10:49:55 +02:00
|
|
|
OvmfPkg/VirtioRngDxe/VirtioRng.inf
|
2016-02-05 14:57:57 +01:00
|
|
|
|
|
|
|
#
|
2017-09-08 14:41:49 +02:00
|
|
|
# FAT filesystem + GPT/MBR partitioning + UDF filesystem
|
2016-02-05 14:57:57 +01:00
|
|
|
#
|
|
|
|
MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
|
|
|
|
MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
|
|
|
|
MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
2016-04-06 09:05:59 +02:00
|
|
|
FatPkg/EnhancedFatDxe/Fat.inf
|
2017-09-08 14:41:49 +02:00
|
|
|
MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
|
2016-02-05 14:57:57 +01:00
|
|
|
|
|
|
|
#
|
|
|
|
# Bds
|
|
|
|
#
|
ArmVirtPkg: use protocol-based DevicePathLib instance for most DXE modules
Port OvmfPkg commit 5c3481b0b611e to ArmVirtPkg. Some explanation should
be in order (because 5c3481b0b611e doesn't offer any):
- The UefiDevicePathLibDevicePathProtocol instance uses the Device Path
Utilities Protocol, produced by DevicePathDxe, for formatting and
parsing the textual device path representation. This allows for a
lighter weight lib instance that gets linked into several DXE modules.
In comparison, the more standalone UefiDevicePathLib instance includes
the formatting and parsing routines in every client module.
- The DXE core needs DevicePathLib before it dispatches DevicePathDxe, so
it needs to stick with the standalone instance.
- DevicePathDxe itself also needs the standalone instance, for
implementing the protocol.
- The DXE-phase PCD driver, "MdeModulePkg/Universal/PCD/Dxe/Pcd.inf",
depends on DevicePathLib via UefiLib and DxeServicesLib at the least; so
with this update, it inherits a dependency on the protocol. In reverse,
DevicePathDxe depends on the PCD Protocol, via PcdLib. The cycle is
broken by using BasePcdLibNull in DevicePathDxe. That restricts it to
FixedAtBuild, Patch, and FeatureFlag PCDs, but that's fine.
Example space savings (using ArmVirtQemu and the GCC5 toolchain):
- NOOPT: 187KB in FVMAIN, 12KB in FVMAIN_COMPACT
- DEBUG: 147KB in FVMAIN, 20KB in FVMAIN_COMPACT
- RELEASE: 123KB in FVMAIN, 17KB in FVMAIN_COMPACT
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=940
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2018-04-24 01:36:27 +02:00
|
|
|
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf {
|
|
|
|
<LibraryClasses>
|
|
|
|
DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
|
|
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
|
|
|
}
|
2016-02-05 14:57:57 +01:00
|
|
|
MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
|
|
|
MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
2016-06-28 21:24:57 +02:00
|
|
|
MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
|
2016-09-26 08:49:40 +02:00
|
|
|
MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
|
|
|
|
MdeModulePkg/Logo/LogoDxe.inf
|
ArmVirtPkg/ArmVirtQemu: use MdeModulePkg/BDS
Based on OvmfPkg commit 79c098b6d25d.
Unlike in OVMF, no USE_OLD_BDS fallback is introduced; I think that
ArmVirtPkg is less widely used by non-developers than OvmfPkg.
ArmVirtXen is not modified, as it uses PlatformIntelBdsLib from
ArmPlatformPkg.
About this patch:
- DxeServicesLib and SortLib are resolved generally (they have broad
client module type lists).
- ReportStatusCodeLib is resolved for UEFI_APPLICATION modules.
- GenericBdsLib and PlatformBdsLib are replaced with UefiBootManagerLib
and PlatformBootManagerLib, and resolved from under MdeModulePkg and
ArmVirtPkg, respectively.
- QemuBootOrderLib is pointed to the QemuNewBootOrderLib instance.
- FileExplorerLib no longer depends on SECURE_BOOT_ENABLE, it is nedeed by
BootMaintenanceManagerUiLib, which we link into UiApp.
- PcdBootManagerMenuFile carries the FILE_GUID of
"MdeModulePkg/Application/UiApp/UiApp.inf". The default PCD value from
"MdeModulePkg/MdeModulePkg.dec" points to
"MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf",
which, according to the commit that introduced it (a382952f8255), only
'provides a very simple UI showing all the boot options recorded by
"BootOrder" and user can select any of them to boot'.
- Include the new core BDS driver, and include the boot manager
application, with the usual main menu entries.
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Fixes: https://github.com/tianocore/edk2/issues/83
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Ruiyu Ni <ruiyu.ni@Intel.com>
2016-05-05 19:12:09 +02:00
|
|
|
MdeModulePkg/Application/UiApp/UiApp.inf {
|
|
|
|
<LibraryClasses>
|
|
|
|
NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
|
|
|
|
NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
|
|
|
|
NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
|
|
|
|
}
|
2016-02-05 14:57:57 +01:00
|
|
|
|
2017-09-11 12:58:49 +02:00
|
|
|
#
|
|
|
|
# Networking stack
|
|
|
|
#
|
|
|
|
MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
|
|
|
|
MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
|
|
|
|
MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
|
|
|
|
MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
|
|
|
|
MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
|
|
|
|
MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
|
|
|
|
MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
|
|
|
|
MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
|
2018-10-30 07:53:39 +01:00
|
|
|
NetworkPkg/TcpDxe/TcpDxe.inf
|
|
|
|
NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
|
|
|
|
NetworkPkg/IScsiDxe/IScsiDxe.inf
|
2018-07-13 01:41:12 +02:00
|
|
|
!if $(NETWORK_IP6_ENABLE) == TRUE
|
|
|
|
NetworkPkg/Ip6Dxe/Ip6Dxe.inf
|
|
|
|
NetworkPkg/Udp6Dxe/Udp6Dxe.inf
|
|
|
|
NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
|
|
|
|
NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
|
|
|
|
!endif
|
2017-09-11 13:18:05 +02:00
|
|
|
!if $(HTTP_BOOT_ENABLE) == TRUE
|
|
|
|
NetworkPkg/DnsDxe/DnsDxe.inf
|
|
|
|
NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
|
|
|
|
NetworkPkg/HttpDxe/HttpDxe.inf
|
|
|
|
NetworkPkg/HttpBootDxe/HttpBootDxe.inf
|
|
|
|
!endif
|
2017-09-11 12:58:49 +02:00
|
|
|
|
2016-02-05 14:57:57 +01:00
|
|
|
#
|
|
|
|
# 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
|
|
|
|
#
|
2016-08-21 18:53:34 +02:00
|
|
|
ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf {
|
|
|
|
<LibraryClasses>
|
|
|
|
NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
|
|
|
}
|
|
|
|
MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf
|
ArmVirtPkg/VirtFdtDxe: drop PCI host bridge handling
Now that the PCI host bridge driver parses the DT node that describes
the PCI host bridge directly via the FDT client protocol, we can drop the
handling from VirtFdtDxe completely.
This means some PCI related PCDs are no longer set, such as PcdPciBusMin,
PcdPciBusMax, PcdPciIoBase, PcdPciIoSize, PcdPciIoTranslation,
PcdPciMmio32Base and PcdPciMmio32Size. Since these PCDs are specific to
ARM (and declared in ArmPlatformPkg), and not used anywhere else by the
ArmVirtPkg platforms, we can simply stop populating them, and drop all
references to them.
It also means that we can no longer rely on PcdPciDisableBusEnumeration
to be set before it is consumed by PciBusDxe and QemuFwCfgAcpiPlatformDxe,
so make those depend on FdtPciPcdProducerLib explicitly via NULL library
class resolution.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
2016-04-08 11:45:02 +02:00
|
|
|
MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf {
|
|
|
|
<LibraryClasses>
|
|
|
|
NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
|
|
|
}
|
2016-02-05 14:57:57 +01:00
|
|
|
OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf
|
2016-03-12 18:05:05 +01:00
|
|
|
OvmfPkg/Virtio10Dxe/Virtio10.inf
|
2016-02-05 14:57:57 +01:00
|
|
|
|
|
|
|
#
|
|
|
|
# Video support
|
|
|
|
#
|
2018-06-13 09:29:36 +02:00
|
|
|
OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
|
2016-08-16 17:53:33 +02:00
|
|
|
OvmfPkg/VirtioGpuDxe/VirtioGpu.inf
|
2016-02-05 14:57:57 +01:00
|
|
|
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
|
2017-09-11 17:27:31 +02:00
|
|
|
MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
|
2016-07-12 13:08:11 +02:00
|
|
|
|
|
|
|
#
|
|
|
|
# ACPI Support
|
|
|
|
#
|
2017-03-17 15:46:40 +01:00
|
|
|
ArmVirtPkg/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf
|
2017-05-03 00:38:15 +02:00
|
|
|
[Components.AARCH64]
|
2017-01-16 16:06:18 +01:00
|
|
|
MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
|
2016-07-12 13:08:11 +02:00
|
|
|
OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpiPlatformDxe.inf {
|
|
|
|
<LibraryClasses>
|
|
|
|
NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
|
|
|
}
|