## @file
# Provides driver and definitions to build bootloader.
#
# Copyright (c) 2016 - 2024, Intel Corporation. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##
################################################################################
#
# Defines Section - statements that will be processed to create a Makefile.
#
################################################################################
[Defines]
PLATFORM_NAME = BootloaderCorePkg
PLATFORM_GUID = 0E8F73FA-CF73-4AA2-A406-1610CCF49EF1
PLATFORM_VERSION = 0.1
DSC_SPECIFICATION = 0x00010005
OUTPUT_DIRECTORY = Build/BootloaderCorePkg
SUPPORTED_ARCHITECTURES = IA32|X64
BUILD_TARGETS = DEBUG|RELEASE|NOOPT
SKUID_IDENTIFIER = DEFAULT
FLASH_DEFINITION = BootloaderCorePkg/BootloaderCorePkg.fdf
!include Platform.dsc
################################################################################
#
# SKU Identification section - list of all SKU IDs supported by this Platform.
#
################################################################################
[SkuIds]
0|DEFAULT # The entry: 0|DEFAULT is reserved and always required.
################################################################################
#
# Library Class section - list of all Library Classes needed by this Platform.
#
################################################################################
[LibraryClasses]
PcdLib|BootloaderCommonPkg/Library/PcdLib/PcdLib.inf
RegisterFilterLib|MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.inf
BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf
PciCf8Lib|MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf
PciExpressLib|MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf
PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
DebugPrintErrorLevelLib|BootloaderCorePkg/Library/DebugPrintErrorLevelLib/DebugPrintErrorLevelLib.inf
PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
BaseMemoryLib|MdePkg/Library/BaseMemoryLibSse2/BaseMemoryLibSse2.inf
SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
TimeStampLib|BootloaderCommonPkg/Library/TimeStampLib/TimeStampLib.inf
ExtraBaseLib|BootloaderCommonPkg/Library/ExtraBaseLib/ExtraBaseLib.inf
ModuleEntryLib|BootloaderCommonPkg/Library/ModuleEntryLib/ModuleEntryLib.inf
LzmaDecompressLib|BootloaderCommonPkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
Lz4CompressLib|BootloaderCommonPkg/Library/Lz4CompressLib/Lz4CompressLib.inf
DecompressLib|BootloaderCommonPkg/Library/DecompressLib/DecompressLib.inf
RleCompressLib|BootloaderCommonPkg/Library/RleCompressLib/RleCompressLib.inf
FspSupportLib|BootloaderCorePkg/Library/FspSupportLib/FspSupportLib.inf
BootloaderLib|BootloaderCorePkg/Library/BootloaderLib/BootloaderLib.inf
BootloaderCoreLib|BootloaderCorePkg/Library/BootloaderCoreLib/BootloaderCoreLib.inf
PciEnumerationLib|BootloaderCorePkg/Library/PciEnumerationLib/PciEnumerationLib.inf
AcpiInitLib|BootloaderCorePkg/Library/AcpiInitLib/AcpiInitLib.inf
SmbiosInitLib|BootloaderCorePkg/Library/SmbiosInitLib/SmbiosInitLib.inf
LitePeCoffLib|BootloaderCommonPkg/Library/LitePeCoffLib/LitePeCoffLib.inf
HobLib|BootloaderCommonPkg/Library/HobLib/HobLib.inf
HobBuildLib|BootloaderCorePkg/Library/HobBuildLib/HobBuildLib.inf
LiteFvLib|BootloaderCommonPkg/Library/LiteFvLib/LiteFvLib.inf
LoaderPerformanceLib|BootloaderCommonPkg/Library/LoaderPerformanceLib/LoaderPerformanceLib.inf
MemoryAllocationLib|BootloaderCorePkg/Library/MemoryAllocationLib/MemoryAllocationLib.inf
MpInitLib|BootloaderCorePkg/Library/MpInitLib/MpInitLib.inf
StageLib|BootloaderCorePkg/Library/StageLib/StageLib.inf
LocalApicLib|BootloaderCommonPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.inf
SecureBootLib|BootloaderCommonPkg/Library/SecureBootLib/SecureBootLib.inf
TpmLib|BootloaderCommonPkg/Library/TpmLib/TpmLib.inf
BootloaderCommonLib|BootloaderCommonPkg/Library/BootloaderCommonLib/BootloaderCommonLib.inf
ConfigDataLib|BootloaderCommonPkg/Library/ConfigDataLib/ConfigDataLib.inf
MmcAccessLib|BootloaderCommonPkg/Library/MmcAccessLib/MmcAccessLib.inf
GraphicsLib|BootloaderCommonPkg/Library/GraphicsLib/GraphicsLib.inf
Crc32Lib|BootloaderCommonPkg/Library/Crc32Lib/Crc32Lib.inf
VariableLib|BootloaderCommonPkg/Library/LiteVariableLib/LiteVariableLib.inf
DebugDataLib|BootloaderCorePkg/Library/DebugDataLib/DebugDataLib.inf
CpuExceptionLib|BootloaderCorePkg/Library/CpuExceptionLib/CpuExceptionLib.inf
FileSystemLib|BootloaderCommonPkg/Library/FileSystemLib/FileSystemLib.inf
FatLib|BootloaderCommonPkg/Library/FatLib/FatLib.inf
PartitionLib|BootloaderCommonPkg/Library/PartitionLib/PartitionLib.inf
Ext23Lib|BootloaderCommonPkg/Library/Ext23Lib/Ext23Lib.inf
ShellLib|BootloaderCommonPkg/Library/ShellLib/ShellLib.inf
SpiBlockIoLib|BootloaderCommonPkg/Library/SpiBlockIoLib/SpiBlockIoLib.inf
UfsBlockIoLib|BootloaderCommonPkg/Library/UfsBlockIoLib/UfsBlockIoLib.inf
MmcAccessLib|BootloaderCommonPkg/Library/MmcAccessLib/MmcAccessLib.inf
MmcTuningLib|BootloaderCommonPkg/Library/MmcTuningLib/MmcTuningLib.inf
RpmbLib|BootloaderCommonPkg/Library/RpmbLib/RpmbLib.inf
NvmExpressLib|BootloaderCommonPkg/Library/NvmExpressLib/NvmExpressLib.inf
MemoryDeviceBlockIoLib|BootloaderCommonPkg/Library/MemoryDeviceBlockIoLib/MemoryDeviceBlockIoLib.inf
AhciLib|BootloaderCommonPkg/Library/AhciLib/AhciLib.inf
UsbInitLib|BootloaderCommonPkg/Library/UsbInitLib/UsbInitLib.inf
UsbKbLib|BootloaderCommonPkg/Library/UsbKbLib/UsbKbLib.inf
UsbHostCtrlLib|BootloaderCommonPkg/Library/XhciLib/XhciLib.inf
UsbBusLib|BootloaderCommonPkg/Library/UsbBusLib/UsbBusLib.inf
UsbBlockIoLib|BootloaderCommonPkg/Library/UsbBlockIoLib/UsbBlockIoLib.inf
MultibootLib|BootloaderCommonPkg/Library/MultibootLib/MultibootLib.inf
MediaAccessLib|BootloaderCommonPkg/Library/MediaAccessLib/MediaAccessLib.inf
ResetSystemLib|BootloaderCommonPkg/Library/ResetSystemLib/ResetSystemLib.inf
BootOptionLib|BootloaderCommonPkg/Library/BootOptionLib/BootOptionLib.inf
RngLib|MdePkg/Library/BaseRngLib/BaseRngLib.inf
SeedListInfoLib|BootloaderCommonPkg/Library/SeedListInfoLib/SeedListInfoLib.inf
CryptoLib|BootloaderCommonPkg/Library/IppCryptoLib/IppCryptoLib.inf
ShellExtensionLib|BootloaderCommonPkg/Library/ShellExtensionLibNull/ShellExtensionLibNull.inf
DebugLogBufferLib|BootloaderCommonPkg/Library/DebugLogBufferLib/DebugLogBufferLib.inf
DebugLib|BootloaderCommonPkg/Library/BootloaderDebugLib/BootloaderDebugLib.inf
ConsoleInLib|BootloaderCommonPkg/Library/ConsoleInLib/ConsoleInLib.inf
ConsoleOutLib|BootloaderCommonPkg/Library/ConsoleOutLib/ConsoleOutLib.inf
ContainerLib|BootloaderCommonPkg/Library/ContainerLib/ContainerLib.inf
LinuxLib|BootloaderCommonPkg/Library/LinuxLib/LinuxLib.inf
UefiVariableLib|BootloaderCommonPkg/Library/UefiVariableLib/UefiVariableLib.inf
SerialPortLib|BootloaderCommonPkg/Library/SerialPortLib/SerialPortLib.inf
SortLib|BootloaderCommonPkg/Library/SortLib/SortLib.inf
IoMmuLib|BootloaderCommonPkg/Library/IoMmuLib/IoMmuLib.inf
MtrrLib|BootloaderCommonPkg/Library/MtrrLib/MtrrLib.inf
StringSupportLib|BootloaderCommonPkg/Library/StringSupportLib/StringSupportLib.inf
ThunkLib|BootloaderCommonPkg/Library/ThunkLib/ThunkLib.inf
UniversalPayloadLib|BootloaderCommonPkg/Library/UniversalPayloadLib/UniversalPayloadLib.inf
FitLib|BootloaderCommonPkg/Library/FitLib/FitLib.inf
FdtLib|MdePkg/Library/BaseFdtLib/BaseFdtLib.inf
BuildFdtLib|BootloaderCommonPkg/Library/BuildFdtLib/BuildFdtLib.inf
!if $(ENABLE_SOURCE_DEBUG)
DebugAgentLib|BootloaderCommonPkg/Library/DebugAgentLib/DebugAgentLib.inf
!else
DebugAgentLib|BootloaderCommonPkg/Library/DebugAgentLib/DebugAgentLibNull.inf
!endif
ElfLib|BootloaderCommonPkg/Library/ElfLib/ElfLib.inf
S3SaveRestoreLib|BootloaderCorePkg/Library/S3SaveRestoreLib/S3SaveRestoreLib.inf
BoardSupportLib|Platform/CommonBoardPkg/Library/BoardSupportLib/BoardSupportLib.inf
PagingLib|BootloaderCommonPkg/Library/PagingLib/PagingLib.inf
TimerLib|BootloaderCommonPkg/Library/AcpiTimerLib/AcpiTimerLib.inf
DebugPortLib|BootloaderCommonPkg/Library/DebugPortLib/DebugPortLibNull.inf
CrashLogLib|Silicon/CommonSocPkg/Library/CrashLogLibNull/CrashLogLibNull.inf
FusaConfigLib|Silicon/CommonSocPkg/Library/FusaConfigLibNull/FusaConfigLibNull.inf
IppCryptoPerfLib|BootloaderCommonPkg/Library/IppCryptoPerfLib/IppCryptoPerfLib.inf
################################################################################
#
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
#
################################################################################
[PcdsFixedAtBuild]
!if $(TARGET) == RELEASE
# Use this PCD to control the debug message that goes into binary image
gEfiMdePkgTokenSpaceGuid.PcdFixedDebugPrintErrorLevel | 0x80080003
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask | 0x23
!else
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask | 0x27
!endif
# Exclude platform console devices BIT7 as debug output for SBL stage 1 and 2.
# Once in payload, more debug devices can be enabled, such as frame buffer.
gPlatformCommonLibTokenSpaceGuid.PcdDebugOutputDeviceMask | $(DEBUG_OUTPUT_DEVICE_MASK) & 0xFFFFFF7F
gPlatformCommonLibTokenSpaceGuid.PcdDebugPortNumber | $(DEBUG_PORT_NUMBER)
gPlatformModuleTokenSpaceGuid.PcdPciMmcfgBase | $(PCI_EXPRESS_BASE)
gPlatformModuleTokenSpaceGuid.PcdPciEnumPolicyInfo | $(PCI_ENUM_POLICY_INFO)
gPlatformModuleTokenSpaceGuid.PcdLoaderReservedMemSize | $(LOADER_RSVD_MEM_SIZE)
gPlatformModuleTokenSpaceGuid.PcdLoaderAcpiNvsSize | $(LOADER_ACPI_NVS_MEM_SIZE)
gPlatformModuleTokenSpaceGuid.PcdLoaderAcpiReclaimSize | $(LOADER_ACPI_RECLAIM_MEM_SIZE)
gPlatformModuleTokenSpaceGuid.PcdFlashBaseAddress | $(FLASH_BASE)
gPlatformModuleTokenSpaceGuid.PcdFlashSize | $(FLASH_SIZE)
gPlatformModuleTokenSpaceGuid.PcdStage1ABase | $(STAGE1A_BASE)
gPlatformModuleTokenSpaceGuid.PcdStage1ASize | $(STAGE1A_SIZE)
gPlatformModuleTokenSpaceGuid.PcdStage1ALoadBase | $(STAGE1A_LOAD_BASE)
gPlatformModuleTokenSpaceGuid.PcdStage1AFdBase | $(STAGE1A_FD_BASE)
gPlatformModuleTokenSpaceGuid.PcdStage1AFdSize | $(STAGE1A_FD_SIZE)
gPlatformModuleTokenSpaceGuid.PcdStage1AFvSize | $(STAGE1A_FV_SIZE)
gPlatformModuleTokenSpaceGuid.PcdStage1BBase | $(STAGE1B_BASE)
gPlatformModuleTokenSpaceGuid.PcdStage1BSize | $(STAGE1B_SIZE)
gPlatformModuleTokenSpaceGuid.PcdStage1BLoadBase | $(STAGE1B_LOAD_BASE)
gPlatformModuleTokenSpaceGuid.PcdStage1BFdBase | $(STAGE1B_FD_BASE)
gPlatformModuleTokenSpaceGuid.PcdStage1BFdSize | $(STAGE1B_FD_SIZE)
gPlatformModuleTokenSpaceGuid.PcdStage1BFvSize | $(STAGE1B_FV_SIZE)
gPlatformModuleTokenSpaceGuid.PcdStage2Base | $(STAGE2_BASE)
gPlatformModuleTokenSpaceGuid.PcdStage2Size | $(STAGE2_SIZE)
gPlatformModuleTokenSpaceGuid.PcdStage2LoadBase | $(STAGE2_LOAD_BASE)
gPlatformModuleTokenSpaceGuid.PcdStage2FdBase | $(STAGE2_FD_BASE)
gPlatformModuleTokenSpaceGuid.PcdStage2FdSize | $(STAGE2_FD_SIZE)
gPlatformModuleTokenSpaceGuid.PcdStage2FvSize | $(STAGE2_FV_SIZE)
gPlatformModuleTokenSpaceGuid.PcdStage1StackSize | $(STAGE1_STACK_SIZE)
gPlatformModuleTokenSpaceGuid.PcdStage1StackBaseOffset | $(STAGE1_STACK_BASE_OFFSET)
gPlatformModuleTokenSpaceGuid.PcdStage1DataSize | $(STAGE1_DATA_SIZE)
gPlatformModuleTokenSpaceGuid.PcdStage2LoadHigh | $(STAGE2_LOAD_HIGH)
gPlatformModuleTokenSpaceGuid.PcdPayloadLoadHigh | $(PAYLOAD_LOAD_HIGH)
gPlatformModuleTokenSpaceGuid.PcdPayloadExeBase | $(PAYLOAD_EXE_BASE)
gPlatformModuleTokenSpaceGuid.PcdPayloadLoadBase | $(PAYLOAD_LOAD_BASE)
gPlatformModuleTokenSpaceGuid.PcdPayloadBase | $(PAYLOAD_BASE)
gPlatformModuleTokenSpaceGuid.PcdPayloadSize | $(PAYLOAD_SIZE)
gPlatformModuleTokenSpaceGuid.PcdFwuPayloadSize | $(FWUPDATE_SIZE)
gPlatformModuleTokenSpaceGuid.PcdFwuPayloadBase | $(FWUPDATE_BASE)
gPlatformModuleTokenSpaceGuid.PcdFwuPayloadLoadBase | $(FWUPDATE_LOAD_BASE)
gPlatformModuleTokenSpaceGuid.PcdCfgDataBase | $(CFGDATA_BASE)
gPlatformModuleTokenSpaceGuid.PcdCfgDataSize | $(CFGDATA_SIZE)
gPlatformModuleTokenSpaceGuid.PcdMrcDataBase | $(MRCDATA_BASE)
gPlatformModuleTokenSpaceGuid.PcdMrcDataSize | $(MRCDATA_SIZE)
gPlatformModuleTokenSpaceGuid.PcdUcodeBase | $(UCODE_BASE)
gPlatformModuleTokenSpaceGuid.PcdUcodeSize | $(UCODE_SIZE)
gPlatformModuleTokenSpaceGuid.PcdUcodeSlotSize | $(UCODE_SLOT_SIZE)
gPlatformModuleTokenSpaceGuid.PcdVariableRegionBase | $(VARIABLE_BASE)
gPlatformModuleTokenSpaceGuid.PcdVariableRegionSize | $(VARIABLE_SIZE)
gPlatformModuleTokenSpaceGuid.PcdActmBase | $(ACTM_BASE)
gPlatformModuleTokenSpaceGuid.PcdActmSize | $(ACTM_SIZE)
gPlatformModuleTokenSpaceGuid.PcdFSPTBase | $(FSP_T_BASE)
gPlatformModuleTokenSpaceGuid.PcdFSPTSize | $(FSP_T_SIZE)
gPlatformModuleTokenSpaceGuid.PcdFSPTUpdSize | $(FSP_T_UPD_SIZE)
gPlatformModuleTokenSpaceGuid.PcdFSPT64Bit | $(FSP_T_64_BIT)
gPlatformModuleTokenSpaceGuid.PcdFSPMBase | $(FSP_M_BASE)
gPlatformModuleTokenSpaceGuid.PcdFSPMSize | $(FSP_M_SIZE)
gPlatformModuleTokenSpaceGuid.PcdFSPMUpdSize | $(FSP_M_UPD_SIZE)
gPlatformModuleTokenSpaceGuid.PcdFSPM64Bit | $(FSP_M_64_BIT)
gPlatformModuleTokenSpaceGuid.PcdFSPSSize | $(FSP_S_SIZE)
gPlatformModuleTokenSpaceGuid.PcdFSPSUpdSize | $(FSP_S_UPD_SIZE)
gPlatformModuleTokenSpaceGuid.PcdFSPS64Bit | $(FSP_S_64_BIT)
gPlatformModuleTokenSpaceGuid.PcdFSPMStackTop | $(FSP_M_STACK_TOP)
gPlatformModuleTokenSpaceGuid.PcdMemoryMapEntryNumber | $(MAX_MEMORY_MAP_ENTRY_NUM)
gPlatformModuleTokenSpaceGuid.PcdTopSwapRegionSize | $(TOP_SWAP_SIZE)
gPlatformModuleTokenSpaceGuid.PcdRedundantRegionSize | $(REDUNDANT_SIZE)
gPlatformModuleTokenSpaceGuid.PcdCfgDataLoadSource | $(CFGDATA_REGION_TYPE)
gPlatformModuleTokenSpaceGuid.PcdCfgDatabaseSize | $(CFG_DATABASE_SIZE)
gPlatformModuleTokenSpaceGuid.PcdHashStoreSize | $(HASH_STORE_SIZE)
gPlatformModuleTokenSpaceGuid.PcdAcpiProcessorIdBase | $(ACPI_PROCESSOR_ID_BASE)
gPlatformModuleTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber | $(CPU_MAX_LOGICAL_PROCESSOR_NUMBER)
gPlatformModuleTokenSpaceGuid.PcdCpuSortMethod | $(CPU_SORT_METHOD)
gPlatformModuleTokenSpaceGuid.PcdCpuApInitWaitInMicroSeconds | $(CPU_AP_WAIT_TIME_US)
gPlatformCommonLibTokenSpaceGuid.PcdConsoleInDeviceMask | $(CONSOLE_IN_DEVICE_MASK)
gPlatformCommonLibTokenSpaceGuid.PcdConsoleOutDeviceMask | $(CONSOLE_OUT_DEVICE_MASK)
gPlatformModuleTokenSpaceGuid.PcdVerifiedBootStage1B | $(VERIFIED_BOOT_STAGE_1B)
gPlatformCommonLibTokenSpaceGuid.PcdCryptoShaOptMask | $(ENABLE_CRYPTO_SHA_OPT)
gPlatformCommonLibTokenSpaceGuid.PcdSpiContainerImageRegionType | $(SPI_CONTAINER_REGION_TYPE)
gPlatformCommonLibTokenSpaceGuid.PcdSpiContainerImage1RegionBase | $(SPI_CONTAINER1_BASE)
gPlatformCommonLibTokenSpaceGuid.PcdSpiContainerImage1RegionSize | $(SPI_CONTAINER1_SIZE)
gPlatformCommonLibTokenSpaceGuid.PcdSpiContainerImage2RegionBase | $(SPI_CONTAINER2_BASE)
gPlatformCommonLibTokenSpaceGuid.PcdSpiContainerImage2RegionSize | $(SPI_CONTAINER2_SIZE)
gPlatformCommonLibTokenSpaceGuid.PcdSupportedMediaTypeMask | $(BOOT_MEDIA_SUPPORT_MASK)
gPlatformCommonLibTokenSpaceGuid.PcdSupportedFileSystemMask | $(FILE_SYSTEM_SUPPORT_MASK)
gPlatformCommonLibTokenSpaceGuid.PcdSeedListEnabled | $(HAVE_SEED_LIST)
gPlatformCommonLibTokenSpaceGuid.PcdUsbKeyboardPollingTimeout | $(USB_KB_POLLING_TIMEOUT)
gPlatformCommonLibTokenSpaceGuid.PcdUsbCmdTimeout | $(USB_CMD_TIMEOUT)
gPlatformCommonLibTokenSpaceGuid.PcdLowestSupportedFwVer | $(LOWEST_SUPPORTED_FW_VER)
gPlatformCommonLibTokenSpaceGuid.PcdIppHashLibSupportedMask | $(IPP_HASH_LIB_SUPPORTED_MASK)
gPlatformCommonLibTokenSpaceGuid.PcdCompSignHashAlg | $(SIGN_HASH_TYPE)
gPlatformModuleTokenSpaceGuid.PcdFastBootEnabled | $(ENABLE_FAST_BOOT)
gPayloadTokenSpaceGuid.PcdRtcmRsvdSize | $(RTCM_RSVD_SIZE)
gPlatformCommonLibTokenSpaceGuid.PcdBootPerformanceMask | $(BOOT_PERFORMANCE_MASK)
gPlatformModuleTokenSpaceGuid.PcdSblResiliencyEnabled | $(ENABLE_SBL_RESILIENCY)
gPlatformModuleTokenSpaceGuid.PcdIdenticalTopSwapsBuilt | $(BUILD_IDENTICAL_TS)
gPlatformCommonLibTokenSpaceGuid.PcdTccEnabled | $(ENABLE_TCC)
gPlatformCommonLibTokenSpaceGuid.PcdEnableCryptoPerfTest | $(ENABLE_IPP_CRYPTO_PERF)
gPlatformCommonLibTokenSpaceGuid.PcdHandOffFdtEnable | $(ENABLE_UPL_HANDOFF_FDT)
[PcdsPatchableInModule]
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel | 0x8000004F
gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress | $(PCI_EXPRESS_BASE)
gPlatformModuleTokenSpaceGuid.PcdAcpiTablesRsdp | 0xFF000000
gPlatformModuleTokenSpaceGuid.PcdAcpiTablesAddress | 0xFF000000
gPlatformModuleTokenSpaceGuid.PcdAcpiGnvsAddress | 0xFF000000
gPlatformModuleTokenSpaceGuid.PcdGraphicsVbtAddress| 0xFF000000
gPlatformModuleTokenSpaceGuid.PcdIgdOpRegionAddress| 0xFF000000
gPlatformModuleTokenSpaceGuid.PcdDeviceTreeBase | 0xFF000000
gPlatformCommonLibTokenSpaceGuid.PcdAcpiPmTimerBase | $(ACPI_PM_TIMER_BASE)
gPlatformModuleTokenSpaceGuid.PcdFSPSBase | $(FSP_S_BASE)
gPlatformModuleTokenSpaceGuid.PcdHashStoreBase | 0xFF000000
gPlatformModuleTokenSpaceGuid.PcdVerInfoBase | 0xFF000000
gPlatformModuleTokenSpaceGuid.PcdFileDataBase | 0xFF000000
gPlatformModuleTokenSpaceGuid.PcdSplashLogoAddress | 0xFF000000
gPlatformModuleTokenSpaceGuid.PcdSplashLogoSize | 0xFFFFFFFF
gPlatformModuleTokenSpaceGuid.PcdCfgDataIntBase | 0xFF000000
gPlatformCommonLibTokenSpaceGuid.PcdEmmcMaxRwBlockNumber | 0xFFFF
gPlatformModuleTokenSpaceGuid.PcdPayloadReservedMemSize | $(PLD_RSVD_MEM_SIZE)
gPlatformModuleTokenSpaceGuid.PcdSmramTsegBase | 0xFF000000
gPlatformModuleTokenSpaceGuid.PcdSmramTsegSize | 0x00000000
gPayloadTokenSpaceGuid.PcdPayloadHobList | 0x00000000
gPayloadTokenSpaceGuid.PcdPayloadHeapSize | $(PLD_HEAP_SIZE)
gPayloadTokenSpaceGuid.PcdPayloadStackSize | $(PLD_STACK_SIZE)
gPayloadTokenSpaceGuid.PcdGlobalDataAddress | 0x00000000
gPlatformModuleTokenSpaceGuid.PcdSmmRebaseMode | $(ENABLE_SMM_REBASE)
gPlatformModuleTokenSpaceGuid.PcdSmbiosTablesBase | 0x00000000
gPlatformModuleTokenSpaceGuid.PcdSmbiosStringsPtr | 0x00000000
gPlatformModuleTokenSpaceGuid.PcdSmbiosStringsCnt | 0x40
gPlatformModuleTokenSpaceGuid.PcdFuncCpuInitHook | 0x00000000
gPlatformModuleTokenSpaceGuid.PcdFspsUpdPtr | 0x00000000
gPlatformModuleTokenSpaceGuid.PcdAcpiTableTemplatePtr | 0
gPlatformModuleTokenSpaceGuid.PcdPciEnumHookProc | 0x00000000
gPlatformModuleTokenSpaceGuid.PcdPciResAllocTableBase | 0x00000000
gPlatformCommonLibTokenSpaceGuid.PcdSerialUseMmio | 0
gPlatformCommonLibTokenSpaceGuid.PcdSerialRegisterBase | 0
gPlatformCommonLibTokenSpaceGuid.PcdSerialBaudRate | 0
gPlatformCommonLibTokenSpaceGuid.PcdSerialRegisterStride | 0
gPlatformCommonLibTokenSpaceGuid.PcdSerialClockRate | 0
gPlatformModuleTokenSpaceGuid.PcdPciResourceIoBase | $(PCI_IO_BASE)
gPlatformModuleTokenSpaceGuid.PcdPciResourceMem32Base | $(PCI_MEM32_BASE)
gPlatformModuleTokenSpaceGuid.PcdPciResourceMem64Base | $(PCI_MEM64_BASE)
[PcdsFeatureFlag]
gPlatformCommonLibTokenSpaceGuid.PcdMinDecompression | FALSE
gPlatformCommonLibTokenSpaceGuid.PcdMeasuredBootEnabled | $(HAVE_MEASURED_BOOT)
gPlatformCommonLibTokenSpaceGuid.PcdVerifiedBootEnabled | $(HAVE_VERIFIED_BOOT)
gPlatformModuleTokenSpaceGuid.PcdIntelGfxEnabled | $(HAVE_VBT_BIN)
gPlatformModuleTokenSpaceGuid.PcdAcpiEnabled | $(HAVE_ACPI_TABLE)
gPlatformModuleTokenSpaceGuid.PcdSmpEnabled | $(ENABLE_SMP_INIT)
gPlatformModuleTokenSpaceGuid.PcdPciEnumEnabled | $(ENABLE_PCI_ENUM)
gPlatformModuleTokenSpaceGuid.PcdStage1AXip | $(STAGE1A_XIP)
gPlatformModuleTokenSpaceGuid.PcdStage1BXip | $(STAGE1B_XIP)
gPlatformModuleTokenSpaceGuid.PcdRemapStage1B | $(REMAP_STAGE1B)
gPlatformModuleTokenSpaceGuid.PcdLoadImageUseFsp | $(ENABLE_FSP_LOAD_IMAGE)
gPlatformModuleTokenSpaceGuid.PcdSplashEnabled | $(ENABLE_SPLASH)
gPlatformModuleTokenSpaceGuid.PcdFramebufferInitEnabled | $(ENABLE_FRAMEBUFFER_INIT)
gPlatformModuleTokenSpaceGuid.PcdVtdEnabled | $(ENABLE_VTD)
gPlatformModuleTokenSpaceGuid.PcdPsdBiosEnabled | $(HAVE_PSD_TABLE)
gPayloadTokenSpaceGuid.PcdGrubBootCfgEnabled | $(ENABLE_GRUB_CONFIG)
gPlatformModuleTokenSpaceGuid.PcdSmbiosEnabled | $(ENABLE_SMBIOS)
gPlatformModuleTokenSpaceGuid.PcdLinuxPayloadEnabled | $(ENABLE_LINUX_PAYLOAD)
gPayloadTokenSpaceGuid.PcdCsmeUpdateEnabled | $(ENABLE_CSME_UPDATE)
gPlatformModuleTokenSpaceGuid.PcdLegacyEfSegmentEnabled | $(ENABLE_LEGACY_EF_SEG)
gPlatformCommonLibTokenSpaceGuid.PcdEmmcHs400SupportEnabled | $(ENABLE_EMMC_HS400)
gPlatformCommonLibTokenSpaceGuid.PcdDmaProtectionEnabled | $(ENABLE_DMA_PROTECTION)
gPlatformCommonLibTokenSpaceGuid.PcdMultiUsbBootDeviceEnabled | $(ENABLE_MULTI_USB_BOOT_DEV)
gPlatformCommonLibTokenSpaceGuid.PcdCpuX2ApicEnabled | $(SUPPORT_X2APIC)
gPlatformModuleTokenSpaceGuid.PcdAriSupport | $(SUPPORT_ARI)
gPlatformModuleTokenSpaceGuid.PcdSrIovSupport | $(SUPPORT_SR_IOV)
gPlatformModuleTokenSpaceGuid.PcdResizableBarSupport | $(SUPPORT_RESIZABLE_BAR)
gPlatformModuleTokenSpaceGuid.PcdEnableSetup | $(ENABLE_SBL_SETUP)
gPayloadTokenSpaceGuid.PcdPayloadModuleEnabled | $(ENABLE_PAYLOD_MODULE)
gPlatformModuleTokenSpaceGuid.PcdEnableDts | $(ENABLE_DTS)
gPlatformModuleTokenSpaceGuid.PcdEnablePciePm | $(ENABLE_PCIE_PM)
gPlatformCommonLibTokenSpaceGuid.PcdFspNoEop | $(HAVE_NO_FSP_EOP)
gPlatformModuleTokenSpaceGuid.PcdEnableFwuNotify | $(ENABLE_FWU_NOTIFY)
!ifdef $(S3_DEBUG)
gPlatformModuleTokenSpaceGuid.PcdS3DebugEnabled | $(S3_DEBUG)
!endif
gPlatformCommonLibTokenSpaceGuid.PcdSourceDebugEnabled | $(ENABLE_SOURCE_DEBUG)
[PcdsDynamicDefault]
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut | 2
gPlatformCommonLibTokenSpaceGuid.PcdMeasuredBootHashMask | 0x00000002
###############################################################################
##
## Because of some odd behavior with current EDKII build tools,
## putting the !if around the [Section Header] does not work quite right.
## For example, the below will only work when the !if evaluates to false.
## !if $(X64_CONFIG) == TRUE
## [Components.X64]
## !else
## [Components.IA32]
## !endif
## !include Path/to/file.dsc
##
## This is needed since Components sections must specify and Arch (ie no Common)
###############################################################################
[Components]
#
# SEC
#
BootloaderCorePkg/PcdData/PcdData.inf
BootloaderCorePkg/Stage1A/Stage1A.inf {
gPlatformCommonLibTokenSpaceGuid.PcdMinDecompression | TRUE
gPlatformCommonLibTokenSpaceGuid.PcdForceToInitSerialPort | TRUE
FspApiLib | BootloaderCorePkg/Library/FspApiLib/FsptApiLib.inf
BaseMemoryLib| MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf
SocInitLib | $(SOC_INIT_STAGE1A_LIB_INF_FILE)
BoardInitLib | $(BRD_INIT_STAGE1A_LIB_INF_FILE)
!if $(SKIP_STAGE1A_SOURCE_DEBUG)
DebugAgentLib| BootloaderCommonPkg/Library/DebugAgentLib/DebugAgentLibNull.inf
!endif
}
BootloaderCorePkg/Stage1B/Stage1B.inf {
FspApiLib | BootloaderCorePkg/Library/FspApiLib/FspmApiLib.inf
BaseMemoryLib | MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf
FirmwareResiliencyLib | BootloaderCorePkg/Library/FirmwareResiliencyLib/FirmwareResiliencyLib.inf
SocInitLib | $(SOC_INIT_STAGE1B_LIB_INF_FILE)
BoardInitLib | $(BRD_INIT_STAGE1B_LIB_INF_FILE)
}
BootloaderCorePkg/Stage2/Stage2.inf {
FspApiLib | BootloaderCorePkg/Library/FspApiLib/FspsApiLib.inf
SocInitLib | $(SOC_INIT_STAGE2_LIB_INF_FILE)
BoardInitLib | $(BRD_INIT_STAGE2_LIB_INF_FILE)
}
PayloadPkg/OsLoader/OsLoader.inf {
gPlatformCommonLibTokenSpaceGuid.PcdDebugOutputDeviceMask | $(DEBUG_OUTPUT_DEVICE_MASK)
MemoryAllocationLib | BootloaderCommonPkg/Library/FullMemoryAllocationLib/FullMemoryAllocationLib.inf
PayloadEntryLib | PayloadPkg/Library/PayloadEntryLib/PayloadEntryLib.inf
PayloadSupportLib | PayloadPkg/Library/PayloadSupportLib/PayloadSupportLib.inf
BootloaderLib | PayloadPkg/Library/PayloadLib/PayloadLib.inf
PlatformHookLib | PayloadPkg/Library/PlatformHookLib/PlatformHookLib.inf
AbSupportLib | PayloadPkg/Library/AbSupportLib/AbSupportLib.inf
SblParameterLib | PayloadPkg/Library/SblParameterLib/SblParameterLib.inf
MpServiceLib | PayloadPkg/Library/MpServiceLib/MpServiceLib.inf
}
!if $(ENABLE_FWU)
PayloadPkg/FirmwareUpdate/FirmwareUpdate.inf {
gPlatformCommonLibTokenSpaceGuid.PcdDebugOutputDeviceMask | $(DEBUG_OUTPUT_DEVICE_MASK)
gPlatformCommonLibTokenSpaceGuid.PcdConsoleOutDeviceMask | ($(CONSOLE_OUT_DEVICE_MASK) + 0x02)
MemoryAllocationLib | BootloaderCommonPkg/Library/FullMemoryAllocationLib/FullMemoryAllocationLib.inf
PayloadEntryLib | PayloadPkg/Library/PayloadEntryLib/PayloadEntryLib.inf
PayloadSupportLib | PayloadPkg/Library/PayloadSupportLib/PayloadSupportLib.inf
BootloaderLib | PayloadPkg/Library/PayloadLib/PayloadLib.inf
PlatformHookLib | PayloadPkg/Library/PlatformHookLib/PlatformHookLib.inf
FirmwareUpdateLib | $(SOC_FWU_LIB_INF_FILE)
}
!endif
!if $(BUILD_CSME_UPDATE_DRIVER)
PayloadPkg/CsmeUpdateDriver/CsmeUpdateDriver.inf
!endif
!if $(HAVE_ACPI_TABLE)
$(ACPI_TABLE_INF_FILE)
!endif
!if $(UCODE_SIZE) > 0
!if $(UCODE_SLOT_SIZE) > 0
$(MICROCODE_INF_FILE) {
*_*_*_GENFW_FLAGS = --align $(UCODE_SLOT_SIZE)
}
!else
$(MICROCODE_INF_FILE)
!endif
!endif
[BuildOptions.Common.EDKII]
# Enable link-time optimization when building with GCC49
*_GCC49_IA32_CC_FLAGS = -flto
*_GCC49_IA32_DLINK_FLAGS = -flto
*_GCC5_IA32_CC_FLAGS = -fno-pic
*_GCC5_IA32_DLINK_FLAGS = -no-pie
*_GCC5_IA32_ASLCC_FLAGS = -fno-pic
*_GCC5_IA32_ASLDLINK_FLAGS = -no-pie
# Force synchronous PDB writes for parallel builds
*_VS2015x86_IA32_CC_FLAGS = /FS
*_XCODE5_IA32_CC_FLAGS = -flto
*_*_*_CC_FLAGS = -DDISABLE_NEW_DEPRECATED_INTERFACES
!if $(TARGET) == RELEASE
*_*_*_CC_FLAGS = -DLITE_PRINT
!endif
!if $(TARGET) == NOOPT
# GCC: -O0 results in too big size. Override it to -O1 with lto
*_GCC49_*_CC_FLAGS = -O1
*_GCC49_*_DLINK_FLAGS = -O1
*_GCC5_*_CC_FLAGS = -flto -O1
*_GCC5_*_DLINK_FLAGS = -flto -O1
# VS: Use default /Od for now
!endif
MSFT:*_*_X64_DLINK_FLAGS = /ALIGN:64