From nobody Sun May 5 12:53:00 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+95624+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+95624+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1666832370; cv=none; d=zohomail.com; s=zohoarc; b=V832Lxf/i/r6D3HcQtIvwan72SUndBwo9/mSyqfQ7WrLxKx22p9ky9CfZTvZZ2H9h7tnW1Ov1cyeFsWSyG8i4DmtditRrYOM8kw51t2FvweQ2qCSjYONDiMZnjE5bMCXc2kcrMJIMSjedG0kDxMPqX6DiGtQVlsGJiS2dYXBerw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1666832370; h=Content-Type:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=po5xf07W3/jGQQhTQkLLzHEhWkJ6hErFo0IxW3xnunM=; b=LWecyXcrDQQuJBfDy7sfy50BpT4EqsHvVJn71NrUDyiidXsh97pwI+JhTpfh495sQWZ7WllEFqGa4X8+dAZ3dUVF/NslYxyToVSxfJpnawWSrpLt9FHowbp9vOa6e8byFwF08uKPc4kTW+BwwWTvqhu9Z2caGNAc94nIdYHYSYA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+95624+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1666832370173180.59441025544197; Wed, 26 Oct 2022 17:59:30 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 4A3FYY1788612xMvlgV3sKmZ; Wed, 26 Oct 2022 17:59:28 -0700 X-Received: from walk.intel-email.com (walk.intel-email.com [101.227.64.242]) by mx.groups.io with SMTP id smtpd.web10.1407.1666832366050791523 for ; Wed, 26 Oct 2022 17:59:27 -0700 X-Received: from walk.intel-email.com (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id F13D5CD1F7CD for ; Thu, 27 Oct 2022 08:59:22 +0800 (CST) X-Received: from localhost (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id ECEF7CD1F7D9 for ; Thu, 27 Oct 2022 08:59:22 +0800 (CST) X-Received: from walk.intel-email.com (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id AE360CD1F7D4 for ; Thu, 27 Oct 2022 08:59:22 +0800 (CST) X-Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by walk.intel-email.com (Postfix) with SMTP id 639ABCD1F7CD for ; Thu, 27 Oct 2022 08:59:19 +0800 (CST) X-Received: from DESKTOPS6D0PVI ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Thu, 27 Oct 2022 08:59:17 +0800 X-WM-Sender: gaoliming@byosoft.com.cn X-Originating-IP: 58.246.60.130 X-WM-AuthFlag: YES X-WM-AuthUser: gaoliming@byosoft.com.cn From: "gaoliming via groups.io" To: "'Hv, Pavamana'" , "'Holland, Michael'" , , "'Chaganty, Rangasai V'" , "'Lohr, Paul A'" , "'Feng, Bob C'" References: <3bbfe7d39637575ca8942493c7d70df111400f1c.1666228699.git.pavamana.hv@intel.com> <000801d8e8e1$362a0a00$a27e1e00$@byosoft.com.cn> In-Reply-To: Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyXSBlZGsyUGxhdGZvcm1zLVNpbGljb246QWRkIFZBQiBGSVQgcmVjb3JkIHR5cGVzIHN1cHBvcnQgaW4gRml0R2VuLmM=?= Date: Thu, 27 Oct 2022 08:59:18 +0800 Message-ID: <014301d8e99f$57cf39a0$076dace0$@byosoft.com.cn> MIME-Version: 1.0 Thread-Index: AQLIs8HHg62XSSE2pwpWE7b08vVFqQIcg1TgAl4x3aYB8vHGAANhMP3cAftTGY6r44WXAA== Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,gaoliming@byosoft.com.cn X-Gm-Message-State: 64CK2d1uRKt9lA41Lf7Kfnrgx1787277AA= Content-Type: multipart/alternative; boundary="----=_NextPart_000_0144_01D8E9E2.65F5FC10" Content-Language: zh-cn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1666832368; bh=SbEOZUx365qL4+wdvHv4xPwclwrbAevq9Ef4NG25mas=; h=Content-Type:Date:From:Reply-To:Subject:To; b=Pv9GVMWDEABrZc29PX6H3ztCbNDsYpQYUEHicZG8+qMX7a1SOHESLK4/QgM+cXCPcyy RCQkVAWZ9XsNMUhtzIcvj7V1kgksOk0gYU6iY9ijMXPoHForuvrGjbGwjgp5IJll3/JEE W0r4156dNLgRONuguRgBJ0GX1OCxsi/EIDw= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1666832372326100003 ------=_NextPart_000_0144_01D8E9E2.65F5FC10 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Pavamana: The change should be merged after new FIT spec is published, because FitGe= n tool follows the public FIT spec.=20 =20 Thanks Liming =E5=8F=91=E4=BB=B6=E4=BA=BA: Hv, Pavamana =20 =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2022=E5=B9=B410=E6=9C=8826=E6=97=A5 2= 3:13 =E6=94=B6=E4=BB=B6=E4=BA=BA: Holland, Michael ; = Gao, Liming ; devel@edk2.groups.io; Chaganty, Ran= gasai V ; Lohr, Paul A ; Feng, Bob C =E4=B8=BB=E9=A2=98: RE: [edk2-devel] [PATCH v2] edk2Platforms-Silicon:Add V= AB FIT record types support in FitGen.c =20 Thanks for the review, Liming. @Feng, Bob C, What is the next step to merge the change? Let me know if anything is needed from me. Thanks for your help again. Regards, Pavamana =20 =20 From: Holland, Michael >=20 Sent: Tuesday, October 25, 2022 8:36 PM To: Gao, Liming = >; devel@edk2.groups.io ; Hv, Pavamana >; Chaganty, Rangasai V >; Lohr= , Paul A > Cc: Feng, Bob C > Subject: RE: [edk2-devel] [PATCH v2] edk2Platforms-Silicon:Add VAB FIT reco= rd types support in FitGen.c =20 Hi Liming, =20 The spec is in process of being published. =20 @Chaganty, Rangasai V @Lohr, Paul A =20 Any update on FIT spec being published? =20 Thanks, Michael =20 From: gaoliming = >=20 Sent: Tuesday, October 25, 2022 09:18 PM To: devel@edk2.groups.io ; Hv, Pavamana > Cc: Feng, Bob C >; Holl= and, Michael > Subject: =E5=9B=9E=E5=A4=8D: [edk2-devel] [PATCH v2] edk2Platforms-Silicon:= Add VAB FIT record types support in FitGen.c =20 Pavamana: The code change looks good. Now, is FIT spec 1.4 public to be downloaded? =20 Thanks Liming =E5=8F=91=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io > =E4=BB=A3=E8=A1= =A8 Hv, Pavamana =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2022=E5=B9=B410=E6=9C=8826=E6=97=A5 5= :50 =E6=94=B6=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io ; Gao, Liming > =E6=8A=84=E9=80=81: Feng, Bob C >; Holland, Michael > =E4=B8=BB=E9=A2=98: Re: [edk2-devel] [PATCH v2] edk2Platforms-Silicon:Add V= AB FIT record types support in FitGen.c =E9=87=8D=E8=A6=81=E6=80=A7: =E9=AB=98 =20 Hi Liming, Any update on this? Please treat this with urgency as we have a release com= ing up and needs this change. =20 -Pavamana =20 From: Hv, Pavamana=20 Sent: Monday, October 24, 2022 10:05 AM To: devel@edk2.groups.io ; Gao, Liming > Subject: RE: [PATCH v2] edk2Platforms-Silicon:Add VAB FIT record types supp= ort in FitGen.c =20 @Gao, Liming, Can you please review the patch and let me know if this can be merged? Thanks in advance for your help. Regards, Pavamana =20 -----Original Message----- From: Hv, Pavamana >=20 Sent: Wednesday, October 19, 2022 8:57 PM To: devel@edk2.groups.io =20 Cc: Hv, Pavamana > Subject: [PATCH v2] edk2Platforms-Silicon:Add VAB FIT record types support = in FitGen.c =20 REF: https://bugzi= lla.tianocore.org/show_bug.cgi?id=3D4086 =20 This commit adds support for new FIT record type for Vendor Authorized Boot= (VAB) security technology(FIT spec revision 1.4). VAB defines 3 new following types Vendor Authorized Boot Provisioning Table (Type 0x1A) Vendor Authorized Boo= t Image Manifest (Type 0x1B) Vendor Authorized Boot Key Manifest (Type 0x1C= ) The code has been updated to align these binaries on 64 byte boundary and= not to overlap with other regions, similar to Key manifest, Boot Policy ma= nifest and other optional types. =20 Also added macros to define FIT spec Major and Minor version numbers and pr= int the same instead of hardcoded string. =20 Signed-off-by: Pavamana Holavanahalli < pava= mana.hv@intel.com> --- Silicon/Intel/Tools/FitGen/FitGen.c | 61 +++++++++++++++++++---------- Sil= icon/Intel/Tools/FitGen/FitGen.h | 5 ++- 2 files changed, 44 insertions(+), 22 deletions(-) =20 diff --git a/Silicon/Intel/Tools/FitGen/FitGen.c b/Silicon/Intel/Tools/FitG= en/FitGen.c index 21dfcf1ebb..87123f9922 100644 --- a/Silicon/Intel/Tools/FitGen/FitGen.c +++ b/Silicon/Intel/Tools/FitGen/FitGen.c @@ -234,20 +234,24 @@ typedef struct { #define FLASH_TO_MEMORY(Address, FvBuffer, FvSize) \ (VOI= D *)(UINTN)((UINTN)(FvBuffer) + (UINTN)(FvSize) - (TOP_FLASH_ADDRESS - (UIN= TN)(Address))) -#define FIT_TABLE_TYPE_HEADER 0-#define FIT= _TABLE_TYPE_MICROCODE 1-#define FIT_TABLE_TYPE_STARTUP_ACM = 2-#define FIT_TABLE_TYPE_DIAGNST_ACM 3-#define FIT_TABLE= _TYPE_BIOS_MODULE 7-#define FIT_TABLE_TYPE_TPM_POLICY = 8-#define FIT_TABLE_TYPE_BIOS_POLICY 9-#define FIT_TABLE_TYPE_= TXT_POLICY 10-#define FIT_TABLE_TYPE_KEY_MANIFEST 11-= #define FIT_TABLE_TYPE_BOOT_POLICY_MANIFEST 12-#define FIT_TABLE_TYPE_BIO= S_DATA_AREA 13-#define FIT_TABLE_TYPE_CSE_SECURE_BOOT 16-#de= fine FIT_TABLE_SUBTYPE_FIT_PATCH_MANIFEST 12-#define FIT_TABLE_SUBTYPE_ACM= _MANIFEST 13+#define FIT_TABLE_TYPE_HEADER 0+#d= efine FIT_TABLE_TYPE_MICROCODE 1+#define FIT_TABLE_TYPE_S= TARTUP_ACM 2+#define FIT_TABLE_TYPE_DIAGNST_ACM = 3+#define FIT_TABLE_TYPE_BIOS_MODULE 7+#define FIT_TAB= LE_TYPE_TPM_POLICY 8+#define FIT_TABLE_TYPE_BIOS_POLICY = 9+#define FIT_TABLE_TYPE_TXT_POLICY 10+#defi= ne FIT_TABLE_TYPE_KEY_MANIFEST 11+#define FIT_TABLE_TYPE_BOO= T_POLICY_MANIFEST 12+#define FIT_TABLE_TYPE_BIOS_DATA_AREA = 13+#define FIT_TABLE_TYPE_CSE_SECURE_BOOT 16+#define FIT_TA= BLE_SUBTYPE_FIT_PATCH_MANIFEST 12+#define FIT_TABLE_SUBTYPE_ACM_MANIF= EST 13+#define FIT_TABLE_TYPE_VAB_PROVISION_TABLE 26+#d= efine FIT_TABLE_TYPE_VAB_BOOT_IMAGE_MANIFEST 27+#define FIT_TABLE_TYPE_= VAB_BOOT_KEY_MANIFEST 28+ // // With OptionalModule Address isn't kn= own until free space has been@@ -322,8 +326,10 @@ Returns: --*/ { printf (- "%s - Tiano IA32/X64 FIT table generation Utility for= FIT spec revision 1.2."" Version %i.%i\n\n",+ "%s - Tiano IA32/X64 FIT = table generation Utility for FIT spec revision %i.%i."" Version %i.%i\n\n",= UTILITY_NAME,+ FIT_SPEC_VERSION_MAJOR,+ FIT_SPEC_VERSION_MINOR, = UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION );@@ -1956,7 +1962= ,10 @@ Returns: (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE= _KEY_MANIFEST) || (gFitTableContext.OptionalModule[Index].Type =3D= =3D FIT_TABLE_TYPE_BOOT_POLICY_MANIFEST) || (gFitTableContext.Optio= nalModule[Index].Type =3D=3D FIT_TABLE_TYPE_BIOS_DATA_AREA) ||- (gFi= tTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_SECURE_B= OOT)) {+ (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TAB= LE_TYPE_CSE_SECURE_BOOT) ||+ (gFitTableContext.OptionalModule[Index]= .Type =3D=3D FIT_TABLE_TYPE_VAB_PROVISION_TABLE) ||+ (gFitTableConte= xt.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_VAB_BOOT_IMAGE_MANIFEST= ) ||+ (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_= TYPE_VAB_BOOT_KEY_MANIFEST)) { // NOTE: It might be virtual address n= ow. Just put a place holder. FitEntryNumber ++; }@@ -2154,8 +2163= ,11 @@ Returns: (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TY= PE_KEY_MANIFEST) || (gFitTableContext.OptionalModule[Index].Type = =3D=3D FIT_TABLE_TYPE_BOOT_POLICY_MANIFEST) || (gFitTableContext.= OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_BIOS_DATA_AREA) ||- = (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_S= ECURE_BOOT)) {- // Let it 64 byte align+ (gFitTableContext.= OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_SECURE_BOOT) ||+ = (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_VAB_= PROVISION_TABLE) ||+ (gFitTableContext.OptionalModule[Index].Type = =3D=3D FIT_TABLE_TYPE_VAB_BOOT_IMAGE_MANIFEST) ||+ (gFitTableConte= xt.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_VAB_BOOT_KEY_MANIFEST))= {+ // Let it 64 byte align AlignedSize +=3D BIOS_MODULE_A= LIGNMENT; AlignedSize &=3D ~BIOS_MODULE_ALIGNMENT; }@@ -2166,= 8 +2178,11 @@ Returns: (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TY= PE_KEY_MANIFEST) || (gFitTableContext.OptionalModule[Index].Type = =3D=3D FIT_TABLE_TYPE_BOOT_POLICY_MANIFEST) || (gFitTableContext.= OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_BIOS_DATA_AREA) ||- = (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_S= ECURE_BOOT)) {- // Let it 64 byte align+ (gFitTableContext.= OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_SECURE_BOOT) ||+ = (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_VAB_= PROVISION_TABLE) ||+ (gFitTableContext.OptionalModule[Index].Type = =3D=3D FIT_TABLE_TYPE_VAB_BOOT_IMAGE_MANIFEST) ||+ (gFitTableConte= xt.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_VAB_BOOT_KEY_MANIFEST))= {+ // Let it 64 byte align OptionalModuleAddress =3D (UIN= T8 *)((UINTN)OptionalModuleAddress & ~BIOS_MODULE_ALIGNMENT); } @@ -2= 201,7 +2216,11 @@ Returns: (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE= _KEY_MANIFEST) || (gFitTableContext.OptionalModule[Index].Type =3D= =3D FIT_TABLE_TYPE_BOOT_POLICY_MANIFEST) || (gFitTableContext.Optio= nalModule[Index].Type =3D=3D FIT_TABLE_TYPE_BIOS_DATA_AREA) ||- (gFi= tTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_SECURE_B= OOT)) {+ (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TAB= LE_TYPE_CSE_SECURE_BOOT) ||+ (gFitTableContext.OptionalModule[Index]= .Type =3D=3D FIT_TABLE_TYPE_VAB_PROVISION_TABLE) ||+ (gFitTableConte= xt.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_VAB_BOOT_IMAGE_MANIFEST= ) ||+ (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_= TYPE_VAB_BOOT_KEY_MANIFEST)) {+ CheckOverlap (gFitTableContext.Option= alModule[Index].Address, AlignedSize); } }diff --git a/Silicon/Intel/= Tools/FitGen/FitGen.h b/Silicon/Intel/Tools/FitGen/FitGen.h index 80a1423ceb..511ab652ab 100644 --- a/Silicon/Intel/Tools/FitGen/FitGen.h +++ b/Silicon/Intel/Tools/FitGen/FitGen.h @@ -31,9 +31,12 @@ SPDX-License-Identifier: BSD-2-Clause-Patent // Utility version information // #define UTILITY_MAJOR_VERSION 0-#define U= TILITY_MINOR_VERSION 66+#define UTILITY_MINOR_VERSION 67 #define UTILITY_DA= TE __DATE__ +#define FIT_SPEC_VERSION_MAJOR 1+#define FIT_SPEC_VER= SION_MINOR 4+ // // The minimum number of arguments accepted from the comma= nd line. //--=20 2.26.2.windows.1 =20 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#95624): https://edk2.groups.io/g/devel/message/95624 Mute This Topic: https://groups.io/mt/94595307/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- ------=_NextPart_000_0144_01D8E9E2.65F5FC10 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

Pavamana:

=C2=A0The change should be merged aft= er new FIT spec is published, because FitGen tool follows the public FIT sp= ec.

 

Thanks=

Liming

=E5=8F= =91=E4=BB=B6=E4=BA=BA: Hv, Pavamana <pavamana.hv@i= ntel.com>
= =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4:<= span lang=3DEN-US style=3D'font-family:=E7=AD=89=E7=BA=BF'> 2022=E5=B9=B410=E6=9C=8826=E6=97=A5 23:1= 3
=E6=94=B6=E4=BB=B6=E4=BA=BA: Holland, Michael <michael.holland@intel.com>; Gao, = Liming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io; Chaganty, Ra= ngasai V <rangasai.v.chaganty@intel.com>; Lohr, Paul A <paul.a.loh= r@intel.com>; Feng, Bob C <bob.c.feng@intel.com>
=E4= =B8=BB=E9=A2=98: RE: [edk2= -devel] [PATCH v2] edk2Platforms-Silicon:Add VAB FIT record types support i= n FitGen.c

 

Thanks for the review, Liming= .

@Feng, Bob C,

<= p class=3DMsoNormal>What is the next step to merge the change?

Let me= know if anything is needed from me.

Thanks for your= help again.

Regards,

Pavama= na

 

=  

From: Holland, Michael <michael.holland@intel.com>
Sent: Tuesday= , October 25, 2022 8:36 PM
To: Gao, Liming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io; Hv, Pavamana <pavamana.hv@intel.com>; Chaganty, = Rangasai V <rangasai.v.= chaganty@intel.com>; Lohr, Paul A <paul.a.lohr@intel.com>
Cc: Feng, Bob C <bob.c.feng@intel.com>
Subj= ect: RE: [edk2-devel] [PATCH v2] edk2Platforms-Silicon:Add VAB FIT reco= rd types support in FitGen.c

 

Hi Liming,

 

The spec is in process of bei= ng published.

 

@Chaganty, Rangasai V @Lohr, Paul A

 

Any update on FIT spec being= published?

 

Thanks,

Michael

 

From:<= /b> gaoliming <gaoliming@byosoft.com.cn>
Sent: Tuesday, October 25= , 2022 09:18 PM
To: devel= @edk2.groups.io; Hv, Pavamana <pavamana.hv@intel.com>
Cc: Feng, Bob C <bob.c.feng@intel.com>; Holland, Michael= <michael.holland@intel.com= >
Subject:
=E5=9B=9E=E5=A4=8D: [edk2-devel] [PATCH v= 2] edk2Platforms-Silicon:Add VAB FIT record types support in FitGen.c<= /o:p>

&n= bsp;

Pavamana:

 The co= de change looks good. Now,  is FIT spec 1.4 public to be downloaded?

 

Thanks

Limi= ng

=E5=8F=91=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io= <devel@edk2.groups.io&g= t; =E4=BB=A3=E8=A1= =A8 = Hv, Pavamana
= =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4:<= span lang=3DEN-US style=3D'font-family:=E7=AD=89=E7=BA=BF'> 2022=E5=B9=B410=E6=9C=8826=E6=97=A5 5:50=
=E6=94=B6=E4=BB=B6=E4=BA=BA: devel@edk2.groups.= io; Gao, Liming <gaolimi= ng@byosoft.com.cn>
=E6=8A=84=E9=80=81: Feng, Bob C <bob.c.feng@intel.com>; Holland, Michael <michael.holland@intel.com>
=E4=B8=BB=E9=A2=98:= Re: [edk2-devel] [PATCH v2] edk2Platforms-Silicon:Add VAB FIT record types= support in FitGen.c
=E9=87=8D=E8=A6=81=E6=80=A7: =E9=AB=98

 

Hi L= iming,

Any upd= ate on this? Please treat this with urgency as we have a release coming up = and needs this change.

 

-Pavamana

 

From: Hv, Pavamana
Sent: = Monday, October 24, 2022 10:05 AM
To: devel@edk2.groups.io; Gao, Liming <gaoliming@byosoft.com.cn>
Subject:= RE: [PATCH v2] edk2Platforms-Silicon:Add VAB FIT record types support in F= itGen.c

 

@Gao, Liming,

Can you please review the patch and let me know if t= his can be merged?

Thanks in advance for your help.

Regards,

Pavamana

 

-----Original Message-----
From: Hv, Pavamana <= ;pavamana.hv@intel.com> Sent: Wednesday, October 19, 2022 8:57 PM
To: devel@edk2.groups.io
Cc: Hv, Pavamana <pavamana.hv@intel.com>
Subject: [PA= TCH v2] edk2Platforms-Silicon:Add VAB FIT record types support in FitGen.c<= o:p>

 =

REF: https://bugzilla.tianocore.org/show_bug.= cgi?id=3D4086

 

This commit adds support for new FIT record type for Vendor Autho= rized Boot (VAB) security technology(FIT spec revision 1.4).

VAB defines 3 new followi= ng types

Ve= ndor Authorized Boot Provisioning Table (Type 0x1A) Vendor Authorized Boot = Image Manifest (Type 0x1B) Vendor Authorized Boot Key Manifest (Type 0x1C) = The code has been updated to align these binaries on 64 byte boundary and n= ot to overlap with other regions, similar to Key manifest, Boot Policy mani= fest and other optional types.

 

Also added macros to define FIT spec Major and Minor versio= n numbers and print the same instead of hardcoded string.=

 

=

Signed-off-by: Pavamana Holavana= halli <pavamana.hv@intel.com>

---

Silicon/Intel/Tools/FitGen= /FitGen.c | 61 +++++++++++++++++++----------  Silicon/Intel/Tools/FitG= en/FitGen.h |  5 ++-

2 files changed, 44 insertions(+), 22 deletions(-)

 

diff --git a/Silicon/Int= el/Tools/FitGen/FitGen.c b/Silicon/Intel/Tools/FitGen/FitGen.c

index 21dfcf1ebb..87123= f9922 100644

--- a/Silicon/Intel/Tools/FitGen/FitGen.c

+++ b/Silicon/Intel/Tools/FitGen/FitGen.= c

@@ -234,2= 0 +234,24 @@ typedef struct {

= #define FLASH_TO_MEMORY(Address, FvBuffer, FvSize) = \            &= nbsp;     (VOID *)(UINTN)((UINTN)(FvBuffer) + (UINTN)(F= vSize) - (TOP_FLASH_ADDRESS - (UINTN)(Address))) -#define FIT_TABLE_TYPE_HE= ADER            = ;     0-#define FIT_TABLE_TYPE_MICROCODE  &nb= sp;           1-#define F= IT_TABLE_TYPE_STARTUP_ACM        &n= bsp;   2-#define FIT_TABLE_TYPE_DIAGNST_ACM   &nbs= p;        3-#define FIT_TABLE_TYPE_BIOS_= MODULE            7-= #define FIT_TABLE_TYPE_TPM_POLICY        = ;     8-#define FIT_TABLE_TYPE_BIOS_POLICY &n= bsp;          9-#define FIT_TA= BLE_TYPE_TXT_POLICY         &n= bsp;   10-#define FIT_TABLE_TYPE_KEY_MANIFEST   &n= bsp;       11-#define FIT_TABLE_TYPE_BOOT_POL= ICY_MANIFEST   12-#define FIT_TABLE_TYPE_BIOS_DATA_AREA &nbs= p;       13-#define FIT_TABLE_TYPE_CSE_SECURE= _BOOT        16-#define FIT_TABLE_SUBTYP= E_FIT_PATCH_MANIFEST  12-#define FIT_TABLE_SUBTYPE_ACM_MANIFEST &= nbsp;      13+#define FIT_TABLE_TYPE_HEADER &= nbsp;           &nbs= p;        0+#define FIT_TABLE_TYPE_MICRO= CODE            = ;       1+#define FIT_TABLE_TYPE_STARTUP_ACM&= nbsp;           &nbs= p;    2+#define FIT_TABLE_TYPE_DIAGNST_ACM   =             &nb= sp; 3+#define FIT_TABLE_TYPE_BIOS_MODULE      = ;           7+#define FIT= _TABLE_TYPE_TPM_POLICY         = ;         8+#define FIT_TABLE_TYPE_= BIOS_POLICY           &nb= sp;     9+#define FIT_TABLE_TYPE_TXT_POLICY &= nbsp;           &nbs= p;    10+#define FIT_TABLE_TYPE_KEY_MANIFEST  &nbs= p;             = 11+#define FIT_TABLE_TYPE_BOOT_POLICY_MANIFEST     = ;   12+#define FIT_TABLE_TYPE_BIOS_DATA_AREA   &nb= sp;          13+#define FIT_TA= BLE_TYPE_CSE_SECURE_BOOT        &nb= sp;    16+#define FIT_TABLE_SUBTYPE_FIT_PATCH_MANIFEST =       12+#define FIT_TABLE_SUBTYPE_ACM_MANIFEST&nb= sp;            13+#d= efine FIT_TABLE_TYPE_VAB_PROVISION_TABLE      = ;   26+#define FIT_TABLE_TYPE_VAB_BOOT_IMAGE_MANIFEST  =    27+#define FIT_TABLE_TYPE_VAB_BOOT_KEY_MANIFEST  &nb= sp;    28+  // // With OptionalModule Address isn't kno= wn until free space has been@@ -322,8 +326,10 @@ Returns:=

--*/ {   printf (-=     "%s - Tiano IA32/X64 FIT table generation Utility f= or FIT spec revision 1.2."" Version %i.%i\n\n",+  =   "%s - Tiano IA32/X64 FIT table generation Utility for FIT spec = revision %i.%i."" Version %i.%i\n\n",    = ; UTILITY_NAME,+    FIT_SPEC_VERSION_MAJOR,+  &nbs= p; FIT_SPEC_VERSION_MINOR,     UTILITY_MAJOR_VERSION,&n= bsp;    UTILITY_MINOR_VERSION     );@@ -= 1956,7 +1962,10 @@ Returns:

         (gFitTabl= eContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_KEY_MANIFEST) ||&= nbsp;        (gFitTableContext.OptionalM= odule[Index].Type =3D=3D FIT_TABLE_TYPE_BOOT_POLICY_MANIFEST) ||  = ;       (gFitTableContext.OptionalModule[Inde= x].Type =3D=3D FIT_TABLE_TYPE_BIOS_DATA_AREA) ||-    &n= bsp;   (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TA= BLE_TYPE_CSE_SECURE_BOOT)) {+        (gF= itTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_SECURE_= BOOT) ||+        (gFitTableContext.Optio= nalModule[Index].Type =3D=3D FIT_TABLE_TYPE_VAB_PROVISION_TABLE) ||+ &= nbsp;      (gFitTableContext.OptionalModule[Index]= .Type =3D=3D FIT_TABLE_TYPE_VAB_BOOT_IMAGE_MANIFEST) ||+   &= nbsp;    (gFitTableContext.OptionalModule[Index].Type =3D=3D= FIT_TABLE_TYPE_VAB_BOOT_KEY_MANIFEST)) {      &nb= sp;// NOTE: It might be virtual address now. Just put a place holder. =       FitEntryNumber ++;     }= @@ -2154,8 +2163,11 @@ Returns:

         =   (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_K= EY_MANIFEST) ||          = (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_BOOT_PO= LICY_MANIFEST) ||         &nbs= p; (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_BIOS_= DATA_AREA) ||-          (gFitT= ableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_SECURE_BOO= T)) {-        // Let it 64 byte align+&n= bsp;         (gFitTableContext.Opti= onalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_SECURE_BOOT) ||+ &nbs= p;        (gFitTableContext.OptionalModu= le[Index].Type =3D=3D FIT_TABLE_TYPE_VAB_PROVISION_TABLE) ||+  &n= bsp;       (gFitTableContext.OptionalModule[I= ndex].Type =3D=3D FIT_TABLE_TYPE_VAB_BOOT_IMAGE_MANIFEST) ||+  &n= bsp;       (gFitTableContext.OptionalModule[I= ndex].Type =3D=3D FIT_TABLE_TYPE_VAB_BOOT_KEY_MANIFEST)) {+  &nbs= p;       // Let it 64 byte align  &= nbsp;      AlignedSize +=3D BIOS_MODULE_ALIGNMENT;=          AlignedSize &=3D ~BIOS= _MODULE_ALIGNMENT;       }@@ -2166,8 +2178,11= @@ Returns:

           (gFitTableCo= ntext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_KEY_MANIFEST) ||&nbs= p;          (gFitTableContext.= OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_BOOT_POLICY_MANIFEST) ||&n= bsp;          (gFitTableContex= t.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_BIOS_DATA_AREA) ||- = ;         (gFitTableContext.Optiona= lModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_SECURE_BOOT)) {-  &= nbsp;     // Let it 64 byte align+   &nb= sp;      (gFitTableContext.OptionalModule[Index].T= ype =3D=3D FIT_TABLE_TYPE_CSE_SECURE_BOOT) ||+     = ;     (gFitTableContext.OptionalModule[Index].Type =3D= =3D FIT_TABLE_TYPE_VAB_PROVISION_TABLE) ||+     &n= bsp;    (gFitTableContext.OptionalModule[Index].Type =3D=3D = FIT_TABLE_TYPE_VAB_BOOT_IMAGE_MANIFEST) ||+     &n= bsp;    (gFitTableContext.OptionalModule[Index].Type =3D=3D = FIT_TABLE_TYPE_VAB_BOOT_KEY_MANIFEST)) {+     &nbs= p;    // Let it 64 byte align     &= nbsp;   OptionalModuleAddress =3D (UINT8 *)((UINTN)OptionalModule= Address & ~BIOS_MODULE_ALIGNMENT);       = } @@ -2201,7 +2216,11 @@ Returns:

         (gF= itTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_KEY_MANIFES= T) ||         (gFitTableContext.Opt= ionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_BOOT_POLICY_MANIFEST) || = ;        (gFitTableContext.OptionalModul= e[Index].Type =3D=3D FIT_TABLE_TYPE_BIOS_DATA_AREA) ||-   &n= bsp;    (gFitTableContext.OptionalModule[Index].Type =3D=3D = FIT_TABLE_TYPE_CSE_SECURE_BOOT)) {+      &nbs= p; (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_S= ECURE_BOOT) ||+        (gFitTableContext= .OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_VAB_PROVISION_TABLE) ||+&= nbsp;       (gFitTableContext.OptionalModule[= Index].Type =3D=3D FIT_TABLE_TYPE_VAB_BOOT_IMAGE_MANIFEST) ||+  &= nbsp;     (gFitTableContext.OptionalModule[Index].Type = =3D=3D FIT_TABLE_TYPE_VAB_BOOT_KEY_MANIFEST)) {+     &n= bsp; CheckOverlap (gFitTableContext.OptionalModule[Index].Address, Ali= gnedSize);     }   }diff --git a/Silicon/Inte= l/Tools/FitGen/FitGen.h b/Silicon/Intel/Tools/FitGen/FitGen.h

index 80a1423ceb..511ab6= 52ab 100644

--- a/Silicon/Intel/Tools/FitGen/FitGen.h

+++ b/Silicon/Intel/Tools/FitGen/FitGen.h

@@ -31,9 +31= ,12 @@ SPDX-License-Identifier: BSD-2-Clause-Patent

// Utility version information // = #define UTILITY_MAJOR_VERSION 0-#define UTILITY_MINOR_VERSION 66+#define UT= ILITY_MINOR_VERSION 67 #define UTILITY_DATE     &n= bsp;    __DATE__ +#define FIT_SPEC_VERSION_MAJOR 1+#define F= IT_SPEC_VERSION_MINOR 4+ // // The minimum number of arguments accepted fro= m the command line. //--

2.26.2.windows.1

 

=

_._,_._,_

G= roups.io Links:

You receive all messages sent to this group.

Vi= ew/Reply Online (#95624) | | Mute This Topic | New Topic
Your Subscription | Contact Group Owner | Unsubscribe [importer@patchew.org]
_._,_._,_=20 ------=_NextPart_000_0144_01D8E9E2.65F5FC10--