Hi Folks,
Here are the proposed changes to the INF and DEC specifications. . Added
content highlighted and italic, deleted content strike-through and highlighted.
Please see below.
Cheers
Larry
############### INF Specification changes:
Revision table
Updates:
* Change revision number of this specification from 1.22 to 1.24
* Update INF_VERSION to 0x00010017
* Added MODULE_UNI_FILE entry to the [Defines] section; this file
must end with an extension of .uni, .UNI or .Uni.
* Added reserved TianoCore user extension for "ExtraFiles"
* Allow Space and Unicode characters in the directory path
identified by the system environment variable WORKSPACE
All examples for INF_VERISION
INF_VERSION = 0x000100176
Section 2.2.4 Naming Conventions, bullet three:
* Directory names and file names within the WORKSPACE directory
tree must not contain space characters.
Section 2.4 [Defines] Section, Table 1.
Tag
Required
Value
Notes
INF_VERSION
REQUIRED
0x000100176
This identifies the INF spec. version. Tools use this value to handle parsing
of previous releases of the specification if there are incompatible changes.
...
MODULE_UNI_FILE
Optional
Filename
A UCS-2LE encoded file containing localization strings, the file path (if
present) is relative to the directory containing the INF file.
New Section, 2.16.1
2.16.1 [UserExtensions.TianoCore."ExtraFiles"] Section
The EDK II [UserExtensions.TianoCore."ExtraFiles"] section allow for
distributing extraneous files that are associated with a module. Files listed
in this section are not processed by EDK II build tools. These files must exist
in the directory or sub- directories of the directory containing the INF file.
The Intel(r) UEFI Packaging Tool will parse this section and for all files
listed in this file, add the file to the module distribution using the UEFI
Distribution Package Distribution.
The section header must be: [UserExtensions.TianoCore."ExtraFiles"]
Having data elements under the section header is not required.
The following is an example of a [UserExtensions.TianoCore."ExtraFiles"]
section:
[UserExtensions.TianoCore."ExtraFiles"]
Readme.txt
Section 3.3, Updated BinaryAbstract Parameter, Bullet 4
* The INF file will always have an English version of the Abstract.
Other localized versions of the abstract will be stored in the UCS-2LE encoded
file specified in the [Defines] section's MODULE_UNI_FILE.
Note: The MODULE_UNI_FILE permits the Intel(r) UEFI Packaging Tool to process
localized module content described in the UEFI Platform Initialization
Distribution Package Specification.
Section 3.3, Update BinaryDescription Parameter, Bullet 4
* The INF file will always have an English version of the
Description. Other localized versions of the description will be stored in the
UCS-2LE encoded file specified in the [Defines] section's MODULE_UNI_FILE.
Note: The MODULE_UNI_FILE file permits the Intel(r) UEFI Packaging Tool to
process localized module content described in the UEFI Platform Initialization
Distribution Package Specification.
Section 3.4 [Defines] Section, inserted description of the MODULE_UNI_FILE
following OptionRom paragraph and before the FixedComments paragraph.
The optional MODULE_UNI_FILE entry is used to locate an UCS-2LE format file
which can be used for localization of the module's Abstract and Description
from the header section. The content of the file can be generated by tools
during the installation of a distribution package that conforms to the UEFI
Platform Initialization Distribution Packaging Specification, or by module
developers creating new content.
Section 3.4 [Defines] Section, EBNF updates:
<DefineStatements> ::= <TS> "INF_VERSION" <Eq> "0x000100176" <EOL>
[<TS> <UefiHiiResource> <EOL>]
[<TS> "MODULE_UNI_FILE" <Eq> <Filename> <EOL>]
[<MacroDefinition>]*
Section 3.4 [Defines] Section, Filename parameter
Filenames listed in the [Defines] section must be relative to the directory the
INF file is in. Use of "..", "." and "../" in the directory path is not
permitted. Use of an absolute path is not permitted. The file name specified in
the MODULE_UNI_FILE entry must be a UCS-2LE encoded file with an extension of
.uni, .UNI or .Uni.
Section 3.4 [Defines] Section, Added parameters for PCD_IS_DRIVER and
MODULE_UNI_FILE
PCD_IS_DRIVER
This entry, if set, must be included in an "As Built" INF file generated by
tools.
MODULE_UNI_FILE
This file is used to contain localized Abstract and Description information;
the file must be UCS-2LE encoded.
Added Section 3.10.1
3.10.1 [UserExtensions.TianoCore."ExtraFiles"] Section
This is an optional section.
Defines the optional EDK II INF file [UserExtensions.TianoCore."ExtraFiles"]
section tag. The EDK II build tools must not process any files listed in this
section.
Summary
This section is used by the Intel(r) UEFI Packaging Tool, that is distributed
as part of the EDK II BaseTools, to locate files listed under this section
header and add them to the UEFI distribution package. When installing a UEFI
distribution package, these files will be installed in the module's directory
tree.
Prototype
<UserExtensions> ::= "[UserExtensions" <TcEf> "]" <EOL> <FileNames>*
<TcEf> ::= ".TianoCore." <DblQuote> "ExtraFiles" <DblQuote>
<FileNames> ::= <TS> [<RelativePath>] <File> <EOL>
Parameters
FileNames
Paths listed in the filename elements of the this section must be relative to
the directory the INF file resides in. Use of "..", "." and "../" in the
directory path is not permitted.
Example
[UserExtensions.TianoCore."ExtraFiles"]
Readme.txt
############### DEC Specification Changes:
All examples for DEC_SPECIFICATION
DEC_SPECIFICATION = 0x000100176
Revision table
Updates:
* Change revision number of this specification from 1.22 to 1.24
* Update DEC_ SPECIFICATION to 0x00010017
* Added additional parameter definitions for clarification of comment
content for PCDs
* Added the PACKAGE_UNI_FILE entry to the [Defines] section
* Added reserved TianoCore user extension for "ExtraFiles"
Section 2.4 [Defines] Section
The [Defines] section is used to track the package's GUID and version, which
allows multiple copies of the same package with different versions to exist
within a single workspace. Architectural modifiers are not permitted in the
[Defines] section. If major changes to a package occur, the GUID value of the
package must also change. Additionally, the package's version major number may
change. Minor changes require incrementing the package's version minor number.
The PACKAGE_UNI_FILE entry points to a UCS-2LE encoded file containing
localization strings. The file path (if present) is relative to the directory
containing the INF file.
This section will use only one section header:
[Defines]
The format for entries in this section is:
Name = Value
The following is an example of this section.
[Defines]
DEC_SPECIFICATION = 0x000100050x00010017
PACKAGE_NAME = MdePkg
PACKAGE_GUID = 1E73767F-8F52-4603-AEB4-F29B510B6766
PACKAGE_VERSION = 1.02
PACKAGE_UNI_FILE = MdePkg.uni
Added 2.11.1 [UserExtensions.TianoCore."ExtraFiles"] Section
The EDK II [UserExtensions.TianoCore."ExtraFiles"] section allow for
distributing extraneous files that are associated with a package. Files listed
in this section are not processed by EDK II build tools. These files must exist
in the directory or sub- directories of the directory containing the DEC file.
The Intel(r) UEFI Packaging Tool will parse this section and for all files
listed in this file, add the file to the package distribution using the UEFI
Distribution Package Distribution.
The section header must be: [UserExtensions.TianoCore."ExtraFiles"]
Having data elements under the section header is not required.
The following is an example of a [UserExtensions.TianoCore."ExtraFiles"]
section:
[UserExtensions.TianoCore."ExtraFiles"]
Readme.txt
UserManual.pdf
Modified EBNF in: 3.4 [Defines] Section
Prototype
<defines> ::= "[Defines]" <EOL>
<TS> "DEC_SPECIFICATION" <Eq> <SpecVer> <EOL>
<TS> "PACKAGE_NAME" <Eq> <UiNameType> <EOL>
<TS> "PACKAGE_GUID" <Eq> <RegistryFormatGUID> <EOL>
<TS> "PACKAGE_VERSION" <Eq> <DecimalVersion> <EOL>
<TS> "PACKAGE_UNI_FILE" <Eq> <Filename> <EOL>
<MacroDefinition>*
<UiNameType> ::= <Word>
<SpecVer> ::= "0x000100050x00010017"
Added Filename to Parameters in section 3.4:
Filename
Filenames listed in the [Defines] section must be relative to the directory the
INF file is in. Use of "..", "." and "../" in the directory path is not
permitted. Use of an absolute path is not permitted. The file name specified in
the PACKAGE_UNI_FILE entry must be a UCS-2LE encoded file with an extension of
.uni, .UNI or .Uni.
Appended the following to the Example in section 3.4:
PACKAGE_UNI_FILE = MdePkg.uni
Added the following parameters to section 3.10 PCD Sections
HexDigit
This value, if specified corresponds to the ErrorNumber of an Error Message
defined in a UEFI PI Distribution Package. Each error number is related to a
single error message (translations of message text are not considered as
separate error messages), with the text of error messages included in the
Unicode file specified in the PACKAGE_UNI_FILE element in the [Defines] section.
TokenNumber
Each PCD declared within a token space (defined by the Token Space GUID) must
be assigned a unique 32-bit value. This token number and an optional token
space GUID are used in code for accessing a PCD's value.
Added 3.11.1 [UserExtensions.TianoCore."ExtraFiles"] Section
This is an optional section.
Defines the optional EDK II DEC file [UserExtensions.TianoCore."ExtraFiles"]
section tag. The EDK II build tools must not process any files listed in this
section.
Summary
This section is used by the Intel(r) UEFI Packaging Tool that is distributed as
part of the EDK II BaseTools, to locate files listed under this section header
and add them to the UEFI distribution package. When installing a UEFI
distribution package, these files will be installed in the package's directory
tree.
Prototype
<UserExtensions> ::= "[UserExtensions" <TcEf> "]" <EOL> <FileNames>*
<TcEf> ::= ".TianoCore." <DblQuote> "ExtraFiles" <DblQuote>
<FileNames> ::= <TS> [<RelativePath>] <File> <EOL>
Parameters
FileNames
Paths listed in the filename elements of the this section must be relative to
the directory the DEC file resides in. Use of "..", "." and "../" in the
directory path is not permitted.
Example
[UserExtensions.TianoCore."ExtraFiles"]
Readme.txt
From: Felix Poludov [mailto:fel...@ami.com]
Sent: Thursday, August 07, 2014 8:57 AM
To: edk2-devel@lists.sourceforge.net
Subject: Re: [edk2] INF/DEC file updates to EDK II packages
Mike,
Why localized module name and localized module abstract/description are in two
separate UNI files?
Thanks
Felix
From: Kinney, Michael D [mailto:michael.d.kin...@intel.com]
Sent: Wednesday, August 06, 2014 9:22 PM
To: edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net>
Subject: Re: [edk2] INF/DEC file updates to EDK II packages
Tim,
I should have put it in the original email. The spec changes will be shared
too. We welcome review comments on all spec changes and patches.
Thanks,
Mike
From: Tim Lewis [mailto:tim.le...@insyde.com]
Sent: Wednesday, August 06, 2014 2:58 PM
To: edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net>
Subject: Re: [edk2] INF/DEC file updates to EDK II packages
Mike --
Since there are dozens of tools in the industry that consume these files, don't
you think its better to put the specification changes out where the consumers
can read, evaluate and comment on them? I realize that "UserDefined" sections
should be skipped by tools (agreed) but that doesn't mean that other module
creators might have made similar or related extensions or want to understand
how these changes play into their tools.
Regards,
Tim
________________________________
From: Kinney, Michael D [michael.d.kin...@intel.com]
Sent: Wednesday, August 06, 2014 2:31 PM
To: edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net>
Subject: [edk2] INF/DEC file updates to EDK II packages
Hello,
I wanted to let everyone know about a number of patch reviews for EDK II
packages that will be sent out over the next couple of weeks. These patches
impact the order of content in INF/DEC files and comment blocks in INF/DEC
files, and should not have any build or functionality impacts. These patches
will address the following issues:
1) Usage information in INF file comment blocks are either incomplete or
incorrect. This includes usage information for
Protocols/PPIs/GUIDs/PCDs/HOBs/Events/BootModes. The syntax for usage
information in comment blocks is defined in the EDK II Module Information (INF)
Specification
2) Add MODULE_UNI_FILE to INF [Defines] section along with UNI file that
contains the localized Abstract and Description of a module.
a. Addresses an information gap between INF files and the UEFI
Distribution Packaging Specification XML schema
b. There will be an associated update to UPT in BaseTools to consume
MODULE_UNI_FILE and associated UNI file during UDP creation that performs the
INF -> XML conversion.
c. There will be an associated update to UPT in BaseTools to produce
MODULE_UNI_FILE and associated UNI file during UDP installation that performs
the XML -> INF conversion.
3) Add [UserExtensions.TianoCore."ExtraFiles"] section to INF files along
with associated UNI file that provides the localized Name of a module.
a. [UserExtensions.TianoCore."ExtraFiles"] provides an easy method for a
module to specify extra files not listed in [Sources] or [Binaries] sections to
be added to a UDP without having to list the files in the UPT package
information data file.
b. There will be an associated update to UPT in BaseTools to package up
files listed in [UserExtensions.TianoCore."ExtraFiles"] during UDP creation.
c. UNI file contains localized name of a module to go along with the
localized Abstract and Description from the MODULE_UNI_FILE.
4) PCD information in DEC file comment blocks are either incomplete or
incorrect. This includes detailed description, @Prompt, @ValidRange,
@ValidList, @Expression, and [Error.<TokenSpaceGuid>] validation error messages
5) Add PACKAGE_UNI_FILE to DEC [Defines] section along with UNI file that
contains the localized Abstract and Description of a package and localized
strings associated with PCDs.
a. Addresses an information gap between DEC files and the UEFI
Distribution Packaging Specification XML schema
b. There will be an associated update to UPT in BaseTools to consume
PACKAGE_UNI_FILE and associated UNI file during UDP creation that performs the
DEC -> XML conversion.
c. There will be an associated update to UPT in BaseTools to produce
PACKAGE_UNI_FILE and associated UNI file during UDP installation that performs
the XML -> DEC conversion.
6) Add [UserExtensions.TianoCore."ExtraFiles"] section to DEC files along
with associated UNI file that provides the localized Name of a package.
a. [UserExtensions.TianoCore."ExtraFiles"] provides an easy method for a
package to specify extra files to be added to a UDP without having to list the
files in the UPT package information data file.
b. There will be an associated update to UPT in BaseTools to package up
files listed in [UserExtensions.TianoCore."ExtraFiles"] during UDP creation.
c. UNI file contains localized name of a package to go along with the
localized Abstract and Description from the PACKAGE_UNI_FILE.
7) Make sure order of DEC/INF content matches the order that UPT generates
in the XML -> INF conversion
a. This allows UDP packages installed by UPT to be compared against EDK II
trunk/branches using standard diff utilities.
Patches for the following EDK II packages are being prepared
1) MdePkg
2) MdeModulePkg
3) IntelFrameworkPkg
4) IntelFrameworkModulePkg
5) FatPkg
6) ShellPkg
7) PcAtChipsetPkg
8) UefiCpuPkg
9) SourceLevelDebugPkg
10) CryptoPkg
11) SecurityPkg
12) NetworkPkg
Best regards,
Mike
The information contained in this message may be confidential and proprietary
to American Megatrends, Inc. This communication is intended to be read only by
the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that
any distribution of this message, in any form, is strictly prohibited. Please
promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and
then delete or destroy all copies of the transmission.
------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel