在uefi 中fdf文件和dsc文件以及dec文件还有inf文件是每一个做uefi的人最开始接触的文件,那么这些文件到底有什么作用?以及文件中每个字段的意义又是什么呢?现在就让我们一个文件一个文件的看吧!(本文的所有内容都来自于uefi de spec,如果想详细了解spec中的内容,请自己参阅spec,本文只是自己在阅读过程中将重点记录下来)
首先看一下uefi中的几种名词解释:
HII
Human Interface Infrastructure. This generally refers to the database that contains string,
font, and IFR information along with other pieces that use one of the database components.
HOB
Hand-off blocks are key architectural mechanisms that are used to hand off system
information in the early pre-boot stages.
IFR
Internal Forms Representation. This is the binary encoding that is used for the
representation of user interface pages.
BDS
Framework Boot Device Selection phase.
DEC
EDK II meta-data package declaration file. This file declares all public elements of a
package containing similar content.
DEPEX
Module dependency expressions that describe runtime process restrictions.
DSC
EDK II meta-data platform description file. This file describes what gets built and makes
statements that affect how it is built.
DXE
Framework Driver Execution Environment phase.
INF
EDK II Module Information File. This file describes how the module is coded. For EDK, this
file describes how the component or library is coded as well as providing some basic build
information.
Source INF - An EDK II Module Information file that contains content in a [Sources]
section and it does not contain a [Binaries] section. If the [Binaries] section is empty or
the only entries in the [Binaries] section are of type DISPOSABLE, then the [Binaries]
section is ignored.
Binary INF - An EDK II Module Information file that has a [Binaries] section and does
not contain a [Sources] section or the [Sources] section is empty.
Mixed INF - An EDK II Module Information file that contains content in both [Sources]
and [Binaries] sections and there are entries in the [Binaries] section are not of type
DISPOSABLE
AsBuilt INF - An EDK II Module Information file generated by the EDK II build system
when building source content (listed in a [Sources] section).
Library Class
A library class defines the API or interface set for a library. The consumer of the library is
coded to the library class definition. Library classes are defined via a library class .h file that
is published by a package.
Module
A module is either an executable image or a library instance. For a list of module types
supported by this package, see module type.
Module Type
All libraries and components belong to one of the following module types: BASE , SEC ,
PEI_CORE , PEIM , SMM_CORE , DXE_CORE , DXE_DRIVER , DXE_RUNTIME_DRIVER ,
DXE_SMM_DRIVER , DXE_SAL_DRIVER , UEFI_DRIVER , or UEFI_APPLICATION . These definitions
provide a framework that is consistent with a similar set of requirements. A module that is of
module type BASE, depends only on headers and libraries provided in the MDE, while a
module that is of module type DXE_DRIVER depends on common DXE components. For a
definition of the various module types, see module type. The EDK II build system also
permits modules of type USER_DEFINED. These modules will not be processed by the EDK
II Build system.
PCD
Platform Configuration Database.
PEI
Pre-EFI Initialization Phase.
PEIM
An API named by a GUID.
PPI
A PEIM-to-PEIM Interface that is named by a GUID.
SAL
System Abstraction Layer. A firmware interface specification used on Intel(R) Itanium(R)
Processor based systems.
SKU
Stock Keeping Unit.
SMM
System Management Mode. A generic term for the execution mode entered when a CPU
detects an SMI. The firmware, in response to the interrupt type, will gain control in physical
mode. For this document, "SMM" describes the operational regime for IA32 and x64
processors that share the OS-transparent characteristics.
UEFI Application
An application that follows the UEFI specification. The only difference between a UEFI
application and a UEFI driver is that an application is unloaded from memory when it exits
regardless of return status, while a driver that returns a successful return status is not
unloaded when its entry point exits.
fdf文件:
The FDF file is used to describe the content and layout of binary images. Binary images
described in this file may be any combination of boot images, capsule images or PCI
Options ROMs