Files
slimbootloader/BootloaderCorePkg/BootloaderCorePkg.fdf
T
Maurice Ma 9cf145bf57 Allow platform to override SOC or board specific inf files
In current SBL BootloaderCorePkg dsc and fdf files, it contains
hard-coded INF file path for SOC or board, such as ACPI INF
file and SOC/Board init library INF file. It makes it hard for
platform to provide its own overriding using different path.
This patch addressed this issue by allowing platform to override
the default paths in BoardConfig.py.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2020-11-13 16:03:39 -08:00

282 lines
8.3 KiB
Plaintext
Executable File

## @file
# FDF file of Platform.
#
# Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.<BR>
# 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
}