Port OvmfPkg commit5c3481b0b6
to ArmVirtPkg. Some explanation should be in order (because5c3481b0b6
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>
426 lines
20 KiB
C++
426 lines
20 KiB
C++
#
|
|
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
|
# Copyright (c) 2014, Linaro Limited. All rights reserved.
|
|
# Copyright (c) 2015 - 2018, 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]
|
|
DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x8000004F
|
|
DEFINE TTY_TERMINAL = FALSE
|
|
|
|
[BuildOptions.common.EDKII.DXE_CORE,BuildOptions.common.EDKII.DXE_DRIVER,BuildOptions.common.EDKII.UEFI_DRIVER,BuildOptions.common.EDKII.UEFI_APPLICATION]
|
|
GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
|
|
|
|
[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
|
|
GCC:*_*_ARM_DLINK_FLAGS = -z common-page-size=0x1000
|
|
GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x10000
|
|
RVCT:*_*_ARM_DLINK_FLAGS = --scatter $(EDK_TOOLS_PATH)/Scripts/Rvct-Align4K.sct
|
|
|
|
[LibraryClasses.common]
|
|
!if $(TARGET) == RELEASE
|
|
DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
|
|
!else
|
|
DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
|
|
!endif
|
|
DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
|
|
|
|
BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
|
|
SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf
|
|
BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf
|
|
SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
|
|
PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
|
|
PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
|
|
PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
|
|
PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
|
IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
|
|
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
|
|
CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
|
|
|
|
UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
|
|
HobLib|ArmVirtPkg/Library/ArmVirtDxeHobLib/ArmVirtDxeHobLib.inf
|
|
UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
|
DevicePathLib|MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf
|
|
UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
|
|
DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
|
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
|
|
UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
|
|
UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
|
|
HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
|
|
UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
|
|
SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
|
|
ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
|
|
FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
|
|
|
|
UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
|
|
OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf
|
|
|
|
#
|
|
# Ramdisk Requirements
|
|
#
|
|
FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
|
|
|
|
# Allow dynamic PCDs
|
|
#
|
|
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
|
|
|
|
# use the accelerated BaseMemoryLibOptDxe by default, overrides for SEC/PEI below
|
|
BaseMemoryLib|MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf
|
|
|
|
# Networking Requirements
|
|
NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
|
|
DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
|
|
UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
|
|
IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
|
|
|
|
#
|
|
# It is not possible to prevent the ARM compiler from inserting calls to intrinsic functions.
|
|
# This library provides the instrinsic functions such a compiler may generate calls to.
|
|
#
|
|
NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
|
|
|
|
# Add support for GCC stack protector
|
|
NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
|
|
|
|
# ARM Architectural Libraries
|
|
CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
|
|
DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
|
|
CpuExceptionHandlerLib|ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.inf
|
|
ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
|
|
ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
|
|
ArmGicArchLib|ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf
|
|
ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
|
|
ArmHvcLib|ArmPkg/Library/ArmHvcLib/ArmHvcLib.inf
|
|
ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerVirtCounterLib/ArmGenericTimerVirtCounterLib.inf
|
|
|
|
PlatformPeiLib|ArmVirtPkg/Library/PlatformPeiLib/PlatformPeiLib.inf
|
|
MemoryInitPeiLib|ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf
|
|
ResetSystemLib|ArmVirtPkg/Library/ArmVirtPsciResetSystemLib/ArmVirtPsciResetSystemLib.inf
|
|
|
|
# ARM PL031 RTC Driver
|
|
RealTimeClockLib|ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf
|
|
TimeBaseLib|EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf
|
|
# ARM PL011 UART Driver
|
|
PL011UartLib|ArmPlatformPkg/Library/PL011UartLib/PL011UartLib.inf
|
|
SerialPortLib|ArmVirtPkg/Library/FdtPL011SerialPortLib/FdtPL011SerialPortLib.inf
|
|
|
|
#
|
|
# Uncomment (and comment out the next line) For RealView Debugger. The Standard IO window
|
|
# in the debugger will show load and unload commands for symbols. You can cut and paste this
|
|
# into the command window to load symbols. We should be able to use a script to do this, but
|
|
# the version of RVD I have does not support scripts accessing system memory.
|
|
#
|
|
#PeCoffExtraActionLib|ArmPkg/Library/RvdPeCoffExtraActionLib/RvdPeCoffExtraActionLib.inf
|
|
PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf
|
|
#PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
|
|
|
|
DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
|
|
DebugAgentTimerLib|EmbeddedPkg/Library/DebugAgentTimerLibNull/DebugAgentTimerLibNull.inf
|
|
|
|
# Flattened Device Tree (FDT) access library
|
|
FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
|
|
|
|
# PCI Libraries
|
|
PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf
|
|
PciExpressLib|ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf
|
|
|
|
# USB Libraries
|
|
UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
|
|
|
|
XenIoMmioLib|OvmfPkg/Library/XenIoMmioLib/XenIoMmioLib.inf
|
|
|
|
#
|
|
# Secure Boot dependencies
|
|
#
|
|
!if $(SECURE_BOOT_ENABLE) == TRUE
|
|
IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
|
|
OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
|
|
TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf
|
|
AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf
|
|
BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
|
|
|
|
# re-use the UserPhysicalPresent() dummy implementation from the ovmf tree
|
|
PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf
|
|
!else
|
|
TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
|
|
AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
|
|
!endif
|
|
VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
|
|
UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
|
|
|
|
ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
|
|
|
|
[LibraryClasses.common.SEC]
|
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
|
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
|
|
|
DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymbolsBaseLib.inf
|
|
DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLibBase.inf
|
|
SerialPortLib|ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.inf
|
|
HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
|
|
PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
|
|
PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
|
|
MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
|
|
|
|
[LibraryClasses.common.PEI_CORE]
|
|
PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
|
|
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
|
HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
|
|
PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
|
|
MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
|
|
PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf
|
|
PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
|
|
OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
|
|
PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
|
|
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
|
|
ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
|
|
|
|
PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
|
|
SerialPortLib|ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.inf
|
|
|
|
[LibraryClasses.common.PEIM]
|
|
PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
|
|
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
|
HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
|
|
PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
|
|
MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
|
|
PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
|
|
PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
|
|
OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
|
|
PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
|
|
PeiResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf
|
|
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
|
|
ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
|
|
|
|
PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
|
|
SerialPortLib|ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.inf
|
|
|
|
[LibraryClasses.common.DXE_CORE]
|
|
HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
|
|
MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
|
|
DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
|
|
ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
|
|
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
|
|
PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf
|
|
|
|
[LibraryClasses.common.DXE_DRIVER]
|
|
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
|
|
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
|
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
|
|
|
[LibraryClasses.common.UEFI_APPLICATION]
|
|
UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
|
|
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
|
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
|
HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
|
|
|
|
[LibraryClasses.common.UEFI_DRIVER]
|
|
UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
|
|
ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
|
|
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
|
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
|
|
|
[LibraryClasses.common.DXE_RUNTIME_DRIVER]
|
|
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
|
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
|
!if $(TARGET) != RELEASE
|
|
DebugLib|MdePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.inf
|
|
!endif
|
|
|
|
!if $(SECURE_BOOT_ENABLE) == TRUE
|
|
BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
|
|
!endif
|
|
|
|
[LibraryClasses.ARM]
|
|
ArmSoftFloatLib|ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
|
|
|
|
[BuildOptions]
|
|
RVCT:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
|
|
|
GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
|
|
|
#
|
|
# Disable deprecated APIs.
|
|
#
|
|
RVCT:*_*_*_CC_FLAGS = -DDISABLE_NEW_DEPRECATED_INTERFACES
|
|
GCC:*_*_*_CC_FLAGS = -DDISABLE_NEW_DEPRECATED_INTERFACES
|
|
|
|
################################################################################
|
|
#
|
|
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
|
#
|
|
################################################################################
|
|
|
|
[PcdsFeatureFlag.common]
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE
|
|
|
|
# Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
|
|
gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
|
|
|
|
gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
|
|
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
|
|
|
|
[PcdsFeatureFlag.AARCH64]
|
|
#
|
|
# Activate AcpiSdtProtocol
|
|
#
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE
|
|
|
|
[PcdsFixedAtBuild.common]
|
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
|
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
|
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
|
|
gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
|
|
gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
|
|
gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
|
|
gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
|
|
|
|
# DEBUG_ASSERT_ENABLED 0x01
|
|
# DEBUG_PRINT_ENABLED 0x02
|
|
# DEBUG_CODE_ENABLED 0x04
|
|
# CLEAR_MEMORY_ENABLED 0x08
|
|
# ASSERT_BREAKPOINT_ENABLED 0x10
|
|
# ASSERT_DEADLOOP_ENABLED 0x20
|
|
!if $(TARGET) == RELEASE
|
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21
|
|
!else
|
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2f
|
|
!endif
|
|
|
|
# DEBUG_INIT 0x00000001 // Initialization
|
|
# DEBUG_WARN 0x00000002 // Warnings
|
|
# DEBUG_LOAD 0x00000004 // Load events
|
|
# DEBUG_FS 0x00000008 // EFI File system
|
|
# DEBUG_POOL 0x00000010 // Alloc & Free (pool)
|
|
# DEBUG_PAGE 0x00000020 // Alloc & Free (page)
|
|
# DEBUG_INFO 0x00000040 // Informational debug messages
|
|
# DEBUG_DISPATCH 0x00000080 // PEI/DXE/SMM Dispatchers
|
|
# DEBUG_VARIABLE 0x00000100 // Variable
|
|
# DEBUG_BM 0x00000400 // Boot Manager
|
|
# DEBUG_BLKIO 0x00001000 // BlkIo Driver
|
|
# DEBUG_NET 0x00004000 // SNP Driver
|
|
# DEBUG_UNDI 0x00010000 // UNDI Driver
|
|
# DEBUG_LOADFILE 0x00020000 // LoadFile
|
|
# DEBUG_EVENT 0x00080000 // Event messages
|
|
# DEBUG_GCD 0x00100000 // Global Coherency Database changes
|
|
# DEBUG_CACHE 0x00200000 // Memory range cachability changes
|
|
# DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may
|
|
# // significantly impact boot performance
|
|
# DEBUG_ERROR 0x80000000 // Error
|
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|$(DEBUG_PRINT_ERROR_LEVEL)
|
|
|
|
#
|
|
# Optional feature to help prevent EFI memory map fragments
|
|
# Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
|
|
# Values are in EFI Pages (4K). DXE Core will make sure that
|
|
# at least this much of each type of memory can be allocated
|
|
# from a single memory range. This way you only end up with
|
|
# maximum of two fragements for each type in the memory map
|
|
# (the memory used, and the free memory that was prereserved
|
|
# but not used).
|
|
#
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
|
|
!if $(SECURE_BOOT_ENABLE) == TRUE
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|600
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|400
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|1500
|
|
!else
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|300
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|150
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|1000
|
|
!endif
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|12000
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
|
|
|
|
!if $(SECURE_BOOT_ENABLE) == TRUE
|
|
# override the default values from SecurityPkg to ensure images from all sources are verified in secure boot
|
|
gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04
|
|
gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x04
|
|
gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
|
|
!endif
|
|
|
|
!if $(TTY_TERMINAL) == TRUE
|
|
# Set terminal type to TtyTerm, the value encoded is EFI_TTY_TERM_GUID
|
|
gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}
|
|
!endif
|
|
|
|
#
|
|
# Enable strict image permissions for all images. (This applies
|
|
# only to images that were built with >= 4 KB section alignment.)
|
|
#
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy|0x3
|
|
|
|
#
|
|
# Enable NX memory protection for all non-code regions, including OEM and OS
|
|
# reserved ones, with the exception of LoaderData regions, of which OS loaders
|
|
# (i.e., GRUB) may assume that its contents are executable.
|
|
#
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0xC000000000007FD1
|
|
|
|
#
|
|
# Enable the non-executable DXE stack. (This gets set up by DxeIpl)
|
|
#
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE
|
|
|
|
[PcdsFixedAtBuild.ARM]
|
|
gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|40
|
|
|
|
[Components.common]
|
|
#
|
|
# Ramdisk support
|
|
#
|
|
MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf
|
|
|
|
#
|
|
# UEFI application (Shell Embedded Boot Loader)
|
|
#
|
|
ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf {
|
|
<PcdsFixedAtBuild>
|
|
gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
|
|
}
|
|
ShellPkg/Application/Shell/Shell.inf {
|
|
<LibraryClasses>
|
|
ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
|
|
NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
|
|
NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
|
|
NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
|
|
NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
|
|
NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
|
|
NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
|
|
NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
|
|
HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
|
|
PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
|
|
BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
|
|
|
|
<PcdsFixedAtBuild>
|
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF
|
|
gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
|
|
gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000
|
|
}
|
|
|
|
[Components.AARCH64]
|
|
#
|
|
# ACPI Support
|
|
#
|
|
MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf {
|
|
<LibraryClasses>
|
|
NULL|EmbeddedPkg/Library/PlatformHasAcpiLib/PlatformHasAcpiLib.inf
|
|
}
|
|
|
|
#
|
|
# EBC support
|
|
#
|
|
MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
|