summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/OvmfPkgIa32.fdf
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2014-07-22 21:57:01 +0000
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>2014-07-22 21:57:01 +0000
commit1c50db8adaf9d5ce071e27a518a46cd363ac5efe (patch)
treeace5a1187cc2c16dd0d4760c2bed9ce20ec3b416 /OvmfPkg/OvmfPkgIa32.fdf
parent1c093f0c3ee8c0fde389faa2e70b596b960912d4 (diff)
downloadedk2-1c50db8adaf9d5ce071e27a518a46cd363ac5efe.tar.gz
edk2-1c50db8adaf9d5ce071e27a518a46cd363ac5efe.tar.bz2
edk2-1c50db8adaf9d5ce071e27a518a46cd363ac5efe.zip
OvmfPkg: build OVMF_VARS.fd, OVMF_CODE.fd, OVMF.fd
OVMF_VARS.fd and OVMF_CODE.fd split the variable store and the firmware code in separate files. The PCDs' values continue to depend only on FD_SIZE_1MB vs. FD_SIZE_2MB. With the split files, it must be ensured on the QEMU command line that OVMF_VARS.fd and OVMF_CODE.fd be contiguously mapped so that they end exactly at 4GB. See QEMU commit 637a5acb (first released in v2.0.0). In this patch we must take care to assign each PCD only once. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15670 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'OvmfPkg/OvmfPkgIa32.fdf')
-rw-r--r--OvmfPkg/OvmfPkgIa32.fdf54
1 files changed, 34 insertions, 20 deletions
diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
index f47655cb62..243cff3762 100644
--- a/OvmfPkg/OvmfPkgIa32.fdf
+++ b/OvmfPkg/OvmfPkgIa32.fdf
@@ -28,38 +28,52 @@ DEFINE FD_SIZE_1MB=
!endif
!endif
-!ifdef $(FD_SIZE_1MB)
-[FD.OVMF]
-BaseAddress = 0xFFF00000|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAddress
-Size = 0x00100000|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize
-ErasePolarity = 1
-BlockSize = 0x1000|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareBlockSize
-NumBlocks = 0x100
-!else
+!include OvmfPkg.fdf.inc
+
+#
+# Build the variable store and the firmware code as one unified flash device
+# image.
+#
[FD.OVMF]
-BaseAddress = 0xFFE00000|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAddress
-Size = 0x00200000|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize
+BaseAddress = $(FW_BASE_ADDRESS)
+Size = $(FW_SIZE)
ErasePolarity = 1
-BlockSize = 0x1000|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareBlockSize
-NumBlocks = 0x200
-!endif
+BlockSize = $(BLOCK_SIZE)
+NumBlocks = $(FW_BLOCKS)
!include VarStore.fdf.inc
-!ifdef $(FD_SIZE_1MB)
-0x00020000|0x000CC000
+$(VARS_SIZE)|$(FVMAIN_SIZE)
FV = FVMAIN_COMPACT
-0x000EC000|0x14000
+$(SECFV_OFFSET)|$(SECFV_SIZE)
FV = SECFV
-!else
-0x00020000|0x001AC000
+#
+# Build the variable store and the firmware code as separate flash device
+# images.
+#
+[FD.OVMF_VARS]
+BaseAddress = $(FW_BASE_ADDRESS)
+Size = $(VARS_SIZE)
+ErasePolarity = 1
+BlockSize = $(BLOCK_SIZE)
+NumBlocks = $(VARS_BLOCKS)
+
+!include VarStore.fdf.inc
+
+[FD.OVMF_CODE]
+BaseAddress = $(CODE_BASE_ADDRESS)
+Size = $(CODE_SIZE)
+ErasePolarity = 1
+BlockSize = $(BLOCK_SIZE)
+NumBlocks = $(CODE_BLOCKS)
+
+0x00000000|$(FVMAIN_SIZE)
FV = FVMAIN_COMPACT
-0x001CC000|0x34000
+$(FVMAIN_SIZE)|$(SECFV_SIZE)
FV = SECFV
-!endif
################################################################################