public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Gao, Liming" <liming.gao@intel.com>
To: "Zhu, Yonghong" <yonghong.zhu@intel.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Cc: "Kinney, Michael D" <michael.d.kinney@intel.com>,
	"Shaw, Kevin W" <kevin.w.shaw@intel.com>
Subject: Re: [Patch] INF spec: Correct some items in the Table 1 EDK II [Defines] Section
Date: Wed, 12 Sep 2018 05:43:18 +0000	[thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E2F61BB@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <1536304072-23796-1-git-send-email-yonghong.zhu@intel.com>

Yonghong:
  Please list which items are corrected in the commit message. 

Thanks
Liming
>-----Original Message-----
>From: Zhu, Yonghong
>Sent: Friday, September 07, 2018 3:08 PM
>To: edk2-devel@lists.01.org
>Cc: Gao, Liming <liming.gao@intel.com>; Kinney, Michael D
><michael.d.kinney@intel.com>; Shaw, Kevin W <kevin.w.shaw@intel.com>
>Subject: [Patch] INF spec: Correct some items in the Table 1 EDK II [Defines]
>Section
>
>Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=1162
>Cc: Liming Gao <liming.gao@intel.com>
>Cc: Michael Kinney <michael.d.kinney@intel.com>
>Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
>Contributed-under: TianoCore Contribution Agreement 1.1
>Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
>---
> 2_inf_overview/24_[defines]_section.md           | 59 ++++++++++++------------
> 3_edk_ii_inf_file_format/34_[defines]_section.md |  2 +-
> README.md                                        |  1 +
> 3 files changed, 31 insertions(+), 31 deletions(-)
>
>diff --git a/2_inf_overview/24_[defines]_section.md
>b/2_inf_overview/24_[defines]_section.md
>index 37b0135..0afdfed 100644
>--- a/2_inf_overview/24_[defines]_section.md
>+++ b/2_inf_overview/24_[defines]_section.md
>@@ -106,35 +106,34 @@ the PEI Core or the Dxe Core. EDK II only references
>the first possible
> dispatch instance.
> **********
>
> ###### Table 1 EDK II [Defines] Section Elements
>
>-| Tag                          | Required                                                                 | Value
>| Notes
>|
>-| ---------------------------- | -------------------------------------------------------------
>----------- | --------------------------------------------- | ----------------------------------
>-----------------------------------------------------------------------------------------------
>-----------------------------------------------------------------------------------------------
>-----------------------------------------------------------------------------------------------
>-----------------------------------------------------------------------------------------------
>--------------------- |
>-| `INF_VERSION`                | REQUIRED                                                                 | 1.27 or
>0x0001001B                            | This identifies the INF spec. version. It is decimal
>value with fraction or two-nibble hexadecimal representation of the same, for
>example: 1.27. Tools use this value to handle parsing of previous releases of
>the specification if there are incompatible changes.
>|
>-| `BASE_NAME`                  | REQUIRED                                                                 | A
>single word                                 | This is a single word identifier that will be used
>for the component name.
>|
>-| `EDK_RELEASE_VERSION`        | Not required                                                             |
>Hex Double Word                               | The minimum revision value across the
>module and all its dependent libraries. If a revision value is not declared in the
>module or any of the dependent libraries, then the tool may use the value of
>0, which disables checking.
>|
>-| `PI_SPECIFICATION_VERSION`   | Not required
>| Decimal or special format of hex              | The minimum revision value across
>the module and all its dependent libraries. If a revision value is not declared in
>the module or any of the dependent libraries, then tools may use the value of
>0, which disables checking.
>|
>-|                              |                                                                          |
>| The `PI_SPECIFICATION_VERSION` must only be set in the INF file if the
>module depends on services or system table fields or PI core behaviors that
>are not present in the PI 1.0 version. For example, if a module depends on
>definitions in PI 1.1 that are not in PI 1.0, then `PI_SPECIFICATION_VERSION`
>must be 0x0001000A
>|
>-| `UEFI_SPECIFICATION_VERSION` | Not required
>| Decimal or special format of hex              | The minimum revision value across
>the module and all its dependent libraries. If a revision value is not declared in
>the module or any of the dependent libraries, then tools may use the value of
>0, which disables checking.
>|
>-|                              |                                                                          |
>| The `UEFI_SPECIFICATION_VERSIon` must only be set in the INF file if the
>module depends on UEFI Boot Services or UEFI Runtime Services or UEFI
>System Table fields or UEFI core behaviors that are not present in the UEFI 2.1
>version. For example, if a module depends on definitions in UEFI 2.2 that are
>not in UEFI 2.1, then `UEFI_SPECIFICATION_VERSION` must be 0x00020014
>|
>-| `FILE_GUID`                  | REQUIRED                                                                 | GUID
>Value                                    | Registry (8-4-4-4-12) Format This value is required for
>all EDK II format INF files, required for EDK driver INF files, not required for
>EDK libraries
>|
>-| `MODULE_TYPE`                | REQUIRED                                                                 |
>| This is the type of module. One of the EDK II Module Types. For Library
>Modules, the `MODULE_TYPE` must specify the `MODULE_TYPE` of the
>module that will use the driver.
>|
>-| `BUILD_NUMBER`               | Optional                                                                 |
>UINT16 Value                                  | This optional element, if present (or set in the
>DSC file), is used during the creation of the `EFI_VERSION_SECTION` for this
>module; if it is not present, then the BuildNumber field of the
>`EFI_VERSION_SECTION` will be set to 0.
>|
>-| `VERSION_STRING`             | REQUIRED                                                                 |
>String                                        | If present, this value will be encoded as USC-2
>characters in a Unicode file for the VERSION section of the FFS unless a ver or
>ver_ui file has been specified in the `[Binaries]` section.
>|
>-| `MODULE_UNI_FILE`            | Optional                                                                 |
>Filename                                      | A Unicode file containing UCS-2 character
>localization strings; the file path (if present) is relative to the directory
>containing the INF file. The use of #include statements in this file is prohibited.
>|
>-| `LIBRARY_CLASS`              | Typically not specified for a Driver; REQUIRED for a
>Library Only Module | Word &#124; List ["&#124;" Word &#124; List]* | One
>Library Class that is satisfied by this Library Instance; one or more
>`LIBRARY_CLASS` lines may be specified by a module. The reserved keyword,
>NULL, must be listed for library class instances that do NOT support a library
>class keyword.
>|
>-| `PCD_IS_DRIVER`              | Not required - Driver Only
>| PEI_PCD_DRIVER or DXE_PCD_DRIVER              | Only required for the two
>(PEI_PCD_DRIVER or DXE_PCD_DRIVER) PCD Driver modules.
>|
>-| `ENTRY_POINT`                | Not required - Driver Only                                               |
>CName                                         | This is the name of the driver's entry point
>function.
>|
>-| `UNLOAD_IMAGE`               | Not required - Driver Only
>| CName                                         | If a driver chooses to be unloadable, then this
>is the name of the module's function registered in the Loaded Image Protocol.
>It is called if the UEFI Boot Service UnloadImage() is called for the module,
>which then executes the Unload function, disconnecting itself from handles in
>the database as well as uninstalling any protocols that were installed in the
>driver entry point. The CName is the name of this module's unload function. |
>-| `CONSTRUCTOR`                | Not required - Library Only
>| CName                                         | This only applies to components that are
>libraries. It is required for EDK II libraries if the module's INF contains a
>Constructor element. This value is used to call the specified function before
>calling into the library itself.
>|
>-| `DESTRUCTOR`                 | Not required - Library Only                                              |
>CName                                         | This only applies to components that are libraries.
>This value is used to call the specified function before calling into the library
>itself.
>|
>-| `SHADOW`                     | Not required - SEC, PEIM and PEI_CORE Driver
>modules only                | TRUE &#124; FALSE                             | This boolean
>operator is used by `SEC`, `PEI_CORE` and `PEIM` modules to indicate if the
>module was coded to use `REGISTER_FOR_SHADOW`. If the value is TRUE,
>the .reloc section of the PE32 image is not removed, otherwise, the .reloc
>section is stripped to conserve space in the final binary images. The default
>value is FALSE.                                                                                                              |
>-| `PCI_DEVICE_ID`              | Not required - Required for UEFI PCI Option ROMs
>| Hex Number                                    | The PCI Device Id for this device.
>|
>-| `PCI_VENDOR_ID`              | Not required - Required for UEFI PCI Option
>ROMs                         | Hex Number                                    | The PCI Vendor Id for this
>device
>|
>-| `PCI_CLASS_CODE`             | Not required - Required for UEFI PCI Option
>ROMs                         | Hex Number                                    | The PCI Class Code for
>this device
>|
>-| `PCI_COMPRESS`               | Not required UEFI PCI Option ROMs
>| TRUE &#124; FALSE                             | This flag is used by tools to compress a
>PCI Option ROM image file, the default (if not specified) is FALSE
>|
>-| `UEFI_HII_RESOURCE_SECTION`  | Not required Driver Only
>| TRUE &#124; FALSE                             | This boolean operator is used to indicate
>that the module will require a separate HII resource section in the efi image
>file.
>|
>-| `DEFINE`                     | Not required                                                             | Name =
>Value                                  | The value must be a directory name, and the name
>can be used with $( and ) character sets. This allows shortening of lines typed
>by users.
>|
>-| `SPEC`                       | Not required                                                             | CName =
>Value                                 | A User-specified #define CName Value pair that will
>be included in the `AutoGen.h` file.
>|
>-| `CUSTOM_MAKEFILE`            | Not required                                                             |
>Family &#124; File                            | A user written makefile that will be used,
>the INF file will not be parsed.  The Family is one of MSFT or GCC followed by a
>field separator "&#124;" character, then the filename of the makefile in the
>same directory as the INF file. To keep GCC compatibility, the user must
>generate two Makefiles, one for MSFT, such as makefile and another for GCC,
>such as GNUmakefile                                                                   |
>-| `DPX_SOURCE`                 | Not Required Driver Only                                                 |
>Filename                                      | If present, the file must contain all DEPEX
>statements (as defined in the UEFI PI specification), as the tools will process
>the file, ignoring any content in `[Depex]` sections in this file AND all inherited
>dependencies from libraries. This allows the module owner to force a Depex
>independently. Use of this option is not recommended for normal use.
>|
>+|Tag                         |Required                                                     |Value                           |
>Notes
>|
>+|----------------------------|-------------------------------------------------------------
>|--------------------------------|------------------------------------------------------------
>-----------------------------------------------------------------------------------------------
>-----------------------------------------------------------------------------------------------
>-----------------------------------------------------------------------------------------------
>------------------- ---------------|
>+|`INF_VERSION`               |REQUIRED                                                     |1.27 or
>0x0001001B              | This identifies the INF spec version. It is decimal value
>with fraction or two-nibble hexadecimal representation of the same, for
>example: 1.27. Tools use this value to handle parsing of previous releases of
>the specification if there are incompatible changes.
>|
>+|`BASE_NAME`                 |REQUIRED                                                     |A single word
>| This is a single word identifier that will be used for the component name.
>|
>+|`PI_SPECIFICATION_VERSION`  |Not required
>|Decimal or special format of hex| The minimum revision value across the
>module and all its dependent libraries. If a revision value is not declared in the
>module or any of the dependent libraries, then tools may use the value of 0,
>which disables checking.
>|
>+|                            |                                                             |                                | The
>`PI_SPECIFICATION_VERSION` must only be set in the INF file if the module
>depends on services or system table fields or PI core behaviors that are not
>present in the PI 1.0 version. For example, if a module depends on definitions
>in PI 1.1 that are not in PI 1.0, then `PI_SPECIFICATION_VERSION` must be
>0x0001000A                                                             |
>+|`UEFI_SPECIFICATION_VERSION`|Not required
>|Decimal or special format of hex| The minimum revision value across the
>module and all its dependent libraries. If a revision value is not declared in the
>module or any of the dependent libraries, then tools may use the value of 0,
>which disables checking.
>|
>+|                            |                                                             |                                | The
>`UEFI_SPECIFICATION_VERSIon` must only be set in the INF file if the module
>depends on UEFI Boot Services or UEFI Runtime Services or UEFI System Table
>fields or UEFI core behaviors that are not present in the UEFI 2.1 version. For
>example, if a module depends on definitions in UEFI 2.2 that are not in UEFI
>2.1, then `UEFI_SPECIFICATION_VERSION` must be 0x00020014         |
>+|`FILE_GUID`                 |REQUIRED                                                     |GUID Value
>| Registry (8-4-4-4-12) Format. This value is required for all EDK II format INF
>files, required for EDK driver INF files, not required for EDK libraries
>|
>+|`MODULE_TYPE`               |REQUIRED                                                     |
>| This is the type of module. One of the EDK II Module Types. For Library
>Modules, the `MODULE_TYPE` must specify the `MODULE_TYPE` of the
>module that will typically use the library.
>|
>+|`BUILD_NUMBER`              |Optional                                                     |UINT16 Value
>| This optional element, if present (or set in the DSC file), is used during the
>creation of the `EFI_VERSION_SECTION` for this module; if it is not present,
>then the BuildNumber field of the `EFI_VERSION_SECTION` will be set to 0.
>|
>+|`VERSION_STRING`            |Optional                                                     |String
>| If present, this value will be encoded as USC-2 characters in a Unicode file
>for the VERSION section of the FFS unless a ver or ver_ui file has been
>specified in the `[Binaries]` section.
>|
>+|`MODULE_UNI_FILE`           |Optional                                                     |Filename
>| A Unicode file containing UCS-2 character localization strings; the file path (if
>present) is relative to the directory containing the INF file. The use of #include
>statements in this file is prohibited.
>|
>+|`LIBRARY_CLASS`             |Typically not specified for Driver; REQUIRED for
>Library only|Word &#124; TypeList            | One Library Class that is satisfied by
>this Library Instance; one or more `LIBRARY_CLASS` lines may be specified by a
>module. The reserved keyword, NULL, must be listed for library class
>instances that do NOT support a library class keyword.
>|
>+|`PCD_IS_DRIVER`             |Not required - Driver Only
>|PEI_PCD_DRIVER or DXE_PCD_DRIVER| Only required for the two
>(PEI_PCD_DRIVER or DXE_PCD_DRIVER) PCD Driver modules.
>|
>+|`ENTRY_POINT`               |Not required - Driver Only                                   |CName
>| This is the name of the driver's entry point function.
>|
>+|`UNLOAD_IMAGE`              |Not required - Driver Only
>|CName                           | If a driver chooses to be unloadable, then this is the
>name of the module's function registered in the Loaded Image Protocol. It is
>called if the UEFI Boot Service UnloadImage() is called for the module, which
>then executes the Unload function, disconnecting itself from handles in the
>database as well as uninstalling any protocols that were installed in the driver
>entry point.|
>+|`CONSTRUCTOR`               |Not required - Library Only
>|CName                           | This only applies to components that are libraries. It is
>required for EDK II libraries if the module's INF contains a Constructor element.
>This value is used to call the specified function before calling into the library
>itself.
>|
>+|`DESTRUCTOR`                |Not required - Library Only                                  |CName
>| This only applies to components that are libraries. This value is used to call
>the specified function before calling into the library itself.
>|
>+|`SHADOW`                    |Not required - SEC, PEIM and PEI_CORE Driver
>modules only    |TRUE &#124; FALSE               | This boolean operator is used by
>`SEC`, `PEI_CORE` and `PEIM` modules to indicate if the module was coded to
>use `REGISTER_FOR_SHADOW`. If the value is TRUE, the .reloc section of the
>PE32 image is not removed, otherwise, the .reloc section is stripped to
>conserve space in the final binary images. The default value is FALSE.
>|
>+|`PCI_DEVICE_ID`             |Not required - Required for UEFI PCI Option ROMs
>|UINT16 Value                    | The PCI Device Id for this device
>|
>+|`PCI_VENDOR_ID`             |Not required - Required for UEFI PCI Option
>ROMs             |UINT16 Value                    | The PCI Vendor Id for this device
>|
>+|`PCI_CLASS_CODE`            |Not required - Required for UEFI PCI Option
>ROMs             |UINT8 Value                     | The PCI Class Code for this device
>|
>+|`PCI_REVISION`              |Not required - Required for UEFI PCI Option ROMs
>|UINT8 Value                     | The PCI revision for this device
>|
>+|`PCI_COMPRESS`              |Not required UEFI PCI Option ROMs
>|TRUE &#124; FALSE               | This flag is used by tools to compress a PCI
>Option ROM image file, the default (if not specified) is FALSE
>|
>+|`UEFI_HII_RESOURCE_SECTION` |Not required - Driver Only
>|TRUE &#124; FALSE               | This boolean operator is used to indicate that
>the module will require a separate HII resource section in the efi image file.
>|
>+|`CUSTOM_MAKEFILE`           |Not required                                                 |Family
>&#124; File              | A user written makefile that will be used, the INF file will
>not be parsed.  The Family is one of MSFT or GCC followed by a field separator
>"&#124;" character, then the filename of the makefile in the same directory as
>the INF file. To keep GCC compatibility, the user must generate two Makefiles,
>one for MSFT, such as makefile and another for GCC, such as GNUmakefile
>|
>+|`SPEC`                      |Not required                                                 |CName = Value
>| A User-specified #define CName Value pair that will be included in the
>`AutoGen.h` file.
>|
>+|`DPX_SOURCE`                |Not Required - Driver Only
>|Filename                        | If present, the file must contain all DEPEX statements
>(as defined in the UEFI PI specification), as the tools will process the file,
>ignoring any content in `[Depex]` sections in this file AND all inherited
>dependencies from libraries. This allows the module owner to force a Depex
>independently. Use of this option is not recommended for normal use.
>|
>diff --git a/3_edk_ii_inf_file_format/34_[defines]_section.md
>b/3_edk_ii_inf_file_format/34_[defines]_section.md
>index 494b77d..f512ff9 100644
>--- a/3_edk_ii_inf_file_format/34_[defines]_section.md
>+++ b/3_edk_ii_inf_file_format/34_[defines]_section.md
>@@ -141,11 +141,11 @@ recommended.
>                        [<TS> "UEFI_SPECIFICATION_VERSION" <Eq>
>                        <VersionVal> <EOL>]
>                        [<TS> "PI_SPECIFICATION_VERSION" <Eq>
>                        <VersionVal> <EOL>]
>                        [<TS> "LIBRARY_CLASS" <Eq> <LibClass> <EOL>]*
>-                       [<TS> "BUILD_NUMBER" <Eq> <NumValUint16> <EOL>]
>+                       [<TS> "BUILD_NUMBER" <Eq> <UINT16> <EOL>]
>                        [<TS> "VERSION_STRING" <Eq>
>                        <DecimalVersion> <EOL>]
>                        [<TS> "PCD_IS_DRIVER" <Eq>
>                        <PcdDriverType> <EOL>]
>                        [<TS> "ENTRY_POINT" <Eq> <CName> [<FFE>] <EOL>]*
>diff --git a/README.md b/README.md
>index 4cce0a8..813bc1a 100644
>--- a/README.md
>+++ b/README.md
>@@ -198,5 +198,6 @@ Copyright (c) 2007-2017, Intel Corporation. All rights
>reserved.
> |            | [#522](https://bugzilla.tianocore.org/show_bug.cgi?id=522) INF spec:
>add the clarification that PCD value may from build command
>|               |
> | 1.27       | Update version to 1.27
>| Mar 2018      |
> |            | Add Flexible PCD value format support
>|               |
> |            | Add clarification that !error statement is not permitted in INF file
>|               |
> |            | INF Spec: FixedAtBuild (VOID*) PCD use in the [DEPEX] section
>|               |
>+|            | [#1162](https://bugzilla.tianocore.org/show_bug.cgi?id=1162)
>Correct the item in Table 1 to align with 3.4 section
>|               |
>--
>2.6.1.windows.1



      reply	other threads:[~2018-09-12  5:44 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-07  7:07 [Patch] INF spec: Correct some items in the Table 1 EDK II [Defines] Section Yonghong Zhu
2018-09-12  5:43 ` Gao, Liming [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A89E2EF3DFEDB4C8BFDE51014F606A14E2F61BB@SHSMSX104.ccr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox