From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.120; helo=mga04.intel.com; envelope-from=jaben.carsey@intel.com; receiver=edk2-devel@lists.01.org Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id E325E211CFFDD for ; Tue, 5 Mar 2019 07:24:25 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Mar 2019 07:24:25 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,444,1544515200"; d="scan'208";a="325596819" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga005.fm.intel.com with ESMTP; 05 Mar 2019 07:24:25 -0800 Received: from fmsmsx103.amr.corp.intel.com ([169.254.2.115]) by fmsmsx104.amr.corp.intel.com ([169.254.3.27]) with mapi id 14.03.0415.000; Tue, 5 Mar 2019 07:24:25 -0800 From: "Carsey, Jaben" To: "Feng, Bob C" , "edk2-devel@lists.01.org" CC: "Gao, Liming" Thread-Topic: [Patch] Document: Update DSC spec to remove EDK related contents Thread-Index: AQHU0wZWGdcF+fiaj0q+tUAjDciWAqX9KOCQ Date: Tue, 5 Mar 2019 15:24:24 +0000 Message-ID: References: <20190305034834.17280-1-bob.c.feng@intel.com> In-Reply-To: <20190305034834.17280-1-bob.c.feng@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNWI5ODc2YjItMjg1MC00YzkwLWI3NjItMmVkODcyZjA2MTg3IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoickxrVllHV1RNYnhQZlwvUW9OVmRvMnBxbm9lVzNTMDFOUVUxVE0rSFRGSDN6aGg3cEtVQ2lvM2x2UkRDZkh5ckcifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.1.200.107] MIME-Version: 1.0 Subject: Re: [Patch] Document: Update DSC spec to remove EDK related contents X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 15:24:26 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Jaben Carsey It's a lot of changes. It looks good to me. > -----Original Message----- > From: Feng, Bob C > Sent: Monday, March 04, 2019 7:49 PM > To: edk2-devel@lists.01.org > Cc: Feng, Bob C ; Gao, Liming > ; Carsey, Jaben > Subject: [Patch] Document: Update DSC spec to remove EDK related > contents > Importance: High >=20 > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1453 >=20 > Remove EDK related contents inf Dsc spec. >=20 > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Bob Feng > Cc: Liming Gao > Cc: Jaben Carsey > --- > 1_introduction/11_overview.md | 14 +-- > ...=3D> 210_[components]_section_processing.md} | 27 +----- > ...ion.md =3D> 211_[userextensions]_section.md} | 4 +- > ...212_[defaultstores]_section_processing.md} | 4 +- > .../22_build_description_file_format.md | 50 ++-------- > .../23_[defines]_section_processing.md | 12 +-- > 2_dsc_overview/24_[buildoptions]_section.md | 72 ++------------ > .../26_[libraries]_section_processing.md | 69 -------------- > ...26_[libraryclasses]_section_processing.md} | 4 +- > ...essing.md =3D> 27_pcd_section_processing.md} | 34 +++---- > ...{29_pcd_sections.md =3D> 28_pcd_sections.md} | 26 ++--- > ...210_pcd_database.md =3D> 29_pcd_database.md} | 4 +- > ...ctions.md =3D> 310_[components]_sections.md} | 62 +----------- > ...ns.md =3D> 311_[userextensions]_sections.md} | 4 +- > ...tion.md =3D> 312_[defaultstores]_section.md} | 4 +- > 3_edk_ii_dsc_file_format/32_general_rules.md | 13 +-- > .../33_platform_dsc_definition.md | 17 +--- > .../35_[defines]_section.md | 12 +-- > .../36_[buildoptions]_sections.md | 19 ++-- > .../38_[libraries]_sections.md | 94 ------------------- > ...ons.md =3D> 38_[libraryclasses]_sections.md} | 4 +- > ...310_pcd_sections.md =3D> 39_pcd_sections.md} | 14 +-- > 22 files changed, 101 insertions(+), 462 deletions(-) > rename 2_dsc_overview/{211_[components]_section_processing.md =3D> > 210_[components]_section_processing.md} (84%) > rename 2_dsc_overview/{212_[userextensions]_section.md =3D> > 211_[userextensions]_section.md} (93%) > rename 2_dsc_overview/{213_[defaultstores]_section_processing.md =3D> > 212_[defaultstores]_section_processing.md} (93%) > delete mode 100644 2_dsc_overview/26_[libraries]_section_processing.md > rename 2_dsc_overview/{27_[libraryclasses]_section_processing.md =3D> > 26_[libraryclasses]_section_processing.md} (96%) > rename 2_dsc_overview/{28_pcd_section_processing.md =3D> > 27_pcd_section_processing.md} (94%) > rename 2_dsc_overview/{29_pcd_sections.md =3D> 28_pcd_sections.md} > (93%) > rename 2_dsc_overview/{210_pcd_database.md =3D> 29_pcd_database.md} > (96%) > rename 3_edk_ii_dsc_file_format/{311_[components]_sections.md =3D> > 310_[components]_sections.md} (81%) > rename 3_edk_ii_dsc_file_format/{312_[userextensions]_sections.md =3D> > 311_[userextensions]_sections.md} (94%) > rename 3_edk_ii_dsc_file_format/{313_[defaultstores]_section.md =3D> > 312_[defaultstores]_section.md} (93%) > delete mode 100644 3_edk_ii_dsc_file_format/38_[libraries]_sections.md > rename 3_edk_ii_dsc_file_format/{39_[libraryclasses]_sections.md =3D> > 38_[libraryclasses]_sections.md} (95%) > rename 3_edk_ii_dsc_file_format/{310_pcd_sections.md =3D> > 39_pcd_sections.md} (97%) >=20 > diff --git a/1_introduction/11_overview.md > b/1_introduction/11_overview.md > index d9006df..ff2b517 100644 > --- a/1_introduction/11_overview.md > +++ b/1_introduction/11_overview.md > @@ -1,9 +1,9 @@ > >=20 > -## 2.11 [Components] Section Processing > +## 2.10 [Components] Section Processing >=20 > -One or more `[Components]` sections contain lists of EDK components and > EDK II > -Modules. The format for specifying the INF file for EDK II modules > incorporates > -new scoping capabilities. > +One or more `[Components]` sections contain lists of EDK II Modules. The > format > +for specifying the INF file for EDK II modules incorporates new scoping > capabilities. >=20 > This section uses one or more of the following section definitions: >=20 > * `[Components]` > * `[Components.IA32]` > * `[Components.X64]` > * `[Components.EBC]` > * `[Components.common]` >=20 > -EDK components are specified using a fully qualified path to the EDK INF= file. > - > -`$(EDK_SOURCE)/Path/and/Filename.inf` > - > -Because EDK II modules have different requirements than EDK I > components, > -specifying the INF filename in the extended DSC file may require more th= an > just > -the INF filename and options. A scoping structure, that binds library cl= ass > +A scoping structure, that binds library class > (with an optional override instance,) PCD settings (also overriding the = values > specified in the `[PcdsPatchableInModule]` or `[PcdsFixedAtBuild]` secti= ons) > and build options for an EDK II module may be required. This scoping > structure, > containing sub-elements, is enclosed within curly braces: "{}". The open= ing > curly brace, "{", must appear at the end of the inf filename line, befor= e any > @@ -79,20 +72,10 @@ Path/and/Filename.inf { >=20 > There are four valid, optional sub-elements for EDK II modules. These > sub-element are enclosed within angle brackets: `, > `, > `` and ``. >=20 > -For EDK component INF files, an optional sub-element of > -`` has been defined. If this element is specified, > files > -listed in the directory are used instead of the "same-named" files in th= e > -component's directory. If an EDK component directory lists files, A.c, B= .c and > -C.h, and the directory specified in this sub-element contains the file B= .c, > -then the component will be built using files from the component director= y: > A.c > -and C.h, and the file B.c from the override directory. Any other files l= isted > -in the override directory will NOT be included in the build (no new or > -additional files are permitted). > - > An INF file line may also have one argument, EXEC =3D Filename, that spe= cifies > an executable file that takes the INF filename as a parameter. The Filen= ame > must be executable, and must take the INF filename. No other arguments > are > permitted to the Filename. >=20 > diff --git a/2_dsc_overview/212_[userextensions]_section.md > b/2_dsc_overview/211_[userextensions]_section.md > similarity index 93% > rename from 2_dsc_overview/212_[userextensions]_section.md > rename to 2_dsc_overview/211_[userextensions]_section.md > index c176d86..4708e7e 100644 > --- a/2_dsc_overview/212_[userextensions]_section.md > +++ b/2_dsc_overview/211_[userextensions]_section.md > @@ -1,9 +1,9 @@ > >=20 > -## 2.12 [UserExtensions] Section > +## 2.11 [UserExtensions] Section >=20 > Users may develop custom tools that use the `[UserExtensions]` > sections.The EDK > II `[UserExtensions]` sections allow for extending the DSC file with cus= tom > processing of component images. The format for a user extension section > specifier is: > diff --git a/2_dsc_overview/213_[defaultstores]_section_processing.md > b/2_dsc_overview/212_[defaultstores]_section_processing.md > similarity index 93% > rename from 2_dsc_overview/213_[defaultstores]_section_processing.md > rename to 2_dsc_overview/212_[defaultstores]_section_processing.md > index 88a7ad2..be83759 100644 > --- a/2_dsc_overview/213_[defaultstores]_section_processing.md > +++ b/2_dsc_overview/212_[defaultstores]_section_processing.md > @@ -1,9 +1,9 @@ > >=20 > -## 2.13 [DefaultStores] Section Processing > +## 2.12 [DefaultStores] Section Processing >=20 > The contents of this section are used to define DefaultStores names. Def= ault > store is UEFI HII concept. It is used to define HII default setting for = the > different store, such as standard default, manufacturing default. Platfo= rm > can define the supported default store for DynamicHii/DynamicExHii PCD i= n > this > diff --git a/2_dsc_overview/22_build_description_file_format.md > b/2_dsc_overview/22_build_description_file_format.md > index 31e23f4..10dc428 100644 > --- a/2_dsc_overview/22_build_description_file_format.md > +++ b/2_dsc_overview/22_build_description_file_format.md > @@ -1,9 +1,9 @@ > > - > -## 2.6 [Libraries] Section Processing > - > -This section specifies all the EDK INF files that must be processed to b= uild > -the libraries used to build the individual EDK components. This will inc= lude > -all the libraries called out in the individual component INF files. A sa= mple > -section is listed below. Each line from the libraries section specifies = a > -library component's INF file (relative to `$(EDK_SOURCE)`, or absolute p= ath). > - > -This section is required for any EDK II DSC file that specifies one or m= ore EDK > -components. If only EDK II Modules are used, this section must not be > -specified. If the section is specified, and only EDK II Modules are foun= d, the > -build and parsing tools will ignore this section. A warning message will= be > -emitted by the parsing tool if and only the parsing tool is executed in = a > -verbose mode. > - > -The `!include` statements may be used within the `[Libraries]` section. > - > -The file specified after the `!include` statement can only contain a lis= t of > -EDK Library INF files (with the path to the file). If the line starts wi= th a > -word, rather than a variable like `$(EDK_SOURCE)` the path is assumed to= be > -relative to `$(EDK_SOURCE)`. Again, only EDK Library INF files are permi= tted > in > -the file specified in the `!include` statement. > - > -This section will typically use one of the following section definitions= : > - > -```ini > -[Libraries.common] > -[Libraries.IA32] > -[Libraries.X64] > -[Libraries.EBC] > -``` > - > -The formats for entries in this section is: > - > -``` > -$(EDK_SOURCE)/Path/to/LibraryName.inf > -$(CUSTOM_DECOMPRESS_LIB_INF) > -``` > diff --git a/2_dsc_overview/27_[libraryclasses]_section_processing.md > b/2_dsc_overview/26_[libraryclasses]_section_processing.md > similarity index 96% > rename from 2_dsc_overview/27_[libraryclasses]_section_processing.md > rename to 2_dsc_overview/26_[libraryclasses]_section_processing.md > index 50bda93..0f87ceb 100644 > --- a/2_dsc_overview/27_[libraryclasses]_section_processing.md > +++ b/2_dsc_overview/26_[libraryclasses]_section_processing.md > @@ -1,9 +1,9 @@ > >=20 > -## 2.7 [LibraryClasses] Section Processing > +## 2.6 [LibraryClasses] Section Processing >=20 > The `[LibraryClasses]` section is used to provide a mapping between the > library > class names used by an EDK II module and the Library Instances that are > selected by the platform integrator. Library Classes allow modules to be > coded > for a library class, and then allow platform integrator then chooses a L= ibrary > diff --git a/2_dsc_overview/28_pcd_section_processing.md > b/2_dsc_overview/27_pcd_section_processing.md > similarity index 94% > rename from 2_dsc_overview/28_pcd_section_processing.md > rename to 2_dsc_overview/27_pcd_section_processing.md > index a5d56b3..d2a409f 100644 > --- a/2_dsc_overview/28_pcd_section_processing.md > +++ b/2_dsc_overview/27_pcd_section_processing.md > @@ -1,9 +1,9 @@ > >=20 > -## 2.8 PCD Section Processing > +## 2.7 PCD Section Processing >=20 > This section is for specifying global (or default) PCD values as well as= the > access method each PCD will use for modules in the platform. >=20 > -### 2.8.1 PCD Access Methods > +### 2.7.1 PCD Access Methods >=20 > There are five defined PCD access methods. The five access methods are: > `FeatureFlag`, `FixedAtBuild`, `PatchableInModule`, `Dynamic` and > `DynamicEx` > PCDs. >=20 > -#### 2.8.1.1 FeatureFlag and Dynamic PCD Types > +#### 2.7.1.1 FeatureFlag and Dynamic PCD Types >=20 > The two recommended access methods that are commonly used in modules > are > `FeatureFlag` and the generic `Dynamic method`. The `Dynamic` form is us= ed > for > configuration when the PCD value is produced and consumed by drivers > during > execution, the value may be user configurable from setup or the value is > @@ -50,11 +50,11 @@ produced by the platform in a specified area. It is > associated with modules > that are released in source code. The dynamic form is the most flexible > method, > as platform integrators may chose a to use a different access method for= a > given platform without modifying the module's INF file or the code for t= he > module. >=20 > -#### 2.8.1.2 DynamicEx, FixedAtBuild and PatchableInModule PCD Access > Methods > +#### 2.7.1.2 DynamicEx, FixedAtBuild and PatchableInModule PCD Access > Methods >=20 > Similar in function, the `DynamicEx` access method can be used with > modules > that are released as binary. The `FixedAtBuild` and `PatchableInModule` > PCDs > are static and only the `PatchableInModule` PCD can have the value chang= ed > in a > binary prior to including the module in a firmware image. > @@ -82,11 +82,11 @@ The content in these sections is used for generating > the `AutoGen.c` and > [Pcds(PcdType).IA32] > [Pcds(PcdType).X64] > [Pcds(PcdType).EBC] > ``` >=20 > -### 2.8.2 PCD Access Method Categories > +### 2.7.2 PCD Access Method Categories >=20 > Of the five access methods of PCDs that have been defined, they fall int= o > one > of three categories: >=20 > * `FeatureFlag` - always has a Boolean value. > @@ -129,42 +129,42 @@ different datum type based on the architecture. > For example, a PCD that is used > for address manipulation may have a datum type of `UINT32` for IA32 and > `UINT64` for X64 and EBC architectures. This will be declared in the EDK= II > Package Declaration (DEC) File. > ********** >=20 > -### 2.8.3 PCD Section Usage > +### 2.7.3 PCD Section Usage >=20 > PCD sections are optional unless the EDK II modules specified in the > `[Components]` section use PCDs. >=20 > The PCD sections are used to define the access method for a PCD. Since e= ach > module is built once for a given architecture, the PCD can be listed und= er > different PCD access methods provided they are listed under different > architectures. >=20 > -#### 2.8.3.1 Access Methods > +#### 2.7.3.1 Access Methods >=20 > However, once a PCD access method is selected for a given architecture, = the > PCD > can only use that access method. >=20 > #### Example >=20 > A PCD that will use the `FixedAtBuild` access method for IA32 cannot use= the > `PatchableInModule` access method for individual modules built for the I= A32 > architecture. >=20 > -#### 2.8.3.2 Different Access Methods > +#### 2.7.3.2 Different Access Methods >=20 > It is permissible to have a PCD use different access methods for differe= nt > architectures. >=20 > #### Example >=20 > A PCD that will use the FixedAtBuild access method for IA32 can use the > Patchable in Module access method for X64. >=20 > -#### 2.8.3.3 Item Access Methods > +#### 2.7.3.3 Item Access Methods >=20 > Multiple item access methods, `PcdsFeatureFlag`, `PcdsFixedAtBuild`, > `PcdsPatchableInModule`, `PcdsDynamic` and `PcdsDynamicEx` are not > allowed to > be specified within a single [] section tag. >=20 > @@ -187,11 +187,11 @@ be specified within a single [] section tag. > [PcdsDynamicDefault.IA32] > gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 > gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 > ``` >=20 > -#### 2.8.3.4 Mixing PCD Dynamic item storage methods > +#### 2.7.3.4 Mixing PCD Dynamic item storage methods >=20 > It is not permissible to mix different PCD Dynamic item storage methods > within > a single section, as the format for the PCD entries in PcdsDynamicDefaul= t, > PcdsDynamicVpd, PcdsDynamicHii, and PcdsDynamicExDefault, > PcdsDynamicExVpd and > PcdsDynamicExHii sections are different. > @@ -212,11 +212,11 @@ PcdsDynamicExHii sections are different. >=20 > [PcdsDynamicExVpd.IA32] >=20 > gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|*|0 > ``` >=20 > -#### 2.8.3.5 Multiple Architectural Section Tags > +#### 2.7.3.5 Multiple Architectural Section Tags >=20 > It is permissible to specify multiple architectural section tags for the= same > PCD item type in a single section. >=20 > #### Example > @@ -232,11 +232,11 @@ PCD item type in a single section. > [PcdsDynamicDefault.IA32, PcdsDynamicDefault.X64] > gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 > gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 > ``` >=20 > -#### 2.8.3.6 Dynamic and DynamicEx PCD Storage Methods > +#### 2.7.3.6 Dynamic and DynamicEx PCD Storage Methods >=20 > The PCDs that use Dynamic and DynamicEx access methods can have their > values > stored in one of three different methods, Default, VPD or HII. A PCD usi= ng > one > of these access methods can use one storage method. It is not permissibl= e > to > have a PCD try to store the data in the Default database and a VPD regio= n at > @@ -273,11 +273,11 @@ > TokenSpaceGuid.PcdCname|||| > | ********** > **Note:** Some of the above fields are optional; refer to "PCD Sections"= in > the > next chapter for the exact syntax. > ********** >=20 > -#### 2.8.3.7 Unique PCDs > +#### 2.7.3.7 Unique PCDs >=20 > Unique PCDs are identified using the format to identify the named PCD: >=20 > `TokenSpaceGuidCName.PcdCName` >=20 > @@ -304,11 +304,11 @@ be used - `PcdsFixedAtBuild` for modules with > wellknown values for a PCD, > then either `PcdsPatchableInModule` or `PcdsDynamicEx` - the first > being for testing a module, the second giving the ability for doing indi= vidual > driver performance tuning "on-the-fly". > ********** >=20 > -#### 2.8.3.8 Precedence > +#### 2.7.3.8 Precedence >=20 > Tools must assume that the first method found for a PCD in the PCDs > sections > will used for all instances of a PCD. Tools must not allow for different > modules using a PCD differently, using the `` statements under th= e > INF > file definitions in the `[Components]` section. > @@ -375,11 +375,11 @@ listed more than one time within a section. List a > PCD in one of the other > access methods is allowed, provided a single access method must be used > for all > instances of the PCD. If PCD field value is listed, it will override PCD= value > even if PCD value is after PCD field value. > ********** >=20 > -#### 2.8.3.9 Library Instances > +#### 2.7.3.9 Library Instances >=20 > Library Instances that use PCDs that the module is linked with must use = the > same PCD setting as the module using the Library Instance. So if a modul= e > uses > a PCD as `PcdsFixedAtBuild`, then all library instances that use that PC= D must > also use the PCD as `PcdsFixedAtBuild` with the same value. > @@ -393,11 +393,11 @@ The expression is a C-style expression using C > relational, equality and logical > numeric and bitwise operators or numeric and bitwise operators that > evaluate to > a value that matches the PCD's Datum Type (specified in the DEC package > declaration file.) Precedence and associativity follow C standards. Usin= g PCDs > in expressions is also permitted. >=20 > -#### 2.8.3.10 Maximum Size of a VOID* PCD > +#### 2.7.3.10 Maximum Size of a VOID* PCD >=20 > If the maximum size of a VOID* PCD is not specified in the DSC file, the= n the > maximum size will be calculated based on the largest size of the followi= ng: >=20 > * the string or array in the --pcd option > diff --git a/2_dsc_overview/29_pcd_sections.md > b/2_dsc_overview/28_pcd_sections.md > similarity index 93% > rename from 2_dsc_overview/29_pcd_sections.md > rename to 2_dsc_overview/28_pcd_sections.md > index d84d2f4..0b0b6d3 100644 > --- a/2_dsc_overview/29_pcd_sections.md > +++ b/2_dsc_overview/28_pcd_sections.md > @@ -1,9 +1,9 @@ > >=20 > -## 2.9 PCD Sections > +## 2.8 PCD Sections >=20 > -### 2.9.1 [PcdsFeatureFlag] section > +### 2.8.1 [PcdsFeatureFlag] section >=20 > The required content for the FeatureFlag PCD is the PCD Token Space Guid= C > name, the PCD's C name (these two entries are separated by the period > character), and a Boolean value of either TRUE, FALSE, 1 or 0. The PCD n= ame > and value entries are separated by the pipe "|" character. > @@ -69,19 +69,19 @@ Format of an entry in this section is: > ```ini > [PcdsFeatureFlag.common] >=20 > gEfiMdeModulePkgTokenSpaceGuid.PcdDxePcdDatabaseTraverseEnabled|1 > ``` >=20 > -### 2.9.2 [PcdsFixedAtBuild] and [PcdsPatchableInModule] sections > +### 2.8.2 [PcdsFixedAtBuild] and [PcdsPatchableInModule] sections >=20 > The section modifier, `SkuIdentifier`, can be used by the build tools to= create > images for one specific SKU. Unlike the `PcdsDynamic` and `PcdsDynamicEx= ` > entries, no access methods are allowed for having different values durin= g > runtime for different SKUs. Do not use the `SkuIdentifier` when building= all > SKUs. >=20 > -#### 2.9.2.1 PcdsFixedAtBuild > +#### 2.8.2.1 PcdsFixedAtBuild >=20 > The `FixedAtBuild` PCD access method cannot be used in a Binary Module. >=20 > The required content for the `FixedAtBuild` PCD are the PCD Token Space > Guid > C name, the PCD's C name (these two entries are separated by the period > @@ -125,11 +125,11 @@ Format for Boolean and numeric entries in this > section is: > gEfiMdePkgTokenSpaceGuid.PcdFSBClock|200000000 > gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0 >=20 > gEfiEdkNt32PkgTokenSpaceGuid.PcdWinNtPhysicalDisk|L"E:RW;245760;512" > |VOID*|32 > ``` >=20 > -#### 2.9.2.2 PcdsPatchableInModule > +#### 2.8.2.2 PcdsPatchableInModule >=20 > The `PatchableInModule` PCD access method can be used with modules that > are > distributed in binary form. The PCD's value can be patched by tools that > know > the offset of the PCD into the binary file. >=20 > @@ -163,11 +163,11 @@ Format of an entry in this section is: > ```ini > [PcdsPatchableInModule.common] >=20 > gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000000|UINT32| > 4 > ``` >=20 > -### 2.9.3 [PcdsDynamic*] and [PcdsDynamicEx*] sections > +### 2.8.3 [PcdsDynamic*] and [PcdsDynamicEx*] sections >=20 > PCDs listed in these sections cannot be used in conditional directive > statements. >=20 > The Dynamic PCD access method cannot be used for modules that are > distributed > @@ -185,11 +185,11 @@ binary image supports multiple SKUs. The SKU > selection based on things like a > hardware jumper, or some other method that is outside the scope of this > document. >=20 > For using the standard PCD Get/Set PPI or Protocol. >=20 > -#### 2.9.3.1 PcdsDynamicDefault > +#### 2.8.3.1 PcdsDynamicDefault >=20 > The Dynamic Default PCD access method will generate a volatile variable = that > can be accessed at runtime using PCD a Get PPI or Protocol. >=20 > ```ini > @@ -213,11 +213,11 @@ The format for a VOID* PCD entry in this section is= : > [PcdsDynamicDefault] > gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x0 > gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x0 > ``` >=20 > -#### 2.9.3.2 PcdsDynamicHII > +#### 2.8.3.2 PcdsDynamicHII >=20 > The Dynamic Hii PCD access method will generate HII data content that ca= n > be > accessed at runtime. >=20 > For using the HII for PCD data, the section name is as follows: > @@ -259,11 +259,11 @@ described in the following table. >=20 > [PcdsDynamicHii.common.DEFAULT] >=20 > gEfiMdeModulePkgTokenSpaceGuid.PcdValidRange|L"PcdValidRange"|gEfi > GlobalVariableGuid|0x07|0|BS,RT,NV > ``` >=20 > -#### 2.9.3.3 PcdsDynamicVpd > +#### 2.8.3.3 PcdsDynamicVpd >=20 > The Dynamic Vpd PCD access method will generate macros that allow the > data > content (stored in read-only memory) to be accessed at runtime. Note tha= t > the > PCD drivers may use a copy of the VPD data to allow runtime changes to > these > variables. > @@ -296,11 +296,11 @@ The format for VOID* datum type content in this > section is: > gNoSuchTokenSpaceGuid.PcdOemBootOptionName | 0x22D4 | 100 | " " # > VOID* > gNoSuchTokenSpaceGuid.PcdOemBootOptionPath | 0x2338 | 100 | " " # > VOID* > gNoSuchTokenSpaceGuid.PcdEnableFastBoot | 0x239C | 1 | FALSE # > BOOLEAN > ``` >=20 > -#### 2.9.3.4 PcdsDynamicExDefault > +#### 2.8.3.4 PcdsDynamicExDefault >=20 > The DynamicEx access method of PCD is recommended for modules that are > distributed in binary form. >=20 > Entries for `DynamicEx` are identical to the `Dynamic` entries. The > `DynamicEx` > @@ -327,11 +327,11 @@ The format for a VOID* PCD entry in this section is= : > [PcdsDynamicExDefault.common.DEFAULT] > gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x0 > gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x0 > ``` >=20 > -#### 2.9.3.5 PcdsDynamicEx Hii > +#### 2.8.3.5 PcdsDynamicEx Hii >=20 > For using the HII for PCD data, the section name is as follows: >=20 > `[PcdsDynamicExHii.$(arch).$(SKUID_IDENTIFIER)]` >=20 > @@ -357,11 +357,11 @@ described in Table 9 HII Attributes. >=20 > [PcdsDynamicExHii.common.DEFAULT] >=20 > gEfiMdeModulePkgTokenSpaceGuid.PcdValidRange|L"PcdValidRange"|gEfi > GlobalVariableGuid|0x07|0|BS,RT,NV > ``` >=20 > -#### 2.9.3.6 PcdsDynamicExVpd > +#### 2.8.3.6 PcdsDynamicExVpd >=20 > For using the VPD for PCD data, the section name is: >=20 > `[PcdsDynamicExVpd.$(arch).$(SKUID_IDENTIFIER)]` >=20 > diff --git a/2_dsc_overview/210_pcd_database.md > b/2_dsc_overview/29_pcd_database.md > similarity index 96% > rename from 2_dsc_overview/210_pcd_database.md > rename to 2_dsc_overview/29_pcd_database.md > index 2e4380c..ab3fda5 100644 > --- a/2_dsc_overview/210_pcd_database.md > +++ b/2_dsc_overview/29_pcd_database.md > @@ -1,9 +1,9 @@ > >=20 > -## 2.10 PCD Database > +## 2.9 PCD Database >=20 > Dynamic and DynamicEx PCDs can be modified during the boot/setup stages. > In > order to support modifications, a PEIM and a DXE driver use databases of > these > PCDs so that changes can persist across reboots. These databases are > generated > prior to the final image assembly. The following rules determine when th= e > build > diff --git a/3_edk_ii_dsc_file_format/311_[components]_sections.md > b/3_edk_ii_dsc_file_format/310_[components]_sections.md > similarity index 81% > rename from 3_edk_ii_dsc_file_format/311_[components]_sections.md > rename to 3_edk_ii_dsc_file_format/310_[components]_sections.md > index b8e2875..abca3e9 100644 > --- a/3_edk_ii_dsc_file_format/311_[components]_sections.md > +++ b/3_edk_ii_dsc_file_format/310_[components]_sections.md > @@ -1,9 +1,9 @@ > >=20 > -## 3.11 [Components] Sections > +## 3.10 [Components] Sections >=20 > The `[Components]` sections are required. >=20 > #### Summary >=20 > @@ -42,12 +42,11 @@ files. > The `!include` statement is permitted in `[Components]` sections. howeve= r > this > method is NOT recommended. >=20 > All EDK II file paths must be specified relative to a directory containi= ng EDK > II Packages (as specified by the WORKSPACE or a directory listed in > -PACKAGES_PATH system environment variable). EDK INF component and > library files > -may use `$(EDK_SOURCE)` or `$(EFI_SOURCE)` global environment variables. > If the > +PACKAGES_PATH system environment variable). If the > environment variable is not specified, the INF file path is assumed to b= e > relative to the `WORKSPACE`. >=20 > The following is an example of specifying a `WORKSPACE` (MdeModulePkg is > in the > directory pointed to by the WORKSPACE environment variable) relative > Path: > @@ -55,11 +54,11 @@ directory pointed to by the WORKSPACE environment > variable) relative Path: > `MdeModulePkg/Universal/Disk/DiskIo/Dxe` >=20 > The following is an example of specifying an Indirect Path: >=20 > ```ini > -DEFINE FOUNDATION_LIB =3D $(EDK_SOURCE)/Foundation/Library > +DEFINE FOUNDATION_LIB =3D $(WORKSPACE)/Foundation/Library > $(FOUNDATION_LIB)/EdkIIGlueLib/EntryPoints > ``` >=20 > The permitted `DEFINE` statement must be a variable name assigned to a > path. >=20 > @@ -91,13 +90,10 @@ value, while the `` section of an > INF use a different value. > The FeatureFlag PCD and the two dynamic forms of PCDs are common to a > platform, > with the dynamic form PCD values stored in a "runtime database", read-on= ly > memory location or an HII data store. Therefore, having different values= is > prohibited for these access methods. >=20 > -EDK components may have the scoped sub-element, > `` that > -is used to virtually replace files in the component's directory. > - > The format for items listed in the sub-elements is the identical format = for > content under the section. >=20 > Within the context of an EDK II module sub-element, the `` > entries must appear before `` entries; the `` ent= ries > @@ -128,20 +124,16 @@ modules in a binary image (the FDF file describes > that ordering). > ::=3D ["," "Components" ]* > ::=3D "." > ::=3D {} > {} { } > ::=3D [ ] > - ::=3D {} {} {} > + ::=3D {} {} > ::=3D ".inf" > ::=3D "EXEC" > ::=3D ["." ] > ::=3D # An OS recognisable extension that will= # > automatically be run. > - ::=3D "{" > - "" > - > - "}" > ::=3D "{" > [ ] > [ ] > [ ] > [ ] > @@ -267,49 +259,5 @@ individual modules. >=20 > **_ClassName_** >=20 > A Library Class Keyword defined in DEC files. The Keyword must also be > present > in the defines section `LIBRARY_CLASS` entry of the INF file > - > -#### Example Using EDK components in an EDK II DSC build > - > -``` > -[Components] > -DEFINE EDK=3D$(EDK_SOURCE)/Edk > -DEFINE MDE=3DMdePkg/Library > -DEFINE STATUS_CODE=3D$(MDE)/PeiDxeDebugLibReportStatusCode > - > -$(EDK)/Foundation/Core/Pei/PeiMain.inf > -DEFINE NT32 =3D $(EDK)/Sample/Platform > -$(NT32)/Generic/MonoStatusCode/Pei/Nt32/MonoStatusCode.inf > -$(NT32)/Nt32/Pei/BootMode/BootMode.inf > -$(NT32)/Nt32/Pei/FlashMap/FlashMap.inf > -MdeModulePkg/Core/Dxe/DxeMain.inf > -... > -MdeModulePkg/Universal/Debugger/Debugport/Dxe/DebugPort.inf > -MdeModulePkg/Cpu/DebugSupport/Dxe/DebugSupport.inf > -... > - > -DEFINE MDEMODUNI =3D MdeModulePkg/Universal > -$(MDEMODUNI)/DataHub/DataHubStdErr/Dxe/DataHubStdErr.inf > -MdeModulePkg/Universal/Disk/DiskIo/Dxe/DiskIo.inf { > - > - DebugLib|$(STATUS_CODE)/PeiDxeDebugLibReportStatusCode.inf > - BaseMemoryLib|$(MDE)/DxeMemoryLib/DxeMemoryLib.inf > - > MemoryAllocationLib|$(MDE)/DxeMemoryAllocationLib/DxeMemoryAllocati > onLib.inf > - > - PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE > -} > -MdeModulePkg/Universal/Ebc/Dxe/Ebc.inf > -$(MDEMODUNI)/GenericMemoryTest/Dxe/NullMemoryTest.inf > -$(MDEMODUNI)/StatusCode/Pei/PeiStatusCode.inf { > - > - MSFT:RELEASE_MYTOOLS_IA32_DLINK_FLAGS =3D Kernel32.lib MSVCRTD.lib > Gdi32.lib User32.lib Winmm.lib > - DEBUG_MYTOOLS_IA32_DLINK_FLAGS =3D Kernel32.lib MSVCRTD.lib > Gdi32.lib User32.lib Winmm.lib > - DEBUG_WINDDK3790x1830_IA32_DLINK_FLAGS =3D Kernel32.lib > MSVCRTD.lib Gdi32.lib User32.lib Winmm.lib > - RELEASE_WINDDK3790x1830_IA32_DLINK_FLAGS =3D Kernel32.lib > MSVCRTD.lib Gdi32.lib User32.lib Winmm.lib > - DEBUG_VS2003_IA32_DLINK_FLAGS =3D Kernel32.lib MSVCRTD.lib Gdi32.lib > User32.lib Winmm.lib > - RELEASE_VS2003_IA32_DLINK_FLAGS =3D Kernel32.lib MSVCRTD.lib > Gdi32.lib User32.lib Winmm.lib > -} > -MdeModulePkg/Logo/Logo.inf > -... > -``` > diff --git a/3_edk_ii_dsc_file_format/312_[userextensions]_sections.md > b/3_edk_ii_dsc_file_format/311_[userextensions]_sections.md > similarity index 94% > rename from 3_edk_ii_dsc_file_format/312_[userextensions]_sections.md > rename to 3_edk_ii_dsc_file_format/311_[userextensions]_sections.md > index 6020c5c..504fa9f 100644 > --- a/3_edk_ii_dsc_file_format/312_[userextensions]_sections.md > +++ b/3_edk_ii_dsc_file_format/311_[userextensions]_sections.md > @@ -1,9 +1,9 @@ > >=20 > -## 3.12 [UserExtensions] Sections > +## 3.11 [UserExtensions] Sections >=20 > The `[UserExtensions]` sections are optional. >=20 > #### Summary >=20 > diff --git a/3_edk_ii_dsc_file_format/313_[defaultstores]_section.md > b/3_edk_ii_dsc_file_format/312_[defaultstores]_section.md > similarity index 93% > rename from 3_edk_ii_dsc_file_format/313_[defaultstores]_section.md > rename to 3_edk_ii_dsc_file_format/312_[defaultstores]_section.md > index 23dec7d..dfa7fa8 100644 > --- a/3_edk_ii_dsc_file_format/313_[defaultstores]_section.md > +++ b/3_edk_ii_dsc_file_format/312_[defaultstores]_section.md > @@ -1,9 +1,9 @@ > >=20 > -## 3.13 [DefaultStores] Section > +## 3.12 [DefaultStores] Section >=20 > The `[DefaultStores]` section is optional in all EDK II DSC files. >=20 > #### Summary >=20 > diff --git a/3_edk_ii_dsc_file_format/32_general_rules.md > b/3_edk_ii_dsc_file_format/32_general_rules.md > index e040abc..d0cdb9b 100644 > --- a/3_edk_ii_dsc_file_format/32_general_rules.md > +++ b/3_edk_ii_dsc_file_format/32_general_rules.md > @@ -1,9 +1,9 @@ > > - > -## 3.8 [Libraries] Sections > - > -The section `[Libraries]` sections are optional in EDK II DSC files, alt= hough > -if any EDK component is specified in the `[Components]` section, then th= e > EDK > -II DSC file must contain this section. EDK components can not use EDK II > -Library Instances. > - > -#### Summary > - > -Defines the `[Libraries]` section tag which lists the libraries that are= linked > -against > - > -EDK I components. Entries may appear in any order. Entries for EDK are a= list > -of INF files, with a path that is relative to the `$(EFI_SOURCE)`, > -`$(EDK_SOURCE)` or `$(ECP_SOURCE)` directories (or a MACRO definition). > - > -One or more `!include` statements may be used within the libraries secti= ons. > If > -used, the file included must be a list of INF files and their paths rela= tive to > -the `$(EFI_SOURCE)`, `$(EDK_SOURCE)` or `$(ECP_SOURCE)` directories. > - > -#### Prototype > - > -```c > - ::=3D "[Libraries" [] "]" * > - ::=3D {} {} > - {} > - ::=3D "." [", Libraries." ]* > - ::=3D > - ::=3D ".inf" > - ::=3D [{"$(EDK_SOURCE)"} {} "/"] * > - ::=3D "/" > -``` > - > -#### Parameters > - > -**_arch_** > - > -The arch attribute must be specified in the `Conf/tools_def.txt` file fo= r the > -tool chain used to build the platform in order to be valid. > - > -**_Path_** > - > -If only the `` element is specified, the path is `WORKSPACE` relat= ive. > - > -#### Example > - > -```ini > -[Libraries] > - Foundation/Efi/Guid/EfiGuidLib.inf > - Foundation/Framework/Guid/EdkFrameworkGuidLib.inf > - Foundation/Guid/EdkGuidLib.inf > - Foundation/Library/EfiCommonLib/EfiCommonLib.inf > - Foundation/Cpu/Pentium/CpuIA32Lib/CpuIA32Lib.inf > - Foundation/Cpu/Itanium/CpuIA64Lib/CpuIA64Lib.inf > - Foundation/Library/CustomizedDecompress/CustomizedDecompress.inf > - > -[Libraries.IA32] > - DEFINE PLATFORM_DIR =3D $(EDK_SOURCE)/Platform > - $(PLATFORM_DIR)/IntelEpg/Guid/IntelEpgGuidLib.inf > - $(PLATFORM_DIR)/IntelEpg/Ppi/IntelEpgPpiLib.inf > - $(PLATFORM_DIR)/Generic/Guid/GenericGuidLib.inf > - $(PLATFORM_DIR)/Generic/Lib/Port80MappingLib/PlatformPort80.inf > -``` > diff --git a/3_edk_ii_dsc_file_format/39_[libraryclasses]_sections.md > b/3_edk_ii_dsc_file_format/38_[libraryclasses]_sections.md > similarity index 95% > rename from 3_edk_ii_dsc_file_format/39_[libraryclasses]_sections.md > rename to 3_edk_ii_dsc_file_format/38_[libraryclasses]_sections.md > index 9ac3878..cc9f96e 100644 > --- a/3_edk_ii_dsc_file_format/39_[libraryclasses]_sections.md > +++ b/3_edk_ii_dsc_file_format/38_[libraryclasses]_sections.md > @@ -1,9 +1,9 @@ > >=20 > -## 3.9 [LibraryClasses] Sections > +## 3.8 [LibraryClasses] Sections >=20 > The `[LibraryClasses]` sections are optional if no library classes are d= efined > for any of the components, or if only EDK modules are used. >=20 > #### Summary > diff --git a/3_edk_ii_dsc_file_format/310_pcd_sections.md > b/3_edk_ii_dsc_file_format/39_pcd_sections.md > similarity index 97% > rename from 3_edk_ii_dsc_file_format/310_pcd_sections.md > rename to 3_edk_ii_dsc_file_format/39_pcd_sections.md > index f982d60..96e4f0e 100644 > --- a/3_edk_ii_dsc_file_format/310_pcd_sections.md > +++ b/3_edk_ii_dsc_file_format/39_pcd_sections.md > @@ -1,9 +1,9 @@ > >=20 > -## 3.10 PCD Sections > +## 3.9 PCD Sections >=20 > The PCD sections are optional. >=20 > PCD Values listed in the DSC file must be absolute values, macro names o= r > expressions which may include other PCD names and/or macro names that > have been > @@ -111,11 +111,11 @@ PCDs with a C strucutre type is also a VOID* PCD. I= ts > value can be specified lik > normal VOID* PCD, and also be specified by its structure field. >=20 > Refer to the _EDK II Build Specification_ for the description of the PCD > processing rules. >=20 > -### 3.10.1 [PcdsFeatureFlag] Sections > +### 3.9.1 [PcdsFeatureFlag] Sections >=20 > These are optional sections for EDK II DSC Files. >=20 > #### Summary >=20 > @@ -192,11 +192,11 @@ section tag can only be used as a conditional > modifier. > `SKUID_IDENTIFER` element exists in the `[Defines]` section, the build > must break, stating that this platform requires separate builds for indi= vidual > `SkuId`s. > ********** >=20 > -### 3.10.2 [PcdsFixedAtBuild] Section > +### 3.9.2 [PcdsFixedAtBuild] Section >=20 > These are optional sections for EDK II DSC Files. >=20 > #### Summary >=20 > @@ -298,11 +298,11 @@ must be used. > `SKUID_IDENTIFER` element exists in the `[Defines]` section, the build > must break, stating that this platform requires separate builds for indi= vidual > `SkuId`s. > ********** >=20 > -### 3.10.3 [PcdsPatchableInModule] Sections > +### 3.9.3 [PcdsPatchableInModule] Sections >=20 > These are optional sections. >=20 > #### Summary >=20 > @@ -403,11 +403,11 @@ must be used. > `SKUID_IDENTIFER` element exists in the `[Defines]` section, the build > must break, stating that this platform requires separate builds for indi= vidual > `SkuId`s. > ********** >=20 > -### 3.10.4 [PcdsDynamic] Sections > +### 3.9.4 [PcdsDynamic] Sections >=20 > These are optional sections. >=20 > #### Summary >=20 > @@ -632,11 +632,11 @@ the _UEFI Specification_ for a description of these > attributes. > [PcdsDynamicHii.IA32, PcdsDynamicHii.X64.Sku1.Standard] >=20 > gEfiMyModulePkgTokenSpaceGuid.PcdChassisIntrution|L"TestVariable"|gSy > sConfigGuid|0x83|0x0 >=20 > gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L > "Timeout"|gEfiGlobalVariableGuid|0x0|10 # Variable: L"Timeout" > ``` >=20 > -### 3.10.5 [PcdsDynamicEx] Sections > +### 3.9.5 [PcdsDynamicEx] Sections >=20 > These are optional sections. >=20 > #### Summary >=20 > -- > 2.20.1.windows.1