EDK II DSC File Specification
May 2010
Revision 1.22
DSC
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 ©2006 - 2010 Intel Corporation. All rights reserved.
DSC
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 based o n errata and enhancement requests
• Added language filters: RFC_LANGUAGES and
ISO_LANGUAGES
• Added Note that a reserved macro name,
MDEPKG_NDEBUG
• Definitions in DSC file are now global to both DSC and
FDF files
• PCD Values may be constructed using C-style
expressions provided the result of the expression matches
the datum type of the PCD
• FeatureFlagExpression is now defined as a C-style
expression using C relational, equality and logical numeric
and bitwise operators and/or arithmetic and bitwise
operators that evaluate to a value that matches the Datum
Type of the PCD. Precedence and associativity follow C
standards
Spec changed to match exsting formats:
• SUPPORTED_ARCHITECTURES and
BUILD_TARGETS use the pipe “|” separator, not the
comma character
March 2010
1.22 Errata and grammatical changes May 2010
DSC
iv May, 2010 Version 1.22
DSC
Version 1.22 May, 2010 v
Contents
1
Introduction..................................................................................................... 1
1.1 Overview ........................................................................................................................... 1
1.2 Related Information........................................................................................................... 2
1.3 Terms................................................................................................................................ 2
1.4 Conventions Used in this Document................................................................................. 5
1.4.1 Data Structure Descriptions .................................................................................. 5
1.4.2 Pseudo-Code Conventions ................................................................................... 5
1.4.3 Typographic Conventions ..................................................................................... 6
2
DSC Overview ................................................................................................. 9
2.1 Processing Overview ........................................................................................................ 9
2.2 Build Description File Format.......................................................................................... 11
2.2.1 Section Entries .................................................................................................... 12
2.2.2 Comments........................................................................................................... 12
2.2.3 Valid Entries ........................................................................................................ 12
2.2.4 Naming Conventions........................................................................................... 12
2.2.5 !include Statement Processing............................................................................ 13
2.2.6 Macro Statements............................................................................................... 13
2.2.7 Conditional Directive Statements (!if...)............................................................... 13
2.2.8 [Defines] Section Processing .............................................................................. 14
2.2.9 [BuildOptions] Section......................................................................................... 16
2.2.10 [SkuIds] Section Processing ............................................................................. 19
2.2.11 [Libraries] Section Processing........................................................................... 19
2.2.12 [LibraryClasses] Section Processing................................................................. 20
2.2.13 PCD Sections Processing ................................................................................. 21
2.2.14 [Components] Section Processing.................................................................... 25
2.2.15 [UserExtensions] Section.................................................................................. 28
3
EDK II DSC Format Specification................................................................ 29
3.1 Introduction ..................................................................................................................... 29
3.2 Platform DSC Definition .................................................................................................. 29
3.2.1 Common Definitions............................................................................................ 30
3.2.2 MACRO Statements............................................................................................ 31
3.2.3 Conditional Directive Statements ........................................................................ 34
3.2.4 !include Statements............................................................................................. 38
3.3 Header Section ............................................................................................................... 38
3.4 [Defines] Section............................................................................................................. 40
3.5 [BuildOptions] Section..................................................................................................... 44
3.6 [SkuIds] Section .............................................................................................................. 48
3.7 [Libraries] Section ........................................................................................................... 49
3.8 [LibraryClasses] Section ................................................................................................. 50