You've already forked slimbootloader
mirror of
https://github.com/Dasharo/slimbootloader.git
synced 2026-03-06 15:26:20 -08:00
9cf145bf57
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>
282 lines
8.3 KiB
Plaintext
Executable File
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
|
|
}
|