OVMF: Add support for more persistent NV variables which can survive a system reboot.
[edk2.git] / OvmfPkg / OvmfPkgIa32X64.fdf
blob9c061454bfff3de2be7abf4dd46e2e91faf9bb4b
1 #/** @file\r
2 #  Open Virtual Machine Firmware: FDF\r
3 #\r
4 #  Copyright (c) 2006 - 2009, Intel Corporation\r
5 #\r
6 #  All rights reserved. This program and the accompanying materials\r
7 #  are licensed and made available under the terms and conditions of the BSD License\r
8 #  which accompanies this distribution. The full text of the license may be found at\r
9 #  http://opensource.org/licenses/bsd-license.php\r
10 #\r
11 #  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13 #\r
14 #**/\r
16 ################################################################################\r
17 #\r
18 # FD Section\r
19 # The [FD] Section is made up of the definition statements and a\r
20 # description of what goes into  the Flash Device Image.  Each FD section\r
21 # defines one flash "device" image.  A flash device image may be one of\r
22 # the following: Removable media bootable image (like a boot floppy\r
23 # image,) an Option ROM image (that would be "flashed" into an add-in\r
24 # card,) a System "Flash"  image (that would be burned into a system's\r
25 # flash) or an Update ("Capsule") image that will be used to update and\r
26 # existing system flash.\r
27 #\r
28 ################################################################################\r
29 [FD.OVMF]\r
30 BaseAddress   = 0xFFE00000     # The base address of the FLASH Device.\r
31 Size          = 0x00200000     # The size in bytes of the FLASH Device\r
32 ErasePolarity = 1\r
33 BlockSize     = 0x10000\r
34 NumBlocks     = 0x20\r
36 ################################################################################\r
37 #\r
38 # Following are lists of FD Region layout which correspond to the locations of different\r
39 # images within the flash device.\r
40 #\r
41 # Regions must be defined in ascending order and may not overlap.\r
42 #\r
43 # A Layout Region start with a eight digit hex offset (leading "0x" required) followed by\r
44 # the pipe "|" character, followed by the size of the region, also in hex with the leading\r
45 # "0x" characters. Like:\r
46 # Offset|Size\r
47 # PcdOffsetCName|PcdSizeCName\r
48 # RegionType <FV, DATA, or FILE>\r
49 #\r
50 ################################################################################\r
51 0x0|0x200000\r
52 gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashFvRecoveryBase|gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashFvRecoverySize\r
53 FV = MAINFV\r
55 ################################################################################\r
56 #\r
57 # FV Section\r
58 #\r
59 # [FV] section is used to define what components or modules are placed within a flash\r
60 # device file.  This section also defines order the components and modules are positioned\r
61 # within the image.  The [FV] section consists of define statements, set statements and\r
62 # module statements.\r
63 #\r
64 ################################################################################\r
65 [FV.DXEFV]\r
66 BlockSize          = 0x1000\r
67 FvAlignment        = 16         #FV alignment and FV attributes setting.\r
68 ERASE_POLARITY     = 1\r
69 MEMORY_MAPPED      = TRUE\r
70 STICKY_WRITE       = TRUE\r
71 LOCK_CAP           = TRUE\r
72 LOCK_STATUS        = TRUE\r
73 WRITE_DISABLED_CAP = TRUE\r
74 WRITE_ENABLED_CAP  = TRUE\r
75 WRITE_STATUS       = TRUE\r
76 WRITE_LOCK_CAP     = TRUE\r
77 WRITE_LOCK_STATUS  = TRUE\r
78 READ_DISABLED_CAP  = TRUE\r
79 READ_ENABLED_CAP   = TRUE\r
80 READ_STATUS        = TRUE\r
81 READ_LOCK_CAP      = TRUE\r
82 READ_LOCK_STATUS   = TRUE\r
84 #\r
85 # Files to be placed in DXEFV\r
86 #\r
87 # This firmware volume will have files placed in it uncompressed,\r
88 # and then then entire firmware volume will be compressed in a\r
89 # single compression operation in order to achieve better\r
90 # overall compression.\r
91 #\r
93 APRIORI DXE {\r
94   INF  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf\r
95   INF  IntelFrameworkModulePkg/Universal/DataHubDxe/DataHubDxe.inf\r
96 }\r
98 #\r
99 # DXE Phase modules\r
101 INF  MdeModulePkg/Core/Dxe/DxeMain.inf\r
103 INF  IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/StatusCodeRuntimeDxe.inf\r
104 INF  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf\r
106 INF  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf\r
107 INF  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf\r
108 INF  IntelFrameworkModulePkg/Universal/DataHubDxe/DataHubDxe.inf\r
109 INF  MdeModulePkg/Universal/EbcDxe/EbcDxe.inf\r
110 INF  PcAtChipsetPkg/8259InterruptControllerDxe/8259.inf\r
111 INF  UefiCpuPkg/CpuIoDxe/CpuIo.inf\r
112 INF  UefiCpuPkg/CpuDxe/CpuDxe.inf\r
113 INF  PcAtChipsetPkg/8254TimerDxe/8254Timer.inf\r
114 INF  PcAtChipsetPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf\r
115 INF  IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf\r
116 INF  PcAtChipsetPkg/KbcResetDxe/Reset.inf\r
117 INF  MdeModulePkg/Universal/Metronome/Metronome.inf\r
118 INF  PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf\r
120 INF  MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf\r
121 INF  MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf\r
122 INF  MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf\r
123 INF  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf\r
124 INF  MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf\r
125 INF  MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
126 INF  MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf\r
127 INF  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf\r
128 INF  IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf\r
129 INF  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf\r
130 INF  MdeModulePkg/Universal/PrintDxe/PrintDxe.inf\r
131 INF  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
132 INF  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
133 INF  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
134 INF  MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf\r
135 INF  MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf\r
136 INF  IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf\r
137 INF  PcAtChipsetPkg/Bus/Pci/IdeControllerDxe/IdeControllerDxe.inf\r
138 INF  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf\r
139 INF  MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf\r
141 INF  PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf\r
142 INF  IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf\r
143 INF  IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf\r
144 INF  IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf\r
145 INF  IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf\r
147 INF  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf\r
148 INF  MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf\r
149 INF  RuleOverride = ACPITABLE OvmfPkg/AcpiTables/AcpiTables.inf\r
151 FILE DRIVER = 961578FE-B6B7-44c3-AF35-6BC705CD2B1F {\r
152     SECTION PE32 = FatBinPkg/EnhancedFatDxe/X64/Fat.efi\r
153   }\r
155 FILE APPLICATION = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile) {\r
156     SECTION PE32 = EdkShellBinPkg/FullShell/X64/Shell_full.efi\r
157   }\r
159 FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {\r
160     SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE { # LzmaCompress\r
161       SECTION RAW = MdeModulePkg/Logo/Logo.bmp\r
162     }\r
163   }\r
165 ################################################################################\r
167 [FV.MAINFV]\r
168 FvAlignment        = 16\r
169 ERASE_POLARITY     = 1\r
170 MEMORY_MAPPED      = TRUE\r
171 STICKY_WRITE       = TRUE\r
172 LOCK_CAP           = TRUE\r
173 LOCK_STATUS        = TRUE\r
174 WRITE_DISABLED_CAP = TRUE\r
175 WRITE_ENABLED_CAP  = TRUE\r
176 WRITE_STATUS       = TRUE\r
177 WRITE_LOCK_CAP     = TRUE\r
178 WRITE_LOCK_STATUS  = TRUE\r
179 READ_DISABLED_CAP  = TRUE\r
180 READ_ENABLED_CAP   = TRUE\r
181 READ_STATUS        = TRUE\r
182 READ_LOCK_CAP      = TRUE\r
183 READ_LOCK_STATUS   = TRUE\r
186 # Files to be placed in MAINFV\r
188 # This firmware volume will have all the files placed in it which\r
189 # must not be compressed at the initial boot phase.  The only\r
190 # exception to this is the compressed 'DXEFV'.\r
193 APRIORI PEI {\r
194   INF  MdeModulePkg/Universal/PCD/Pei/Pcd.inf\r
198 #  SEC Phase modules\r
200 INF  OvmfPkg/Sec/SecMain.inf\r
203 #  PEI Phase modules\r
205 INF  MdeModulePkg/Core/Pei/PeiMain.inf\r
206 INF  MdeModulePkg/Universal/PCD/Pei/Pcd.inf\r
207 INF  IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf\r
208 INF  OvmfPkg/PlatformPei/PlatformPei.inf\r
209 INF  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf\r
212 # This file contains the compressed 'DXEFV', which is compressed\r
213 # in a single compression operation in order to achieve better\r
214 # overall compression.\r
216 FILE FV_IMAGE = 20bc8ac9-94d1-4208-ab28-5d673fd73486 {\r
217    SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE { # LzmaCompress\r
218       SECTION FV_IMAGE = DXEFV\r
219    }\r
220  }\r
222 FILE RAW = 1BA0062E-C779-4582-8566-336AE8F78F09 {\r
223     SECTION RAW = OvmfPkg/ResetVector/Bin/ResetVector.ia32.raw\r
224   }\r
227 ################################################################################\r
229 # Rules are use with the [FV] section's module INF type to define\r
230 # how an FFS file is created for a given INF file. The following Rule are the default\r
231 # rules for the different module type. User can add the customized rules to define the\r
232 # content of the FFS file.\r
234 ################################################################################\r
236 [Rule.Common.PEI_CORE]\r
237   FILE PEI_CORE = $(NAMED_GUID) {\r
238     PE32     PE32           |.efi\r
239     UI       STRING ="$(MODULE_NAME)" Optional\r
240     VERSION  STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
241   }\r
243 [Rule.Common.SEC]\r
244   FILE SEC = $(NAMED_GUID) {\r
245     PE32     PE32           |.efi\r
246     UI       STRING ="$(MODULE_NAME)" Optional\r
247     VERSION  STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
248   }\r
250 [Rule.Common.PEIM]\r
251   FILE PEIM = $(NAMED_GUID) {\r
252      PEI_DEPEX PEI_DEPEX Optional        |.depex\r
253      PE32      PE32                      |.efi\r
254      UI       STRING="$(MODULE_NAME)" Optional\r
255      VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
256   }\r
258 [Rule.Common.PEIM.TIANOCOMPRESSED]\r
259   FILE PEIM = $(NAMED_GUID) {\r
260     PEI_DEPEX PEI_DEPEX Optional         |.depex\r
261     GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE {\r
262       PE32      PE32                     |.efi\r
263       UI        STRING="$(MODULE_NAME)" Optional\r
264       VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
265     }\r
266   }\r
268 [Rule.Common.DXE_CORE]\r
269   FILE DXE_CORE = $(NAMED_GUID) {\r
270     PE32     PE32           |.efi\r
271     UI       STRING="$(MODULE_NAME)" Optional\r
272     VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
273   }\r
275 [Rule.Common.UEFI_DRIVER]\r
276   FILE DRIVER = $(NAMED_GUID) {\r
277     DXE_DEPEX    DXE_DEPEX Optional      |.depex\r
278     PE32     PE32                    |.efi\r
279     UI       STRING="$(MODULE_NAME)" Optional\r
280     VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
281   }\r
283 [Rule.Common.DXE_DRIVER]\r
284   FILE DRIVER = $(NAMED_GUID) {\r
285     DXE_DEPEX    DXE_DEPEX Optional      |.depex\r
286     PE32     PE32                    |.efi\r
287     UI       STRING="$(MODULE_NAME)" Optional\r
288     VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
289   }\r
291 [Rule.Common.DXE_RUNTIME_DRIVER]\r
292   FILE DRIVER = $(NAMED_GUID) {\r
293     DXE_DEPEX    DXE_DEPEX Optional      |.depex\r
294     PE32     PE32                    |.efi\r
295     UI       STRING="$(MODULE_NAME)" Optional\r
296     VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
297   }\r
299 [Rule.Common.UEFI_APPLICATION]\r
300   FILE APPLICATION = $(NAMED_GUID) {\r
301     PE32     PE32                    |.efi\r
302     UI       STRING="$(MODULE_NAME)" Optional\r
303     VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
304   }\r
306 [Rule.Common.USER_DEFINED.ACPITABLE]\r
307   FILE FREEFORM = $(NAMED_GUID) {\r
308     RAW ACPI |.acpi\r
309     RAW ASL  |.aml\r
310   }\r
312 [Rule.Common.SEC.RESET_VECTOR]\r
313   FILE RAW = $(NAMED_GUID) {\r
314     RAW RAW                |.raw\r
315   }\r
317 [OptionRom.CirrusLogic5446]\r
318 INF  OptionRomPkg/CirrusLogic5430Dxe/CirrusLogic5430Dxe.inf {\r
319     PCI_DEVICE_ID  = 0x00B8\r
320   }\r