From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from walk.intel-email.com (walk.intel-email.com [101.227.64.242]) by mx.groups.io with SMTP id smtpd.web11.2822.1666750704349248985 for ; Tue, 25 Oct 2022 19:18:25 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@byosoft.com.cn header.s=cloud-union header.b=Sy/DjP/M; spf=pass (domain: byosoft.com.cn, ip: 101.227.64.242, mailfrom: gaoliming@byosoft.com.cn) Received: from walk.intel-email.com (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id 8C629CD1F7AB for ; Wed, 26 Oct 2022 10:18:21 +0800 (CST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=byosoft.com.cn; s=cloud-union; t=1666750701; bh=zt1X7YGP5c+WZkeoE5vL5sfKpkTavCLnOSa7IpxnxqQ=; h=From:To:Cc:References:In-Reply-To:Subject:Date; b=Sy/DjP/MpGYguXhvxAhlWt+Wd7ajmTMjSNJiiX5SKpWDkQFMkxL076o6aLPlIubbV Qo4bjyEwt8TsRdFS+9HGfi8YClmZYAK/eoVF5pDoLtFO9b7ppPJd6RsQUXKarWJDad Yx56ktJBDHbShHU4Ww93gBqj9yOfQFxfGdd+x29k= Received: from localhost (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id 8819ECD1F791 for ; Wed, 26 Oct 2022 10:18:21 +0800 (CST) Received: from walk.intel-email.com (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id 47849CD1F731 for ; Wed, 26 Oct 2022 10:18:21 +0800 (CST) Authentication-Results: walk.intel-email.com; none Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by walk.intel-email.com (Postfix) with SMTP id E130CCD1F700 for ; Wed, 26 Oct 2022 10:18:18 +0800 (CST) Received: from DESKTOPS6D0PVI ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Wed, 26 Oct 2022 10:18:16 +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" To: , Cc: "'Feng, Bob C'" , "'Holland, Michael'" References: <3bbfe7d39637575ca8942493c7d70df111400f1c.1666228699.git.pavamana.hv@intel.com> In-Reply-To: Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyXSBlZGsyUGxhdGZvcm1zLVNpbGljb246QWRkIFZBQiBGSVQgcmVjb3JkIHR5cGVzIHN1cHBvcnQgaW4gRml0R2VuLmM=?= Date: Wed, 26 Oct 2022 10:18:17 +0800 Message-ID: <000801d8e8e1$362a0a00$a27e1e00$@byosoft.com.cn> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQLIs8HHg62XSSE2pwpWE7b08vVFqQIcg1TgAl4x3aasHITFkA== Sender: "gaoliming" Content-Type: multipart/alternative; boundary="----=_NextPart_000_0009_01D8E924.444F1EC0" Content-Language: zh-cn ------=_NextPart_000_0009_01D8E924.444F1EC0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: quoted-printable Pavamana: The code change looks good. Now, is FIT spec 1.4 public to be downloaded? =20 Thanks Liming =B7=A2=BC=FE=C8=CB: devel@edk2.groups.io =B4=FA=B1= =ED Hv, Pavamana =B7=A2=CB=CD=CA=B1=BC=E4: 2022=C4=EA10=D4=C226=C8=D5 5:50 =CA=D5=BC=FE=C8=CB: devel@edk2.groups.io; Gao, Liming =B3=AD=CB=CD: Feng, Bob C ; Holland, Michael =D6=F7=CC=E2: Re: [edk2-devel] [PATCH v2] edk2Platforms-Silicon:Add VAB FIT= record types support in FitGen.c =D6=D8=D2=AA=D0=D4: =B8=DF =20 Hi Liming, Any update on this? Please treat this with urgency as we have a release coming 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 support 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://bugzilla.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 manifest and other optional types. =20 Also added macros to define FIT spec Major and Minor version numbers and print the same instead of hardcoded string. =20 Signed-off-by: Pavamana Holavanahalli < pavamana.hv@intel.com> --- Silicon/Intel/Tools/FitGen/FitGen.c | 61 +++++++++++++++++++---------- Silicon/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/FitGen/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 - (UINTN)(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_MANIFES= T 11-#define FIT_TABLE_TYPE_BOOT_POLICY_MANIFEST 12-#define FIT_TABLE_TYPE_BIOS_DATA_AREA 13-#define FIT_TABLE_TYPE_CSE_SECURE_BOOT 16-#define FIT_TABLE_SUBTYPE_FIT_PATCH_MANIFEST 12-#define FIT_TABLE_SUBTYPE_ACM_MANIFEST 13+#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_BIOS_DATA_AREA 13+#define FIT_TABLE_TYPE_CSE_SECURE_BOOT 16+#define FIT_TABLE_SUBTYPE_FIT_PATCH_MANIFEST 12+#define FIT_TABLE_SUBTYPE_ACM_MANIFEST 13+#define FIT_TABLE_TYPE_VAB_PROVISION_TABLE 26+#define FIT_TABLE_TYPE_VAB_BOOT_IMAGE_MANIFEST 27+#define FIT_TABLE_TYPE_VAB_BOOT_KEY_MANIFEST 28+ // // With OptionalModule Address isn't known 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.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_BIOS_DATA_AREA) ||- (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_SECURE_BOOT)) {+ (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) ||+ (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_VAB_BOOT_KEY_MANIFEST)) { // 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_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_SECURE_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) ||+ (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_VAB_BOOT_KEY_MANIFEST)) {+ // Let it 64 byte align AlignedSize +=3D BIOS_MODULE_ALIGNMENT; AlignedSize &=3D ~BIOS_MODULE_ALIGNMENT; }@@ -2166,8 +2178,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.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_BIOS_DATA_AREA) ||- (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_SECURE_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) ||+ (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_VAB_BOOT_KEY_MANIFEST)) {+ // Let it 64 byte align OptionalModuleAddress =3D (UINT8 *)((UINTN)OptionalModuleAddress & ~BIOS_MODULE_ALIGNMENT); } @@ -2201,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.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_BIOS_DATA_AREA) ||- (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_SECURE_BOOT)) {+ (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) ||+ (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_VAB_BOOT_KEY_MANIFEST)) {+ CheckOverlap (gFitTableContext.OptionalModule[Index].Address, AlignedSize); } }dif= f --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 UTILITY_MINOR_VERSION 66+#define UTILITY_MINOR_VERSION 67 #define UTILITY_DATE __DATE__ +#define FIT_SPEC_VERSION_MAJOR 1+#define FIT_SPEC_VERSION_MINOR 4+ // // The minimum number of arguments accepted from the command line. //--=20 2.26.2.windows.1 =20 ------=_NextPart_000_0009_01D8E924.444F1EC0 Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable

Pavamana:

 The code change looks go= od. Now,  is FIT spec 1.4 public to be downloaded?

 

Thanks<= /span>

Liming

=B7=A2=BC=FE=C8=CB: devel@edk2.groups.io <devel@edk2.groups.io> =B4=FA=B1=ED Hv, Pavamana
=B7=A2=CB=CD=CA=B1=BC=E4: 2022=C4=EA10=D4=C226=C8=D5 5:50
=CA=D5= =BC=FE=C8=CB: devel@edk2.g= roups.io; Gao, Liming <gaoliming@byosoft.com.cn>
=B3=AD= =CB=CD: Feng, Bob C <bo= b.c.feng@intel.com>; Holland, Michael <michael.holland@intel.com><= br>=D6=F7=CC=E2:= Re: [edk2-devel] [PATCH v2] edk2Platforms-Silicon:Add VAB FIT record types= support in FitGen.c
=D6=D8=D2=AA=D0=D4: =B8=DF

&nbs= p;

Hi Liming,<= /o:p>

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

 

-Pavamana<= o:p>

 

From= : Hv, Pavamana
Sent: Monday, Octob= er 24, 2022 10:05 AM
To: = devel@edk2.groups.io; Gao, Liming <gaoliming@byosoft.com.cn>
Subject: RE: [PATCH v= 2] edk2Platforms-Silicon:Add VAB FIT record types support in FitGen.c<= /o:p>

&n= bsp;

@Gao= , Liming,

Can you please review the patch and let me know if this can be me= rged?

Thank= s in advance for your help.

Regards,

Pavamana

 

-----Original Message-----
From: Hv, Pavamana <pavamana.hv@intel.com>
Sent: Wednesd= ay, October 19, 2022 8:57 PM
To: devel@edk2.groups.io
Cc: Hv, Pavamana <pavamana.hv@intel.com>
Subject: [PATCH v2] edk2Pl= atforms-Silicon:Add VAB FIT record types support in FitGen.c

 <= /p>

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

=  

This= commit adds support for new FIT record type for Vendor Authorized Boot (VA= B) security technology(FIT spec revision 1.4).

VAB defines 3 new following types<= /o:p>

Vendor Authorize= d Boot Provisioning Table (Type 0x1A) Vendor Authorized Boot Image Manifest= (Type 0x1B) Vendor Authorized Boot Key Manifest (Type 0x1C) The code has b= een updated to align these binaries on 64 byte boundary and not to overlap = with other regions, similar to Key manifest, Boot Policy manifest and other= optional types.

 

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

 

Signed-off-by: Pavamana Holavanahalli <pavamana.hv@intel.com>

---

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

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

=

 

diff --git a/Silicon/Intel/Tools/Fit= Gen/FitGen.c b/Silicon/Intel/Tools/FitGen/FitGen.c

index 21dfcf1ebb..87123f9922 100644=

--- a/Sili= con/Intel/Tools/FitGen/FitGen.c

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

@@ -234,20 +234,24 @@ t= ypedef struct {

#define FLASH_TO_MEMORY(Address, FvBuffer, FvSize)  \  =             &nb= sp;   (VOID *)(UINTN)((UINTN)(FvBuffer) + (UINTN)(FvSize) - (TOP_= FLASH_ADDRESS - (UINTN)(Address))) -#define FIT_TABLE_TYPE_HEADER &nbs= p;            &= nbsp;  0-#define FIT_TABLE_TYPE_MICROCODE     = ;         1-#define FIT_TABLE_TYPE_= STARTUP_ACM          &nbs= p; 2-#define FIT_TABLE_TYPE_DIAGNST_ACM      =       3-#define FIT_TABLE_TYPE_BIOS_MODULE &n= bsp;          7-#define FIT_TA= BLE_TYPE_TPM_POLICY          &= nbsp;  8-#define FIT_TABLE_TYPE_BIOS_POLICY   &nbs= p;        9-#define FIT_TABLE_TYPE_TXT_P= OLICY           &nbs= p; 10-#define FIT_TABLE_TYPE_KEY_MANIFEST     &nbs= p;     11-#define FIT_TABLE_TYPE_BOOT_POLICY_MANIFEST&n= bsp;  12-#define FIT_TABLE_TYPE_BIOS_DATA_AREA    =      13-#define FIT_TABLE_TYPE_CSE_SECURE_BOOT &nb= sp;      16-#define FIT_TABLE_SUBTYPE_FIT_PATCH_MA= NIFEST  12-#define FIT_TABLE_SUBTYPE_ACM_MANIFEST   &nb= sp;    13+#define FIT_TABLE_TYPE_HEADER   &nb= sp;            =       0+#define FIT_TABLE_TYPE_MICROCODE &nbs= p;            &= nbsp;    1+#define FIT_TABLE_TYPE_STARTUP_ACM  &nb= sp;            =   2+#define FIT_TABLE_TYPE_DIAGNST_ACM     &n= bsp;           3+#define = FIT_TABLE_TYPE_BIOS_MODULE        &= nbsp;        7+#define FIT_TABLE_TYPE_TP= M_POLICY           &= nbsp;      8+#define FIT_TABLE_TYPE_BIOS_POLICY&nb= sp;             = ;   9+#define FIT_TABLE_TYPE_TXT_POLICY   &nb= sp;            =   10+#define FIT_TABLE_TYPE_KEY_MANIFEST     =            11+#define FIT= _TABLE_TYPE_BOOT_POLICY_MANIFEST        = 12+#define FIT_TABLE_TYPE_BIOS_DATA_AREA      = ;        13+#define FIT_TABLE_TYPE_CSE_S= ECURE_BOOT           = ;  16+#define FIT_TABLE_SUBTYPE_FIT_PATCH_MANIFEST   &n= bsp;   12+#define FIT_TABLE_SUBTYPE_ACM_MANIFEST   = ;          13+#define FIT_TABL= E_TYPE_VAB_PROVISION_TABLE         = 26+#define FIT_TABLE_TYPE_VAB_BOOT_IMAGE_MANIFEST     2= 7+#define FIT_TABLE_TYPE_VAB_BOOT_KEY_MANIFEST     = ;  28+  // // With OptionalModule Address isn't known 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_NA= ME,+    FIT_SPEC_VERSION_MAJOR,+    FIT_SPEC_= VERSION_MINOR,     UTILITY_MAJOR_VERSION,  &n= bsp;  UTILITY_MINOR_VERSION     );@@ -1956,7 +1962= ,10 @@ Returns:

         (gFitTableContext.Opt= ionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_KEY_MANIFEST) ||  &= nbsp;      (gFitTableContext.OptionalModule[Index]= .Type =3D=3D FIT_TABLE_TYPE_BOOT_POLICY_MANIFEST) ||    = ;     (gFitTableContext.OptionalModule[Index].Type =3D= =3D FIT_TABLE_TYPE_BIOS_DATA_AREA) ||-      &= nbsp; (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CS= E_SECURE_BOOT)) {+        (gFitTableCont= ext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_SECURE_BOOT) ||+&n= bsp;       (gFitTableContext.OptionalModule[I= ndex].Type =3D=3D FIT_TABLE_TYPE_VAB_PROVISION_TABLE) ||+   =      (gFitTableContext.OptionalModule[Index].Type =3D= =3D FIT_TABLE_TYPE_VAB_BOOT_IMAGE_MANIFEST) ||+    &nbs= p;   (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABL= E_TYPE_VAB_BOOT_KEY_MANIFEST)) {       // NOT= E: It might be virtual address now. Just put a place holder.  &nb= sp;    FitEntryNumber ++;     }@@ -2154,= 8 +2163,11 @@ Returns:

           (g= FitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_KEY_MANIFE= ST) ||           (gFitTab= leContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_BOOT_POLICY_MANI= FEST) ||           (gFitT= ableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_BIOS_DATA_AREA= ) ||-          (gFitTableConte= xt.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_SECURE_BOOT)) {-&nb= sp;       // Let it 64 byte align+  = ;        (gFitTableContext.OptionalModul= e[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_SECURE_BOOT) ||+   &= nbsp;      (gFitTableContext.OptionalModule[Index]= .Type =3D=3D FIT_TABLE_TYPE_VAB_PROVISION_TABLE) ||+    = ;      (gFitTableContext.OptionalModule[Index].Typ= e =3D=3D FIT_TABLE_TYPE_VAB_BOOT_IMAGE_MANIFEST) ||+    = ;      (gFitTableContext.OptionalModule[Index].Typ= e =3D=3D FIT_TABLE_TYPE_VAB_BOOT_KEY_MANIFEST)) {+    &= nbsp;     // Let it 64 byte align   &nbs= p;     AlignedSize +=3D BIOS_MODULE_ALIGNMENT; &nb= sp;       AlignedSize &=3D ~BIOS_MODULE_A= LIGNMENT;       }@@ -2166,8 +2178,11 @@ Retur= ns:

 &= nbsp;         (gFitTableContext.Opt= ionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_KEY_MANIFEST) ||  &= nbsp;        (gFitTableContext.OptionalM= odule[Index].Type =3D=3D FIT_TABLE_TYPE_BOOT_POLICY_MANIFEST) ||  = ;         (gFitTableContext.Optiona= lModule[Index].Type =3D=3D FIT_TABLE_TYPE_BIOS_DATA_AREA) ||-  &n= bsp;       (gFitTableContext.OptionalModule[I= ndex].Type =3D=3D FIT_TABLE_TYPE_CSE_SECURE_BOOT)) {-   &nbs= p;    // 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) ||+      &nbs= p;   (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABL= E_TYPE_VAB_BOOT_IMAGE_MANIFEST) ||+      &nbs= p;   (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABL= E_TYPE_VAB_BOOT_KEY_MANIFEST)) {+       =    // Let it 64 byte align      &nb= sp;  OptionalModuleAddress =3D (UINT8 *)((UINTN)OptionalModuleAddress = & ~BIOS_MODULE_ALIGNMENT);       } @@ -22= 01,7 +2216,11 @@ Returns:

         (gFitTableC= ontext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_KEY_MANIFEST) ||&nb= sp;        (gFitTableContext.OptionalMod= ule[Index].Type =3D=3D FIT_TABLE_TYPE_BOOT_POLICY_MANIFEST) ||  &= nbsp;      (gFitTableContext.OptionalModule[Index]= .Type =3D=3D FIT_TABLE_TYPE_BIOS_DATA_AREA) ||-    &nbs= p;   (gFitTableContext.OptionalModule[Index].Type =3D=3D FIT_TABL= E_TYPE_CSE_SECURE_BOOT)) {+        (gFit= TableContext.OptionalModule[Index].Type =3D=3D FIT_TABLE_TYPE_CSE_SECURE_BO= OT) ||+        (gFitTableContext.Optiona= lModule[Index].Type =3D=3D FIT_TABLE_TYPE_VAB_PROVISION_TABLE) ||+ &nb= sp;      (gFitTableContext.OptionalModule[Index].T= ype =3D=3D FIT_TABLE_TYPE_VAB_BOOT_IMAGE_MANIFEST) ||+   &nb= sp;    (gFitTableContext.OptionalModule[Index].Type =3D=3D F= IT_TABLE_TYPE_VAB_BOOT_KEY_MANIFEST)) {+      &nbs= p;CheckOverlap (gFitTableContext.OptionalModule[Index].Address, AlignedSize= );     }   }diff --git a/Silicon/Intel/Tools/= FitGen/FitGen.h b/Silicon/Intel/Tools/FitGen/FitGen.h

=

index 80a1423ceb..511ab652ab 100= 644

--- a/S= ilicon/Intel/Tools/FitGen/FitGen.h

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

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

// Utility version information // #defin= e UTILITY_MAJOR_VERSION 0-#define UTILITY_MINOR_VERSION 66+#define UTILITY_= MINOR_VERSION 67 #define UTILITY_DATE      &n= bsp;   __DATE__ +#define FIT_SPEC_VERSION_MAJOR 1+#define FIT_SPE= C_VERSION_MINOR 4+ // // The minimum number of arguments accepted from the = command line. //--

2.26.2.windows.1

 

=

------=_NextPart_000_0009_01D8E924.444F1EC0--