]>
Commit | Line | Data |
---|---|---|
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 | |
11 | DEFINE BLOCK_SIZE = 0x1000\r | |
c9ec74a1 | 12 | DEFINE 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 |
23 | DEFINE VARS_SIZE = 0x20000\r |
24 | DEFINE VARS_BLOCKS = 0x20\r | |
636cda51 LE |
25 | DEFINE VARS_LIVE_SIZE = 0xE000\r |
26 | DEFINE VARS_SPARE_SIZE = 0x10000\r | |
b24fca05 | 27 | !endif\r |
1c50db8a | 28 | \r |
21027073 | 29 | !if $(FD_SIZE_IN_KB) == 1024\r |
1c50db8a LE |
30 | DEFINE FW_BASE_ADDRESS = 0xFFF00000\r |
31 | DEFINE FW_SIZE = 0x00100000\r | |
32 | DEFINE FW_BLOCKS = 0x100\r | |
33 | DEFINE CODE_BASE_ADDRESS = 0xFFF20000\r | |
34 | DEFINE CODE_SIZE = 0x000E0000\r | |
35 | DEFINE CODE_BLOCKS = 0xE0\r | |
36 | DEFINE FVMAIN_SIZE = 0x000CC000\r | |
37 | DEFINE SECFV_OFFSET = 0x000EC000\r | |
38 | DEFINE SECFV_SIZE = 0x14000\r | |
21027073 | 39 | !endif\r |
1c50db8a | 40 | \r |
21027073 | 41 | !if $(FD_SIZE_IN_KB) == 2048\r |
1c50db8a LE |
42 | DEFINE FW_BASE_ADDRESS = 0xFFE00000\r |
43 | DEFINE FW_SIZE = 0x00200000\r | |
44 | DEFINE FW_BLOCKS = 0x200\r | |
45 | DEFINE CODE_BASE_ADDRESS = 0xFFE20000\r | |
46 | DEFINE CODE_SIZE = 0x001E0000\r | |
47 | DEFINE CODE_BLOCKS = 0x1E0\r | |
48 | DEFINE FVMAIN_SIZE = 0x001AC000\r | |
49 | DEFINE SECFV_OFFSET = 0x001CC000\r | |
50 | DEFINE SECFV_SIZE = 0x34000\r | |
1c50db8a LE |
51 | !endif\r |
52 | \r | |
b24fca05 LE |
53 | !if $(FD_SIZE_IN_KB) == 4096\r |
54 | DEFINE VARS_SIZE = 0x84000\r | |
55 | DEFINE VARS_BLOCKS = 0x84\r | |
56 | DEFINE VARS_LIVE_SIZE = 0x40000\r | |
57 | DEFINE VARS_SPARE_SIZE = 0x42000\r | |
58 | \r | |
59 | DEFINE FW_BASE_ADDRESS = 0xFFC00000\r | |
60 | DEFINE FW_SIZE = 0x00400000\r | |
61 | DEFINE FW_BLOCKS = 0x400\r | |
62 | DEFINE CODE_BASE_ADDRESS = 0xFFC84000\r | |
63 | DEFINE CODE_SIZE = 0x0037C000\r | |
64 | DEFINE CODE_BLOCKS = 0x37C\r | |
65 | DEFINE FVMAIN_SIZE = 0x00348000\r | |
66 | DEFINE SECFV_OFFSET = 0x003CC000\r | |
67 | DEFINE SECFV_SIZE = 0x34000\r | |
68 | !endif\r | |
69 | \r | |
1c50db8a LE |
70 | SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAddress = $(FW_BASE_ADDRESS)\r |
71 | SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize = $(FW_SIZE)\r | |
72 | SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareBlockSize = $(BLOCK_SIZE)\r | |
73 | \r | |
74 | SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase = $(FW_BASE_ADDRESS)\r | |
636cda51 | 75 | SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize = $(VARS_LIVE_SIZE)\r |
1c50db8a LE |
76 | \r |
77 | SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize\r | |
78 | SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogSize = $(BLOCK_SIZE)\r | |
79 | \r | |
80 | SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogBase + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageEventLogSize\r | |
81 | SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize = $(BLOCK_SIZE)\r | |
82 | \r | |
83 | SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwSpareBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize\r | |
636cda51 | 84 | SET 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 | |
90 | SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfConfidentialComputingWorkAreaHeader = 4\r | |
91 | \r | |
c9ec74a1 MX |
92 | SET gUefiOvmfPkgTokenSpaceGuid.PcdCfvBase = $(FW_BASE_ADDRESS)\r |
93 | SET gUefiOvmfPkgTokenSpaceGuid.PcdCfvRawDataOffset = $(VARS_OFFSET)\r | |
94 | SET gUefiOvmfPkgTokenSpaceGuid.PcdCfvRawDataSize = $(VARS_SIZE)\r | |
95 | \r | |
96 | SET gUefiOvmfPkgTokenSpaceGuid.PcdBfvBase = $(CODE_BASE_ADDRESS)\r | |
97 | SET gUefiOvmfPkgTokenSpaceGuid.PcdBfvRawDataOffset = $(VARS_SIZE)\r | |
98 | SET gUefiOvmfPkgTokenSpaceGuid.PcdBfvRawDataSize = $(CODE_SIZE)\r | |
99 | \r | |
b0ed7ebd LE |
100 | !if $(SMM_REQUIRE) == TRUE\r |
101 | SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase\r | |
102 | SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase\r | |
103 | SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwSpareBase\r | |
104 | !endif\r | |
105 | \r | |
9beac0d8 | 106 | DEFINE MEMFD_BASE_ADDRESS = 0x800000\r |