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