From 1ef86f12014c19e7bd6b2f008e868c61b5c71878 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Fri, 9 Dec 2022 21:03:48 +0800 Subject: mv OvmfPkg: move fdf include snippets to Include/Fdf Signed-off-by: Gerd Hoffmann Reviewed-by: Jiewen Yao --- OvmfPkg/AmdSev/AmdSevX64.fdf | 6 +- OvmfPkg/Bhyve/BhyveX64.fdf | 6 +- OvmfPkg/CloudHv/CloudHvX64.fdf | 2 +- OvmfPkg/FvmainCompactScratchEnd.fdf.inc | 70 ------------- .../Include/Fdf/FvmainCompactScratchEnd.fdf.inc | 70 +++++++++++++ OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc | 106 +++++++++++++++++++ OvmfPkg/Include/Fdf/VarStore.fdf.inc | 115 +++++++++++++++++++++ OvmfPkg/Include/Fdf/XenElfHeader.fdf.inc | 42 ++++++++ OvmfPkg/Include/WorkArea.h | 2 +- OvmfPkg/IntelTdx/IntelTdxX64.fdf | 8 +- OvmfPkg/Microvm/MicrovmX64.fdf | 6 +- OvmfPkg/OvmfPkgDefines.fdf.inc | 106 ------------------- OvmfPkg/OvmfPkgIa32.fdf | 8 +- OvmfPkg/OvmfPkgIa32X64.fdf | 8 +- OvmfPkg/OvmfPkgX64.fdf | 8 +- OvmfPkg/OvmfXen.fdf | 8 +- OvmfPkg/Sec/AmdSev.c | 2 +- OvmfPkg/Sec/AmdSev.h | 2 +- OvmfPkg/VarStore.fdf.inc | 115 --------------------- OvmfPkg/XenElfHeader.fdf.inc | 42 -------- 20 files changed, 366 insertions(+), 366 deletions(-) delete mode 100644 OvmfPkg/FvmainCompactScratchEnd.fdf.inc create mode 100644 OvmfPkg/Include/Fdf/FvmainCompactScratchEnd.fdf.inc create mode 100644 OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc create mode 100644 OvmfPkg/Include/Fdf/VarStore.fdf.inc create mode 100644 OvmfPkg/Include/Fdf/XenElfHeader.fdf.inc delete mode 100644 OvmfPkg/OvmfPkgDefines.fdf.inc delete mode 100644 OvmfPkg/VarStore.fdf.inc delete mode 100644 OvmfPkg/XenElfHeader.fdf.inc diff --git a/OvmfPkg/AmdSev/AmdSevX64.fdf b/OvmfPkg/AmdSev/AmdSevX64.fdf index 4658e1d30e..5fb3b5d276 100644 --- a/OvmfPkg/AmdSev/AmdSevX64.fdf +++ b/OvmfPkg/AmdSev/AmdSevX64.fdf @@ -11,7 +11,7 @@ ################################################################################ [Defines] -!include OvmfPkg/OvmfPkgDefines.fdf.inc +!include OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc # # Build the variable store and the firmware code as one unified flash device @@ -24,7 +24,7 @@ ErasePolarity = 1 BlockSize = $(BLOCK_SIZE) NumBlocks = $(FW_BLOCKS) -!include OvmfPkg/VarStore.fdf.inc +!include OvmfPkg/Include/Fdf/VarStore.fdf.inc $(VARS_SIZE)|$(FVMAIN_SIZE) FV = FVMAIN_COMPACT @@ -351,7 +351,7 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { } } -!include OvmfPkg/FvmainCompactScratchEnd.fdf.inc +!include OvmfPkg/Include/Fdf/FvmainCompactScratchEnd.fdf.inc ################################################################################ diff --git a/OvmfPkg/Bhyve/BhyveX64.fdf b/OvmfPkg/Bhyve/BhyveX64.fdf index e8227f865f..153b3cfeba 100644 --- a/OvmfPkg/Bhyve/BhyveX64.fdf +++ b/OvmfPkg/Bhyve/BhyveX64.fdf @@ -24,7 +24,7 @@ ErasePolarity = 1 BlockSize = $(BLOCK_SIZE) NumBlocks = $(FW_BLOCKS) -!include VarStore.fdf.inc +!include OvmfPkg/Include/Fdf/VarStore.fdf.inc $(VARS_SIZE)|$(FVMAIN_SIZE) FV = FVMAIN_COMPACT @@ -43,7 +43,7 @@ ErasePolarity = 1 BlockSize = $(BLOCK_SIZE) NumBlocks = $(VARS_BLOCKS) -!include VarStore.fdf.inc +!include OvmfPkg/Include/Fdf/VarStore.fdf.inc [FD.BHYVE_CODE] BaseAddress = $(CODE_BASE_ADDRESS) @@ -368,7 +368,7 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { } } -!include FvmainCompactScratchEnd.fdf.inc +!include OvmfPkg/Include/Fdf/FvmainCompactScratchEnd.fdf.inc ################################################################################ diff --git a/OvmfPkg/CloudHv/CloudHvX64.fdf b/OvmfPkg/CloudHv/CloudHvX64.fdf index a41a553693..0d13d4066d 100644 --- a/OvmfPkg/CloudHv/CloudHvX64.fdf +++ b/OvmfPkg/CloudHv/CloudHvX64.fdf @@ -378,7 +378,7 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { } } -!include OvmfPkg/FvmainCompactScratchEnd.fdf.inc +!include OvmfPkg/Include/Fdf/FvmainCompactScratchEnd.fdf.inc ################################################################################ diff --git a/OvmfPkg/FvmainCompactScratchEnd.fdf.inc b/OvmfPkg/FvmainCompactScratchEnd.fdf.inc deleted file mode 100644 index d8d45fc9aa..0000000000 --- a/OvmfPkg/FvmainCompactScratchEnd.fdf.inc +++ /dev/null @@ -1,70 +0,0 @@ -## @file -# This FDF include file computes the end of the scratch buffer used in -# DecompressMemFvs() [OvmfPkg/Sec/SecMain.c]. It is based on the decompressed -# (ie. original) size of the LZMA-compressed section of the one FFS file in -# the FVMAIN_COMPACT firmware volume. -# -# Copyright (C) 2015, Red Hat, Inc. -# -# SPDX-License-Identifier: BSD-2-Clause-Patent -## - -# The GUID EE4E5898-3914-4259-9D6E-DC7BD79403CF means "LzmaCustomDecompress". -# The decompressed output will have the following structure (see the file -# "9E21FD93-9C72-4c15-8C4B-E77F1DB2D792SEC1.guided.dummy" in the -# Build/Ovmf*/*/FV/Ffs/9E21FD93-9C72-4c15-8C4B-E77F1DB2D792/ directory): -# -# Size Contents -# ------------------- -------------------------------------------------------- -# 4 EFI_COMMON_SECTION_HEADER, stating size 124 (0x7C) and -# type 0x19 (EFI_SECTION_RAW). The purpose of this section -# is to pad the start of PEIFV to 128 bytes. -# 120 Zero bytes (padding). -# -# 4 EFI_COMMON_SECTION_HEADER, stating size -# (PcdOvmfPeiMemFvSize + 4), and type 0x17 -# (EFI_SECTION_FIRMWARE_VOLUME_IMAGE). -# PcdOvmfPeiMemFvSize PEIFV. Note that the above sizes pad the offset of this -# object to 128 bytes. See also the "guided.dummy.txt" -# file in the same directory. -# -# 4 EFI_COMMON_SECTION_HEADER, stating size 12 (0xC) and -# type 0x19 (EFI_SECTION_RAW). The purpose of this section -# is to pad the start of DXEFV to 16 bytes. -# 8 Zero bytes (padding). -# -# 4 EFI_COMMON_SECTION_HEADER, stating size -# (PcdOvmfDxeMemFvSize + 4), and type 0x17 -# (EFI_SECTION_FIRMWARE_VOLUME_IMAGE). -# PcdOvmfDxeMemFvSize DXEFV. Note that the above sizes pad the offset of this -# object to 16 bytes. See also the "guided.dummy.txt" file -# in the same directory. -# -# The total size after decompression is (128 + PcdOvmfPeiMemFvSize + 16 + -# PcdOvmfDxeMemFvSize). - -DEFINE OUTPUT_SIZE = (128 + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize + 16 + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize) - -# LzmaCustomDecompressLib uses a constant scratch buffer size of 64KB; see -# SCRATCH_BUFFER_REQUEST_SIZE in -# "MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaDecompress.c". - -DEFINE DECOMP_SCRATCH_SIZE = 0x00010000 - -# Note: when we use PcdOvmfDxeMemFvBase in this context, BaseTools have not yet -# offset it with MEMFD's base address. For that reason we have to do it manually. -# -# The calculation below mirrors DecompressMemFvs() [OvmfPkg/Sec/SecMain.c]. - -DEFINE OUTPUT_BASE = ($(MEMFD_BASE_ADDRESS) + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase + 0x00100000) -DEFINE DECOMP_SCRATCH_BASE_UNALIGNED = ($(OUTPUT_BASE) + $(OUTPUT_SIZE)) -DEFINE DECOMP_SCRATCH_BASE_ALIGNMENT = 0x000FFFFF -DEFINE DECOMP_SCRATCH_BASE_MASK = 0xFFF00000 -DEFINE DECOMP_SCRATCH_BASE = (($(DECOMP_SCRATCH_BASE_UNALIGNED) + $(DECOMP_SCRATCH_BASE_ALIGNMENT)) & $(DECOMP_SCRATCH_BASE_MASK)) - -SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDecompressionScratchEnd = $(DECOMP_SCRATCH_BASE) + $(DECOMP_SCRATCH_SIZE) - -# -# The range of pages that should be pre-validated during the SEC phase when SEV-SNP is active in the guest VM. -SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecValidatedStart = $(MEMFD_BASE_ADDRESS) + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase -SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecValidatedEnd = $(DECOMP_SCRATCH_BASE) + $(DECOMP_SCRATCH_SIZE) diff --git a/OvmfPkg/Include/Fdf/FvmainCompactScratchEnd.fdf.inc b/OvmfPkg/Include/Fdf/FvmainCompactScratchEnd.fdf.inc new file mode 100644 index 0000000000..d8d45fc9aa --- /dev/null +++ b/OvmfPkg/Include/Fdf/FvmainCompactScratchEnd.fdf.inc @@ -0,0 +1,70 @@ +## @file +# This FDF include file computes the end of the scratch buffer used in +# DecompressMemFvs() [OvmfPkg/Sec/SecMain.c]. It is based on the decompressed +# (ie. original) size of the LZMA-compressed section of the one FFS file in +# the FVMAIN_COMPACT firmware volume. +# +# Copyright (C) 2015, Red Hat, Inc. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +## + +# The GUID EE4E5898-3914-4259-9D6E-DC7BD79403CF means "LzmaCustomDecompress". +# The decompressed output will have the following structure (see the file +# "9E21FD93-9C72-4c15-8C4B-E77F1DB2D792SEC1.guided.dummy" in the +# Build/Ovmf*/*/FV/Ffs/9E21FD93-9C72-4c15-8C4B-E77F1DB2D792/ directory): +# +# Size Contents +# ------------------- -------------------------------------------------------- +# 4 EFI_COMMON_SECTION_HEADER, stating size 124 (0x7C) and +# type 0x19 (EFI_SECTION_RAW). The purpose of this section +# is to pad the start of PEIFV to 128 bytes. +# 120 Zero bytes (padding). +# +# 4 EFI_COMMON_SECTION_HEADER, stating size +# (PcdOvmfPeiMemFvSize + 4), and type 0x17 +# (EFI_SECTION_FIRMWARE_VOLUME_IMAGE). +# PcdOvmfPeiMemFvSize PEIFV. Note that the above sizes pad the offset of this +# object to 128 bytes. See also the "guided.dummy.txt" +# file in the same directory. +# +# 4 EFI_COMMON_SECTION_HEADER, stating size 12 (0xC) and +# type 0x19 (EFI_SECTION_RAW). The purpose of this section +# is to pad the start of DXEFV to 16 bytes. +# 8 Zero bytes (padding). +# +# 4 EFI_COMMON_SECTION_HEADER, stating size +# (PcdOvmfDxeMemFvSize + 4), and type 0x17 +# (EFI_SECTION_FIRMWARE_VOLUME_IMAGE). +# PcdOvmfDxeMemFvSize DXEFV. Note that the above sizes pad the offset of this +# object to 16 bytes. See also the "guided.dummy.txt" file +# in the same directory. +# +# The total size after decompression is (128 + PcdOvmfPeiMemFvSize + 16 + +# PcdOvmfDxeMemFvSize). + +DEFINE OUTPUT_SIZE = (128 + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize + 16 + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize) + +# LzmaCustomDecompressLib uses a constant scratch buffer size of 64KB; see +# SCRATCH_BUFFER_REQUEST_SIZE in +# "MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaDecompress.c". + +DEFINE DECOMP_SCRATCH_SIZE = 0x00010000 + +# Note: when we use PcdOvmfDxeMemFvBase in this context, BaseTools have not yet +# offset it with MEMFD's base address. For that reason we have to do it manually. +# +# The calculation below mirrors DecompressMemFvs() [OvmfPkg/Sec/SecMain.c]. + +DEFINE OUTPUT_BASE = ($(MEMFD_BASE_ADDRESS) + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase + 0x00100000) +DEFINE DECOMP_SCRATCH_BASE_UNALIGNED = ($(OUTPUT_BASE) + $(OUTPUT_SIZE)) +DEFINE DECOMP_SCRATCH_BASE_ALIGNMENT = 0x000FFFFF +DEFINE DECOMP_SCRATCH_BASE_MASK = 0xFFF00000 +DEFINE DECOMP_SCRATCH_BASE = (($(DECOMP_SCRATCH_BASE_UNALIGNED) + $(DECOMP_SCRATCH_BASE_ALIGNMENT)) & $(DECOMP_SCRATCH_BASE_MASK)) + +SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDecompressionScratchEnd = $(DECOMP_SCRATCH_BASE) + $(DECOMP_SCRATCH_SIZE) + +# +# The range of pages that should be pre-validated during the SEC phase when SEV-SNP is active in the guest VM. +SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecValidatedStart = $(MEMFD_BASE_ADDRESS) + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase +SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecValidatedEnd = $(DECOMP_SCRATCH_BASE) + $(DECOMP_SCRATCH_SIZE) diff --git a/OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc b/OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc new file mode 100644 index 0000000000..6170c5993c --- /dev/null +++ b/OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc @@ -0,0 +1,106 @@ +## @file +# FDF include file that defines the main macros and sets the dependent PCDs. +# +# Copyright (C) 2014, Red Hat, Inc. +# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
+# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +DEFINE BLOCK_SIZE = 0x1000 +DEFINE VARS_OFFSET = 0 + +# +# A firmware binary built with FD_SIZE_IN_KB=1024, and a firmware binary built +# with FD_SIZE_IN_KB=2048, use the same variable store layout. +# +# Setting FD_SIZE_IN_KB to 4096 results in a different (much larger) variable +# store structure that is incompatible with both of the above-mentioned +# firmware binaries. +# +!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) +DEFINE VARS_SIZE = 0x20000 +DEFINE VARS_BLOCKS = 0x20 +DEFINE VARS_LIVE_SIZE = 0xE000 +DEFINE VARS_SPARE_SIZE = 0x10000 +!endif + +!if $(FD_SIZE_IN_KB) == 1024 +DEFINE FW_BASE_ADDRESS = 0xFFF00000 +DEFINE FW_SIZE = 0x00100000 +DEFINE FW_BLOCKS = 0x100 +DEFINE CODE_BASE_ADDRESS = 0xFFF20000 +DEFINE CODE_SIZE = 0x000E0000 +DEFINE CODE_BLOCKS = 0xE0 +DEFINE FVMAIN_SIZE = 0x000CC000 +DEFINE SECFV_OFFSET = 0x000EC000 +DEFINE SECFV_SIZE = 0x14000 +!endif + +!if $(FD_SIZE_IN_KB) == 2048 +DEFINE FW_BASE_ADDRESS = 0xFFE00000 +DEFINE FW_SIZE = 0x00200000 +DEFINE FW_BLOCKS = 0x200 +DEFINE CODE_BASE_ADDRESS = 0xFFE20000 +DEFINE CODE_SIZE = 0x001E0000 +DEFINE CODE_BLOCKS = 0x1E0 +DEFINE FVMAIN_SIZE = 0x001AC000 +DEFINE SECFV_OFFSET = 0x001CC000 +DEFINE SECFV_SIZE = 0x34000 +!endif + +!if $(FD_SIZE_IN_KB) == 4096 +DEFINE VARS_SIZE = 0x84000 +DEFINE VARS_BLOCKS = 0x84 +DEFINE VARS_LIVE_SIZE = 0x40000 +DEFINE VARS_SPARE_SIZE = 0x42000 + +DEFINE FW_BASE_ADDRESS = 0xFFC00000 +DEFINE FW_SIZE = 0x00400000 +DEFINE FW_BLOCKS = 0x400 +DEFINE CODE_BASE_ADDRESS = 0xFFC84000 +DEFINE CODE_SIZE = 0x0037C000 +DEFINE CODE_BLOCKS = 0x37C +DEFINE FVMAIN_SIZE = 0x00348000 +DEFINE SECFV_OFFSET = 0x003CC000 +DEFINE SECFV_SIZE = 0x34000 +!endif + +SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAddress = $(FW_BASE_ADDRESS) +SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize = $(FW_SIZE) +SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareBlockSize = $(BLOCK_SIZE) + +SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase = $(FW_BASE_ADDRESS) +SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize = $(VARS_LIVE_SIZE) + +SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize +SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogSize = $(BLOCK_SIZE) + +SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogBase + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogSize +SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize = $(BLOCK_SIZE) + +SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwSpareBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize +SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize = $(VARS_SPARE_SIZE) + +# The OVMF WorkArea contains a fixed size header followed by the actual data. +# The size of header is accessed through a fixed PCD in the reset vector code. +# The value need to be kept in sync with the any changes to the Confidential +# Computing Work Area header defined in the Include/WorkArea.h +SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfConfidentialComputingWorkAreaHeader = 4 + +SET gUefiOvmfPkgTokenSpaceGuid.PcdCfvBase = $(FW_BASE_ADDRESS) +SET gUefiOvmfPkgTokenSpaceGuid.PcdCfvRawDataOffset = $(VARS_OFFSET) +SET gUefiOvmfPkgTokenSpaceGuid.PcdCfvRawDataSize = $(VARS_SIZE) + +SET gUefiOvmfPkgTokenSpaceGuid.PcdBfvBase = $(CODE_BASE_ADDRESS) +SET gUefiOvmfPkgTokenSpaceGuid.PcdBfvRawDataOffset = $(VARS_SIZE) +SET gUefiOvmfPkgTokenSpaceGuid.PcdBfvRawDataSize = $(CODE_SIZE) + +!if $(SMM_REQUIRE) == TRUE +SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase +SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase +SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwSpareBase +!endif + +DEFINE MEMFD_BASE_ADDRESS = 0x800000 diff --git a/OvmfPkg/Include/Fdf/VarStore.fdf.inc b/OvmfPkg/Include/Fdf/VarStore.fdf.inc new file mode 100644 index 0000000000..a1e524e393 --- /dev/null +++ b/OvmfPkg/Include/Fdf/VarStore.fdf.inc @@ -0,0 +1,115 @@ +## @file +# FDF include file with Layout Regions that define an empty variable store. +# +# Copyright (C) 2014, Red Hat, Inc. +# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
+# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) +0x00000000|0x0000e000 +!endif +!if $(FD_SIZE_IN_KB) == 4096 +0x00000000|0x00040000 +!endif +#NV_VARIABLE_STORE +DATA = { + ## This is the EFI_FIRMWARE_VOLUME_HEADER + # ZeroVector [] + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + # FileSystemGuid: gEfiSystemNvDataFvGuid = + # { 0xFFF12B8D, 0x7696, 0x4C8B, + # { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }} + 0x8D, 0x2B, 0xF1, 0xFF, 0x96, 0x76, 0x8B, 0x4C, + 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50, +!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) + # FvLength: 0x20000 + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, +!endif +!if $(FD_SIZE_IN_KB) == 4096 + # FvLength: 0x84000 + 0x00, 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, +!endif + # Signature "_FVH" # Attributes + 0x5f, 0x46, 0x56, 0x48, 0xff, 0xfe, 0x04, 0x00, + # HeaderLength + 0x48, 0x00, +!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) + # CheckSum + 0x19, 0xF9, +!endif +!if $(FD_SIZE_IN_KB) == 4096 + # CheckSum + 0xAF, 0xB8, +!endif + # ExtHeaderOffset #Reserved #Revision + 0x00, 0x00, 0x00, 0x02, +!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) + # Blockmap[0]: 0x20 Blocks * 0x1000 Bytes / Block + 0x20, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, +!endif +!if $(FD_SIZE_IN_KB) == 4096 + # Blockmap[0]: 0x84 Blocks * 0x1000 Bytes / Block + 0x84, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, +!endif + # Blockmap[1]: End + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ## This is the VARIABLE_STORE_HEADER + # It is compatible with SECURE_BOOT_ENABLE == FALSE as well. + # Signature: gEfiAuthenticatedVariableGuid = + # { 0xaaf32c78, 0x947b, 0x439a, + # { 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92 }} + 0x78, 0x2c, 0xf3, 0xaa, 0x7b, 0x94, 0x9a, 0x43, + 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92, +!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) + # Size: 0xe000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - + # 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0xdfb8 + # This can speed up the Variable Dispatch a bit. + 0xB8, 0xDF, 0x00, 0x00, +!endif +!if $(FD_SIZE_IN_KB) == 4096 + # Size: 0x40000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - + # 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0x3ffb8 + # This can speed up the Variable Dispatch a bit. + 0xB8, 0xFF, 0x03, 0x00, +!endif + # FORMATTED: 0x5A #HEALTHY: 0xFE #Reserved: UINT16 #Reserved1: UINT32 + 0x5A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +} + +!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) +0x0000e000|0x00001000 +!endif +!if $(FD_SIZE_IN_KB) == 4096 +0x00040000|0x00001000 +!endif +#NV_EVENT_LOG + +!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) +0x0000f000|0x00001000 +!endif +!if $(FD_SIZE_IN_KB) == 4096 +0x00041000|0x00001000 +!endif +#NV_FTW_WORKING +DATA = { + # EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature = gEdkiiWorkingBlockSignatureGuid = + # { 0x9e58292b, 0x7c68, 0x497d, { 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, 0x1b, 0x95 }} + 0x2b, 0x29, 0x58, 0x9e, 0x68, 0x7c, 0x7d, 0x49, + 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, 0x1b, 0x95, + # Crc:UINT32 #WorkingBlockValid:1, WorkingBlockInvalid:1, Reserved + 0x2c, 0xaf, 0x2c, 0x64, 0xFE, 0xFF, 0xFF, 0xFF, + # WriteQueueSize: UINT64 + 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +} + +!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) +0x00010000|0x00010000 +!endif +!if $(FD_SIZE_IN_KB) == 4096 +0x00042000|0x00042000 +!endif +#NV_FTW_SPARE diff --git a/OvmfPkg/Include/Fdf/XenElfHeader.fdf.inc b/OvmfPkg/Include/Fdf/XenElfHeader.fdf.inc new file mode 100644 index 0000000000..c4f04ad28b --- /dev/null +++ b/OvmfPkg/Include/Fdf/XenElfHeader.fdf.inc @@ -0,0 +1,42 @@ +## @file +# FDF include file that defines a PVH ELF header. +# +# Copyright (c) 2022, Intel Corporation. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +DATA = { + # ELF file header + 0x7f, 0x45, 0x4c, 0x46, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xd0, 0xff, 0x2f, 0x00, # hdr.e_entry + 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + # ELF Program segment headers + # - Load segment + 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x20, 0x00, + 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + # - ELFNOTE segment + 0x04, 0x00, 0x00, 0x00, + 0x74, 0x00, 0x00, 0x00, + 0x74, 0x00, 0x10, 0x00, + 0x74, 0x00, 0x10, 0x00, + 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + + # XEN_ELFNOTE_PHYS32_ENTRY + 0x04, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, + 0x58, 0x65, 0x6e, 0x00, + 0xd0, 0xff, 0x2f, 0x00 +} diff --git a/OvmfPkg/Include/WorkArea.h b/OvmfPkg/Include/WorkArea.h index bf56fc4a6f..6c3702b716 100644 --- a/OvmfPkg/Include/WorkArea.h +++ b/OvmfPkg/Include/WorkArea.h @@ -21,7 +21,7 @@ // sizeof (CONFIDENTIAL_COMPUTING_WORK_AREA_HEADER) // PcdOvmfConfidentialComputingWorkAreaHeader defined in: // OvmfPkg/OvmfPkg.dec -// OvmfPkg/OvmfPkgDefines.fdf.inc +// OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc typedef struct _CONFIDENTIAL_COMPUTING_WORK_AREA_HEADER { UINT8 GuestType; UINT8 Reserved1[3]; diff --git a/OvmfPkg/IntelTdx/IntelTdxX64.fdf b/OvmfPkg/IntelTdx/IntelTdxX64.fdf index 6923eb8831..e79ad3e102 100644 --- a/OvmfPkg/IntelTdx/IntelTdxX64.fdf +++ b/OvmfPkg/IntelTdx/IntelTdxX64.fdf @@ -11,7 +11,7 @@ ################################################################################ [Defines] -!include OvmfPkg/OvmfPkgDefines.fdf.inc +!include OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc # # Build the variable store and the firmware code as one unified flash device @@ -24,7 +24,7 @@ ErasePolarity = 1 BlockSize = $(BLOCK_SIZE) NumBlocks = $(FW_BLOCKS) -!include OvmfPkg/VarStore.fdf.inc +!include OvmfPkg/Include/Fdf/VarStore.fdf.inc $(VARS_SIZE)|$(FVMAIN_SIZE) FV = FVMAIN_COMPACT @@ -43,7 +43,7 @@ ErasePolarity = 1 BlockSize = $(BLOCK_SIZE) NumBlocks = $(VARS_BLOCKS) -!include OvmfPkg/VarStore.fdf.inc +!include OvmfPkg/Include/Fdf/VarStore.fdf.inc [FD.OVMF_CODE] BaseAddress = $(CODE_BASE_ADDRESS) @@ -332,7 +332,7 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { } } -# !include OvmfPkg/FvmainCompactScratchEnd.fdf.inc +# !include OvmfPkg/Include/Fdf/FvmainCompactScratchEnd.fdf.inc ################################################################################ diff --git a/OvmfPkg/Microvm/MicrovmX64.fdf b/OvmfPkg/Microvm/MicrovmX64.fdf index 380ba3a368..b83fd1e6e4 100644 --- a/OvmfPkg/Microvm/MicrovmX64.fdf +++ b/OvmfPkg/Microvm/MicrovmX64.fdf @@ -11,7 +11,7 @@ ################################################################################ [Defines] -!include OvmfPkg/OvmfPkgDefines.fdf.inc +!include OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc # # Build the variable store and the firmware code as one unified flash device @@ -24,7 +24,7 @@ ErasePolarity = 1 BlockSize = $(BLOCK_SIZE) NumBlocks = $(FW_BLOCKS) -!include OvmfPkg/VarStore.fdf.inc +!include OvmfPkg/Include/Fdf/VarStore.fdf.inc $(VARS_SIZE)|$(FVMAIN_SIZE) FV = FVMAIN_COMPACT @@ -335,7 +335,7 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { } } -!include OvmfPkg/FvmainCompactScratchEnd.fdf.inc +!include OvmfPkg/Include/Fdf/FvmainCompactScratchEnd.fdf.inc ################################################################################ diff --git a/OvmfPkg/OvmfPkgDefines.fdf.inc b/OvmfPkg/OvmfPkgDefines.fdf.inc deleted file mode 100644 index 6170c5993c..0000000000 --- a/OvmfPkg/OvmfPkgDefines.fdf.inc +++ /dev/null @@ -1,106 +0,0 @@ -## @file -# FDF include file that defines the main macros and sets the dependent PCDs. -# -# Copyright (C) 2014, Red Hat, Inc. -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
-# -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - -DEFINE BLOCK_SIZE = 0x1000 -DEFINE VARS_OFFSET = 0 - -# -# A firmware binary built with FD_SIZE_IN_KB=1024, and a firmware binary built -# with FD_SIZE_IN_KB=2048, use the same variable store layout. -# -# Setting FD_SIZE_IN_KB to 4096 results in a different (much larger) variable -# store structure that is incompatible with both of the above-mentioned -# firmware binaries. -# -!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) -DEFINE VARS_SIZE = 0x20000 -DEFINE VARS_BLOCKS = 0x20 -DEFINE VARS_LIVE_SIZE = 0xE000 -DEFINE VARS_SPARE_SIZE = 0x10000 -!endif - -!if $(FD_SIZE_IN_KB) == 1024 -DEFINE FW_BASE_ADDRESS = 0xFFF00000 -DEFINE FW_SIZE = 0x00100000 -DEFINE FW_BLOCKS = 0x100 -DEFINE CODE_BASE_ADDRESS = 0xFFF20000 -DEFINE CODE_SIZE = 0x000E0000 -DEFINE CODE_BLOCKS = 0xE0 -DEFINE FVMAIN_SIZE = 0x000CC000 -DEFINE SECFV_OFFSET = 0x000EC000 -DEFINE SECFV_SIZE = 0x14000 -!endif - -!if $(FD_SIZE_IN_KB) == 2048 -DEFINE FW_BASE_ADDRESS = 0xFFE00000 -DEFINE FW_SIZE = 0x00200000 -DEFINE FW_BLOCKS = 0x200 -DEFINE CODE_BASE_ADDRESS = 0xFFE20000 -DEFINE CODE_SIZE = 0x001E0000 -DEFINE CODE_BLOCKS = 0x1E0 -DEFINE FVMAIN_SIZE = 0x001AC000 -DEFINE SECFV_OFFSET = 0x001CC000 -DEFINE SECFV_SIZE = 0x34000 -!endif - -!if $(FD_SIZE_IN_KB) == 4096 -DEFINE VARS_SIZE = 0x84000 -DEFINE VARS_BLOCKS = 0x84 -DEFINE VARS_LIVE_SIZE = 0x40000 -DEFINE VARS_SPARE_SIZE = 0x42000 - -DEFINE FW_BASE_ADDRESS = 0xFFC00000 -DEFINE FW_SIZE = 0x00400000 -DEFINE FW_BLOCKS = 0x400 -DEFINE CODE_BASE_ADDRESS = 0xFFC84000 -DEFINE CODE_SIZE = 0x0037C000 -DEFINE CODE_BLOCKS = 0x37C -DEFINE FVMAIN_SIZE = 0x00348000 -DEFINE SECFV_OFFSET = 0x003CC000 -DEFINE SECFV_SIZE = 0x34000 -!endif - -SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAddress = $(FW_BASE_ADDRESS) -SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize = $(FW_SIZE) -SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareBlockSize = $(BLOCK_SIZE) - -SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase = $(FW_BASE_ADDRESS) -SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize = $(VARS_LIVE_SIZE) - -SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize -SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogSize = $(BLOCK_SIZE) - -SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogBase + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogSize -SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize = $(BLOCK_SIZE) - -SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwSpareBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize -SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize = $(VARS_SPARE_SIZE) - -# The OVMF WorkArea contains a fixed size header followed by the actual data. -# The size of header is accessed through a fixed PCD in the reset vector code. -# The value need to be kept in sync with the any changes to the Confidential -# Computing Work Area header defined in the Include/WorkArea.h -SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfConfidentialComputingWorkAreaHeader = 4 - -SET gUefiOvmfPkgTokenSpaceGuid.PcdCfvBase = $(FW_BASE_ADDRESS) -SET gUefiOvmfPkgTokenSpaceGuid.PcdCfvRawDataOffset = $(VARS_OFFSET) -SET gUefiOvmfPkgTokenSpaceGuid.PcdCfvRawDataSize = $(VARS_SIZE) - -SET gUefiOvmfPkgTokenSpaceGuid.PcdBfvBase = $(CODE_BASE_ADDRESS) -SET gUefiOvmfPkgTokenSpaceGuid.PcdBfvRawDataOffset = $(VARS_SIZE) -SET gUefiOvmfPkgTokenSpaceGuid.PcdBfvRawDataSize = $(CODE_SIZE) - -!if $(SMM_REQUIRE) == TRUE -SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase -SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase -SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwSpareBase -!endif - -DEFINE MEMFD_BASE_ADDRESS = 0x800000 diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf index 7023ade8ce..72bce02cab 100644 --- a/OvmfPkg/OvmfPkgIa32.fdf +++ b/OvmfPkg/OvmfPkgIa32.fdf @@ -11,7 +11,7 @@ ################################################################################ [Defines] -!include OvmfPkgDefines.fdf.inc +!include OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc # # Build the variable store and the firmware code as one unified flash device @@ -24,7 +24,7 @@ ErasePolarity = 1 BlockSize = $(BLOCK_SIZE) NumBlocks = $(FW_BLOCKS) -!include VarStore.fdf.inc +!include OvmfPkg/Include/Fdf/VarStore.fdf.inc $(VARS_SIZE)|$(FVMAIN_SIZE) FV = FVMAIN_COMPACT @@ -43,7 +43,7 @@ ErasePolarity = 1 BlockSize = $(BLOCK_SIZE) NumBlocks = $(VARS_BLOCKS) -!include VarStore.fdf.inc +!include OvmfPkg/Include/Fdf/VarStore.fdf.inc [FD.OVMF_CODE] BaseAddress = $(CODE_BASE_ADDRESS) @@ -410,7 +410,7 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { } } -!include FvmainCompactScratchEnd.fdf.inc +!include OvmfPkg/Include/Fdf/FvmainCompactScratchEnd.fdf.inc ################################################################################ diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf index 80de4fa2c0..576c985ae0 100644 --- a/OvmfPkg/OvmfPkgIa32X64.fdf +++ b/OvmfPkg/OvmfPkgIa32X64.fdf @@ -11,7 +11,7 @@ ################################################################################ [Defines] -!include OvmfPkgDefines.fdf.inc +!include OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc # # Build the variable store and the firmware code as one unified flash device @@ -24,7 +24,7 @@ ErasePolarity = 1 BlockSize = $(BLOCK_SIZE) NumBlocks = $(FW_BLOCKS) -!include VarStore.fdf.inc +!include OvmfPkg/Include/Fdf/VarStore.fdf.inc $(VARS_SIZE)|$(FVMAIN_SIZE) FV = FVMAIN_COMPACT @@ -43,7 +43,7 @@ ErasePolarity = 1 BlockSize = $(BLOCK_SIZE) NumBlocks = $(VARS_BLOCKS) -!include VarStore.fdf.inc +!include OvmfPkg/Include/Fdf/VarStore.fdf.inc [FD.OVMF_CODE] BaseAddress = $(CODE_BASE_ADDRESS) @@ -413,7 +413,7 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { } } -!include FvmainCompactScratchEnd.fdf.inc +!include OvmfPkg/Include/Fdf/FvmainCompactScratchEnd.fdf.inc ################################################################################ diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf index c0f5a1ef3c..c4aa882431 100644 --- a/OvmfPkg/OvmfPkgX64.fdf +++ b/OvmfPkg/OvmfPkgX64.fdf @@ -11,7 +11,7 @@ ################################################################################ [Defines] -!include OvmfPkgDefines.fdf.inc +!include OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc # # Build the variable store and the firmware code as one unified flash device @@ -24,7 +24,7 @@ ErasePolarity = 1 BlockSize = $(BLOCK_SIZE) NumBlocks = $(FW_BLOCKS) -!include VarStore.fdf.inc +!include OvmfPkg/Include/Fdf/VarStore.fdf.inc $(VARS_SIZE)|$(FVMAIN_SIZE) FV = FVMAIN_COMPACT @@ -43,7 +43,7 @@ ErasePolarity = 1 BlockSize = $(BLOCK_SIZE) NumBlocks = $(VARS_BLOCKS) -!include VarStore.fdf.inc +!include OvmfPkg/Include/Fdf/VarStore.fdf.inc [FD.OVMF_CODE] BaseAddress = $(CODE_BASE_ADDRESS) @@ -440,7 +440,7 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { } } -!include FvmainCompactScratchEnd.fdf.inc +!include OvmfPkg/Include/Fdf/FvmainCompactScratchEnd.fdf.inc ################################################################################ diff --git a/OvmfPkg/OvmfXen.fdf b/OvmfPkg/OvmfXen.fdf index 029b7dadcb..8be69338c7 100644 --- a/OvmfPkg/OvmfXen.fdf +++ b/OvmfPkg/OvmfXen.fdf @@ -12,7 +12,7 @@ ################################################################################ [Defines] -!include OvmfPkgDefines.fdf.inc +!include OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc # # This will allow the flash device image to be recognize as an ELF, with first @@ -32,7 +32,7 @@ NumBlocks = $(FW_BLOCKS) 0x00000000|0x00040000 !endif -!include XenElfHeader.fdf.inc +!include OvmfPkg/Include/Fdf/XenElfHeader.fdf.inc !if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) 0x0000e000|0x00001000 @@ -86,7 +86,7 @@ ErasePolarity = 1 BlockSize = $(BLOCK_SIZE) NumBlocks = $(VARS_BLOCKS) -!include VarStore.fdf.inc +!include OvmfPkg/Include/Fdf/VarStore.fdf.inc [FD.OVMF_CODE] BaseAddress = $(CODE_BASE_ADDRESS) @@ -388,7 +388,7 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { } } -!include FvmainCompactScratchEnd.fdf.inc +!include OvmfPkg/Include/Fdf/FvmainCompactScratchEnd.fdf.inc ################################################################################ diff --git a/OvmfPkg/Sec/AmdSev.c b/OvmfPkg/Sec/AmdSev.c index 6af38aaf46..520b125132 100644 --- a/OvmfPkg/Sec/AmdSev.c +++ b/OvmfPkg/Sec/AmdSev.c @@ -284,7 +284,7 @@ SevEsIsEnabled ( /** Validate System RAM used for decompressing the PEI and DXE firmware volumes when SEV-SNP is active. The PCDs SecValidatedStart and SecValidatedEnd are - set in OvmfPkg/FvmainCompactScratchEnd.fdf.inc. + set in OvmfPkg/Include/Fdf/FvmainCompactScratchEnd.fdf.inc. **/ VOID diff --git a/OvmfPkg/Sec/AmdSev.h b/OvmfPkg/Sec/AmdSev.h index dffd2ceb96..f75877096e 100644 --- a/OvmfPkg/Sec/AmdSev.h +++ b/OvmfPkg/Sec/AmdSev.h @@ -71,7 +71,7 @@ SevEsIsEnabled ( /** Validate System RAM used for decompressing the PEI and DXE firmware volumes when SEV-SNP is active. The PCDs SecValidatedStart and SecValidatedEnd are - set in OvmfPkg/FvmainCompactScratchEnd.fdf.inc. + set in OvmfPkg/Include/Fdf/FvmainCompactScratchEnd.fdf.inc. **/ VOID diff --git a/OvmfPkg/VarStore.fdf.inc b/OvmfPkg/VarStore.fdf.inc deleted file mode 100644 index a1e524e393..0000000000 --- a/OvmfPkg/VarStore.fdf.inc +++ /dev/null @@ -1,115 +0,0 @@ -## @file -# FDF include file with Layout Regions that define an empty variable store. -# -# Copyright (C) 2014, Red Hat, Inc. -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
-# -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - -!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) -0x00000000|0x0000e000 -!endif -!if $(FD_SIZE_IN_KB) == 4096 -0x00000000|0x00040000 -!endif -#NV_VARIABLE_STORE -DATA = { - ## This is the EFI_FIRMWARE_VOLUME_HEADER - # ZeroVector [] - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - # FileSystemGuid: gEfiSystemNvDataFvGuid = - # { 0xFFF12B8D, 0x7696, 0x4C8B, - # { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }} - 0x8D, 0x2B, 0xF1, 0xFF, 0x96, 0x76, 0x8B, 0x4C, - 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50, -!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) - # FvLength: 0x20000 - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, -!endif -!if $(FD_SIZE_IN_KB) == 4096 - # FvLength: 0x84000 - 0x00, 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, -!endif - # Signature "_FVH" # Attributes - 0x5f, 0x46, 0x56, 0x48, 0xff, 0xfe, 0x04, 0x00, - # HeaderLength - 0x48, 0x00, -!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) - # CheckSum - 0x19, 0xF9, -!endif -!if $(FD_SIZE_IN_KB) == 4096 - # CheckSum - 0xAF, 0xB8, -!endif - # ExtHeaderOffset #Reserved #Revision - 0x00, 0x00, 0x00, 0x02, -!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) - # Blockmap[0]: 0x20 Blocks * 0x1000 Bytes / Block - 0x20, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, -!endif -!if $(FD_SIZE_IN_KB) == 4096 - # Blockmap[0]: 0x84 Blocks * 0x1000 Bytes / Block - 0x84, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, -!endif - # Blockmap[1]: End - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - ## This is the VARIABLE_STORE_HEADER - # It is compatible with SECURE_BOOT_ENABLE == FALSE as well. - # Signature: gEfiAuthenticatedVariableGuid = - # { 0xaaf32c78, 0x947b, 0x439a, - # { 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92 }} - 0x78, 0x2c, 0xf3, 0xaa, 0x7b, 0x94, 0x9a, 0x43, - 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92, -!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) - # Size: 0xe000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - - # 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0xdfb8 - # This can speed up the Variable Dispatch a bit. - 0xB8, 0xDF, 0x00, 0x00, -!endif -!if $(FD_SIZE_IN_KB) == 4096 - # Size: 0x40000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - - # 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0x3ffb8 - # This can speed up the Variable Dispatch a bit. - 0xB8, 0xFF, 0x03, 0x00, -!endif - # FORMATTED: 0x5A #HEALTHY: 0xFE #Reserved: UINT16 #Reserved1: UINT32 - 0x5A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -} - -!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) -0x0000e000|0x00001000 -!endif -!if $(FD_SIZE_IN_KB) == 4096 -0x00040000|0x00001000 -!endif -#NV_EVENT_LOG - -!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) -0x0000f000|0x00001000 -!endif -!if $(FD_SIZE_IN_KB) == 4096 -0x00041000|0x00001000 -!endif -#NV_FTW_WORKING -DATA = { - # EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature = gEdkiiWorkingBlockSignatureGuid = - # { 0x9e58292b, 0x7c68, 0x497d, { 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, 0x1b, 0x95 }} - 0x2b, 0x29, 0x58, 0x9e, 0x68, 0x7c, 0x7d, 0x49, - 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, 0x1b, 0x95, - # Crc:UINT32 #WorkingBlockValid:1, WorkingBlockInvalid:1, Reserved - 0x2c, 0xaf, 0x2c, 0x64, 0xFE, 0xFF, 0xFF, 0xFF, - # WriteQueueSize: UINT64 - 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -} - -!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) -0x00010000|0x00010000 -!endif -!if $(FD_SIZE_IN_KB) == 4096 -0x00042000|0x00042000 -!endif -#NV_FTW_SPARE diff --git a/OvmfPkg/XenElfHeader.fdf.inc b/OvmfPkg/XenElfHeader.fdf.inc deleted file mode 100644 index c4f04ad28b..0000000000 --- a/OvmfPkg/XenElfHeader.fdf.inc +++ /dev/null @@ -1,42 +0,0 @@ -## @file -# FDF include file that defines a PVH ELF header. -# -# Copyright (c) 2022, Intel Corporation. All rights reserved. -# -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - -DATA = { - # ELF file header - 0x7f, 0x45, 0x4c, 0x46, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, - 0xd0, 0xff, 0x2f, 0x00, # hdr.e_entry - 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - # ELF Program segment headers - # - Load segment - 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x00, - 0x00, 0x00, 0x10, 0x00, - 0x00, 0x00, 0x20, 0x00, - 0x00, 0x00, 0x20, 0x00, - 0x07, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - # - ELFNOTE segment - 0x04, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x10, 0x00, - 0x74, 0x00, 0x10, 0x00, - 0x14, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - - # XEN_ELFNOTE_PHYS32_ENTRY - 0x04, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, - 0x58, 0x65, 0x6e, 0x00, - 0xd0, 0xff, 0x2f, 0x00 -} -- cgit v1.2.3