Home | History | Annotate | Download | only in OvmfPkg
      1 ## @file

      2 #  Open Virtual Machine Firmware: FDF

      3 #

      4 #  Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>

      5 #

      6 #  This program and the accompanying materials

      7 #  are licensed and made available under the terms and conditions of the BSD License

      8 #  which accompanies this distribution. The full text of the license may be found at

      9 #  http://opensource.org/licenses/bsd-license.php

     10 #

     11 #  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,

     12 #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

     13 #

     14 ##

     15 
     16 ################################################################################

     17 
     18 #

     19 # Default flash size for DEBUG build is 2MB. For RELEASE it is 1MB.

     20 #

     21 # Defining FD_SIZE_1MB or FD_SIZE_2MB on the build command line can

     22 # override this.

     23 #

     24 [Defines]
     25 !if $(TARGET) == RELEASE
     26 !ifndef $(FD_SIZE_2MB)
     27 DEFINE FD_SIZE_1MB=
     28 !endif
     29 !endif
     30 
     31 !include OvmfPkg.fdf.inc
     32 
     33 #

     34 # Build the variable store and the firmware code as one unified flash device

     35 # image.

     36 #

     37 [FD.OVMF]
     38 BaseAddress   = $(FW_BASE_ADDRESS)
     39 Size          = $(FW_SIZE)
     40 ErasePolarity = 1
     41 BlockSize     = $(BLOCK_SIZE)
     42 NumBlocks     = $(FW_BLOCKS)
     43 
     44 !include VarStore.fdf.inc
     45 
     46 $(VARS_SIZE)|$(FVMAIN_SIZE)
     47 FV = FVMAIN_COMPACT
     48 
     49 $(SECFV_OFFSET)|$(SECFV_SIZE)
     50 FV = SECFV
     51 
     52 #

     53 # Build the variable store and the firmware code as separate flash device

     54 # images.

     55 #

     56 [FD.OVMF_VARS]
     57 BaseAddress   = $(FW_BASE_ADDRESS)
     58 Size          = $(VARS_SIZE)
     59 ErasePolarity = 1
     60 BlockSize     = $(BLOCK_SIZE)
     61 NumBlocks     = $(VARS_BLOCKS)
     62 
     63 !include VarStore.fdf.inc
     64 
     65 [FD.OVMF_CODE]
     66 BaseAddress   = $(CODE_BASE_ADDRESS)
     67 Size          = $(CODE_SIZE)
     68 ErasePolarity = 1
     69 BlockSize     = $(BLOCK_SIZE)
     70 NumBlocks     = $(CODE_BLOCKS)
     71 
     72 0x00000000|$(FVMAIN_SIZE)
     73 FV = FVMAIN_COMPACT
     74 
     75 $(FVMAIN_SIZE)|$(SECFV_SIZE)
     76 FV = SECFV
     77 
     78 ################################################################################

     79 
     80 [FD.MEMFD]
     81 BaseAddress   = $(MEMFD_BASE_ADDRESS)
     82 Size          = 0xA00000
     83 ErasePolarity = 1
     84 BlockSize     = 0x10000
     85 NumBlocks     = 0xA0
     86 
     87 0x000000|0x006000
     88 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
     89 
     90 0x006000|0x001000
     91 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfLockBoxStorageBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfLockBoxStorageSize
     92 
     93 0x007000|0x001000
     94 gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress|gUefiOvmfPkgTokenSpaceGuid.PcdGuidedExtractHandlerTableSize
     95 
     96 0x010000|0x008000
     97 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamSize
     98 
     99 0x018000|0x008000
    100 gUefiOvmfPkgTokenSpaceGuid.PcdS3AcpiReservedMemoryBase|gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdS3AcpiReservedMemorySize
    101 
    102 0x020000|0x0E0000
    103 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
    104 FV = PEIFV
    105 
    106 0x100000|0x900000
    107 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
    108 FV = DXEFV
    109 
    110 ################################################################################

    111 
    112 [FV.SECFV]
    113 BlockSize          = 0x1000
    114 FvAlignment        = 16
    115 ERASE_POLARITY     = 1
    116 MEMORY_MAPPED      = TRUE
    117 STICKY_WRITE       = TRUE
    118 LOCK_CAP           = TRUE
    119 LOCK_STATUS        = TRUE
    120 WRITE_DISABLED_CAP = TRUE
    121 WRITE_ENABLED_CAP  = TRUE
    122 WRITE_STATUS       = TRUE
    123 WRITE_LOCK_CAP     = TRUE
    124 WRITE_LOCK_STATUS  = TRUE
    125 READ_DISABLED_CAP  = TRUE
    126 READ_ENABLED_CAP   = TRUE
    127 READ_STATUS        = TRUE
    128 READ_LOCK_CAP      = TRUE
    129 READ_LOCK_STATUS   = TRUE
    130 
    131 #

    132 # SEC Phase modules

    133 #

    134 # The code in this FV handles the initial firmware startup, and

    135 # decompresses the PEI and DXE FVs which handles the rest of the boot sequence.

    136 #

    137 INF  OvmfPkg/Sec/SecMain.inf
    138 
    139 INF  RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf
    140 
    141 ################################################################################

    142 [FV.PEIFV]
    143 BlockSize          = 0x10000
    144 FvAlignment        = 16
    145 ERASE_POLARITY     = 1
    146 MEMORY_MAPPED      = TRUE
    147 STICKY_WRITE       = TRUE
    148 LOCK_CAP           = TRUE
    149 LOCK_STATUS        = TRUE
    150 WRITE_DISABLED_CAP = TRUE
    151 WRITE_ENABLED_CAP  = TRUE
    152 WRITE_STATUS       = TRUE
    153 WRITE_LOCK_CAP     = TRUE
    154 WRITE_LOCK_STATUS  = TRUE
    155 READ_DISABLED_CAP  = TRUE
    156 READ_ENABLED_CAP   = TRUE
    157 READ_STATUS        = TRUE
    158 READ_LOCK_CAP      = TRUE
    159 READ_LOCK_STATUS   = TRUE
    160 
    161 APRIORI PEI {
    162   INF  MdeModulePkg/Universal/PCD/Pei/Pcd.inf
    163 }
    164 
    165 #

    166 #  PEI Phase modules

    167 #

    168 INF  MdeModulePkg/Core/Pei/PeiMain.inf
    169 INF  MdeModulePkg/Universal/PCD/Pei/Pcd.inf
    170 INF  IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
    171 INF  OvmfPkg/PlatformPei/PlatformPei.inf
    172 INF  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
    173 INF  UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf
    174 !if $(SMM_REQUIRE) == TRUE
    175 INF  OvmfPkg/SmmAccess/SmmAccessPei.inf
    176 !endif
    177 
    178 ################################################################################

    179 
    180 [FV.DXEFV]
    181 BlockSize          = 0x10000
    182 FvAlignment        = 16
    183 ERASE_POLARITY     = 1
    184 MEMORY_MAPPED      = TRUE
    185 STICKY_WRITE       = TRUE
    186 LOCK_CAP           = TRUE
    187 LOCK_STATUS        = TRUE
    188 WRITE_DISABLED_CAP = TRUE
    189 WRITE_ENABLED_CAP  = TRUE
    190 WRITE_STATUS       = TRUE
    191 WRITE_LOCK_CAP     = TRUE
    192 WRITE_LOCK_STATUS  = TRUE
    193 READ_DISABLED_CAP  = TRUE
    194 READ_ENABLED_CAP   = TRUE
    195 READ_STATUS        = TRUE
    196 READ_LOCK_CAP      = TRUE
    197 READ_LOCK_STATUS   = TRUE
    198 
    199 APRIORI DXE {
    200   INF  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
    201   INF  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
    202 !if $(SMM_REQUIRE) == FALSE
    203   INF  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
    204 !endif
    205 }
    206 
    207 #

    208 # DXE Phase modules

    209 #

    210 INF  MdeModulePkg/Core/Dxe/DxeMain.inf
    211 
    212 INF  IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/StatusCodeRuntimeDxe.inf
    213 INF  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
    214 
    215 INF  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
    216 INF  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
    217 INF  MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
    218 INF  PcAtChipsetPkg/8259InterruptControllerDxe/8259.inf
    219 INF  UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf
    220 INF  UefiCpuPkg/CpuDxe/CpuDxe.inf
    221 INF  PcAtChipsetPkg/8254TimerDxe/8254Timer.inf
    222 INF  OvmfPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf
    223 INF  MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
    224 INF  PcAtChipsetPkg/KbcResetDxe/Reset.inf
    225 INF  MdeModulePkg/Universal/Metronome/Metronome.inf
    226 INF  PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf
    227 
    228 INF  OvmfPkg/BlockMmioToBlockIoDxe/BlockIo.inf
    229 INF  OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf
    230 INF  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
    231 INF  OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
    232 INF  OvmfPkg/XenIoPciDxe/XenIoPciDxe.inf
    233 INF  OvmfPkg/XenBusDxe/XenBusDxe.inf
    234 INF  OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf
    235 
    236 !if $(SECURE_BOOT_ENABLE) == TRUE
    237   INF  SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
    238 !endif
    239 
    240 INF  MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
    241 INF  MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
    242 INF  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
    243 INF  MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
    244 INF  MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
    245 INF  MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
    246 INF  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
    247 INF  IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
    248 INF  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
    249 INF  MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
    250 INF  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
    251 INF  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
    252 INF  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
    253 INF  MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
    254 INF  MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
    255 INF  OvmfPkg/SataControllerDxe/SataControllerDxe.inf
    256 INF  MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
    257 INF  MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
    258 INF  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
    259 INF  MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
    260 INF  MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
    261 INF  MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
    262 
    263 INF  PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf
    264 INF  IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf
    265 
    266 !ifndef $(SOURCE_DEBUG_ENABLE)
    267 INF  IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf
    268 !endif
    269 
    270 INF  IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf
    271 INF  IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf
    272 
    273 INF  MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
    274 INF  OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
    275 
    276 INF  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
    277 INF  OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
    278 INF  RuleOverride=ACPITABLE OvmfPkg/AcpiTables/AcpiTables.inf
    279 INF  OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
    280 INF  MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
    281 INF  MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
    282 
    283 INF  RuleOverride = BINARY USE = X64 FatBinPkg/EnhancedFatDxe/Fat.inf
    284 
    285 !ifndef $(USE_OLD_SHELL)
    286 INF  ShellPkg/Application/Shell/Shell.inf
    287 !else
    288 INF  RuleOverride = BINARY USE = X64 EdkShellBinPkg/FullShell/FullShell.inf
    289 !endif
    290 
    291 FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
    292   SECTION RAW = MdeModulePkg/Logo/Logo.bmp
    293 }
    294 
    295 #

    296 # Network modules

    297 #

    298 !if $(E1000_ENABLE)
    299   FILE DRIVER = 5D695E11-9B3F-4b83-B25F-4A8D5D69BE07 {
    300     SECTION PE32 = Intel3.5/EFIX64/E3507X2.EFI
    301   }
    302 !endif
    303   INF  MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
    304   INF  MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
    305   INF  MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
    306   INF  MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
    307   INF  MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
    308   INF  MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
    309   INF  MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
    310   INF  MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
    311   INF  MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
    312 !if $(NETWORK_IP6_ENABLE) == TRUE
    313   INF  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
    314   INF  NetworkPkg/TcpDxe/TcpDxe.inf
    315   INF  NetworkPkg/Udp6Dxe/Udp6Dxe.inf
    316   INF  NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
    317   INF  NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
    318   INF  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
    319 !if $(SECURE_BOOT_ENABLE) == TRUE
    320   INF  NetworkPkg/IScsiDxe/IScsiDxe.inf
    321 !else
    322   INF  MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
    323 !endif
    324 !else
    325   INF  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
    326   INF  MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
    327   INF  MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
    328 !endif
    329 !if $(HTTP_BOOT_ENABLE) == TRUE
    330   INF  NetworkPkg/DnsDxe/DnsDxe.inf
    331   INF  NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
    332   INF  NetworkPkg/HttpDxe/HttpDxe.inf
    333   INF  NetworkPkg/HttpBootDxe/HttpBootDxe.inf
    334 !endif
    335   INF  OvmfPkg/VirtioNetDxe/VirtioNet.inf
    336 
    337 #

    338 # Usb Support

    339 #

    340 INF  MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
    341 INF  MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
    342 INF  MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
    343 INF  MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
    344 INF  MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
    345 INF  MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
    346 
    347 !ifdef $(CSM_ENABLE)
    348 INF  IntelFrameworkModulePkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf
    349 INF  IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf
    350 INF  RuleOverride=CSM OvmfPkg/Csm/Csm16/Csm16.inf
    351 !endif
    352 
    353 INF  OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
    354 INF  OvmfPkg/PlatformDxe/Platform.inf
    355 
    356 !if $(SMM_REQUIRE) == TRUE
    357 INF  OvmfPkg/SmmAccess/SmmAccess2Dxe.inf
    358 INF  OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
    359 INF  UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf
    360 INF  MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf
    361 INF  MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf
    362 INF  UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
    363 INF  MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf
    364 INF  UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf
    365 
    366 #

    367 # Variable driver stack (SMM)

    368 #

    369 INF  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf
    370 INF  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
    371 INF  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf
    372 INF  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf
    373 
    374 !else
    375 
    376 #

    377 # Variable driver stack (non-SMM)

    378 #

    379 INF  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
    380 INF  OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf
    381 INF  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
    382 INF  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
    383 !endif
    384 
    385 ################################################################################

    386 
    387 [FV.FVMAIN_COMPACT]
    388 FvAlignment        = 16
    389 ERASE_POLARITY     = 1
    390 MEMORY_MAPPED      = TRUE
    391 STICKY_WRITE       = TRUE
    392 LOCK_CAP           = TRUE
    393 LOCK_STATUS        = TRUE
    394 WRITE_DISABLED_CAP = TRUE
    395 WRITE_ENABLED_CAP  = TRUE
    396 WRITE_STATUS       = TRUE
    397 WRITE_LOCK_CAP     = TRUE
    398 WRITE_LOCK_STATUS  = TRUE
    399 READ_DISABLED_CAP  = TRUE
    400 READ_ENABLED_CAP   = TRUE
    401 READ_STATUS        = TRUE
    402 READ_LOCK_CAP      = TRUE
    403 READ_LOCK_STATUS   = TRUE
    404 
    405 FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
    406    SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
    407      #

    408      # These firmware volumes will have files placed in them uncompressed,

    409      # and then both firmware volumes will be compressed in a single

    410      # compression operation in order to achieve better overall compression.

    411      #

    412      SECTION FV_IMAGE = PEIFV
    413      SECTION FV_IMAGE = DXEFV
    414    }
    415  }
    416 
    417 !include DecomprScratchEnd.fdf.inc
    418 
    419 ################################################################################

    420 
    421 [Rule.Common.SEC]
    422   FILE SEC = $(NAMED_GUID) {
    423     PE32     PE32           $(INF_OUTPUT)/$(MODULE_NAME).efi
    424     UI       STRING ="$(MODULE_NAME)" Optional
    425     VERSION  STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
    426   }
    427 
    428 [Rule.Common.PEI_CORE]
    429   FILE PEI_CORE = $(NAMED_GUID) {
    430     PE32     PE32   Align=Auto    $(INF_OUTPUT)/$(MODULE_NAME).efi
    431     UI       STRING ="$(MODULE_NAME)" Optional
    432     VERSION  STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
    433   }
    434 
    435 [Rule.Common.PEIM]
    436   FILE PEIM = $(NAMED_GUID) {
    437      PEI_DEPEX PEI_DEPEX Optional        $(INF_OUTPUT)/$(MODULE_NAME).depex
    438      PE32      PE32   Align=Auto         $(INF_OUTPUT)/$(MODULE_NAME).efi
    439      UI       STRING="$(MODULE_NAME)" Optional
    440      VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
    441   }
    442 
    443 [Rule.Common.DXE_CORE]
    444   FILE DXE_CORE = $(NAMED_GUID) {
    445     PE32     PE32           $(INF_OUTPUT)/$(MODULE_NAME).efi
    446     UI       STRING="$(MODULE_NAME)" Optional
    447     VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
    448   }
    449 
    450 [Rule.Common.DXE_DRIVER]
    451   FILE DRIVER = $(NAMED_GUID) {
    452     DXE_DEPEX    DXE_DEPEX Optional      $(INF_OUTPUT)/$(MODULE_NAME).depex
    453     PE32     PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
    454     UI       STRING="$(MODULE_NAME)" Optional
    455     VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
    456   }
    457 
    458 [Rule.Common.DXE_RUNTIME_DRIVER]
    459   FILE DRIVER = $(NAMED_GUID) {
    460     DXE_DEPEX    DXE_DEPEX Optional      $(INF_OUTPUT)/$(MODULE_NAME).depex
    461     PE32     PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
    462     UI       STRING="$(MODULE_NAME)" Optional
    463     VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
    464   }
    465 
    466 [Rule.Common.UEFI_DRIVER]
    467   FILE DRIVER = $(NAMED_GUID) {
    468     DXE_DEPEX    DXE_DEPEX Optional      $(INF_OUTPUT)/$(MODULE_NAME).depex
    469     PE32     PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
    470     UI       STRING="$(MODULE_NAME)" Optional
    471     VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
    472   }
    473 
    474 [Rule.Common.UEFI_DRIVER.BINARY]
    475   FILE DRIVER = $(NAMED_GUID) {
    476     DXE_DEPEX DXE_DEPEX Optional      |.depex
    477     PE32      PE32                    |.efi
    478     UI        STRING="$(MODULE_NAME)" Optional
    479     VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
    480   }
    481 
    482 [Rule.Common.UEFI_APPLICATION]
    483   FILE APPLICATION = $(NAMED_GUID) {
    484     PE32     PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
    485     UI       STRING="$(MODULE_NAME)" Optional
    486     VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
    487   }
    488 
    489 [Rule.Common.UEFI_APPLICATION.BINARY]
    490   FILE APPLICATION = $(NAMED_GUID) {
    491     PE32      PE32                    |.efi
    492     UI        STRING="$(MODULE_NAME)" Optional
    493     VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
    494   }
    495 
    496 [Rule.Common.USER_DEFINED.ACPITABLE]
    497   FILE FREEFORM = $(NAMED_GUID) {
    498     RAW ACPI               |.acpi
    499     RAW ASL                |.aml
    500   }
    501 
    502 [Rule.Common.USER_DEFINED.CSM]
    503   FILE FREEFORM = $(NAMED_GUID) {
    504     RAW BIN                |.bin
    505   }
    506 
    507 [Rule.Common.SEC.RESET_VECTOR]
    508   FILE RAW = $(NAMED_GUID) {
    509     RAW BIN   Align = 16   |.bin
    510   }
    511 
    512 [Rule.Common.SMM_CORE]
    513   FILE SMM_CORE = $(NAMED_GUID) {
    514     PE32     PE32           $(INF_OUTPUT)/$(MODULE_NAME).efi
    515     UI       STRING="$(MODULE_NAME)" Optional
    516     VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
    517   }
    518 
    519 [Rule.Common.DXE_SMM_DRIVER]
    520   FILE SMM = $(NAMED_GUID) {
    521     SMM_DEPEX    SMM_DEPEX Optional      $(INF_OUTPUT)/$(MODULE_NAME).depex
    522     PE32     PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
    523     UI       STRING="$(MODULE_NAME)" Optional
    524     VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
    525   }
    526