Currently, only TPM2 builds enable the PCD PEIM, which is a prerequisite for being able to use dynamic PCDs already at the PEI stage. This facility will be used for other reasons too so move those pieces out of code block that are conditional on TPM2_ENABLE Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Cc: Leif Lindholm <quic_llindhol@quicinc.com> Cc: Sami Mujawar <sami.mujawar@arm.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Committed-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Doug Flick [MSFT] <doug.edk2@gmail.com> Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
128 lines
4.3 KiB
Plaintext
128 lines
4.3 KiB
Plaintext
#
|
|
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
|
# Copyright (c) 2014, Linaro Limited. All rights reserved.
|
|
# Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.
|
|
#
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
|
|
################################################################################
|
|
#
|
|
# FD Section
|
|
# The [FD] Section is made up of the definition statements and a
|
|
# description of what goes into the Flash Device Image. Each FD section
|
|
# defines one flash "device" image. A flash device image may be one of
|
|
# the following: Removable media bootable image (like a boot floppy
|
|
# image,) an Option ROM image (that would be "flashed" into an add-in
|
|
# card,) a System "Flash" image (that would be burned into a system's
|
|
# flash) or an Update ("Capsule") image that will be used to update and
|
|
# existing system flash.
|
|
#
|
|
################################################################################
|
|
|
|
[Defines]
|
|
!if $(FD_SIZE_IN_MB) == 2
|
|
DEFINE FVMAIN_COMPACT_SIZE = 0x1ff000
|
|
!endif
|
|
!if $(FD_SIZE_IN_MB) == 3
|
|
DEFINE FVMAIN_COMPACT_SIZE = 0x2ff000
|
|
!endif
|
|
|
|
[FD.QEMU_EFI]
|
|
BaseAddress = 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress # QEMU assigns 0 - 0x8000000 for a BootROM
|
|
Size = $(FD_SIZE)|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device
|
|
ErasePolarity = 1
|
|
|
|
# This one is tricky, it must be: BlockSize * NumBlocks = Size
|
|
BlockSize = 0x00001000
|
|
NumBlocks = $(FD_NUM_BLOCKS)
|
|
|
|
################################################################################
|
|
#
|
|
# Following are lists of FD Region layout which correspond to the locations of different
|
|
# images within the flash device.
|
|
#
|
|
# Regions must be defined in ascending order and may not overlap.
|
|
#
|
|
# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
|
|
# the pipe "|" character, followed by the size of the region, also in hex with the leading
|
|
# "0x" characters. Like:
|
|
# Offset|Size
|
|
# PcdOffsetCName|PcdSizeCName
|
|
# RegionType <FV, DATA, or FILE>
|
|
#
|
|
################################################################################
|
|
|
|
#
|
|
# UEFI has trouble dealing with FVs that reside at physical address 0x0.
|
|
# So instead, put a hardcoded 'jump to 0x1000' at offset 0x0, and put the
|
|
# real FV at offset 0x1000
|
|
#
|
|
0x00000000|0x00001000
|
|
DATA = {
|
|
!if $(ARCH) == AARCH64
|
|
0x00, 0x04, 0x00, 0x14 # 'b 0x1000' in AArch64 ASM
|
|
!else
|
|
0xfe, 0x03, 0x00, 0xea # 'b 0x1000' in AArch32 ASM
|
|
!endif
|
|
}
|
|
|
|
0x00001000|$(FVMAIN_COMPACT_SIZE)
|
|
gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize
|
|
FV = FVMAIN_COMPACT
|
|
|
|
!include VarStore.fdf.inc
|
|
|
|
################################################################################
|
|
#
|
|
# FV Section
|
|
#
|
|
# [FV] section is used to define what components or modules are placed within a flash
|
|
# device file. This section also defines order the components and modules are positioned
|
|
# within the image. The [FV] section consists of define statements, set statements and
|
|
# module statements.
|
|
#
|
|
################################################################################
|
|
|
|
!include ArmVirtQemuFvMain.fdf.inc
|
|
|
|
[FV.FVMAIN_COMPACT]
|
|
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 ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
|
|
INF MdeModulePkg/Core/Pei/PeiMain.inf
|
|
INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
INF ArmVirtPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
INF ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
|
|
|
|
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
|
!if $(TPM2_ENABLE) == TRUE
|
|
INF MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.inf
|
|
INF OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei.inf
|
|
INF SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.inf
|
|
!endif
|
|
|
|
FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
|
|
SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
|
|
SECTION FV_IMAGE = FVMAIN
|
|
}
|
|
}
|
|
|
|
!include ArmVirtRules.fdf.inc
|