]> git.proxmox.com Git - mirror_edk2.git/blame - OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc
mv OvmfPkg: move fdf include snippets to Include/Fdf
[mirror_edk2.git] / OvmfPkg / Include / Fdf / OvmfPkgDefines.fdf.inc
CommitLineData
1c50db8a
LE
1## @file\r
2# FDF include file that defines the main macros and sets the dependent PCDs.\r
3#\r
4# Copyright (C) 2014, Red Hat, Inc.\r
5# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>\r
6#\r
b26f0cf9 7# SPDX-License-Identifier: BSD-2-Clause-Patent\r
1c50db8a
LE
8#\r
9##\r
10\r
11DEFINE BLOCK_SIZE = 0x1000\r
c9ec74a1 12DEFINE VARS_OFFSET = 0\r
b24fca05
LE
13\r
14#\r
15# A firmware binary built with FD_SIZE_IN_KB=1024, and a firmware binary built\r
16# with FD_SIZE_IN_KB=2048, use the same variable store layout.\r
17#\r
18# Setting FD_SIZE_IN_KB to 4096 results in a different (much larger) variable\r
19# store structure that is incompatible with both of the above-mentioned\r
20# firmware binaries.\r
21#\r
22!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048)\r
1c50db8a
LE
23DEFINE VARS_SIZE = 0x20000\r
24DEFINE VARS_BLOCKS = 0x20\r
636cda51
LE
25DEFINE VARS_LIVE_SIZE = 0xE000\r
26DEFINE VARS_SPARE_SIZE = 0x10000\r
b24fca05 27!endif\r
1c50db8a 28\r
21027073 29!if $(FD_SIZE_IN_KB) == 1024\r
1c50db8a
LE
30DEFINE FW_BASE_ADDRESS = 0xFFF00000\r
31DEFINE FW_SIZE = 0x00100000\r
32DEFINE FW_BLOCKS = 0x100\r
33DEFINE CODE_BASE_ADDRESS = 0xFFF20000\r
34DEFINE CODE_SIZE = 0x000E0000\r
35DEFINE CODE_BLOCKS = 0xE0\r
36DEFINE FVMAIN_SIZE = 0x000CC000\r
37DEFINE SECFV_OFFSET = 0x000EC000\r
38DEFINE SECFV_SIZE = 0x14000\r
21027073 39!endif\r
1c50db8a 40\r
21027073 41!if $(FD_SIZE_IN_KB) == 2048\r
1c50db8a
LE
42DEFINE FW_BASE_ADDRESS = 0xFFE00000\r
43DEFINE FW_SIZE = 0x00200000\r
44DEFINE FW_BLOCKS = 0x200\r
45DEFINE CODE_BASE_ADDRESS = 0xFFE20000\r
46DEFINE CODE_SIZE = 0x001E0000\r
47DEFINE CODE_BLOCKS = 0x1E0\r
48DEFINE FVMAIN_SIZE = 0x001AC000\r
49DEFINE SECFV_OFFSET = 0x001CC000\r
50DEFINE SECFV_SIZE = 0x34000\r
1c50db8a
LE
51!endif\r
52\r
b24fca05
LE
53!if $(FD_SIZE_IN_KB) == 4096\r
54DEFINE VARS_SIZE = 0x84000\r
55DEFINE VARS_BLOCKS = 0x84\r
56DEFINE VARS_LIVE_SIZE = 0x40000\r
57DEFINE VARS_SPARE_SIZE = 0x42000\r
58\r
59DEFINE FW_BASE_ADDRESS = 0xFFC00000\r
60DEFINE FW_SIZE = 0x00400000\r
61DEFINE FW_BLOCKS = 0x400\r
62DEFINE CODE_BASE_ADDRESS = 0xFFC84000\r
63DEFINE CODE_SIZE = 0x0037C000\r
64DEFINE CODE_BLOCKS = 0x37C\r
65DEFINE FVMAIN_SIZE = 0x00348000\r
66DEFINE SECFV_OFFSET = 0x003CC000\r
67DEFINE SECFV_SIZE = 0x34000\r
68!endif\r
69\r
1c50db8a
LE
70SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAddress = $(FW_BASE_ADDRESS)\r
71SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize = $(FW_SIZE)\r
72SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareBlockSize = $(BLOCK_SIZE)\r
73\r
74SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase = $(FW_BASE_ADDRESS)\r
636cda51 75SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize = $(VARS_LIVE_SIZE)\r
1c50db8a
LE
76\r
77SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize\r
78SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogSize = $(BLOCK_SIZE)\r
79\r
80SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogBase + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogSize\r
81SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize = $(BLOCK_SIZE)\r
82\r
83SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwSpareBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize\r
636cda51 84SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize = $(VARS_SPARE_SIZE)\r
9beac0d8 85\r
80e67af9
BS
86# The OVMF WorkArea contains a fixed size header followed by the actual data.\r
87# The size of header is accessed through a fixed PCD in the reset vector code.\r
88# The value need to be kept in sync with the any changes to the Confidential\r
89# Computing Work Area header defined in the Include/WorkArea.h\r
90SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfConfidentialComputingWorkAreaHeader = 4\r
91\r
c9ec74a1
MX
92SET gUefiOvmfPkgTokenSpaceGuid.PcdCfvBase = $(FW_BASE_ADDRESS)\r
93SET gUefiOvmfPkgTokenSpaceGuid.PcdCfvRawDataOffset = $(VARS_OFFSET)\r
94SET gUefiOvmfPkgTokenSpaceGuid.PcdCfvRawDataSize = $(VARS_SIZE)\r
95\r
96SET gUefiOvmfPkgTokenSpaceGuid.PcdBfvBase = $(CODE_BASE_ADDRESS)\r
97SET gUefiOvmfPkgTokenSpaceGuid.PcdBfvRawDataOffset = $(VARS_SIZE)\r
98SET gUefiOvmfPkgTokenSpaceGuid.PcdBfvRawDataSize = $(CODE_SIZE)\r
99\r
b0ed7ebd
LE
100!if $(SMM_REQUIRE) == TRUE\r
101SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase\r
102SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase\r
103SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwSpareBase\r
104!endif\r
105\r
9beac0d8 106DEFINE MEMFD_BASE_ADDRESS = 0x800000\r