VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/Firmware/OvmfPkg/OvmfPkgX64.fdf

Last change on this file was 106190, checked in by vboxsync, 5 weeks ago

EFI/Firmware: Include RngDxe to restore network boot support again (network boot support requires a strong RNG now after CVE-2023-45236 and CVE-2023-45237 which wasn't available in VirtualBox, requires hardware with the rdrand/rdseed instruction set extension), bugref:4643

  • Property svn:eol-style set to native
File size: 18.9 KB
Line 
1## @file
2# Open Virtual Machine Firmware: FDF
3#
4# Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
5# (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
6#
7# SPDX-License-Identifier: BSD-2-Clause-Patent
8#
9##
10
11################################################################################
12
13[Defines]
14!include OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc
15
16#
17# Build the variable store and the firmware code as one unified flash device
18# image.
19#
20[FD.OVMF]
21BaseAddress = $(FW_BASE_ADDRESS)
22Size = $(FW_SIZE)
23ErasePolarity = 1
24BlockSize = $(BLOCK_SIZE)
25NumBlocks = $(FW_BLOCKS)
26
27!include OvmfPkg/Include/Fdf/VarStore.fdf.inc
28
29$(VARS_SIZE)|$(FVMAIN_SIZE)
30FV = FVMAIN_COMPACT
31
32$(SECFV_OFFSET)|$(SECFV_SIZE)
33FV = SECFV
34
35#
36# Build the variable store and the firmware code as separate flash device
37# images.
38#
39[FD.OVMF_VARS]
40BaseAddress = $(FW_BASE_ADDRESS)
41Size = $(VARS_SIZE)
42ErasePolarity = 1
43BlockSize = $(BLOCK_SIZE)
44NumBlocks = $(VARS_BLOCKS)
45
46!include OvmfPkg/Include/Fdf/VarStore.fdf.inc
47
48[FD.OVMF_CODE]
49BaseAddress = $(CODE_BASE_ADDRESS)
50Size = $(CODE_SIZE)
51ErasePolarity = 1
52BlockSize = $(BLOCK_SIZE)
53NumBlocks = $(CODE_BLOCKS)
54
550x00000000|$(FVMAIN_SIZE)
56FV = FVMAIN_COMPACT
57
58$(FVMAIN_SIZE)|$(SECFV_SIZE)
59FV = SECFV
60
61################################################################################
62
63[FD.MEMFD]
64BaseAddress = $(MEMFD_BASE_ADDRESS)
65Size = 0xF80000
66ErasePolarity = 1
67BlockSize = 0x10000
68NumBlocks = 0xF8
69
700x000000|0x006000
71gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
72
730x006000|0x001000
74gUefiOvmfPkgTokenSpaceGuid.PcdOvmfLockBoxStorageBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfLockBoxStorageSize
75
760x007000|0x001000
77gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress|gUefiOvmfPkgTokenSpaceGuid.PcdGuidedExtractHandlerTableSize
78
790x008000|0x001000
80gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbPageTableBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbPageTableSize
81
820x009000|0x002000
83gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbSize
84
850x00B000|0x001000
86gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaSize
87
880x00C000|0x001000
89gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbBackupBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbBackupSize
90
910x00D000|0x001000
92gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSnpSecretsBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSnpSecretsSize
93
940x00E000|0x001000
95gUefiOvmfPkgTokenSpaceGuid.PcdOvmfCpuidBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfCpuidSize
96
970x00F000|0x001000
98gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecSvsmCaaBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecSvsmCaaSize
99
1000x010000|0x001000
101gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecApicPageTableBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecApicPageTableSize
102
1030x011000|0x00F000
104gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamSize
105
1060x020000|0x0E0000
107gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
108FV = PEIFV
109
1100x100000|0xE80000
111gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
112FV = DXEFV
113
114##########################################################################################
115# Set the SEV-ES specific work area PCDs (used for all forms of SEV since the
116# the SEV STATUS MSR is now saved in the work area)
117#
118SET gUefiCpuPkgTokenSpaceGuid.PcdSevEsWorkAreaBase = $(MEMFD_BASE_ADDRESS) + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaBase + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfConfidentialComputingWorkAreaHeader
119SET gUefiCpuPkgTokenSpaceGuid.PcdSevEsWorkAreaSize = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaSize - gUefiOvmfPkgTokenSpaceGuid.PcdOvmfConfidentialComputingWorkAreaHeader
120##########################################################################################
121
122################################################################################
123
124[FV.SECFV]
125FvNameGuid = 763BED0D-DE9F-48F5-81F1-3E90E1B1A015
126BlockSize = 0x1000
127FvAlignment = 16
128ERASE_POLARITY = 1
129MEMORY_MAPPED = TRUE
130STICKY_WRITE = TRUE
131LOCK_CAP = TRUE
132LOCK_STATUS = TRUE
133WRITE_DISABLED_CAP = TRUE
134WRITE_ENABLED_CAP = TRUE
135WRITE_STATUS = TRUE
136WRITE_LOCK_CAP = TRUE
137WRITE_LOCK_STATUS = TRUE
138READ_DISABLED_CAP = TRUE
139READ_ENABLED_CAP = TRUE
140READ_STATUS = TRUE
141READ_LOCK_CAP = TRUE
142READ_LOCK_STATUS = TRUE
143
144#
145# SEC Phase modules
146#
147# The code in this FV handles the initial firmware startup, and
148# decompresses the PEI and DXE FVs which handles the rest of the boot sequence.
149#
150INF OvmfPkg/Sec/SecMain.inf
151
152INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf
153
154################################################################################
155[FV.PEIFV]
156FvNameGuid = 6938079B-B503-4E3D-9D24-B28337A25806
157BlockSize = 0x10000
158FvAlignment = 16
159ERASE_POLARITY = 1
160MEMORY_MAPPED = TRUE
161STICKY_WRITE = TRUE
162LOCK_CAP = TRUE
163LOCK_STATUS = TRUE
164WRITE_DISABLED_CAP = TRUE
165WRITE_ENABLED_CAP = TRUE
166WRITE_STATUS = TRUE
167WRITE_LOCK_CAP = TRUE
168WRITE_LOCK_STATUS = TRUE
169READ_DISABLED_CAP = TRUE
170READ_ENABLED_CAP = TRUE
171READ_STATUS = TRUE
172READ_LOCK_CAP = TRUE
173READ_LOCK_STATUS = TRUE
174
175APRIORI PEI {
176 INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
177}
178
179#
180# PEI Phase modules
181#
182INF MdeModulePkg/Core/Pei/PeiMain.inf
183INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
184INF MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.inf
185INF MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf
186INF OvmfPkg/PlatformPei/PlatformPei.inf
187INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
188INF UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf
189!if $(SMM_REQUIRE) == TRUE
190INF MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf
191INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
192INF OvmfPkg/SmmAccess/SmmAccessPei.inf
193!endif
194INF UefiCpuPkg/CpuMpPei/CpuMpPei.inf
195INF FILE_GUID = $(UP_CPU_PEI_GUID) UefiCpuPkg/CpuMpPei/CpuMpPei.inf
196
197!include OvmfPkg/Include/Fdf/OvmfTpmPei.fdf.inc
198
199################################################################################
200
201[FV.DXEFV]
202FvForceRebase = FALSE
203FvNameGuid = 7CB8BDC9-F8EB-4F34-AAEA-3EE4AF6516A1
204BlockSize = 0x10000
205FvAlignment = 16
206ERASE_POLARITY = 1
207MEMORY_MAPPED = TRUE
208STICKY_WRITE = TRUE
209LOCK_CAP = TRUE
210LOCK_STATUS = TRUE
211WRITE_DISABLED_CAP = TRUE
212WRITE_ENABLED_CAP = TRUE
213WRITE_STATUS = TRUE
214WRITE_LOCK_CAP = TRUE
215WRITE_LOCK_STATUS = TRUE
216READ_DISABLED_CAP = TRUE
217READ_ENABLED_CAP = TRUE
218READ_STATUS = TRUE
219READ_LOCK_CAP = TRUE
220READ_LOCK_STATUS = TRUE
221
222APRIORI DXE {
223 INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
224 INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
225!ifndef $(VBOX)
226 # AmdSevDxe must be loaded before TdxDxe. Because in SEV guest AmdSevDxe
227 # driver performs a MemEncryptSevClearMmioPageEncMask() call against the
228 # PcdPciExpressBaseAddress range to mark it shared/unencrypted.
229 # Otherwise #VC handler terminates the guest for trying to do MMIO to an
230 # encrypted region (Since the range has not been marked shared/unencrypted).
231 INF OvmfPkg/AmdSevDxe/AmdSevDxe.inf
232 INF OvmfPkg/TdxDxe/TdxDxe.inf
233!endif
234!if $(SMM_REQUIRE) == FALSE
235 INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
236!endif
237}
238
239#
240# DXE Phase modules
241#
242INF MdeModulePkg/Core/Dxe/DxeMain.inf
243
244INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
245INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf
246INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
247
248INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
249INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
250INF MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
251INF UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf
252
253INF UefiCpuPkg/CpuDxe/CpuDxe.inf
254INF FILE_GUID = $(UP_CPU_DXE_GUID) UefiCpuPkg/CpuDxe/CpuDxe.inf
255
256INF OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf
257INF OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf
258INF OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf
259INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf
260INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
261INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
262INF MdeModulePkg/Universal/Metronome/Metronome.inf
263INF PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf
264
265INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf
266INF OvmfPkg/Virtio10Dxe/Virtio10.inf
267!ifndef $(VBOX)
268INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
269!endif
270INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
271!ifndef $(VBOX)
272INF OvmfPkg/VirtioRngDxe/VirtioRng.inf
273INF OvmfPkg/VirtioSerialDxe/VirtioSerial.inf
274!else
275INF SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf
276!endif
277!if $(PVSCSI_ENABLE) == TRUE
278INF OvmfPkg/PvScsiDxe/PvScsiDxe.inf
279!endif
280!if $(MPT_SCSI_ENABLE) == TRUE
281INF OvmfPkg/MptScsiDxe/MptScsiDxe.inf
282!endif
283!if $(LSI_SCSI_ENABLE) == TRUE
284INF OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf
285!endif
286
287!if $(SECURE_BOOT_ENABLE) == TRUE
288 INF SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
289!endif
290
291INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
292INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
293INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
294INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
295INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
296INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
297INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
298INF MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
299INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
300INF MdeModulePkg/Application/UiApp/UiApp.inf
301INF OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf
302INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
303INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
304INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
305INF MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf
306INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
307INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
308INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
309INF MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf
310INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
311INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
312INF MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf
313INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
314INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
315INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
316
317INF OvmfPkg/SioBusDxe/SioBusDxe.inf
318!if $(SOURCE_DEBUG_ENABLE) == FALSE
319INF MdeModulePkg/Bus/Pci/PciSioSerialDxe/PciSioSerialDxe.inf
320!endif
321INF MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf
322
323INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
324INF OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
325
326!ifdef $(VBOX)
327INF VBoxPkg/VBoxVgaDxe/VBoxVgaDxe.inf
328INF VBoxPkg/VBoxFsDxe/VBoxHfs.inf
329INF VBoxPkg/VBoxSysTables/VBoxSysTables.inf
330INF VBoxPkg/VBoxAppleSim/VBoxAppleSim.inf
331INF VBoxPkg/VBoxApfsJmpStartDxe/VBoxApfsJmpStartDxe.inf
332INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
333!endif
334
335!ifndef $(VBOX)
336INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
337INF OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
338INF MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
339INF MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
340INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
341!else
342INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
343INF MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf
344!endif
345
346INF FatPkg/EnhancedFatDxe/Fat.inf
347INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
348INF OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf
349
350!ifndef $(VBOX)
351INF MdeModulePkg/Logo/LogoDxe.inf
352!else
353INF VBoxPkg/Logo/LogoDxe.inf
354!endif
355
356INF OvmfPkg/TdxDxe/TdxDxe.inf
357
358#
359# Hash2 Protocol producer
360#
361INF SecurityPkg/Hash2DxeCrypto/Hash2DxeCrypto.inf
362
363#
364# Network modules
365#
366!if $(E1000_ENABLE)
367 FILE DRIVER = 5D695E11-9B3F-4b83-B25F-4A8D5D69BE07 {
368 SECTION PE32 = Intel3.5/EFIX64/E3522X2.EFI
369 }
370!endif
371!include NetworkPkg/Network.fdf.inc
372 INF OvmfPkg/VirtioNetDxe/VirtioNet.inf
373!ifdef $(VBOX)
374 INF VBoxPkg/E1kNetDxe/E1kNet.inf
375!endif
376
377#
378# Usb Support
379#
380INF MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
381INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
382INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
383INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
384INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
385INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
386
387!ifndef $(VBOX)
388INF OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
389INF OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
390INF OvmfPkg/VirtioGpuDxe/VirtioGpu.inf
391!endif
392INF OvmfPkg/PlatformDxe/Platform.inf
393INF OvmfPkg/IoMmuDxe/IoMmuDxe.inf
394!ifndef $(VBOX)
395INF OvmfPkg/VirtHstiDxe/VirtHstiDxe.inf
396!endif
397
398!if $(SMM_REQUIRE) == TRUE
399INF OvmfPkg/SmmAccess/SmmAccess2Dxe.inf
400INF OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
401INF OvmfPkg/CpuS3DataDxe/CpuS3DataDxe.inf
402INF MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf
403INF MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf
404INF OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf
405INF UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
406INF MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf
407INF UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf
408
409#
410# Variable driver stack (SMM)
411#
412INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf
413INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
414INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf
415INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf
416
417!else
418
419#
420# Variable driver stack (non-SMM)
421#
422INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
423INF OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf
424INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
425INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
426!endif
427
428#
429# EFI_CC_MEASUREMENT_PROTOCOL
430#
431!if $(CC_MEASUREMENT_ENABLE) == TRUE
432INF OvmfPkg/Tcg/TdTcg2Dxe/TdTcg2Dxe.inf
433!endif
434
435#
436# TPM support
437#
438!include OvmfPkg/Include/Fdf/OvmfTpmDxe.fdf.inc
439
440!include OvmfPkg/Include/Fdf/ShellDxe.fdf.inc
441
442################################################################################
443
444[FV.FVMAIN_COMPACT]
445FvNameGuid = 48DB5E17-707C-472D-91CD-1613E7EF51B0
446FvAlignment = 16
447ERASE_POLARITY = 1
448MEMORY_MAPPED = TRUE
449STICKY_WRITE = TRUE
450LOCK_CAP = TRUE
451LOCK_STATUS = TRUE
452WRITE_DISABLED_CAP = TRUE
453WRITE_ENABLED_CAP = TRUE
454WRITE_STATUS = TRUE
455WRITE_LOCK_CAP = TRUE
456WRITE_LOCK_STATUS = TRUE
457READ_DISABLED_CAP = TRUE
458READ_ENABLED_CAP = TRUE
459READ_STATUS = TRUE
460READ_LOCK_CAP = TRUE
461READ_LOCK_STATUS = TRUE
462
463FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
464 SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
465 #
466 # These firmware volumes will have files placed in them uncompressed,
467 # and then both firmware volumes will be compressed in a single
468 # compression operation in order to achieve better overall compression.
469 #
470 SECTION FV_IMAGE = PEIFV
471 SECTION FV_IMAGE = DXEFV
472 }
473 }
474
475!include OvmfPkg/Include/Fdf/FvmainCompactScratchEnd.fdf.inc
476
477################################################################################
478
479[Rule.Common.SEC]
480 FILE SEC = $(NAMED_GUID) {
481 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
482 UI STRING ="$(MODULE_NAME)" Optional
483 VERSION STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
484 }
485
486[Rule.Common.PEI_CORE]
487 FILE PEI_CORE = $(NAMED_GUID) {
488 PE32 PE32 Align=Auto $(INF_OUTPUT)/$(MODULE_NAME).efi
489 UI STRING ="$(MODULE_NAME)" Optional
490 VERSION STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
491 }
492
493[Rule.Common.PEIM]
494 FILE PEIM = $(NAMED_GUID) {
495 PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
496 PE32 PE32 Align=Auto $(INF_OUTPUT)/$(MODULE_NAME).efi
497 UI STRING="$(MODULE_NAME)" Optional
498 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
499 }
500
501[Rule.Common.DXE_CORE]
502 FILE DXE_CORE = $(NAMED_GUID) {
503 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
504 UI STRING="$(MODULE_NAME)" Optional
505 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
506 }
507
508[Rule.Common.DXE_DRIVER]
509 FILE DRIVER = $(NAMED_GUID) {
510 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
511 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
512 UI STRING="$(MODULE_NAME)" Optional
513 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
514 RAW ACPI Optional |.acpi
515 RAW ASL Optional |.aml
516 }
517
518[Rule.Common.DXE_RUNTIME_DRIVER]
519 FILE DRIVER = $(NAMED_GUID) {
520 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
521 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
522 UI STRING="$(MODULE_NAME)" Optional
523 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
524 }
525
526[Rule.Common.UEFI_DRIVER]
527 FILE DRIVER = $(NAMED_GUID) {
528 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
529 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
530 UI STRING="$(MODULE_NAME)" Optional
531 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
532 }
533
534[Rule.Common.UEFI_DRIVER.BINARY]
535 FILE DRIVER = $(NAMED_GUID) {
536 DXE_DEPEX DXE_DEPEX Optional |.depex
537 PE32 PE32 |.efi
538 UI STRING="$(MODULE_NAME)" Optional
539 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
540 }
541
542[Rule.Common.UEFI_APPLICATION]
543 FILE APPLICATION = $(NAMED_GUID) {
544 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
545 UI STRING="$(MODULE_NAME)" Optional
546 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
547 }
548
549[Rule.Common.UEFI_APPLICATION.BINARY]
550 FILE APPLICATION = $(NAMED_GUID) {
551 PE32 PE32 |.efi
552 UI STRING="$(MODULE_NAME)" Optional
553 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
554 }
555
556[Rule.Common.SEC.RESET_VECTOR]
557 FILE RAW = $(NAMED_GUID) {
558 RAW BIN Align = 16 |.bin
559 }
560
561[Rule.Common.SMM_CORE]
562 FILE SMM_CORE = $(NAMED_GUID) {
563 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
564 UI STRING="$(MODULE_NAME)" Optional
565 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
566 }
567
568[Rule.Common.DXE_SMM_DRIVER]
569 FILE SMM = $(NAMED_GUID) {
570 SMM_DEPEX SMM_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
571 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
572 UI STRING="$(MODULE_NAME)" Optional
573 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
574 }
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette