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