#\r
# Provides drivers and definitions to create uefi payload for bootloaders.\r
#\r
-# Copyright (c) 2014 - 2021, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2014 - 2022, Intel Corporation. All rights reserved.<BR>\r
# Copyright (c) Microsoft Corporation.\r
# SPDX-License-Identifier: BSD-2-Clause-Patent\r
#\r
DEFINE PLATFORM_BOOT_TIMEOUT = 3\r
DEFINE ABOVE_4G_MEMORY = TRUE\r
DEFINE BOOT_MANAGER_ESCAPE = FALSE\r
+ DEFINE ATA_ENABLE = TRUE\r
+ DEFINE SD_ENABLE = TRUE\r
+ DEFINE PS2_MOUSE_ENABLE = TRUE\r
+ DEFINE CRYPTO_PROTOCOL_SUPPORT = FALSE\r
DEFINE SD_MMC_TIMEOUT = 1000000\r
+ DEFINE USE_CBMEM_FOR_CONSOLE = FALSE\r
+ DEFINE BOOTSPLASH_IMAGE = FALSE\r
+ DEFINE NVME_ENABLE = TRUE\r
+\r
+ #\r
+ # NULL: NullMemoryTestDxe\r
+ # GENERIC: GenericMemoryTestDxe\r
+ #\r
+ DEFINE MEMORY_TEST = NULL\r
#\r
# SBL: UEFI payload for Slim Bootloader\r
# COREBOOT: UEFI payload for coreboot\r
# Note: for emulation platform such as QEMU, this may not work and should set it as FALSE\r
DEFINE CPU_TIMER_LIB_ENABLE = TRUE\r
\r
+ DEFINE MULTIPLE_DEBUG_PORT_SUPPORT = FALSE\r
+\r
[BuildOptions]\r
*_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES\r
- GCC:*_UNIXGCC_*_CC_FLAGS = -DMDEPKG_NDEBUG\r
+!if $(USE_CBMEM_FOR_CONSOLE) == FALSE\r
GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG\r
INTEL:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG\r
MSFT:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG\r
+!endif\r
\r
[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]\r
GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000\r
CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf\r
SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf\r
DxeHobListLib|UefiPayloadPkg/Library/DxeHobListLib/DxeHobListLib.inf\r
+!if $(CRYPTO_PROTOCOL_SUPPORT) == TRUE\r
+ BaseCryptLib|CryptoPkg/Library/BaseCryptLibOnProtocolPpi/DxeCryptLib.inf\r
+ TlsLib|CryptoPkg/Library/BaseCryptLibOnProtocolPpi/DxeCryptLib.inf\r
+!else\r
BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf\r
TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf\r
+!endif\r
IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf\r
OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf\r
RngLib|MdePkg/Library/BaseRngLib/BaseRngLib.inf\r
UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf\r
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf\r
OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf\r
- CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf\r
+ CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf\r
+ BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf\r
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf\r
UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf\r
+ BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf\r
CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf\r
FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf\r
\r
TimerLib|UefiPayloadPkg/Library/AcpiTimerLib/AcpiTimerLib.inf\r
!endif\r
ResetSystemLib|UefiPayloadPkg/Library/ResetSystemLib/ResetSystemLib.inf\r
+!if $(USE_CBMEM_FOR_CONSOLE) == TRUE\r
+ SerialPortLib|UefiPayloadPkg/Library/CbSerialPortLib/CbSerialPortLib.inf\r
+ PlatformHookLib|MdeModulePkg/Library/BasePlatformHookLibNull/BasePlatformHookLibNull.inf\r
+!else\r
SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf\r
PlatformHookLib|UefiPayloadPkg/Library/PlatformHookLib/PlatformHookLib.inf\r
+!endif\r
PlatformBootManagerLib|UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf\r
IoApicLib|PcAtChipsetPkg/Library/BaseIoApicLib/BaseIoApicLib.inf\r
\r
#\r
# Misc\r
#\r
- DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf\r
+ DebugPrintErrorLevelLib|UefiPayloadPkg/Library/DebugPrintErrorLevelLibHob/DebugPrintErrorLevelLibHob.inf\r
PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf\r
!if $(SOURCE_DEBUG_ENABLE) == TRUE\r
PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibDebug/PeCoffExtraActionLibDebug.inf\r
VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf\r
VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.inf\r
VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf\r
- VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf\r
+ VariableFlashInfoLib|MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.inf\r
+ CcExitLib|UefiCpuPkg/Library/CcExitLibNull/CcExitLibNull.inf\r
ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf\r
\r
+[LibraryClasses.common]\r
+!if $(BOOTSPLASH_IMAGE)\r
+ SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf\r
+ BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf\r
+!endif\r
+\r
[LibraryClasses.common.SEC]\r
HobLib|UefiPayloadPkg/Library/PayloadEntryHobLib/HobLib.inf\r
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
SmmCpuFeaturesLib|UefiCpuPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf\r
CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf\r
ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf\r
+ SmmCpuRendezvousLib|UefiCpuPkg/Library/SmmCpuRendezvousLib/SmmCpuRendezvousLib.inf\r
!if $(PERFORMANCE_MEASUREMENT_ENABLE)\r
PerformanceLib|MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLib.inf\r
!endif\r
gUefiPayloadPkgTokenSpaceGuid.PcdDispatchModuleAbove4GMemory|$(ABOVE_4G_MEMORY)\r
gUefiPayloadPkgTokenSpaceGuid.PcdBootManagerEscape|$(BOOT_MANAGER_ESCAPE)\r
\r
+ gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1800000\r
+\r
+!if $(CRYPTO_PROTOCOL_SUPPORT) == TRUE\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.HmacSha256.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Md5.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Pkcs.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Dh.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Random.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Rsa.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha1.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha256.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha384.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha512.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.X509.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.GetContextSize | TRUE\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.Init | TRUE\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.CbcEncrypt | TRUE\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.CbcDecrypt | TRUE\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sm3.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Hkdf.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Tls.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.TlsSet.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.TlsGet.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY\r
+!endif\r
+\r
[PcdsPatchableInModule.X64]\r
gPcAtChipsetPkgTokenSpaceGuid.PcdRtcIndexRegister|$(RTC_INDEX_REGISTER)\r
gPcAtChipsetPkgTokenSpaceGuid.PcdRtcTargetRegister|$(RTC_TARGET_REGISTER)\r
gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }\r
gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x7\r
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F\r
-!if $(SOURCE_DEBUG_ENABLE)\r
- gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17\r
+!if $(USE_CBMEM_FOR_CONSOLE) == FALSE\r
+ !if $(SOURCE_DEBUG_ENABLE)\r
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17\r
+ !else\r
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F\r
+ !endif\r
!else\r
- gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F\r
+ !if $(TARGET) == DEBUG\r
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x07\r
+ !else\r
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x03\r
+ !endif\r
!endif\r
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizeNonPopulateCapsule|$(MAX_SIZE_NON_POPULATE_CAPSULE)\r
#\r
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity|$(UART_DEFAULT_PARITY)\r
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits|$(UART_DEFAULT_STOP_BITS)\r
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|$(DEFAULT_TERMINAL_TYPE)\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdAriSupport\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdMrIovSupport\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdSrIovSupport\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdSrIovSystemPageSize\r
- gUefiCpuPkgTokenSpaceGuid.PcdCpuApInitTimeOutInMicroSeconds\r
- gUefiCpuPkgTokenSpaceGuid.PcdCpuApLoopMode\r
- gUefiCpuPkgTokenSpaceGuid.PcdCpuMicrocodePatchAddress\r
- gUefiCpuPkgTokenSpaceGuid.PcdCpuMicrocodePatchRegionSize\r
-!if $(TARGET) == DEBUG\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdAriSupport|TRUE\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdMrIovSupport|FALSE\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSrIovSupport|TRUE\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSrIovSystemPageSize|0x1\r
+ gUefiCpuPkgTokenSpaceGuid.PcdCpuApInitTimeOutInMicroSeconds|50000\r
+ gUefiCpuPkgTokenSpaceGuid.PcdCpuApLoopMode|1\r
+ gUefiCpuPkgTokenSpaceGuid.PcdCpuMicrocodePatchAddress|0x0\r
+ gUefiCpuPkgTokenSpaceGuid.PcdCpuMicrocodePatchRegionSize|0x0\r
+!if ($(TARGET) == DEBUG || $(USE_CBMEM_FOR_CONSOLE) == TRUE)\r
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE\r
!else\r
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|FALSE\r
#\r
MdeModulePkg/Core/Dxe/DxeMain.inf {\r
<LibraryClasses>\r
+ !if $(MULTIPLE_DEBUG_PORT_SUPPORT) == TRUE\r
+ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
+ SerialPortLib|UefiPayloadPkg/Library/BaseSerialPortLibHob/BaseSerialPortLibHob.inf\r
+ !endif\r
NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf\r
}\r
\r
!endif\r
UefiCpuPkg/CpuDxe/CpuDxe.inf\r
MdeModulePkg/Universal/BdsDxe/BdsDxe.inf\r
+!if $(BOOTSPLASH_IMAGE)\r
+ MdeModulePkg/Logo/LogoDxe.inf\r
+!endif\r
MdeModulePkg/Application/UiApp/UiApp.inf {\r
<LibraryClasses>\r
NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf\r
MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf\r
UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf\r
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf\r
+!if $(MEMORY_TEST) == "GENERIC"\r
+ MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/GenericMemoryTestDxe.inf\r
+!elseif $(MEMORY_TEST) == "NULL"\r
MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf\r
+!endif\r
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf\r
MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf\r
MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf\r
# ACPI Support\r
#\r
MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf\r
+!if $(BOOTSPLASH_IMAGE)\r
+ MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf\r
+ MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf\r
+!endif\r
\r
#\r
# PCI Support\r
MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
FatPkg/EnhancedFatDxe/Fat.inf\r
+!if $(ATA_ENABLE) == TRUE\r
MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf\r
MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf\r
+!endif\r
MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf\r
MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf\r
MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf\r
+!if $(NVME_ENABLE) == TRUE\r
MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf\r
+!endif\r
\r
!if $(RAM_DISK_ENABLE) == TRUE\r
MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf\r
#\r
# SD/eMMC Support\r
#\r
+!if $(SD_ENABLE) == TRUE\r
MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf\r
MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.inf\r
MdeModulePkg/Bus/Sd/SdDxe/SdDxe.inf\r
+!endif\r
\r
#\r
# Usb Support\r
!if $(PS2_KEYBOARD_ENABLE) == TRUE\r
MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf\r
!endif\r
+!if $(PS2_MOUSE_ENABLE) == TRUE\r
MdeModulePkg/Bus/Isa/Ps2MouseDxe/Ps2MouseDxe.inf\r
+!endif\r
\r
#\r
# Console Support\r
MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf\r
!endif\r
\r
+ #\r
+ # Misc\r
+ #\r
+!if $(CRYPTO_PROTOCOL_SUPPORT) == TRUE\r
+ CryptoPkg/Driver/CryptoDxe.inf {\r
+ <LibraryClasses>\r
+ BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf\r
+ TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf\r
+ }\r
+!endif\r
+\r
#------------------------------\r
# Build the shell\r
#------------------------------\r
# This should be FALSE for compiling the dynamic command.\r
gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE\r
}\r
+!if $(PERFORMANCE_MEASUREMENT_ENABLE) == TRUE\r
ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand.inf {\r
<PcdsFixedAtBuild>\r
## This flag is used to control initialization of the shell library\r
# This should be FALSE for compiling the dynamic command.\r
gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE\r
}\r
+!endif\r
ShellPkg/Application/Shell/Shell.inf {\r
<PcdsFixedAtBuild>\r
## This flag is used to control initialization of the shell library\r