2. move VariableFormat.h into GUID directory and change the “Signature” field of the VARIABLE_STORE_HEADER to gEfiVariableGuid value. 3. merging VARIABLE_INFO_ENTRY structure into the new Include/Guid/VariableFormat.h 4. change gEfiVariableInfoGuid into gEfiVariableGuid. 5. modify FDF files to use new guid value instead of the original signature. 6. all code related to signature is changed to use guid value. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7728 6f19259b-4bc3-4df7-8a09-765794883524
381 lines
15 KiB
Plaintext
381 lines
15 KiB
Plaintext
# This is Unix FDF file with UEFI HII features enabled
|
|
#
|
|
# Copyright (c) 2008, Intel Corporation
|
|
#
|
|
# All rights reserved. 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.Fv_Recovery]
|
|
BaseAddress = 0x0|gEfiUnixPkgTokenSpaceGuid.PcdUnixFdBaseAddress #The base address of the FLASH Device.
|
|
Size = 0x002a0000 #The size in bytes of the FLASH Device
|
|
ErasePolarity = 1
|
|
BlockSize = 0x10000
|
|
NumBlocks = 0x2a
|
|
|
|
################################################################################
|
|
#
|
|
# 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>
|
|
#
|
|
################################################################################
|
|
0x00000000|0x00280000
|
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashFvRecoveryBase|gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashFvRecoverySize
|
|
FV = FvRecovery
|
|
|
|
0x00280000|0x0000c000
|
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
|
|
#NV_VARIABLE_STORE
|
|
DATA = {
|
|
## This is the EFI_FIRMWARE_VOLUME_HEADER
|
|
# ZeroVector []
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
# FileSystemGuid: gEfiSystemNvDataFvGuid =
|
|
# { 0xFFF12B8D, 0x7696, 0x4C8B, { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }}
|
|
0x8D, 0x2B, 0xF1, 0xFF, 0x96, 0x76, 0x8B, 0x4C,
|
|
0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50,
|
|
# FvLength: 0x20000
|
|
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
# Signature "_FVH" #Attributes
|
|
0x5f, 0x46, 0x56, 0x48, 0xff, 0xfe, 0x04, 0x00,
|
|
# HeaderLength #CheckSum #ExtHeaderOffset #Reserved #Revision
|
|
0x48, 0x00, 0x36, 0x09, 0x00, 0x00, 0x00, 0x02,
|
|
# Blockmap[0]: 2 Blocks * 0x10000 Bytes / Block
|
|
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
|
|
# Blockmap[1]: End
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
## This is the VARIABLE_STORE_HEADER
|
|
#Signature: gEfiVariableGuid =
|
|
# { 0xddcf3616, 0x3275, 0x4164, { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d }}
|
|
0x16, 0x36, 0xcf, 0xdd, 0x75, 0x32, 0x64, 0x41,
|
|
0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d,
|
|
#Size: 0xc000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0xBFB8
|
|
# This can speed up the Variable Dispatch a bit.
|
|
0xB8, 0xBF, 0x00, 0x00,
|
|
#FORMATTED: 0x5A #HEALTHY: 0xFE #Reserved: UINT16 #Reserved1: UINT32
|
|
0x5A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
}
|
|
|
|
0x0028c000|0x00002000
|
|
#NV_EVENT_LOG
|
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageEventLogBase|gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageEventLogSize
|
|
|
|
0x0028e000|0x00002000
|
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageFtwWorkingBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
|
|
#NV_FTW_WORKING
|
|
DATA = {
|
|
# EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature = gEfiSystemNvDataFvGuid =
|
|
# { 0xFFF12B8D, 0x7696, 0x4C8B, { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }}
|
|
0x8D, 0x2B, 0xF1, 0xFF, 0x96, 0x76, 0x8B, 0x4C,
|
|
0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50,
|
|
# Crc:UINT32 #WorkingBlockValid:1, WorkingBlockInvalid:1, Reserved
|
|
0x85, 0xae, 0x2d, 0xbf, 0xFE, 0xFF, 0xFF, 0xFF,
|
|
# WriteQueueSize: UINT32
|
|
0xE4, 0x1F, 0x00, 0x00
|
|
}
|
|
|
|
0x00290000|0x00010000
|
|
#NV_FTW_SPARE
|
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
|
|
|
|
################################################################################
|
|
#
|
|
# 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.FvRecovery]
|
|
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
|
|
|
|
################################################################################
|
|
#
|
|
# The INF statements point to EDK component and EDK II module INF files, which will be placed into this FV image.
|
|
# Parsing tools will scan the INF file to determine the type of component or module.
|
|
# The component or module type is used to reference the standard rules
|
|
# defined elsewhere in the FDF file.
|
|
#
|
|
# The format for INF statements is:
|
|
# INF $(PathAndInfFileName)
|
|
#
|
|
################################################################################
|
|
##
|
|
# PEI Phase modules
|
|
##
|
|
##
|
|
# PEI Apriori file example, more PEIM module added later.
|
|
##
|
|
APRIORI PEI {
|
|
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
|
INF IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.inf
|
|
}
|
|
APRIORI DXE {
|
|
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
|
|
INF IntelFrameworkModulePkg/Universal/StatusCode/Dxe/DxeStatusCode.inf
|
|
INF UnixPkg/MetronomeDxe/Metronome.inf
|
|
}
|
|
INF MdeModulePkg/Core/Pei/PeiMain.inf
|
|
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
|
INF IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.inf
|
|
INF UnixPkg/BootModePei/BootModePei.inf
|
|
INF UnixPkg/UnixFlashMapPei/FlashMap.inf
|
|
INF UnixPkg/UnixAutoScanPei/UnixAutoScan.inf
|
|
INF UnixPkg/UnixFirmwareVolumePei/UnixFwh.inf
|
|
INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
|
INF UnixPkg/UnixThunkPpiToProtocolPei/UnixThunkPpiToProtocol.inf
|
|
INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
|
|
|
|
##
|
|
# DXE Phase modules
|
|
##
|
|
INF MdeModulePkg/Core/Dxe/DxeMain.inf
|
|
INF IntelFrameworkModulePkg/Universal/StatusCode/Dxe/DxeStatusCode.inf
|
|
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
|
|
INF UnixPkg/MetronomeDxe/Metronome.inf
|
|
INF UnixPkg/RealTimeClockRuntimeDxe/RealTimeClock.inf
|
|
INF UnixPkg/ResetRuntimeDxe/Reset.inf
|
|
INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
|
INF UnixPkg/FvbServicesRuntimeDxe/UnixFwh.inf
|
|
INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
|
INF IntelFrameworkModulePkg/Universal/DataHubDxe/DataHubDxe.inf
|
|
INF MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
|
|
INF MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
|
|
INF UnixPkg/UnixThunkDxe/UnixThunk.inf
|
|
INF UnixPkg/CpuRuntimeDxe/Cpu.inf
|
|
INF MdeModulePkg/Universal/FirmwareVolume/FaultTolerantWriteDxe/FtwLite.inf
|
|
INF IntelFrameworkModulePkg/Universal/DataHubStdErrDxe/DataHubStdErrDxe.inf
|
|
INF UnixPkg/MiscSubClassPlatformDxe/MiscSubClassDriver.inf
|
|
INF UnixPkg/TimerDxe/Timer.inf
|
|
INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
|
|
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 MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
|
|
INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
|
|
INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
|
INF IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
|
|
INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
|
|
INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
|
|
INF IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf
|
|
INF UnixPkg/UnixBusDriverDxe/UnixBusDriver.inf
|
|
|
|
INF UnixPkg/UnixBlockIoDxe/UnixBlockIo.inf
|
|
INF UnixPkg/UnixSerialIoDxe/UnixSerialIo.inf
|
|
INF UnixPkg/UnixUgaDxe/UnixUga.inf
|
|
#INF UnixPkg/UnixConsoleDxe/UnixConsole.inf
|
|
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
|
INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
|
|
INF IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
|
|
INF UnixPkg/UnixSimpleFileSystemDxe/UnixSimpleFileSystem.inf
|
|
INF MdeModulePkg/Universal/DriverSampleDxe/DriverSampleDxe.inf
|
|
INF MdeModulePkg/Application/HelloWorld/HelloWorld.inf
|
|
|
|
#
|
|
# Network stack drivers
|
|
# To test network drivers, need network Io driver(SnpNt32Io.dll), please refer to NETWORK-IO Subproject.
|
|
#
|
|
#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/Ip4ConfigDxe/Ip4ConfigDxe.inf
|
|
#INF MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
|
|
#INF MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
|
|
#INF MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
|
|
#INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
|
|
#INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
|
|
#INF UnixPkg/SnpUnixDxe/SnpUnixDxe.inf
|
|
|
|
|
|
|
|
################################################################################
|
|
#
|
|
# FILE statements are provided so that a platform integrator can include
|
|
# complete EFI FFS files, as well as a method for constructing FFS files
|
|
# using curly "{}" brace scoping. The following three FILEs are
|
|
# for binary shell, binary fat and logo module.
|
|
#
|
|
################################################################################
|
|
FILE APPLICATION = c57ad6b7-0515-40a8-9d21-551652854e37 {
|
|
SECTION COMPRESS PI_STD {
|
|
SECTION GUIDED {
|
|
SECTION PE32 = EdkShellBinPkg/FullShell/Ia32/Shell_Full.efi
|
|
}
|
|
}
|
|
}
|
|
FILE DRIVER = 961578FE-B6B7-44c3-AF35-6BC705CD2B1F {
|
|
SECTION COMPRESS PI_STD {
|
|
SECTION GUIDED {
|
|
SECTION PE32 = FatBinPkg/EnhancedFatDxe/Ia32/Fat.efi
|
|
}
|
|
}
|
|
}
|
|
FILE FREEFORM = 7BB28B99-61BB-11D5-9A5D-0090273FC14D {
|
|
SECTION COMPRESS PI_STD {
|
|
SECTION GUIDED {
|
|
SECTION RAW = MdeModulePkg/Logo/Logo.bmp
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
################################################################################
|
|
#
|
|
# 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 |.depex
|
|
# COMPRESS PI_STD {
|
|
# GUIDED {
|
|
# PE32 PE32 |.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 |.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 |.depex
|
|
PE32 PE32 |.efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
}
|
|
|
|
[Rule.Common.PEIM.TIANOCOMPRESSED]
|
|
FILE PEIM = $(NAMED_GUID) {
|
|
PEI_DEPEX PEI_DEPEX Optional |.depex
|
|
GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE {
|
|
PE32 PE32 |.efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
}
|
|
}
|
|
|
|
[Rule.Common.DXE_CORE]
|
|
FILE DXE_CORE = $(NAMED_GUID) {
|
|
COMPRESS PI_STD {
|
|
PE32 PE32 |.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 |.depex
|
|
COMPRESS PI_STD {
|
|
GUIDED {
|
|
PE32 PE32 |.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 |.depex
|
|
COMPRESS PI_STD {
|
|
GUIDED {
|
|
PE32 PE32 |.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 |.depex
|
|
COMPRESS PI_STD {
|
|
GUIDED {
|
|
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) {
|
|
COMPRESS PI_STD {
|
|
GUIDED {
|
|
PE32 PE32 |.efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
}
|
|
}
|
|
}
|