From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (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 D56BF203BF05E for ; Wed, 5 Apr 2017 15:53:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=intel.com; i=@intel.com; q=dns/txt; s=intel; t=1491432833; x=1522968833; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=m32PHac1WstT5peu+w19+iNAiYkAcyYaYeam30JuMi4=; b=aagHVYah+U1eAd0t/cq0WSZdbNK0rALHg4bdVDJ1Q6phuSsLxd4JsHBF eTNhRGeUKlwjumbjykiF9KRZrflOQA==; Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Apr 2017 15:53:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.37,281,1488873600"; d="scan'208";a="85254303" Received: from mdkinney-mobl.amr.corp.intel.com ([10.241.98.57]) by fmsmga006.fm.intel.com with ESMTP; 05 Apr 2017 15:53:53 -0700 From: Michael Kinney To: edk2-devel@lists.01.org Cc: Liming Gao , Yonghong Zhu , Kevin W Shaw Date: Wed, 5 Apr 2017 15:53:46 -0700 Message-Id: <1491432826-8704-2-git-send-email-michael.d.kinney@intel.com> X-Mailer: git-send-email 2.6.3.windows.1 In-Reply-To: <1491432826-8704-1-git-send-email-michael.d.kinney@intel.com> References: <1491432826-8704-1-git-send-email-michael.d.kinney@intel.com> MIME-Version: 1.0 Subject: [edk2-FdfSpecification Patch] FILE RAW Multiple binaries and FmpPayload extensions X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Apr 2017 22:53:54 -0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 Cc: Yonghong Zhu Cc: Kevin W Shaw Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael Kinney --- 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. {} {} "}" [] ::= [] [] "{" [] - {} {} "}" [] + {} {+} { } + "}" + ::= [] ::= ["FIXED" ] ["CHECKSUM" ] [] ::= "Align" - ::= {} {} {} + ::= {} {} {} ::= "FV" ::= "FD" ::= {} {"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. ::= [] [] "{" [] - {} {} [] + {} {+} { } "}" + ::= [] ::= ["FIXED" ] ["CHECKSUM" ] [] ::= "Align" ::= [ "FvBaseAddress" ] [ "FvForceRebase" ] "FvAlignment" - ::= {} {} {} + ::= {} {} {} ::= "FV" ::= "FD" ::= {} {"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. [ "IMAGE_TYPE_ID" ] [ "IMAGE_INDEX" ] [ "HARDWARE_INSTANCE" ] + [ “MONOTONIC_COUNT” ] + [ “CERTIFICATE_GUID” ] ::= "FILE" "DATA" ``` +********** +**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