• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1## @file
2#  Open Virtual Machine Firmware: FDF
3#
4#  Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
5#  (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
6#
7#  This program and the accompanying materials
8#  are licensed and made available under the terms and conditions of the BSD License
9#  which accompanies this distribution. The full text of the license may be found at
10#  http://opensource.org/licenses/bsd-license.php
11#
12#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14#
15##
16
17################################################################################
18
19[Defines]
20!include OvmfPkg.fdf.inc
21
22#
23# Build the variable store and the firmware code as one unified flash device
24# image.
25#
26[FD.OVMF]
27BaseAddress   = $(FW_BASE_ADDRESS)
28Size          = $(FW_SIZE)
29ErasePolarity = 1
30BlockSize     = $(BLOCK_SIZE)
31NumBlocks     = $(FW_BLOCKS)
32
33!include VarStore.fdf.inc
34
35$(VARS_SIZE)|$(FVMAIN_SIZE)
36FV = FVMAIN_COMPACT
37
38$(SECFV_OFFSET)|$(SECFV_SIZE)
39FV = SECFV
40
41#
42# Build the variable store and the firmware code as separate flash device
43# images.
44#
45[FD.OVMF_VARS]
46BaseAddress   = $(FW_BASE_ADDRESS)
47Size          = $(VARS_SIZE)
48ErasePolarity = 1
49BlockSize     = $(BLOCK_SIZE)
50NumBlocks     = $(VARS_BLOCKS)
51
52!include VarStore.fdf.inc
53
54[FD.OVMF_CODE]
55BaseAddress   = $(CODE_BASE_ADDRESS)
56Size          = $(CODE_SIZE)
57ErasePolarity = 1
58BlockSize     = $(BLOCK_SIZE)
59NumBlocks     = $(CODE_BLOCKS)
60
610x00000000|$(FVMAIN_SIZE)
62FV = FVMAIN_COMPACT
63
64$(FVMAIN_SIZE)|$(SECFV_SIZE)
65FV = SECFV
66
67################################################################################
68
69[FD.MEMFD]
70BaseAddress   = $(MEMFD_BASE_ADDRESS)
71Size          = 0xB00000
72ErasePolarity = 1
73BlockSize     = 0x10000
74NumBlocks     = 0xB0
75
760x000000|0x006000
77gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
78
790x006000|0x001000
80gUefiOvmfPkgTokenSpaceGuid.PcdOvmfLockBoxStorageBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfLockBoxStorageSize
81
820x007000|0x001000
83gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress|gUefiOvmfPkgTokenSpaceGuid.PcdGuidedExtractHandlerTableSize
84
850x010000|0x008000
86gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamSize
87
880x020000|0x0E0000
89gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
90FV = PEIFV
91
920x100000|0xA00000
93gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
94FV = DXEFV
95
96################################################################################
97
98[FV.SECFV]
99FvNameGuid         = 763BED0D-DE9F-48F5-81F1-3E90E1B1A015
100BlockSize          = 0x1000
101FvAlignment        = 16
102ERASE_POLARITY     = 1
103MEMORY_MAPPED      = TRUE
104STICKY_WRITE       = TRUE
105LOCK_CAP           = TRUE
106LOCK_STATUS        = TRUE
107WRITE_DISABLED_CAP = TRUE
108WRITE_ENABLED_CAP  = TRUE
109WRITE_STATUS       = TRUE
110WRITE_LOCK_CAP     = TRUE
111WRITE_LOCK_STATUS  = TRUE
112READ_DISABLED_CAP  = TRUE
113READ_ENABLED_CAP   = TRUE
114READ_STATUS        = TRUE
115READ_LOCK_CAP      = TRUE
116READ_LOCK_STATUS   = TRUE
117
118#
119# SEC Phase modules
120#
121# The code in this FV handles the initial firmware startup, and
122# decompresses the PEI and DXE FVs which handles the rest of the boot sequence.
123#
124INF  OvmfPkg/Sec/SecMain.inf
125
126INF  RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf
127
128################################################################################
129[FV.PEIFV]
130FvNameGuid         = 6938079B-B503-4E3D-9D24-B28337A25806
131BlockSize          = 0x10000
132FvAlignment        = 16
133ERASE_POLARITY     = 1
134MEMORY_MAPPED      = TRUE
135STICKY_WRITE       = TRUE
136LOCK_CAP           = TRUE
137LOCK_STATUS        = TRUE
138WRITE_DISABLED_CAP = TRUE
139WRITE_ENABLED_CAP  = TRUE
140WRITE_STATUS       = TRUE
141WRITE_LOCK_CAP     = TRUE
142WRITE_LOCK_STATUS  = TRUE
143READ_DISABLED_CAP  = TRUE
144READ_ENABLED_CAP   = TRUE
145READ_STATUS        = TRUE
146READ_LOCK_CAP      = TRUE
147READ_LOCK_STATUS   = TRUE
148
149APRIORI PEI {
150  INF  MdeModulePkg/Universal/PCD/Pei/Pcd.inf
151}
152
153#
154#  PEI Phase modules
155#
156INF  MdeModulePkg/Core/Pei/PeiMain.inf
157INF  MdeModulePkg/Universal/PCD/Pei/Pcd.inf
158INF  MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.inf
159INF  MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf
160INF  OvmfPkg/PlatformPei/PlatformPei.inf
161INF  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
162INF  UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf
163!if $(SMM_REQUIRE) == TRUE
164INF  OvmfPkg/SmmAccess/SmmAccessPei.inf
165!endif
166INF  UefiCpuPkg/CpuMpPei/CpuMpPei.inf
167
168################################################################################
169
170[FV.DXEFV]
171FvNameGuid         = 7CB8BDC9-F8EB-4F34-AAEA-3EE4AF6516A1
172BlockSize          = 0x10000
173FvAlignment        = 16
174ERASE_POLARITY     = 1
175MEMORY_MAPPED      = TRUE
176STICKY_WRITE       = TRUE
177LOCK_CAP           = TRUE
178LOCK_STATUS        = TRUE
179WRITE_DISABLED_CAP = TRUE
180WRITE_ENABLED_CAP  = TRUE
181WRITE_STATUS       = TRUE
182WRITE_LOCK_CAP     = TRUE
183WRITE_LOCK_STATUS  = TRUE
184READ_DISABLED_CAP  = TRUE
185READ_ENABLED_CAP   = TRUE
186READ_STATUS        = TRUE
187READ_LOCK_CAP      = TRUE
188READ_LOCK_STATUS   = TRUE
189
190APRIORI DXE {
191  INF  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
192  INF  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
193!if $(SMM_REQUIRE) == FALSE
194  INF  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
195!endif
196}
197
198#
199# DXE Phase modules
200#
201INF  MdeModulePkg/Core/Dxe/DxeMain.inf
202
203INF  MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
204INF  MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf
205INF  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
206
207INF  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
208INF  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
209INF  MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
210INF  PcAtChipsetPkg/8259InterruptControllerDxe/8259.inf
211INF  UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf
212INF  UefiCpuPkg/CpuDxe/CpuDxe.inf
213INF  PcAtChipsetPkg/8254TimerDxe/8254Timer.inf
214INF  OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf
215INF  OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf
216INF  MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf
217INF  MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
218INF  MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
219INF  MdeModulePkg/Universal/Metronome/Metronome.inf
220INF  PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf
221
222INF  OvmfPkg/BlockMmioToBlockIoDxe/BlockIo.inf
223INF  OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf
224INF  OvmfPkg/Virtio10Dxe/Virtio10.inf
225INF  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
226INF  OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
227INF  OvmfPkg/VirtioRngDxe/VirtioRng.inf
228INF  OvmfPkg/XenIoPciDxe/XenIoPciDxe.inf
229INF  OvmfPkg/XenBusDxe/XenBusDxe.inf
230INF  OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf
231
232!if $(SECURE_BOOT_ENABLE) == TRUE
233  INF  SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
234!endif
235
236INF  MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
237INF  MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
238INF  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
239INF  MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
240INF  MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
241INF  MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
242INF  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
243INF  MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
244INF  MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
245INF  MdeModulePkg/Application/UiApp/UiApp.inf
246INF  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
247INF  MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
248INF  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
249INF  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
250INF  MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf
251INF  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
252INF  MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
253INF  MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
254INF  OvmfPkg/SataControllerDxe/SataControllerDxe.inf
255INF  MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
256INF  MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
257INF  MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf
258INF  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
259INF  MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
260INF  MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
261INF  MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
262
263INF  PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf
264INF  IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf
265
266!ifndef $(SOURCE_DEBUG_ENABLE)
267INF  IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf
268!endif
269
270INF  IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf
271INF  IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf
272
273INF  MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
274INF  OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
275
276INF  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
277INF  OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
278INF  RuleOverride=ACPITABLE OvmfPkg/AcpiTables/AcpiTables.inf
279INF  MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
280INF  MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
281
282INF  FatPkg/EnhancedFatDxe/Fat.inf
283
284!ifndef $(USE_OLD_SHELL)
285INF  ShellPkg/Application/Shell/Shell.inf
286!else
287INF  RuleOverride = BINARY EdkShellBinPkg/FullShell/FullShell.inf
288!endif
289
290INF MdeModulePkg/Logo/LogoDxe.inf
291
292#
293# Network modules
294#
295!if $(E1000_ENABLE)
296  FILE DRIVER = 5D695E11-9B3F-4b83-B25F-4A8D5D69BE07 {
297    SECTION PE32 = Intel3.5/EFIX64/E3507X2.EFI
298  }
299!endif
300  INF  MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
301  INF  MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
302  INF  MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
303  INF  MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
304  INF  MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
305  INF  MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
306  INF  MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
307  INF  MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
308  INF  MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
309!if $(NETWORK_IP6_ENABLE) == TRUE
310  INF  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
311  INF  NetworkPkg/TcpDxe/TcpDxe.inf
312  INF  NetworkPkg/Udp6Dxe/Udp6Dxe.inf
313  INF  NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
314  INF  NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
315  INF  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
316!if $(SECURE_BOOT_ENABLE) == TRUE
317  INF  NetworkPkg/IScsiDxe/IScsiDxe.inf
318!else
319  INF  MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
320!endif
321!else
322  INF  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
323  INF  MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
324  INF  MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
325!endif
326!if $(HTTP_BOOT_ENABLE) == TRUE
327  INF  NetworkPkg/DnsDxe/DnsDxe.inf
328  INF  NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
329  INF  NetworkPkg/HttpDxe/HttpDxe.inf
330  INF  NetworkPkg/HttpBootDxe/HttpBootDxe.inf
331!endif
332  INF  OvmfPkg/VirtioNetDxe/VirtioNet.inf
333
334#
335# Usb Support
336#
337INF  MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
338INF  MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
339INF  MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
340INF  MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
341INF  MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
342INF  MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
343
344!ifdef $(CSM_ENABLE)
345INF  IntelFrameworkModulePkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf
346INF  IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf
347INF  RuleOverride=CSM OvmfPkg/Csm/Csm16/Csm16.inf
348!endif
349
350INF  OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
351INF  OvmfPkg/VirtioGpuDxe/VirtioGpu.inf
352INF  OvmfPkg/PlatformDxe/Platform.inf
353
354!if $(SMM_REQUIRE) == TRUE
355INF  OvmfPkg/SmmAccess/SmmAccess2Dxe.inf
356INF  OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
357INF  UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf
358INF  MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf
359INF  MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf
360INF  UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
361INF  MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf
362INF  UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf
363
364#
365# Variable driver stack (SMM)
366#
367INF  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf
368INF  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
369INF  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf
370INF  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf
371
372!else
373
374#
375# Variable driver stack (non-SMM)
376#
377INF  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
378INF  OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf
379INF  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
380INF  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
381!endif
382
383################################################################################
384
385[FV.FVMAIN_COMPACT]
386FvNameGuid         = 48DB5E17-707C-472D-91CD-1613E7EF51B0
387FvAlignment        = 16
388ERASE_POLARITY     = 1
389MEMORY_MAPPED      = TRUE
390STICKY_WRITE       = TRUE
391LOCK_CAP           = TRUE
392LOCK_STATUS        = TRUE
393WRITE_DISABLED_CAP = TRUE
394WRITE_ENABLED_CAP  = TRUE
395WRITE_STATUS       = TRUE
396WRITE_LOCK_CAP     = TRUE
397WRITE_LOCK_STATUS  = TRUE
398READ_DISABLED_CAP  = TRUE
399READ_ENABLED_CAP   = TRUE
400READ_STATUS        = TRUE
401READ_LOCK_CAP      = TRUE
402READ_LOCK_STATUS   = TRUE
403
404FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
405   SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
406     #
407     # These firmware volumes will have files placed in them uncompressed,
408     # and then both firmware volumes will be compressed in a single
409     # compression operation in order to achieve better overall compression.
410     #
411     SECTION FV_IMAGE = PEIFV
412     SECTION FV_IMAGE = DXEFV
413   }
414 }
415
416!include DecomprScratchEnd.fdf.inc
417
418################################################################################
419
420[Rule.Common.SEC]
421  FILE SEC = $(NAMED_GUID) {
422    PE32     PE32           $(INF_OUTPUT)/$(MODULE_NAME).efi
423    UI       STRING ="$(MODULE_NAME)" Optional
424    VERSION  STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
425  }
426
427[Rule.Common.PEI_CORE]
428  FILE PEI_CORE = $(NAMED_GUID) {
429    PE32     PE32   Align=Auto    $(INF_OUTPUT)/$(MODULE_NAME).efi
430    UI       STRING ="$(MODULE_NAME)" Optional
431    VERSION  STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
432  }
433
434[Rule.Common.PEIM]
435  FILE PEIM = $(NAMED_GUID) {
436     PEI_DEPEX PEI_DEPEX Optional        $(INF_OUTPUT)/$(MODULE_NAME).depex
437     PE32      PE32   Align=Auto         $(INF_OUTPUT)/$(MODULE_NAME).efi
438     UI       STRING="$(MODULE_NAME)" Optional
439     VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
440  }
441
442[Rule.Common.DXE_CORE]
443  FILE DXE_CORE = $(NAMED_GUID) {
444    PE32     PE32           $(INF_OUTPUT)/$(MODULE_NAME).efi
445    UI       STRING="$(MODULE_NAME)" Optional
446    VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
447  }
448
449[Rule.Common.DXE_DRIVER]
450  FILE DRIVER = $(NAMED_GUID) {
451    DXE_DEPEX    DXE_DEPEX Optional      $(INF_OUTPUT)/$(MODULE_NAME).depex
452    PE32     PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
453    UI       STRING="$(MODULE_NAME)" Optional
454    VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
455    RAW ACPI  Optional               |.acpi
456    RAW ASL   Optional               |.aml
457  }
458
459[Rule.Common.DXE_RUNTIME_DRIVER]
460  FILE DRIVER = $(NAMED_GUID) {
461    DXE_DEPEX    DXE_DEPEX Optional      $(INF_OUTPUT)/$(MODULE_NAME).depex
462    PE32     PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
463    UI       STRING="$(MODULE_NAME)" Optional
464    VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
465  }
466
467[Rule.Common.UEFI_DRIVER]
468  FILE DRIVER = $(NAMED_GUID) {
469    DXE_DEPEX    DXE_DEPEX Optional      $(INF_OUTPUT)/$(MODULE_NAME).depex
470    PE32     PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
471    UI       STRING="$(MODULE_NAME)" Optional
472    VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
473  }
474
475[Rule.Common.UEFI_DRIVER.BINARY]
476  FILE DRIVER = $(NAMED_GUID) {
477    DXE_DEPEX DXE_DEPEX Optional      |.depex
478    PE32      PE32                    |.efi
479    UI        STRING="$(MODULE_NAME)" Optional
480    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
481  }
482
483[Rule.Common.UEFI_APPLICATION]
484  FILE APPLICATION = $(NAMED_GUID) {
485    PE32     PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
486    UI       STRING="$(MODULE_NAME)" Optional
487    VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
488  }
489
490[Rule.Common.UEFI_APPLICATION.BINARY]
491  FILE APPLICATION = $(NAMED_GUID) {
492    PE32      PE32                    |.efi
493    UI        STRING="$(MODULE_NAME)" Optional
494    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
495  }
496
497[Rule.Common.USER_DEFINED.ACPITABLE]
498  FILE FREEFORM = $(NAMED_GUID) {
499    RAW ACPI               |.acpi
500    RAW ASL                |.aml
501  }
502
503[Rule.Common.USER_DEFINED.CSM]
504  FILE FREEFORM = $(NAMED_GUID) {
505    RAW BIN                |.bin
506  }
507
508[Rule.Common.SEC.RESET_VECTOR]
509  FILE RAW = $(NAMED_GUID) {
510    RAW BIN   Align = 16   |.bin
511  }
512
513[Rule.Common.SMM_CORE]
514  FILE SMM_CORE = $(NAMED_GUID) {
515    PE32     PE32           $(INF_OUTPUT)/$(MODULE_NAME).efi
516    UI       STRING="$(MODULE_NAME)" Optional
517    VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
518  }
519
520[Rule.Common.DXE_SMM_DRIVER]
521  FILE SMM = $(NAMED_GUID) {
522    SMM_DEPEX    SMM_DEPEX Optional      $(INF_OUTPUT)/$(MODULE_NAME).depex
523    PE32     PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
524    UI       STRING="$(MODULE_NAME)" Optional
525    VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
526  }
527