From nobody Fri May 3 20:06:12 2024 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Authentication-Results: mx.zoho.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org; Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1491432838945702.1830907698554; Wed, 5 Apr 2017 15:53:58 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 18EA52050A8DB; Wed, 5 Apr 2017 15:53:55 -0700 (PDT) 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) 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 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 X-Original-To: edk2-devel@lists.01.org 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==; X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.37,281,1488873600"; d="scan'208";a="85254303" From: Michael Kinney To: edk2-devel@lists.01.org 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] [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: , Cc: Liming Gao Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 * 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/RE= ADME.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 co= mpliant binary images. The tools provided in the EDK and the EdkCompatibilityPkg module support earlier versions of the specifications. =20 -This revision of the specification adds support for multiple EDK II Packag= es -directories outside of the WORKSPACE. FDF files that use this feature must -use the new `FDF_SPECIFICATION =3D 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 =3D 0x0001001B` in the `[Defines]` section. Older FDF f= iles +do not need to update the `FDF_SPECIFICATION` value. =20 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_fd= f_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 t= he FDF files. This file can be created by a developer and is an input to the EDK II build tool par= sing utilities. Elements may appear in any order within this section. =20 -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 F= DF -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 fil= es +that do not use this feature do not need to update the value. =20 Conditional statements may be used anywhere within this section. =20 diff --git a/3_edk_ii_fdf_file_format/36_[fv]_sections.md b/3_edk_ii_fdf_fi= le_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 th= is section. {} {} "}" [] ::=3D [] [] "{" [] - {} {} "}" [] + {} {+} { } + "}" + ::=3D [] ::=3D ["FIXED" ] ["CHECKSUM" ] [] ::=3D "Align" - ::=3D {} {} {} + ::=3D {} {} {} ::=3D "FV" ::=3D "FD" ::=3D {} {"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 =3D 197DB236-F856-4924-90F8-CDF12FB975F3 { + $(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/$PLATFORM_ARCH)/File.bin +} + +FILE RAW =3D 197DB236-F856-4924-90F8-CDF12FB975F3 { + Align=3D16 $(PLATFORM_PACKAGE)/Binaries/File1.pdb + Align=3D16 $(PLATFORM_PACKAGE)/Binaries/File2.pdb + Align=3D16 $(PLATFORM_PACKAGE)/Binaries/File3.pdb +} ``` diff --git a/3_edk_ii_fdf_file_format/37_[capsule]_sections.md b/3_edk_ii_f= df_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 th= is section. ::=3D [] [] "{" [] - {} {} [] + {} {+} { } "}" + ::=3D [] ::=3D ["FIXED" ] ["CHECKSUM" ] [] ::=3D "Align" ::=3D [ "FvBaseAddress" ] [ "FvForceRebase" ] "FvAlignment" - ::=3D {} {} {} + ::=3D {} {} {} ::=3D "FV" ::=3D "FD" ::=3D {} {"common"} diff --git a/3_edk_ii_fdf_file_format/38_[fmppayload]_sections.md b/3_edk_i= i_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" ] + [ =E2=80=9CMONOTONIC_COUNT=E2=80=9D ] + [ =E2=80=9CCERTIFICATE_GUID=E2=80=9D ] ::=3D "FILE" "DATA" ``` =20 +********** +**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 F= MP +non-Authentication format, and `MONOTONIC_COUNT` **MUST NOT** be provided. +********** + #### Example =20 ```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 i= mplementation) = | | -| 1.28 | Convert to GitBooks = = | March 2017 | +| 1.28 | Convert to GitBooks = = | April 2017 | +| | Changed the FDF_SPECIFICATION value from 0x0001001A to 0x00= 01001B 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 MON= OTONIC_COUNT and CERTIFICATE_GUID, plus some notes about how these are used= . | | --=20 2.6.3.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel