public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-FdfSpecification Patch] FILE RAW Multiple binaries and FmpPayload extensions
@ 2017-04-05 22:53 Michael Kinney
  2017-04-05 22:53 ` Michael Kinney
       [not found] ` <E92EE9817A31E24EB0585FDF735412F57D168057@ORSMSX113.amr.corp.intel.com>
  0 siblings, 2 replies; 3+ messages in thread
From: Michael Kinney @ 2017-04-05 22:53 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Yonghong Zhu, Kevin W Shaw

* Changed the FDF_SPECIFICATION value from 0x0001001A to
  0x0001001B or 1.27
* Extended the FV and Capsule, FILE RAW statement formats to
  support multiple binary files.
* Changed section 3.8 [FmpPayload] to add definitions for
  MONOTONIC_COUNT and CERTIFICATE_GUID, plus some notes about
  how these are used.

The document changes in this patch are in Gitbook format and are equivalent to
the changes in the EDK II FDF File Spec v1.27 DRAFT for Review that was posted
as a PDF with change bars on the tianocore site in September 2016.

  https://github.com/tianocore-docs/Docs/raw/master/Specifications/FDF_Spec_1_27_Review_Draft.pdf
    
These same document changes are also availabe in the following GIT branch:
  
  https://github.com/mdkinney/edk2-FdfSpecification/tree/FileRawMultipleBinary

The content difference between the latest DRAFT and this change can be 
viewed at the following link.  The ?w=1 performs a word diff and ignores
white space changes.
  
  https://github.com/tianocore-docs/edk2-FdfSpecification/compare/master...mdkinney:FileRawMultipleBinary?w=1
  
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>

Michael Kinney (1):
  FILE RAW Multiple binaries and FmpPayload extensions

 2_fdf_design_discussion/README.md                    |  8 ++++----
 3_edk_ii_fdf_file_format/34_[defines]_section.md     | 17 +++++++++--------
 3_edk_ii_fdf_file_format/36_[fv]_sections.md         | 16 ++++++++++++++--
 3_edk_ii_fdf_file_format/37_[capsule]_sections.md    |  5 +++--
 3_edk_ii_fdf_file_format/38_[fmppayload]_sections.md | 10 ++++++++++
 README.md                                            |  5 ++++-
 6 files changed, 44 insertions(+), 17 deletions(-)

-- 
2.6.3.windows.1



^ permalink raw reply	[flat|nested] 3+ messages in thread

* [edk2-FdfSpecification Patch] FILE RAW Multiple binaries and FmpPayload extensions
  2017-04-05 22:53 [edk2-FdfSpecification Patch] FILE RAW Multiple binaries and FmpPayload extensions Michael Kinney
@ 2017-04-05 22:53 ` Michael Kinney
       [not found] ` <E92EE9817A31E24EB0585FDF735412F57D168057@ORSMSX113.amr.corp.intel.com>
  1 sibling, 0 replies; 3+ messages in thread
From: Michael Kinney @ 2017-04-05 22:53 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Yonghong Zhu, Kevin W Shaw

* Changed the FDF_SPECIFICATION value from 0x0001001A to
  0x0001001B or 1.27
* Extended the FV and Capsule, FILE RAW statement formats to
  support multiple binary files.
* Changed section 3.8 [FmpPayload] to add definitions for
  MONOTONIC_COUNT and CERTIFICATE_GUID, plus some notes about
  how these are used.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
---
 2_fdf_design_discussion/README.md                    |  8 ++++----
 3_edk_ii_fdf_file_format/34_[defines]_section.md     | 17 +++++++++--------
 3_edk_ii_fdf_file_format/36_[fv]_sections.md         | 16 ++++++++++++++--
 3_edk_ii_fdf_file_format/37_[capsule]_sections.md    |  5 +++--
 3_edk_ii_fdf_file_format/38_[fmppayload]_sections.md | 10 ++++++++++
 README.md                                            |  5 ++++-
 6 files changed, 44 insertions(+), 17 deletions(-)

diff --git a/2_fdf_design_discussion/README.md b/2_fdf_design_discussion/README.md
index 37e37c7..3202f56 100644
--- a/2_fdf_design_discussion/README.md
+++ b/2_fdf_design_discussion/README.md
@@ -50,10 +50,10 @@ The EDK II Build generates UEFI and PI specification compliant binary images.
 The tools provided in the EDK and the EdkCompatibilityPkg module support
 earlier versions of the specifications.
 
-This revision of the specification adds support for multiple EDK II Packages
-directories outside of the WORKSPACE. FDF files that use this feature must
-use the new `FDF_SPECIFICATION = 0x00010019` in the `[Defines]` section. Older
-FDF files do not need to update the `FDF_SPECIFICATION` value.
+This revision of the specification adds support for multiple binary files in
+an FV FILE RAW statement. FDF files that use this feature must use the new
+`FDF_SPECIFICATION = 0x0001001B` in the `[Defines]` section. Older FDF files
+do not need to update the `FDF_SPECIFICATION` value.
 
 The EDK II build system has been updated to allow the setting of multiple paths
 that will be searched when attempting to resolve the location of EDK II
diff --git a/3_edk_ii_fdf_file_format/34_[defines]_section.md b/3_edk_ii_fdf_file_format/34_[defines]_section.md
index 789f114..eec7698 100644
--- a/3_edk_ii_fdf_file_format/34_[defines]_section.md
+++ b/3_edk_ii_fdf_file_format/34_[defines]_section.md
@@ -40,14 +40,15 @@ This section describes the defines section content in the FDF files. This file
 can be created by a developer and is an input to the EDK II build tool parsing
 utilities. Elements may appear in any order within this section.
 
-The code for this version of the FDF specification is "0x0001001A" and new
-versions of this specification must increment the minor (001A) portion of the
-specification code for backward compatible changes, and increment the major
-number for non-backward compatible specification changes.
-
-This revision of the specification adds FMP Capsule support. Any FDF file that
-uses this feature must use the 0x0001001A FDF_SPECIFICATION value. Older FDF
-files that do not use this feature do not need to update the value.
+The code for this version of the FDF specification is "0x0001001B". New
+versions of this specification must increment the minor (001B) portion of the
+specification code for backward-compatible changes, and increment the major
+specification number for non-backward-compatible changes.
+
+This revision of the specification adds support for multiple binaries in an
+FV or Capsule RAW FILE statement. Any FDF file that uses this feature must use
+the value `0x0001001B` in the `FDF_SPECIFICATION` statement. Older FDF files
+that do not use this feature do not need to update the value.
 
 Conditional statements may be used anywhere within this section.
 
diff --git a/3_edk_ii_fdf_file_format/36_[fv]_sections.md b/3_edk_ii_fdf_file_format/36_[fv]_sections.md
index b80f6be..f2d34cf 100644
--- a/3_edk_ii_fdf_file_format/36_[fv]_sections.md
+++ b/3_edk_ii_fdf_file_format/36_[fv]_sections.md
@@ -157,11 +157,13 @@ Conditional statements may be used anywhere within this section.
                         {<Filename>} {<SectionData>} <TS> <TS> "}" [<EOL>]
 <Options2>          ::= [<Use>] [<FileOpts>] <MTS>
                         "{" [<EOL>]
-                        {<Filename>} {<SectionData>} <TS> "}" [<EOL>]
+                        <TS> {<Filename>} {<FileList>+} {<SectionData> <EOL>}
+                        "}" <EOL>
+<FileList>          ::= <TS> [<FfsAlignment>] <NormalFile> <EOL>
 <FileOpts>          ::= ["FIXED" <MTS>] ["CHECKSUM" <MTS>]
                         [<FfsAlignment>]
 <FfsAlignment>      ::= "Align" <Eq> <FfsAlignmentValues> <MTS>
-<Filename>          ::= {<FvImage>} {<FdImage>} {<NormalFile>}
+<Filename>          ::= <TS> {<FvImage>} {<FdImage>} {<NormalFile>} <EOL>
 <FvImage>           ::= <TS> "FV" <Eq> <FvUiName> <EOL>
 <FdImage>           ::= <TS> "FD" <Eq> <FdUiName> <EOL>
 <FdUiName>          ::= {<Word>} {"common"}
@@ -415,4 +417,14 @@ INF $(SAMPLE)/Universal/Network/Tcp4/Dxe/Tcp4.inf
 INF $(SAMPLE)/Universal/Network/Dhcp4/Dxe/Dhcp4.inf
 INF $(SAMPLE)/Universal/Network/Mtftp4/Dxe/Mtftp4.inf
 INF $(SAMPLE)/Universal/Network/SnpNt32/Dxe/SnpNt32.inf
+
+FILE RAW = 197DB236-F856-4924-90F8-CDF12FB975F3 {
+  $(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/$PLATFORM_ARCH)/File.bin
+}
+
+FILE RAW = 197DB236-F856-4924-90F8-CDF12FB975F3 {
+  Align=16 $(PLATFORM_PACKAGE)/Binaries/File1.pdb
+  Align=16 $(PLATFORM_PACKAGE)/Binaries/File2.pdb
+  Align=16 $(PLATFORM_PACKAGE)/Binaries/File3.pdb
+}
 ```
diff --git a/3_edk_ii_fdf_file_format/37_[capsule]_sections.md b/3_edk_ii_fdf_file_format/37_[capsule]_sections.md
index c912b40..85f65c7 100644
--- a/3_edk_ii_fdf_file_format/37_[capsule]_sections.md
+++ b/3_edk_ii_fdf_file_format/37_[capsule]_sections.md
@@ -121,15 +121,16 @@ Conditional statements may be used anywhere within this section.
                         <EOL>
 <Options2>          ::= [<Use>] [<FileOpts>]
                         "{" [<EOL>]
-                        <TS> {<Filename>} {<SectionData>} [<EOL>]
+                        {<Filename>} {<FileList>+} {<SectionData> <EOL>}
                         <TS> "}" <EOL>
+<FileList>          ::= <TS> [<FfsAlignment>] <NormalFile> <EOL>
 <FileOpts>          ::= ["FIXED" <MTS>] ["CHECKSUM" <MTS>]
                         [<FfsAlignment>]
 <FfsAlignment>      ::= "Align" <Eq> <FfsAlignmentValues>
 <FvAlignment>       ::= [<TS> "FvBaseAddress" <Eq> <UINT64> <EOL>]
                         [<TS> "FvForceRebase" <Eq> <TrueFalse> <EOL>]
                         "FvAlignment" <Eq> <FvAlignmentValues> <EOL>
-<Filename>          ::= {<FvImage>} {<FdImage>} {<NormalFile>}
+<Filename>          ::= <TS> {<FvImage>} {<FdImage>} {<NormalFile>} <EOL>
 <FvImage>           ::= "FV" <Eq> <FvUiName> <EOL>
 <FdImage>           ::= "FD" <Eq> <FdUiName> <EOL>
 <FdUiName>          ::= {<Word>} {"common"}
diff --git a/3_edk_ii_fdf_file_format/38_[fmppayload]_sections.md b/3_edk_ii_fdf_file_format/38_[fmppayload]_sections.md
index 8368ac3..c1356e8 100644
--- a/3_edk_ii_fdf_file_format/38_[fmppayload]_sections.md
+++ b/3_edk_ii_fdf_file_format/38_[fmppayload]_sections.md
@@ -44,9 +44,19 @@ Capsule files.
                   [<TS> "IMAGE_TYPE_ID" <Eq> <RegistryFormatGUID> <EOL>]
                   [<TS> "IMAGE_INDEX" <Eq> <Hex2> <EOL>]
                   [<TS> "HARDWARE_INSTANCE" <Eq> <Hex2> <EOL>]
+                  [<TS> “MONOTONIC_COUNT”<Eq> <NumValUint64> <EOL>]
+                  [<TS> “CERTIFICATE_GUID”<Eq> <RegistryFormatGUID><EOL>]
 <FmpFileData> ::= <TS> "FILE" <Space> "DATA" <Eq> <Filename> <EOL>
 ```
 
+**********
+**Note:** The `CERTIFICATE_GUID` and `MONOTONIC_COUNT` must work as a pair.
+If `CERTIFICATE_GUID` is provided, the FMP payload is processed as UEFI FMP
+Authentication format, and `MONOTONIC_COUNT` **MUST** be provided. If
+`CERTIFICATE_GUID` is not provided, the FMP payload is processed as UEFI FMP
+non-Authentication format, and `MONOTONIC_COUNT` **MUST NOT** be provided.
+**********
+
 #### Example
 
 ```ini
diff --git a/README.md b/README.md
index 23d5201..79643c4 100644
--- a/README.md
+++ b/README.md
@@ -194,4 +194,7 @@ Copyright (c) 2006-2017, Intel Corporation. All rights reserved.
 |            | PACKAGES_PATH and EDK_TOOLS_BIN, used by the build system.                                                                                                                 |               |
 |            | Allow INF statements in FD regions.                                                                                                                                        |               |
 |            | Clarified [UserExtensions] content in chapter 2 (to match implementation)                                                                                                  |               |
-| 1.28       | Convert to GitBooks                                                                                                                                                        | March 2017    |
+| 1.28       | Convert to GitBooks                                                                                                                                                        | April 2017    |
+|            | Changed the FDF_SPECIFICATION value from 0x0001001A to 0x0001001B or 1.27                                                                                                  |               |
+|            | Extended the FV and Capsule, FILE RAW statement formats to support multiple binary files.                                                                                  |               |
+|            | Changed section 3.8 [FmpPayload] to add definitions for MONOTONIC_COUNT and CERTIFICATE_GUID, plus some notes about how these are used.                                    |               |
-- 
2.6.3.windows.1



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [edk2-FdfSpecification Patch] FILE RAW Multiple binaries and FmpPayload extensions
       [not found] ` <E92EE9817A31E24EB0585FDF735412F57D168057@ORSMSX113.amr.corp.intel.com>
@ 2017-04-11  1:42   ` Zhu, Yonghong
  0 siblings, 0 replies; 3+ messages in thread
From: Zhu, Yonghong @ 2017-04-11  1:42 UTC (permalink / raw)
  To: Kinney, Michael D, Gao, Liming, edk2-devel@lists.01.org


Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com> 

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Michael Kinney
Sent: Wednesday, April 5, 2017 3:54 PM
To: edk2-devel@lists.01.org
Cc: Gao, Liming <liming.gao@intel.com>
Subject: [edk2] [edk2-FdfSpecification Patch] FILE RAW Multiple binaries and FmpPayload extensions

* Changed the FDF_SPECIFICATION value from 0x0001001A to
  0x0001001B or 1.27
* Extended the FV and Capsule, FILE RAW statement formats to
  support multiple binary files.
* Changed section 3.8 [FmpPayload] to add definitions for
  MONOTONIC_COUNT and CERTIFICATE_GUID, plus some notes about
  how these are used.

The document changes in this patch are in Gitbook format and are equivalent to the changes in the EDK II FDF File Spec v1.27 DRAFT for Review that was posted as a PDF with change bars on the tianocore site in September 2016.

  https://github.com/tianocore-docs/Docs/raw/master/Specifications/FDF_Spec_1_27_Review_Draft.pdf
    
These same document changes are also availabe in the following GIT branch:
  
  https://github.com/mdkinney/edk2-FdfSpecification/tree/FileRawMultipleBinary

The content difference between the latest DRAFT and this change can be viewed at the following link.  The ?w=1 performs a word diff and ignores white space changes.
  
  https://github.com/tianocore-docs/edk2-FdfSpecification/compare/master...mdkinney:FileRawMultipleBinary?w=1
  
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>

Michael Kinney (1):
  FILE RAW Multiple binaries and FmpPayload extensions

 2_fdf_design_discussion/README.md                    |  8 ++++----
 3_edk_ii_fdf_file_format/34_[defines]_section.md     | 17 +++++++++--------
 3_edk_ii_fdf_file_format/36_[fv]_sections.md         | 16 ++++++++++++++--
 3_edk_ii_fdf_file_format/37_[capsule]_sections.md    |  5 +++--
 3_edk_ii_fdf_file_format/38_[fmppayload]_sections.md | 10 ++++++++++
 README.md                                            |  5 ++++-
 6 files changed, 44 insertions(+), 17 deletions(-)

--
2.6.3.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-04-11  1:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-05 22:53 [edk2-FdfSpecification Patch] FILE RAW Multiple binaries and FmpPayload extensions Michael Kinney
2017-04-05 22:53 ` Michael Kinney
     [not found] ` <E92EE9817A31E24EB0585FDF735412F57D168057@ORSMSX113.amr.corp.intel.com>
2017-04-11  1:42   ` Zhu, Yonghong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox