"MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.inf" is the LockBoxLib instance with SMRAM access for the PEI phase. Said library instance must, and can, access the LockBox data in SMRAM directly if it is invoked before SMBASE relocation / SMI handler installation. In that case, it only needs PEI_SMM_ACCESS_PPI from the platform, and it doesn't depend on EFI_PEI_SMM_COMMUNICATION_PPI. OVMF satisfies the description in SVN r18823 ("MdeModulePkg: SmmLockBoxPeiLib: work without EFI_PEI_SMM_COMMUNICATION_PPI"): in OVMF, only S3Resume2Pei links against SmmLockBoxPeiLib. Therefore, introduce a PEIM that produces the PEI_SMM_ACCESS_PPI interface, enabling SmmLockBoxPeiLib to work; we can omit including "UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationPei.inf". The load / installation order of S3Resume2Pei and SmmAccessPei is indifferent. SmmAccessPei produces the gEfiAcpiVariableGuid HOB during its installation (which happens during PEI), but S3Resume2Pei accesses the HOB only when the DXE IPL calls its S3RestoreConfig2 PPI member, as last act of PEI. MCH_SMRAM_D_LCK and MCH_ESMRAMC_T_EN are masked out the way they are, in SmmAccessPeiEntryPoint() and SmramAccessOpen() respectively, in order to prevent VS20xx from warning about the (otherwise fully intentional) truncation in the UINT8 casts. (Warnings reported by Michael Kinney.) Cc: Michael Kinney <michael.d.kinney@intel.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19040 6f19259b-4bc3-4df7-8a09-765794883524
484 lines
16 KiB
Plaintext
484 lines
16 KiB
Plaintext
## @file
|
|
# Open Virtual Machine Firmware: FDF
|
|
#
|
|
# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
|
#
|
|
# This program and the accompanying materials
|
|
# are licensed and made available under the terms and conditions of the BSD License
|
|
# which accompanies this distribution. The full text of the license may be found at
|
|
# http://opensource.org/licenses/bsd-license.php
|
|
#
|
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
#
|
|
##
|
|
|
|
################################################################################
|
|
|
|
#
|
|
# Default flash size for DEBUG build is 2MB. For RELEASE it is 1MB.
|
|
#
|
|
# Defining FD_SIZE_1MB or FD_SIZE_2MB on the build command line can
|
|
# override this.
|
|
#
|
|
[Defines]
|
|
!if $(TARGET) == RELEASE
|
|
!ifndef $(FD_SIZE_2MB)
|
|
DEFINE FD_SIZE_1MB=
|
|
!endif
|
|
!endif
|
|
|
|
!include OvmfPkg.fdf.inc
|
|
|
|
#
|
|
# Build the variable store and the firmware code as one unified flash device
|
|
# image.
|
|
#
|
|
[FD.OVMF]
|
|
BaseAddress = $(FW_BASE_ADDRESS)
|
|
Size = $(FW_SIZE)
|
|
ErasePolarity = 1
|
|
BlockSize = $(BLOCK_SIZE)
|
|
NumBlocks = $(FW_BLOCKS)
|
|
|
|
!include VarStore.fdf.inc
|
|
|
|
$(VARS_SIZE)|$(FVMAIN_SIZE)
|
|
FV = FVMAIN_COMPACT
|
|
|
|
$(SECFV_OFFSET)|$(SECFV_SIZE)
|
|
FV = SECFV
|
|
|
|
#
|
|
# Build the variable store and the firmware code as separate flash device
|
|
# images.
|
|
#
|
|
[FD.OVMF_VARS]
|
|
BaseAddress = $(FW_BASE_ADDRESS)
|
|
Size = $(VARS_SIZE)
|
|
ErasePolarity = 1
|
|
BlockSize = $(BLOCK_SIZE)
|
|
NumBlocks = $(VARS_BLOCKS)
|
|
|
|
!include VarStore.fdf.inc
|
|
|
|
[FD.OVMF_CODE]
|
|
BaseAddress = $(CODE_BASE_ADDRESS)
|
|
Size = $(CODE_SIZE)
|
|
ErasePolarity = 1
|
|
BlockSize = $(BLOCK_SIZE)
|
|
NumBlocks = $(CODE_BLOCKS)
|
|
|
|
0x00000000|$(FVMAIN_SIZE)
|
|
FV = FVMAIN_COMPACT
|
|
|
|
$(FVMAIN_SIZE)|$(SECFV_SIZE)
|
|
FV = SECFV
|
|
|
|
################################################################################
|
|
|
|
[FD.MEMFD]
|
|
BaseAddress = $(MEMFD_BASE_ADDRESS)
|
|
Size = 0xA00000
|
|
ErasePolarity = 1
|
|
BlockSize = 0x10000
|
|
NumBlocks = 0xA0
|
|
|
|
0x000000|0x006000
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
|
|
|
|
0x006000|0x001000
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfLockBoxStorageBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfLockBoxStorageSize
|
|
|
|
0x007000|0x001000
|
|
gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress|gUefiOvmfPkgTokenSpaceGuid.PcdGuidedExtractHandlerTableSize
|
|
|
|
0x010000|0x008000
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamSize
|
|
|
|
0x018000|0x008000
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdS3AcpiReservedMemoryBase|gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdS3AcpiReservedMemorySize
|
|
|
|
0x020000|0x0E0000
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
|
|
FV = PEIFV
|
|
|
|
0x100000|0x900000
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
|
|
FV = DXEFV
|
|
|
|
################################################################################
|
|
|
|
[FV.SECFV]
|
|
BlockSize = 0x1000
|
|
FvAlignment = 16
|
|
ERASE_POLARITY = 1
|
|
MEMORY_MAPPED = TRUE
|
|
STICKY_WRITE = TRUE
|
|
LOCK_CAP = TRUE
|
|
LOCK_STATUS = TRUE
|
|
WRITE_DISABLED_CAP = TRUE
|
|
WRITE_ENABLED_CAP = TRUE
|
|
WRITE_STATUS = TRUE
|
|
WRITE_LOCK_CAP = TRUE
|
|
WRITE_LOCK_STATUS = TRUE
|
|
READ_DISABLED_CAP = TRUE
|
|
READ_ENABLED_CAP = TRUE
|
|
READ_STATUS = TRUE
|
|
READ_LOCK_CAP = TRUE
|
|
READ_LOCK_STATUS = TRUE
|
|
|
|
#
|
|
# SEC Phase modules
|
|
#
|
|
# The code in this FV handles the initial firmware startup, and
|
|
# decompresses the PEI and DXE FVs which handles the rest of the boot sequence.
|
|
#
|
|
INF OvmfPkg/Sec/SecMain.inf
|
|
|
|
INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf
|
|
|
|
################################################################################
|
|
[FV.PEIFV]
|
|
BlockSize = 0x10000
|
|
FvAlignment = 16
|
|
ERASE_POLARITY = 1
|
|
MEMORY_MAPPED = TRUE
|
|
STICKY_WRITE = TRUE
|
|
LOCK_CAP = TRUE
|
|
LOCK_STATUS = TRUE
|
|
WRITE_DISABLED_CAP = TRUE
|
|
WRITE_ENABLED_CAP = TRUE
|
|
WRITE_STATUS = TRUE
|
|
WRITE_LOCK_CAP = TRUE
|
|
WRITE_LOCK_STATUS = TRUE
|
|
READ_DISABLED_CAP = TRUE
|
|
READ_ENABLED_CAP = TRUE
|
|
READ_STATUS = TRUE
|
|
READ_LOCK_CAP = TRUE
|
|
READ_LOCK_STATUS = TRUE
|
|
|
|
APRIORI PEI {
|
|
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
|
}
|
|
|
|
#
|
|
# PEI Phase modules
|
|
#
|
|
INF MdeModulePkg/Core/Pei/PeiMain.inf
|
|
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
|
INF IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
|
INF OvmfPkg/PlatformPei/PlatformPei.inf
|
|
INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
|
|
INF UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf
|
|
!if $(SMM_REQUIRE) == TRUE
|
|
INF OvmfPkg/SmmAccess/SmmAccessPei.inf
|
|
!endif
|
|
|
|
################################################################################
|
|
|
|
[FV.DXEFV]
|
|
BlockSize = 0x10000
|
|
FvAlignment = 16
|
|
ERASE_POLARITY = 1
|
|
MEMORY_MAPPED = TRUE
|
|
STICKY_WRITE = TRUE
|
|
LOCK_CAP = TRUE
|
|
LOCK_STATUS = TRUE
|
|
WRITE_DISABLED_CAP = TRUE
|
|
WRITE_ENABLED_CAP = TRUE
|
|
WRITE_STATUS = TRUE
|
|
WRITE_LOCK_CAP = TRUE
|
|
WRITE_LOCK_STATUS = TRUE
|
|
READ_DISABLED_CAP = TRUE
|
|
READ_ENABLED_CAP = TRUE
|
|
READ_STATUS = TRUE
|
|
READ_LOCK_CAP = TRUE
|
|
READ_LOCK_STATUS = TRUE
|
|
|
|
APRIORI DXE {
|
|
INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
|
|
INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
|
|
}
|
|
|
|
#
|
|
# DXE Phase modules
|
|
#
|
|
INF MdeModulePkg/Core/Dxe/DxeMain.inf
|
|
|
|
INF IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/StatusCodeRuntimeDxe.inf
|
|
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
|
|
|
|
INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
|
INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
|
INF MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
|
|
INF PcAtChipsetPkg/8259InterruptControllerDxe/8259.inf
|
|
INF UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf
|
|
INF UefiCpuPkg/CpuDxe/CpuDxe.inf
|
|
INF PcAtChipsetPkg/8254TimerDxe/8254Timer.inf
|
|
INF OvmfPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf
|
|
INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
|
|
INF PcAtChipsetPkg/KbcResetDxe/Reset.inf
|
|
INF MdeModulePkg/Universal/Metronome/Metronome.inf
|
|
INF PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf
|
|
|
|
INF OvmfPkg/BlockMmioToBlockIoDxe/BlockIo.inf
|
|
INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf
|
|
INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
|
|
INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
|
|
INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
|
|
INF OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf
|
|
INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
|
|
INF OvmfPkg/XenIoPciDxe/XenIoPciDxe.inf
|
|
INF OvmfPkg/XenBusDxe/XenBusDxe.inf
|
|
INF OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf
|
|
|
|
INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
|
|
!if $(SECURE_BOOT_ENABLE) == TRUE
|
|
INF SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
|
|
!endif
|
|
|
|
INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
|
INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
|
INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
|
INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
|
|
INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
|
|
INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
|
|
INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
|
INF IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
|
|
INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
|
|
INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
|
|
INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
|
|
INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
|
INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
|
|
INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
|
|
INF OvmfPkg/SataControllerDxe/SataControllerDxe.inf
|
|
INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
|
|
INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
|
|
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
|
INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
|
INF MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
|
|
|
|
INF PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf
|
|
INF IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf
|
|
|
|
!ifndef $(SOURCE_DEBUG_ENABLE)
|
|
INF IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf
|
|
!endif
|
|
|
|
INF IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf
|
|
INF IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf
|
|
|
|
INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
|
|
INF OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
|
|
|
|
INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
|
|
INF OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
|
|
INF RuleOverride=ACPITABLE OvmfPkg/AcpiTables/AcpiTables.inf
|
|
INF OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
|
|
INF MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
|
|
INF MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
|
|
|
|
INF RuleOverride = BINARY FatBinPkg/EnhancedFatDxe/Fat.inf
|
|
|
|
!ifndef $(USE_OLD_SHELL)
|
|
INF ShellPkg/Application/Shell/Shell.inf
|
|
!else
|
|
INF RuleOverride = BINARY EdkShellBinPkg/FullShell/FullShell.inf
|
|
!endif
|
|
|
|
FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
|
|
SECTION RAW = MdeModulePkg/Logo/Logo.bmp
|
|
}
|
|
|
|
#
|
|
# Network modules
|
|
#
|
|
!if $(E1000_ENABLE)
|
|
FILE DRIVER = 5D695E11-9B3F-4b83-B25F-4A8D5D69BE07 {
|
|
SECTION PE32 = Intel3.5/EFIX64/E3507X2.EFI
|
|
}
|
|
!endif
|
|
INF MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
|
|
INF MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
|
|
INF MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
|
|
INF MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
|
|
INF MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
|
|
INF MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
|
|
INF MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
|
|
INF MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
|
|
INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
|
|
!if $(NETWORK_IP6_ENABLE) == TRUE
|
|
INF NetworkPkg/Ip6Dxe/Ip6Dxe.inf
|
|
INF NetworkPkg/TcpDxe/TcpDxe.inf
|
|
INF NetworkPkg/Udp6Dxe/Udp6Dxe.inf
|
|
INF NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
|
|
INF NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
|
|
INF NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
|
|
!if $(SECURE_BOOT_ENABLE) == TRUE
|
|
INF NetworkPkg/IScsiDxe/IScsiDxe.inf
|
|
!else
|
|
INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
|
|
!endif
|
|
!else
|
|
INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
|
|
INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
|
|
INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
|
|
!endif
|
|
!if $(HTTP_BOOT_ENABLE) == TRUE
|
|
INF NetworkPkg/DnsDxe/DnsDxe.inf
|
|
INF NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
|
|
INF NetworkPkg/HttpDxe/HttpDxe.inf
|
|
INF NetworkPkg/HttpBootDxe/HttpBootDxe.inf
|
|
!endif
|
|
INF OvmfPkg/VirtioNetDxe/VirtioNet.inf
|
|
|
|
#
|
|
# Usb Support
|
|
#
|
|
INF MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
|
|
INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
|
|
INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
|
|
INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
|
|
INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
|
|
INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
|
|
|
|
!ifdef $(CSM_ENABLE)
|
|
INF IntelFrameworkModulePkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf
|
|
INF IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf
|
|
INF RuleOverride=CSM OvmfPkg/Csm/Csm16/Csm16.inf
|
|
!endif
|
|
|
|
INF OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
|
|
INF OvmfPkg/PlatformDxe/Platform.inf
|
|
|
|
################################################################################
|
|
|
|
[FV.FVMAIN_COMPACT]
|
|
FvAlignment = 16
|
|
ERASE_POLARITY = 1
|
|
MEMORY_MAPPED = TRUE
|
|
STICKY_WRITE = TRUE
|
|
LOCK_CAP = TRUE
|
|
LOCK_STATUS = TRUE
|
|
WRITE_DISABLED_CAP = TRUE
|
|
WRITE_ENABLED_CAP = TRUE
|
|
WRITE_STATUS = TRUE
|
|
WRITE_LOCK_CAP = TRUE
|
|
WRITE_LOCK_STATUS = TRUE
|
|
READ_DISABLED_CAP = TRUE
|
|
READ_ENABLED_CAP = TRUE
|
|
READ_STATUS = TRUE
|
|
READ_LOCK_CAP = TRUE
|
|
READ_LOCK_STATUS = TRUE
|
|
|
|
FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
|
|
SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
|
|
#
|
|
# These firmware volumes will have files placed in them uncompressed,
|
|
# and then both firmware volumes will be compressed in a single
|
|
# compression operation in order to achieve better overall compression.
|
|
#
|
|
SECTION FV_IMAGE = PEIFV
|
|
SECTION FV_IMAGE = DXEFV
|
|
}
|
|
}
|
|
|
|
!include DecomprScratchEnd.fdf.inc
|
|
|
|
################################################################################
|
|
|
|
[Rule.Common.SEC]
|
|
FILE SEC = $(NAMED_GUID) {
|
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
UI STRING ="$(MODULE_NAME)" Optional
|
|
VERSION STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
}
|
|
|
|
[Rule.Common.PEI_CORE]
|
|
FILE PEI_CORE = $(NAMED_GUID) {
|
|
PE32 PE32 Align=Auto $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
UI STRING ="$(MODULE_NAME)" Optional
|
|
VERSION STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
}
|
|
|
|
[Rule.Common.PEIM]
|
|
FILE PEIM = $(NAMED_GUID) {
|
|
PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
|
PE32 PE32 Align=Auto $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
}
|
|
|
|
[Rule.Common.DXE_CORE]
|
|
FILE DXE_CORE = $(NAMED_GUID) {
|
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
}
|
|
|
|
[Rule.Common.DXE_DRIVER]
|
|
FILE DRIVER = $(NAMED_GUID) {
|
|
DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
}
|
|
|
|
[Rule.Common.DXE_RUNTIME_DRIVER]
|
|
FILE DRIVER = $(NAMED_GUID) {
|
|
DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
}
|
|
|
|
[Rule.Common.UEFI_DRIVER]
|
|
FILE DRIVER = $(NAMED_GUID) {
|
|
DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
}
|
|
|
|
[Rule.Common.UEFI_DRIVER.BINARY]
|
|
FILE DRIVER = $(NAMED_GUID) {
|
|
DXE_DEPEX DXE_DEPEX Optional |.depex
|
|
PE32 PE32 |.efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
}
|
|
|
|
[Rule.Common.UEFI_APPLICATION]
|
|
FILE APPLICATION = $(NAMED_GUID) {
|
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
}
|
|
|
|
[Rule.Common.UEFI_APPLICATION.BINARY]
|
|
FILE APPLICATION = $(NAMED_GUID) {
|
|
PE32 PE32 |.efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
}
|
|
|
|
[Rule.Common.USER_DEFINED.ACPITABLE]
|
|
FILE FREEFORM = $(NAMED_GUID) {
|
|
RAW ACPI |.acpi
|
|
RAW ASL |.aml
|
|
}
|
|
|
|
[Rule.Common.USER_DEFINED.CSM]
|
|
FILE FREEFORM = $(NAMED_GUID) {
|
|
RAW BIN |.bin
|
|
}
|
|
|
|
[Rule.Common.SEC.RESET_VECTOR]
|
|
FILE RAW = $(NAMED_GUID) {
|
|
RAW BIN Align = 16 |.bin
|
|
}
|