2014-09-18 20:11:24 +02:00
|
|
|
#
|
2015-05-29 15:50:43 +02:00
|
|
|
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
2014-09-18 20:11:24 +02:00
|
|
|
# Copyright (c) 2014, Linaro Limited. All rights reserved.
|
2015-07-01 05:11:05 +02:00
|
|
|
# Copyright (c) 2015, Intel Corporation. All rights reserved.
|
2014-09-18 20:11:24 +02:00
|
|
|
#
|
|
|
|
# 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.
|
|
|
|
#
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
#
|
|
|
|
# FD Section
|
|
|
|
# The [FD] Section is made up of the definition statements and a
|
|
|
|
# description of what goes into the Flash Device Image. Each FD section
|
|
|
|
# defines one flash "device" image. A flash device image may be one of
|
|
|
|
# the following: Removable media bootable image (like a boot floppy
|
|
|
|
# image,) an Option ROM image (that would be "flashed" into an add-in
|
|
|
|
# card,) a System "Flash" image (that would be burned into a system's
|
|
|
|
# flash) or an Update ("Capsule") image that will be used to update and
|
|
|
|
# existing system flash.
|
|
|
|
#
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
[FD.QEMU_EFI]
|
|
|
|
BaseAddress = 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress # QEMU assigns 0 - 0x8000000 for a BootROM
|
|
|
|
Size = 0x00200000|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device
|
|
|
|
ErasePolarity = 1
|
|
|
|
|
|
|
|
# This one is tricky, it must be: BlockSize * NumBlocks = Size
|
|
|
|
BlockSize = 0x00001000
|
|
|
|
NumBlocks = 0x200
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
#
|
|
|
|
# Following are lists of FD Region layout which correspond to the locations of different
|
|
|
|
# images within the flash device.
|
|
|
|
#
|
|
|
|
# Regions must be defined in ascending order and may not overlap.
|
|
|
|
#
|
|
|
|
# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
|
|
|
|
# the pipe "|" character, followed by the size of the region, also in hex with the leading
|
|
|
|
# "0x" characters. Like:
|
|
|
|
# Offset|Size
|
|
|
|
# PcdOffsetCName|PcdSizeCName
|
|
|
|
# RegionType <FV, DATA, or FILE>
|
|
|
|
#
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
#
|
|
|
|
# UEFI has trouble dealing with FVs that reside at physical address 0x0.
|
|
|
|
# So instead, put a hardcoded 'jump to 0x1000' at offset 0x0, and put the
|
|
|
|
# real FV at offset 0x1000
|
|
|
|
#
|
|
|
|
0x00000000|0x00001000
|
|
|
|
DATA = {
|
|
|
|
!if $(ARCH) == AARCH64
|
|
|
|
0x00, 0x04, 0x00, 0x14 # 'b 0x1000' in AArch64 ASM
|
|
|
|
!else
|
|
|
|
0xfe, 0x03, 0x00, 0xea # 'b 0x1000' in AArch32 ASM
|
|
|
|
!endif
|
|
|
|
}
|
|
|
|
|
|
|
|
0x00001000|0x001ff000
|
|
|
|
gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize
|
|
|
|
FV = FVMAIN_COMPACT
|
|
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
#
|
|
|
|
# FV Section
|
|
|
|
#
|
|
|
|
# [FV] section is used to define what components or modules are placed within a flash
|
|
|
|
# device file. This section also defines order the components and modules are positioned
|
|
|
|
# within the image. The [FV] section consists of define statements, set statements and
|
|
|
|
# module statements.
|
|
|
|
#
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
[FV.FvMain]
|
|
|
|
BlockSize = 0x40
|
|
|
|
NumBlocks = 0 # This FV gets compressed so make it just big enough
|
|
|
|
FvAlignment = 16 # FV alignment and FV attributes setting.
|
|
|
|
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/PCD/Dxe/Pcd.inf
|
2015-05-29 15:50:43 +02:00
|
|
|
INF ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.inf
|
ArmVirtPkg: add QemuFwCfgToPcdDxe
Many universal DXE drivers in edk2 can be controlled by setting dynamic
PCDs. Such a PCD must be set before the consumer DXE driver is dispatched.
(In general we assume that the DXE driver will consume the PCD in its
entry point, or in the constructor of a library instance it links against.
In special cases this requirement can be relaxed a bit, if we know that
the DXE driver accesses the PCD only in a protocol member function that it
exports.)
On the QEMU platform, the PCD values to be set for the universal drivers
are frequently derived from fw_cfg files that QEMU exports.
In OvmfPkg we tend to handle this in the following way:
- For IA32 and X64, OvmfPkg provides a QemuFwCfgLib instance that is
usable in PEI.
- In PlatformPei, fw_cfg files can be loaded and transformed to PCD
values.
- Any DXE driver is bound to be dispatched after the PEI phase is done.
(In specific cases other ordering solutions might be possible, via Depex
or protocol notify, etc.)
In ArmVirtPkg/ArmVirtQemu, things differ a bit:
- We don't have an ArmVirtPkg-specific ("Platform") PEIM. This is actually
a good thing for now, so let's not introduce one just for this purpose.
- Even if we had such a PEIM, it could not easily access fw_cfg: the MMIO
addresses of the fw_cfg device are available only in the DTB that QEMU
exports.
(Accordingly, our QemuFwCfgLib instance is restricted to DXE_DRIVER
modules: VirtFdtDxe parses the DTB, stores the fw_cfg addresses in PCDs,
and then QemuFwCfgLib's constructor fetches those PCDs.)
There are some examples in ArmVirtPkg where early code is forced to
parse the DTB manually, but those examples are all painful, and our goal
here (controlling universal DXE drivers) doesn't justify more of that
pain.
Therefore, introduce a separate, minimal DXE driver that is dispatched
strictly after VirtFdtDxe (so that it can use QemuFwCfgLib), and strictly
before other DXE drivers (so that it can set dynamic PCDs for them).
Because VirtFdtDxe is already ordered with the APRIORI DXE file, it is
simplest to do the same for the new driver.
Actual fw_cfg files and PCDs shall be accessed in future patches.
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18042 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-26 10:02:50 +02:00
|
|
|
INF ArmVirtPkg/QemuFwCfgToPcdDxe/QemuFwCfgToPcd.inf
|
2014-09-18 20:11:24 +02:00
|
|
|
}
|
|
|
|
INF MdeModulePkg/Core/Dxe/DxeMain.inf
|
|
|
|
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
|
2015-05-29 15:50:43 +02:00
|
|
|
INF ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.inf
|
ArmVirtPkg: add QemuFwCfgToPcdDxe
Many universal DXE drivers in edk2 can be controlled by setting dynamic
PCDs. Such a PCD must be set before the consumer DXE driver is dispatched.
(In general we assume that the DXE driver will consume the PCD in its
entry point, or in the constructor of a library instance it links against.
In special cases this requirement can be relaxed a bit, if we know that
the DXE driver accesses the PCD only in a protocol member function that it
exports.)
On the QEMU platform, the PCD values to be set for the universal drivers
are frequently derived from fw_cfg files that QEMU exports.
In OvmfPkg we tend to handle this in the following way:
- For IA32 and X64, OvmfPkg provides a QemuFwCfgLib instance that is
usable in PEI.
- In PlatformPei, fw_cfg files can be loaded and transformed to PCD
values.
- Any DXE driver is bound to be dispatched after the PEI phase is done.
(In specific cases other ordering solutions might be possible, via Depex
or protocol notify, etc.)
In ArmVirtPkg/ArmVirtQemu, things differ a bit:
- We don't have an ArmVirtPkg-specific ("Platform") PEIM. This is actually
a good thing for now, so let's not introduce one just for this purpose.
- Even if we had such a PEIM, it could not easily access fw_cfg: the MMIO
addresses of the fw_cfg device are available only in the DTB that QEMU
exports.
(Accordingly, our QemuFwCfgLib instance is restricted to DXE_DRIVER
modules: VirtFdtDxe parses the DTB, stores the fw_cfg addresses in PCDs,
and then QemuFwCfgLib's constructor fetches those PCDs.)
There are some examples in ArmVirtPkg where early code is forced to
parse the DTB manually, but those examples are all painful, and our goal
here (controlling universal DXE drivers) doesn't justify more of that
pain.
Therefore, introduce a separate, minimal DXE driver that is dispatched
strictly after VirtFdtDxe (so that it can use QemuFwCfgLib), and strictly
before other DXE drivers (so that it can set dynamic PCDs for them).
Because VirtFdtDxe is already ordered with the APRIORI DXE file, it is
simplest to do the same for the new driver.
Actual fw_cfg files and PCDs shall be accessed in future patches.
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18042 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-26 10:02:50 +02:00
|
|
|
INF ArmVirtPkg/QemuFwCfgToPcdDxe/QemuFwCfgToPcd.inf
|
2014-09-18 20:11:24 +02:00
|
|
|
|
|
|
|
#
|
|
|
|
# PI DXE Drivers producing Architectural Protocols (EFI Services)
|
|
|
|
#
|
|
|
|
INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
|
|
|
|
INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
|
|
|
INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
|
|
|
INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
|
|
|
INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
|
2015-07-01 05:11:05 +02:00
|
|
|
INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
|
2015-05-07 17:22:31 +02:00
|
|
|
!if $(SECURE_BOOT_ENABLE) == TRUE
|
|
|
|
INF SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
|
|
|
|
!endif
|
2014-09-18 20:11:24 +02:00
|
|
|
INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
|
|
|
INF EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
|
|
|
|
INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
|
|
|
|
INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
|
|
|
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
|
|
|
|
|
|
#
|
|
|
|
# Multiple Console IO support
|
|
|
|
#
|
|
|
|
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 EmbeddedPkg/SerialDxe/SerialDxe.inf
|
|
|
|
|
|
|
|
INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
|
|
|
INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf
|
2015-05-07 17:22:31 +02:00
|
|
|
!if $(SECURE_BOOT_ENABLE) == TRUE
|
|
|
|
INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashAuthenticatedDxe.inf
|
|
|
|
!else
|
2014-09-18 20:11:24 +02:00
|
|
|
INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
2015-05-07 17:22:31 +02:00
|
|
|
!endif
|
2014-09-18 20:11:24 +02:00
|
|
|
INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
|
|
|
|
|
|
|
#
|
|
|
|
# FAT filesystem + GPT/MBR partitioning
|
|
|
|
#
|
|
|
|
INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
|
|
|
|
INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
|
|
|
|
INF FatBinPkg/EnhancedFatDxe/Fat.inf
|
|
|
|
INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
|
|
|
|
|
|
|
#
|
|
|
|
# Platform Driver
|
|
|
|
#
|
|
|
|
INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
|
|
|
|
INF OvmfPkg/VirtioNetDxe/VirtioNet.inf
|
|
|
|
INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
|
|
|
|
|
|
|
|
#
|
|
|
|
# UEFI application (Shell Embedded Boot Loader)
|
|
|
|
#
|
2015-03-16 20:56:54 +01:00
|
|
|
INF ShellPkg/Application/Shell/Shell.inf
|
2014-09-18 20:11:24 +02:00
|
|
|
|
|
|
|
#
|
|
|
|
# Bds
|
|
|
|
#
|
|
|
|
INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
2014-10-13 12:55:38 +02:00
|
|
|
INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
|
|
|
INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
|
|
|
INF IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
|
2014-09-18 20:11:24 +02:00
|
|
|
|
|
|
|
#
|
|
|
|
# Networking stack
|
|
|
|
#
|
|
|
|
INF MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.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/MnpDxe/MnpDxe.inf
|
|
|
|
INF MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
|
|
|
|
INF MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
|
|
|
|
INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
|
|
|
|
INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
|
|
|
|
INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
|
|
|
|
INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
|
|
|
|
|
|
|
|
#
|
|
|
|
# SCSI Bus and Disk Driver
|
|
|
|
#
|
|
|
|
INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
|
|
|
|
INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
|
|
|
|
|
2015-07-26 10:03:00 +02:00
|
|
|
#
|
|
|
|
# SMBIOS Support
|
|
|
|
#
|
|
|
|
INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
|
|
|
|
INF OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
|
|
|
|
|
2015-02-02 20:09:07 +01:00
|
|
|
#
|
|
|
|
# ACPI Support
|
|
|
|
#
|
|
|
|
INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
|
|
|
|
INF OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpiPlatformDxe.inf
|
|
|
|
|
2015-02-23 17:04:11 +01:00
|
|
|
#
|
|
|
|
# PCI support
|
|
|
|
#
|
2015-05-29 15:50:43 +02:00
|
|
|
INF ArmVirtPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf
|
2015-02-23 17:04:11 +01:00
|
|
|
INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
|
|
|
|
INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf
|
|
|
|
|
2015-02-23 17:04:25 +01:00
|
|
|
#
|
|
|
|
# Video support
|
|
|
|
#
|
|
|
|
INF OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf
|
|
|
|
INF OvmfPkg/PlatformDxe/Platform.inf
|
|
|
|
|
2015-02-23 17:04:30 +01:00
|
|
|
#
|
|
|
|
# USB Support
|
|
|
|
#
|
|
|
|
INF MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
|
|
|
|
INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
|
2015-03-16 20:57:06 +01:00
|
|
|
INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
|
2015-02-23 17:04:30 +01:00
|
|
|
INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
|
|
|
|
INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
|
|
|
|
|
2015-02-25 18:54:15 +01:00
|
|
|
#
|
|
|
|
# TianoCore logo (splash screen)
|
|
|
|
#
|
|
|
|
FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
|
|
|
|
SECTION RAW = MdeModulePkg/Logo/Logo.bmp
|
|
|
|
}
|
|
|
|
|
2015-08-04 20:41:45 +02:00
|
|
|
!if $(ARCH) == ARM
|
|
|
|
INF MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemDxe.inf
|
|
|
|
INF ArmPkg/Application/LinuxLoader/LinuxLoader.inf
|
|
|
|
!endif
|
|
|
|
|
2014-09-18 20:11:24 +02:00
|
|
|
[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
|
|
|
|
|
|
|
|
APRIORI PEI {
|
|
|
|
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
|
|
|
}
|
|
|
|
INF ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
|
|
|
|
INF MdeModulePkg/Core/Pei/PeiMain.inf
|
|
|
|
INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
|
|
INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
|
|
INF ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
|
|
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
|
|
|
INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
|
|
|
INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
|
|
|
|
|
|
|
|
FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
|
|
|
|
SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
|
|
|
|
SECTION FV_IMAGE = FVMAIN
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
#
|
|
|
|
# Rules are use with the [FV] section's module INF type to define
|
|
|
|
# how an FFS file is created for a given INF file. The following Rule are the default
|
|
|
|
# rules for the different module type. User can add the customized rules to define the
|
|
|
|
# content of the FFS file.
|
|
|
|
#
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
|
|
############################################################################
|
|
|
|
# Example of a DXE_DRIVER FFS file with a Checksum encapsulation section #
|
|
|
|
############################################################################
|
|
|
|
#
|
|
|
|
#[Rule.Common.DXE_DRIVER]
|
|
|
|
# FILE DRIVER = $(NAMED_GUID) {
|
|
|
|
# DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
|
|
|
# COMPRESS PI_STD {
|
|
|
|
# GUIDED {
|
|
|
|
# PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
|
|
# UI STRING="$(MODULE_NAME)" Optional
|
|
|
|
# VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
|
|
# }
|
|
|
|
# }
|
|
|
|
# }
|
|
|
|
#
|
|
|
|
############################################################################
|
|
|
|
|
|
|
|
[Rule.Common.SEC]
|
2015-07-31 10:24:18 +02:00
|
|
|
FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED FIXED {
|
|
|
|
TE TE Align = Auto $(INF_OUTPUT)/$(MODULE_NAME).efi
|
2014-09-18 20:11:24 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
[Rule.Common.PEI_CORE]
|
2015-07-31 10:24:18 +02:00
|
|
|
FILE PEI_CORE = $(NAMED_GUID) FIXED {
|
|
|
|
TE TE Align = Auto $(INF_OUTPUT)/$(MODULE_NAME).efi
|
2014-09-18 20:11:24 +02:00
|
|
|
UI STRING ="$(MODULE_NAME)" Optional
|
|
|
|
}
|
|
|
|
|
|
|
|
[Rule.Common.PEIM]
|
2015-07-31 10:24:18 +02:00
|
|
|
FILE PEIM = $(NAMED_GUID) FIXED {
|
2014-09-18 20:11:24 +02:00
|
|
|
PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
2015-07-31 10:24:18 +02:00
|
|
|
TE TE Align = Auto $(INF_OUTPUT)/$(MODULE_NAME).efi
|
2014-09-18 20:11:24 +02:00
|
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
|
|
}
|
|
|
|
|
|
|
|
[Rule.Common.PEIM.TIANOCOMPRESSED]
|
|
|
|
FILE PEIM = $(NAMED_GUID) DEBUG_MYTOOLS_IA32 {
|
|
|
|
PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
|
|
|
GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE {
|
|
|
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
[Rule.Common.DXE_CORE]
|
|
|
|
FILE DXE_CORE = $(NAMED_GUID) {
|
|
|
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
|
|
}
|
|
|
|
|
|
|
|
[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
|
|
|
|
}
|
|
|
|
|
|
|
|
[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
|
|
|
|
}
|
|
|
|
|
|
|
|
[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
|
|
|
|
}
|
|
|
|
|
|
|
|
[Rule.Common.UEFI_APPLICATION]
|
|
|
|
FILE APPLICATION = $(NAMED_GUID) {
|
|
|
|
UI STRING ="$(MODULE_NAME)" Optional
|
|
|
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
|
|
}
|
|
|
|
|
|
|
|
[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.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
|
|
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
|
|
}
|