## @file # FDF file of Platform. # # Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent # ## [Defines] DEFINE FLASH_ERASE_POLARITY = 1 DEFINE FV_DIR = $(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/FV DEFINE ARCH_DIR = $(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/$(ARCH) #------------------------------------------------------------------------------ # STAGE1A FD # STAGE1A_FD_BASE, STAGE1A_FD_SIZE, STAGE1A_FD_NUMBLK #------------------------------------------------------------------------------ [FD.STAGE1A] BaseAddress = $(STAGE1A_FD_BASE) Size = $(STAGE1A_FD_SIZE) BlockSize = $(FLASH_BLOCK_SIZE) NumBlocks = $(STAGE1A_FD_NUMBLK) ErasePolarity = $(FLASH_ERASE_POLARITY) !if $(FSP_T_SIZE) > 0 $(FSP_T_OFFSET) | $(FSP_T_SIZE) FILE = $(FV_DIR)/FSP_T.bin !endif $(STAGE1A_FV_OFFSET) | $(STAGE1A_FV_SIZE) FV = STAGE1A #------------------------------------------------------------------------------ # STAGE1B FD # STAGE1B_FD_BASE, STAGE1B_FD_SIZE, STAGE1B_FD_NUMBLK #------------------------------------------------------------------------------ [FD.STAGE1B] BaseAddress = $(STAGE1B_FD_BASE) Size = $(STAGE1B_FD_SIZE) BlockSize = $(FLASH_BLOCK_SIZE) NumBlocks = $(STAGE1B_FD_NUMBLK) ErasePolarity = $(FLASH_ERASE_POLARITY) $(STAGE1B_FV_OFFSET) | $(STAGE1B_FV_SIZE) FV = STAGE1B !if $(FSP_M_SIZE) > 0 $(FSP_M_OFFSET) | $(FSP_M_SIZE) FILE = $(FV_DIR)/FSP_M.bin !endif #------------------------------------------------------------------------------ # STAGE2 FD #------------------------------------------------------------------------------ [FD.STAGE2] BaseAddress = $(STAGE2_FD_BASE) Size = $(STAGE2_FD_SIZE) BlockSize = $(FLASH_BLOCK_SIZE) NumBlocks = $(STAGE2_FD_NUMBLK) ErasePolarity = $(FLASH_ERASE_POLARITY) $(STAGE2_FV_OFFSET) | $(STAGE2_FV_SIZE) FV = STAGE2 !if $(FSP_S_SIZE) > 0 $(FSP_S_OFFSET) | $(FSP_S_SIZE) FILE = $(FV_DIR)/FSP_S.bin !endif #------------------------------------------------------------------------------ # OsLoader FD #------------------------------------------------------------------------------ [FD.OsLoader] BaseAddress = $(PAYLOAD_EXE_BASE) Size = $(OS_LOADER_FD_SIZE) BlockSize = $(FLASH_BLOCK_SIZE) NumBlocks = $(OS_LOADER_FD_NUMBLK) ErasePolarity = $(FLASH_ERASE_POLARITY) 0x00000000 | $(OS_LOADER_FD_SIZE) FV = OsLoader #------------------------------------------------------------------------------ # STAGE1A FV #------------------------------------------------------------------------------ [FV.STAGE1A] BlockSize = $(FLASH_BLOCK_SIZE) FvAlignment = 16 ERASE_POLARITY = 1 MEMORY_MAPPED = TRUE STICKY_WRITE = TRUE LOCK_CAP = TRUE LOCK_STATUS = TRUE WRITE_DISABLED_CAP = TRUE WRITE_ENABLED_CAP = TRUE WRITE_STATUS = TRUE WRITE_LOCK_CAP = TRUE WRITE_LOCK_STATUS = TRUE READ_DISABLED_CAP = TRUE READ_ENABLED_CAP = TRUE READ_STATUS = TRUE READ_LOCK_CAP = TRUE READ_LOCK_STATUS = TRUE FILE RAW = 3473A022-C3C2-4964-B309-22B3DFB0B6CA { SECTION RAW = $(FV_DIR)/VerInfo.bin } FILE RAW = 3CEA8EF3-95FC-476F-ABA5-7EC5DFA1D77B { SECTION RAW = $(FV_DIR)/FlashMap.bin } !if $(HAVE_FIT_TABLE) FILE RAW = CD17FF5E-7731-4d16-8441-FC7A113C392F { SECTION RAW = $(FV_DIR)/FitTable.bin } !endif !if $(HAVE_VERIFIED_BOOT) FILE RAW = 18EDB1DF-1DBE-4EC5-8E26-C44808B546E1 { SECTION RAW = $(FV_DIR)/HashStore.bin } !endif FILE RAW = EFAC3859-B680-4232-A159-F886F2AE0B83 { SECTION RAW = $(ARCH_DIR)/BootloaderCorePkg/PcdData/PcdData/OUTPUT/PEIPcdDataBase.raw } INF BootloaderCorePkg/Stage1A/Stage1A.inf INF RuleOverride = RESET_VECTOR USE = $(ARCH) BootloaderCorePkg/Stage1A/Ia32/Vtf0/Bin/ResetVector.inf #------------------------------------------------------------------------------ # STAGE1B FV #------------------------------------------------------------------------------ [FV.STAGE1B] FvForceRebase = TRUE BlockSize = $(FLASH_BLOCK_SIZE) FvAlignment = 16 ERASE_POLARITY = 1 MEMORY_MAPPED = TRUE STICKY_WRITE = TRUE LOCK_CAP = TRUE LOCK_STATUS = TRUE WRITE_DISABLED_CAP = TRUE WRITE_ENABLED_CAP = TRUE WRITE_STATUS = TRUE WRITE_LOCK_CAP = TRUE WRITE_LOCK_STATUS = TRUE READ_DISABLED_CAP = TRUE READ_ENABLED_CAP = TRUE READ_STATUS = TRUE READ_LOCK_CAP = TRUE READ_LOCK_STATUS = TRUE INF BootloaderCorePkg/Stage1B/Stage1B.inf FILE FREEFORM = 016E6CD0-4834-4C7E-BCFE-41DFB88A6A6D { SECTION RAW = $(FV_DIR)/CfgDataInt.bin } #------------------------------------------------------------------------------ # STAGE2 FV #------------------------------------------------------------------------------ [FV.STAGE2] BlockSize = $(FLASH_BLOCK_SIZE) FvAlignment = 16 ERASE_POLARITY = 1 MEMORY_MAPPED = TRUE STICKY_WRITE = TRUE LOCK_CAP = TRUE LOCK_STATUS = TRUE WRITE_DISABLED_CAP = TRUE WRITE_ENABLED_CAP = TRUE WRITE_STATUS = TRUE WRITE_LOCK_CAP = TRUE WRITE_LOCK_STATUS = TRUE READ_DISABLED_CAP = TRUE READ_ENABLED_CAP = TRUE READ_STATUS = TRUE READ_LOCK_CAP = TRUE READ_LOCK_STATUS = TRUE INF BootloaderCorePkg/Stage2/Stage2.inf !if $(HAVE_ACPI_TABLE) INF RuleOverride = ACPITABLE $(ACPI_TABLE_INF_FILE) !endif !if $(HAVE_VBT_BIN) FILE FREEFORM = E08CA6D5-8D02-43ae-ABB1-952CC787C933 { SECTION RAW = $(FV_DIR)/Vbt.bin } !endif !if $(ENABLE_SPLASH) FILE FREEFORM = 5E2D3BE9-AD72-4D1D-AAD5-6B08AF921590 { SECTION RAW = $(LOGO_FILE) } !endif #------------------------------------------------------------------------------ # OS Loader Payload as an FV #------------------------------------------------------------------------------ [FV.OsLoader] BlockSize = $(FLASH_BLOCK_SIZE) FvAlignment = 16 ERASE_POLARITY = 1 MEMORY_MAPPED = TRUE STICKY_WRITE = TRUE LOCK_CAP = TRUE LOCK_STATUS = TRUE WRITE_DISABLED_CAP = TRUE WRITE_ENABLED_CAP = TRUE WRITE_STATUS = TRUE WRITE_LOCK_CAP = TRUE WRITE_LOCK_STATUS = TRUE READ_DISABLED_CAP = TRUE READ_ENABLED_CAP = TRUE READ_STATUS = TRUE READ_LOCK_CAP = TRUE READ_LOCK_STATUS = TRUE INF PayloadPkg/OsLoader/OsLoader.inf #------------------------------------------------------------------------------ # FwUpdate FV to make FirmwareUpdate.efi visible to modules #------------------------------------------------------------------------------ [FV.FwUpdate] BlockSize = $(FLASH_BLOCK_SIZE) FvAlignment = 16 ERASE_POLARITY = 1 MEMORY_MAPPED = TRUE STICKY_WRITE = TRUE LOCK_CAP = TRUE LOCK_STATUS = TRUE WRITE_DISABLED_CAP = TRUE WRITE_ENABLED_CAP = TRUE WRITE_STATUS = TRUE WRITE_LOCK_CAP = TRUE WRITE_LOCK_STATUS = TRUE READ_DISABLED_CAP = TRUE READ_ENABLED_CAP = TRUE READ_STATUS = TRUE READ_LOCK_CAP = TRUE READ_LOCK_STATUS = TRUE !if $(ENABLE_FWU) INF PayloadPkg/FirmwareUpdate/FirmwareUpdate.inf !endif ################################################################################ # # Rules are use with the [FV] section's module INF type to define # how an FFS file is created for a given INF file. The following Rule are the default # rules for the different module type. User can add the customized rules to define the # content of the FFS file. # ################################################################################ [Rule.Common.PEIM] FILE PEIM = $(NAMED_GUID) { TE TE Align=16 $(INF_OUTPUT)/$(MODULE_NAME).efi } [Rule.Common.SEC.RESET_VECTOR] FILE RAW = $(NAMED_GUID) { RAW RAW |.raw } [Rule.Common.USER_DEFINED.RAWBIN] FILE RAW = $(NAMED_GUID) { RAW BIN |.acpi } [Rule.Common.USER_DEFINED.ACPITABLE] FILE FREEFORM = $(NAMED_GUID) { RAW ACPI Optional |.acpi RAW ASL Optional |.aml RAW BIN Optional |.bin }