May, 2010
EDK II INF File Specification
May, 2010
Revision 1.22
INF
ii May, 2010 Version 1.22
Acknowledgements
THIS SPECIFICATION IS PROVIDED "AS IS" WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY
WARRANTY OF MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR
ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE. Intel products
are not intended for use in medical, life saving, or life sustaining applications.
Intel may make changes to specifications and product descriptions at any time, without notice.
Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or
"undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or
incompatibilities arising from future changes to them.
A license is hereby granted to copy and reproduce this specification for internal use only.
No other license, express or implied, by estoppel or otherwise, to any other intellectual property rights is granted
herein.
Intel disclaims all liability, including liability for infringement of any proprietary rights, relating to use of information in
this specification. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted
herein.
This specification is an intermediate draft for comment only and is subject to change without notice. Readers should
not design products based on this document.
*Other names and brands may be claimed as the property of others.
Copyright © 2007 - 2010 Intel Corporation. All rights reserved.
INF
Version 1.22 May, 2010 iii
Revision History
Revision Revision History Date
1.0 Initial release . December 2007
1.1 Updated based on errata August 2008
1,2 Updated based on enhancement requests June 2009
1.21 Updated to support UEFI 2.3 and PI 1.2 specifications
• Added new element, UEFI_HII_RESOURCE_SECTION to
[Defines] section
• Added new SMM_CORE module type
Updated for clarification
• Permit NULL values in place of PCD default values
Updated to correct items listed in the errata document
• Permit whitespace characters between token elements
• Fixed BuildOptions separator between Family and the tool
change information to match the “:’ implementation
Changes to appearance for readability
• Moved EDK INF description from sections 2 and 3 to an
Appendix
User feature requests:
• Updated the description of the FeatureFlag Expression for
all occurrences in Chapter 3 to be either a Shell style or a
C style expression.
March 2010
1.22 Grammatical and formatting changes. May 2010
INF
iv May, 2010 Version 1.22
INF
1.22 May, 2010 v
Contents
1
Introduction..................................................................................................... 1
1.1 Overview ........................................................................................................................... 1
1.2 Related Information........................................................................................................... 1
1.3 Terms................................................................................................................................ 2
1.4 Target Audience................................................................................................................ 4
1.5 Conventions Used in this Document................................................................................. 5
1.5.1 Data Structure Descriptions .................................................................................. 5
1.5.2 Pseudo-Code Conventions ................................................................................... 5
1.5.3 Typographic Conventions ..................................................................................... 5
2
INF Overview................................................................................................... 9
2.1 Processing Overview ........................................................................................................ 9
2.2 Information File Format.....................................................................................................9
2.2.1 Section Entries ...................................................................................................... 9
2.2.2 Comments........................................................................................................... 10
2.2.3 Valid Entries ........................................................................................................ 10
2.2.4 Naming Conventions........................................................................................... 11
2.2.5 !include Statements............................................................................................. 11
2.2.6 Macro Statements ............................................................................................... 11
2.2.7 PCD Names ........................................................................................................ 12
2.2.8 Conditional Directive Statements (!if...)............................................................... 12
2.3 EDK II INF....................................................................................................................... 12
2.4 [Defines] Section............................................................................................................. 13
2.5 [Sources] Section............................................................................................................ 17
2.6 [BuildOptions] Section..................................................................................................... 18
2.7 [Binaries] Section ............................................................................................................ 21
2.8 [Includes] Section........................................................................................................... 23
2.9 [Guids] Section................................................................................................................ 23
2.10 [Protocols] Section ........................................................................................................24
2.11 [Ppis] Section ................................................................................................................ 24
2.12 [LibraryClasses] Section ............................................................................................... 24
2.13 [Packages] Section ....................................................................................................... 25
2.14 PCD Sections............................................................................................................... 26
2.14.1 FIXED_AT_BUILD ............................................................................................ 26
2.14.2 PATCHABLE_IN_MODULE.............................................................................. 26
2.14.3 FEATURE_FLAG .............................................................................................. 27
2.14.4 DYNAMIC.......................................................................................................... 27
2.14.5 DYNAMIC_EX................................................................................................... 27
2.15 [Depex] Section............................................................................................................. 28
2.16 [UserExtensions] Section............................................................................................. 28