From nobody Thu Apr 25 08:29:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+59654+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+59654+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1589528341; cv=none; d=zohomail.com; s=zohoarc; b=Ky2E19KmRxLcyyqFB7CxxoF2ZwNvTqssBfEOKSEY8UTU/cBDokvkBzffnjwIdgv3WrNiWaxahrjnA1PzmOcW+crtI5AzTDm7CQG+zVLp69oo0LVGM8iD76ZUKnEFzsCDr8fgNxYEfp09O32wTMCZwQNWD45CYKdtJ+dExlgvSss= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1589528341; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=86EQ3xcf5GfQ+it7AmRk2ScwF+Y5vVfqOneSRGgYTXo=; b=ZkrdlP8EGatFqo8k0vjV1KgSUxBSa45U3L2h1EesTZy//HpnINtx2dpuVpsqT5NI8QKC6IcZCcPpAZ0iDeuAykVJMk8yIxeG/HU+OkFaHe7FQZGJi4me9B4L+2bQPXVTTCKRX4Tig0SUtPizKhOuACQgjPp35XsTJtWj7UxQCSs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+59654+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1589528341175845.5168854874204; Fri, 15 May 2020 00:39:01 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id XmQ4YY1788612xRcttGbc5xw; Fri, 15 May 2020 00:39:00 -0700 X-Received: from mga07.intel.com (mga07.intel.com []) by mx.groups.io with SMTP id smtpd.web12.8912.1589528334338023248 for ; Fri, 15 May 2020 00:38:59 -0700 IronPort-SDR: XsdXppF8gkUTG3fF5X9Ujg0iPdojj/Y68gI/d3uvLcrobBZrm1ewfm43UHLN/A2xY9n3O8uGpI XRQCqaBV5PbA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2020 00:38:59 -0700 IronPort-SDR: jv2qha5L+ZCrKr4eD6VyU4CQiC8zsvo594LT8di4FTgyugyi7dFG6nizWixWh+h7EzEGm5VWwl wVzoSKE6WPxQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,394,1583222400"; d="scan'208";a="410389860" X-Received: from shwdeopenpsi174.ccr.corp.intel.com ([10.239.157.39]) by orsmga004.jf.intel.com with ESMTP; 15 May 2020 00:38:58 -0700 From: "Xu, Wei6" To: devel@edk2.groups.io Cc: Oleksiy Yakovlev Subject: [edk2-devel] [PATCH 2/2] SignedCapsulePkg: Add FMP Capsule Image Header extension Date: Fri, 15 May 2020 15:38:48 +0800 Message-Id: <20200515073848.13920-3-wei6.xu@intel.com> In-Reply-To: <20200515073848.13920-1-wei6.xu@intel.com> References: <20200515073848.13920-1-wei6.xu@intel.com> Precedence: Bulk List-Unsubscribe: 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,wei6.xu@intel.com X-Gm-Message-State: DnDKu7VCdvU0VQlItKK9rP0Lx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1589528340; bh=524MT+SOGyOx9pn8SXGjjrDjOBAJTNCh5BWY/K1Zh9g=; h=Cc:Date:From:Reply-To:Subject:To; b=b+2M2YKVZ3Crb9p4d/y0cWXx5fFWDmGoIYbGOQd+sqHcztS8ugx7HRD/MjHFtGE1dzD rWcAtFVZDVfus1UZVJggO2be/hT8vM21uvWs1Uorb3LNj5fdy5oIW+MGtIcZojf98+Plw vzqsRL/sBtZnYuOPTfC9H01Aww4ZxjNqsXw= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Oleksiy Yakovlev Add bitmask to structure which gives a binary-inspectable mechanism to determine if a capsule contains an authentication section or depex section. (UEFI 2.8 errata a, mantis 2026) Signed-off-by: Oleksiy Yakovlev Signed-off-by: Wei6 Xu Reviewed-by: Chao Zhang Reviewed-by: Liming Gao Reviewed-by: Oleksiy Yakovlev --- .../RecoveryModuleLoadPei/RecoveryModuleLoadPei.c | 17 +++++++++++++= +--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModul= eLoadPei.c b/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModul= eLoadPei.c index 53b821c2bb..af8e5cb84c 100644 --- a/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleLoadPe= i.c +++ b/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleLoadPe= i.c @@ -326,12 +326,18 @@ ValidateFmpCapsule ( if ((ImageHeader->Version > EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEAD= ER_INIT_VERSION) || (ImageHeader->Version < 1)) { DEBUG((DEBUG_ERROR, "ImageHeader->Version(0x%x) Unknown\n", ImageHea= der->Version)); return EFI_INVALID_PARAMETER; } - if (ImageHeader->Version < EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADE= R_INIT_VERSION) { + /// + /// Current Init ImageHeader version is 3. UpdateHardwareInstance fiel= d was added in version 2 + /// and ImageCapsuleSupport field was added in version 3 + /// + if (ImageHeader->Version =3D=3D 1) { FmpImageHeaderSize =3D OFFSET_OF(EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMA= GE_HEADER, UpdateHardwareInstance); + } else if (ImageHeader->Version =3D=3D 2){ + FmpImageHeaderSize =3D OFFSET_OF(EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMA= GE_HEADER, ImageCapsuleSupport); } =20 // No overflow if (FmpImageSize !=3D (UINT64)FmpImageHeaderSize + (UINT64)ImageHeader= ->UpdateImageSize + (UINT64)ImageHeader->UpdateVendorCodeSize) { DEBUG((DEBUG_ERROR, "FmpImageSize(0x%lx) mismatch, UpdateImageSize(0= x%x) UpdateVendorCodeSize(0x%x)\n", FmpImageSize, ImageHeader->UpdateImageS= ize, ImageHeader->UpdateVendorCodeSize)); @@ -637,13 +643,18 @@ ProcessFmpCapsuleImage ( if (ImageHeader->Version >=3D EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HE= ADER_INIT_VERSION) { Image =3D (UINT8 *)(ImageHeader + 1); } else { // // If the EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER is version 1,= only match ImageTypeId. - // Header should exclude UpdateHardwareInstance field + // Header should exclude UpdateHardwareInstance field. + // If version is 2 Header should exclude ImageCapsuleSupport field. // - Image =3D (UINT8 *)ImageHeader + OFFSET_OF(EFI_FIRMWARE_MANAGEMENT_C= APSULE_IMAGE_HEADER, UpdateHardwareInstance); + if (ImageHeader->Version =3D=3D 1) { + Image =3D (UINT8 *)ImageHeader + OFFSET_OF(EFI_FIRMWARE_MANAGEMENT= _CAPSULE_IMAGE_HEADER, UpdateHardwareInstance); + } else { + Image =3D (UINT8 *)ImageHeader + OFFSET_OF(EFI_FIRMWARE_MANAGEMENT= _CAPSULE_IMAGE_HEADER, ImageCapsuleSupport); + } } =20 Status =3D ProcessRecoveryImage (Image, ImageHeader->UpdateImageSize); if (EFI_ERROR(Status)) { return Status; --=20 2.16.2.windows.1 -=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 (#59654): https://edk2.groups.io/g/devel/message/59654 Mute This Topic: https://groups.io/mt/74222870/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-