]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc
mv OvmfPkg: move fdf include snippets to Include/Fdf
[mirror_edk2.git] / OvmfPkg / Include / Fdf / OvmfPkgDefines.fdf.inc
diff --git a/OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc b/OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc
new file mode 100644 (file)
index 0000000..6170c59
--- /dev/null
@@ -0,0 +1,106 @@
+## @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