From nobody Mon May 6 02:21:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+40171+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+40171+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1557291037; cv=none; d=zoho.com; s=zohoarc; b=nST4fM1vH3tk0KKtfDQw4JoxO3JcU0+wdW5a8p6kkZvQ7NWBhGNskj7v1KJKueWt6zPv2e26dZMtcke9fI14sW9uFTssNcgAuE66URzy21s0diKIzOkDCixjlj20F0QQa0nXU5jYFuQ3EEK47HFNOU5Y9Tl9Rs3TfgD5dfge13g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1557291037; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To:ARC-Authentication-Results; bh=1l44+zGHc6zgO+1U/e70WXx9UMxZtIv1vmVPNDEqonA=; b=Ovf2Cp5SKAP/E5YeUW7lVuKXG87Kp90SqPnKvyZD89Yo7VPPb7iVTeZrc1gN37KgzOIHGnBWr71er5A9QMnMR0n4wiQYgaw6zljRfgWSIDWizNDmuAjxuSMvZVTLaJMzcdPR+YSZZeyJSJ7L7XHtShnXcBKUgbqHHny0vUIRGkU= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+40171+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 1557291037140782.7486358118905; Tue, 7 May 2019 21:50:37 -0700 (PDT) Return-Path: X-Received: from mga14.intel.com (mga14.intel.com []) by groups.io with SMTP; Tue, 07 May 2019 21:50:36 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 May 2019 21:50:35 -0700 X-ExtLoop1: 1 X-Received: from fieedk001.ccr.corp.intel.com ([10.239.33.119]) by orsmga002.jf.intel.com with ESMTP; 07 May 2019 21:50:33 -0700 From: "Gao, Zhichao" To: devel@edk2.groups.io Cc: Jian J Wang , Hao Wu , Ray Ni , Star Zeng , Liming Gao , Sean Brogan , Michael Turner , Bret Barkelew , Laszlo Ersek Subject: [edk2-devel] [PATCH V2 1/6] MdeModulePkg/ResetSystemLib.h: Add useful reset data definition Date: Wed, 8 May 2019 12:49:34 +0800 Message-Id: <20190508044939.15744-2-zhichao.gao@intel.com> In-Reply-To: <20190508044939.15744-1-zhichao.gao@intel.com> References: <20190508044939.15744-1-zhichao.gao@intel.com> MIME-Version: 1.0 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,zhichao.gao@intel.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1557291036; bh=rx8af6Dp0YDlTsMrrLPUPRFNLTt6aUBIU0O6nNrmw8g=; h=Cc:Date:From:Reply-To:Subject:To; b=O2GLZusmPXrDQB1kYMmDOoa9exrEAC+TCZNIWG4cF3mNbOP6qq/B839B9Rq6l0T/7aI bnA2Ps9DV5zh0i0orLKcyoN+D4F3OpgXTCD4hDYQijo4LtUG6gZY83kNB7bkKqbbMDxy8 UZceKUv8ga7e1DOHiEliOg1uE4rneiqRrMI= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1772 Add a useful definition of reset data which start with a NULL string and followed by a EFI_GUID. Cc: Jian J Wang Cc: Hao Wu Cc: Ray Ni Cc: Star Zeng Cc: Liming Gao Cc: Sean Brogan Cc: Michael Turner Cc: Bret Barkelew Cc: Laszlo Ersek Signed-off-by: Zhichao Gao Reviewed-by: Laszlo Ersek --- MdeModulePkg/Include/Library/ResetSystemLib.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/MdeModulePkg/Include/Library/ResetSystemLib.h b/MdeModulePkg/I= nclude/Library/ResetSystemLib.h index 3b2a098a60..e39e8c748c 100644 --- a/MdeModulePkg/Include/Library/ResetSystemLib.h +++ b/MdeModulePkg/Include/Library/ResetSystemLib.h @@ -13,6 +13,15 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #include #include =20 +#pragma pack(1) +typedef struct { + CHAR16 NullString; + EFI_GUID ResetGuid; +} RESET_DATA_WITH_NULL_STRING; +#pragma pack() + +VERIFY_SIZE_OF (RESET_DATA_WITH_NULL_STRING, 18); + /** This function causes a system-wide reset (cold reset), in which all circuitry within the system returns to its initial state. This type = of reset --=20 2.21.0.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 (#40171): https://edk2.groups.io/g/devel/message/40171 Mute This Topic: https://groups.io/mt/31540322/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- From nobody Mon May 6 02:21:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+40172+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+40172+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1557291038; cv=none; d=zoho.com; s=zohoarc; b=HXk7BAFovVnEUtdi/g3mxVLSTEsy089C/gys/YPvy8LqpoQwScPEnACy5VTUfflHGwz5pjsGVLOf/2bZurHeV1/cpYGtGiZPFEq1PnF1Q0CEFFZ2vnfZrWCwwmmvbiWlHlDCm3aLB3PMJzIlif2uaNA10SPbA0xOfYkfUdcitD8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1557291038; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To:ARC-Authentication-Results; bh=Xl++eP5FEk58VqCDJF2GsHpWF6RB5JQ25oExOlGz/CI=; b=KCoRz9z/OUqo52Y/0+XKTNm8yWk4+PYcQfrUvPcbZYaPs/FfYKn/UgyD2sNWSi5Y/3tJbhdk3/PbqWCtMp0J7TpKayBp9Pvhck8eVfdyMwj164jRDsyaDvV+Z3zsdMPd4Y0KxNekmJMO3qbK2Y3bedtCQa+d5k4tl6aY9GYR8Qw= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+40172+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 1557291038830703.7207883107997; Tue, 7 May 2019 21:50:38 -0700 (PDT) Return-Path: X-Received: from mga14.intel.com (mga14.intel.com []) by groups.io with SMTP; Tue, 07 May 2019 21:50:37 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 May 2019 21:50:37 -0700 X-ExtLoop1: 1 X-Received: from fieedk001.ccr.corp.intel.com ([10.239.33.119]) by orsmga002.jf.intel.com with ESMTP; 07 May 2019 21:50:35 -0700 From: "Gao, Zhichao" To: devel@edk2.groups.io Cc: Bret Barkelew , Jian J Wang , Hao Wu , Ray Ni , Star Zeng , Liming Gao , Sean Brogan , Michael Turner Subject: [edk2-devel] [PATCH V2 2/6] MdeModulePkg/CapsuleRuntimeDxe: Transfer reset data Date: Wed, 8 May 2019 12:49:35 +0800 Message-Id: <20190508044939.15744-3-zhichao.gao@intel.com> In-Reply-To: <20190508044939.15744-1-zhichao.gao@intel.com> References: <20190508044939.15744-1-zhichao.gao@intel.com> MIME-Version: 1.0 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,zhichao.gao@intel.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1557291038; bh=vHLj7ATvMBnFZuTXkQdKZHqTLulgfLl6rocS/ijrgC4=; h=Cc:Date:From:Reply-To:Subject:To; b=FfPS8im4dNE9D1AkfNgCnlctmjJuuA6yV5lLWf4KgGe/L5dTWY62ZZFJ91gdpuh1GC6 tpIsIZ9RzWb3ImL3PgBdA5e9LoFObFZ7BkTuwPRHuVMxSRA0VVVACqXw4FC0MHY4XAvmW dlCh++jFzqX9iOHzyxCqhJ1D2myM51sK7Mo= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Bret Barkelew REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1772 Transfer reset data start with a null sting and followed by gEdkiiCapsuleArmedResetGuid for capsule update. Cc: Jian J Wang Cc: Hao Wu Cc: Ray Ni Cc: Star Zeng Cc: Liming Gao Cc: Sean Brogan Cc: Michael Turner Cc: Bret Barkelew Signed-off-by: Zhichao Gao --- .../CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf | 2 ++ .../CapsuleRuntimeDxe/CapsuleService.c | 24 ++++++++++++------- .../CapsuleRuntimeDxe/CapsuleService.h | 3 ++- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf= b/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf index 338577e293..43d295f5cf 100644 --- a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf +++ b/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf @@ -62,6 +62,7 @@ PrintLib BaseMemoryLib CacheMaintenanceLib + ResetSystemLib =20 [LibraryClasses.X64] UefiLib @@ -72,6 +73,7 @@ ## SOMETIMES_PRODUCES ## Variable:L"CapsuleLongModeBuffer" # The long = mode buffer used by IA32 Capsule PEIM to call X64 CapsuleCoalesce code to h= andle >4GB capsule blocks gEfiCapsuleVendorGuid gEfiFmpCapsuleGuid ## SOMETIMES_CONSUMES ##= GUID # FMP capsule GUID + gEdkiiCapsuleArmedResetGuid ## SOMETIMES_CONSUMES =20 [Protocols] gEfiCapsuleArchProtocolGuid ## PRODUCES diff --git a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.c b/Md= eModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.c index aaf819c4c6..77cfe11e00 100644 --- a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.c +++ b/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.c @@ -4,7 +4,7 @@ It installs the Capsule Architectural Protocol defined in PI1.0a to sign= ify the capsule runtime services are ready. =20 -Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
+Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ @@ -63,13 +63,14 @@ UpdateCapsule ( IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL ) { - UINTN ArrayNumber; - EFI_STATUS Status; - EFI_CAPSULE_HEADER *CapsuleHeader; - BOOLEAN NeedReset; - BOOLEAN InitiateReset; - CHAR16 CapsuleVarName[30]; - CHAR16 *TempVarName; + UINTN ArrayNumber; + EFI_STATUS Status; + EFI_CAPSULE_HEADER *CapsuleHeader; + BOOLEAN NeedReset; + BOOLEAN InitiateReset; + CHAR16 CapsuleVarName[30]; + CHAR16 *TempVarName; + RESET_DATA_WITH_NULL_STRING ResetData; =20 // // Capsule Count can't be less than one. @@ -210,7 +211,12 @@ UpdateCapsule ( // will initiate a reset of the platform which is compatible with t= he passed-in capsule request and will // not return back to the caller. // - EfiResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL); + ResetData.NullString =3D CHAR_NULL; + CopyGuid ( + (GUID *)((UINT8 *)&ResetData + OFFSET_OF (RESET_DATA_WITH_NULL_S= TRING, ResetGuid)), + &gEdkiiCapsuleArmedResetGuid + ); + EfiResetSystem (EfiResetWarm, EFI_SUCCESS, sizeof (RESET_DATA_WITH_= NULL_STRING), &ResetData); } } return Status; diff --git a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.h b/Md= eModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.h index 069df3c750..6790810cf4 100644 --- a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.h +++ b/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.h @@ -4,7 +4,7 @@ It installs the Capsule Architectural Protocol defined in PI1.0a to sign= ify the capsule runtime services are ready. =20 - Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.
Copyright (c) 2018, Linaro, Ltd. All rights reserved.
=20 SPDX-License-Identifier: BSD-2-Clause-Patent @@ -30,6 +30,7 @@ #include #include #include +#include =20 /** Create the variable to save the base address of page table and stack --=20 2.21.0.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 (#40172): https://edk2.groups.io/g/devel/message/40172 Mute This Topic: https://groups.io/mt/31540323/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- From nobody Mon May 6 02:21:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+40173+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+40173+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1557291040; cv=none; d=zoho.com; s=zohoarc; b=b06heZBMo3MquSN3DDRLFu0q5holNYwt/jMkElY0zg1bwfyb9EiYlC8DuY1HRhQM8ARQ9ao73OGzl8CEwIoWWV9fzXDc8yYnXHPykifm9htvBF6L0FUuLN6DRFaZGn+kFy0afcDnHxWrM3n98vlsijiEVbpKudKIAHcQT5piZTM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1557291040; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To:ARC-Authentication-Results; bh=4MnOFFmj02dc658KV45Tsb+XCdWtJakRHqKxDZRR0iE=; b=W+51qAagi5RBnI3hy+B0/yB5c5u21hcUzH9gG8HBU9pXSdlyBfsnwlys/xroVJazOEe5F5/oKYCqpCDYug2b72mKgoLxcuVdY0cmQ2XBguoOArDnP9bDH8Dz52C/XfOdv8Xj4AVYo6tk/Fpgujdp/UZTZu4nFJLfkwNTUi0myWY= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+40173+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 155729104073832.632558017227325; Tue, 7 May 2019 21:50:40 -0700 (PDT) Return-Path: X-Received: from mga14.intel.com (mga14.intel.com []) by groups.io with SMTP; Tue, 07 May 2019 21:50:39 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 May 2019 21:50:39 -0700 X-ExtLoop1: 1 X-Received: from fieedk001.ccr.corp.intel.com ([10.239.33.119]) by orsmga002.jf.intel.com with ESMTP; 07 May 2019 21:50:37 -0700 From: "Gao, Zhichao" To: devel@edk2.groups.io Cc: Bret Barkelew , Jian J Wang , Hao Wu , Ray Ni , Star Zeng , Liming Gao , Sean Brogan , Michael Turner Subject: [edk2-devel] [PATCH V2 3/6] MdeModulePkg/CapsuleLib: Transfer reset data Date: Wed, 8 May 2019 12:49:36 +0800 Message-Id: <20190508044939.15744-4-zhichao.gao@intel.com> In-Reply-To: <20190508044939.15744-1-zhichao.gao@intel.com> References: <20190508044939.15744-1-zhichao.gao@intel.com> MIME-Version: 1.0 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,zhichao.gao@intel.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1557291040; bh=gxIrB7kheugFhFYip9dtVQM9wTMlzIcVJfVpOwkK6TY=; h=Cc:Date:From:Reply-To:Subject:To; b=F+p09QI0hzWt8Her4DIMufcVJozO3beh4uz/O8rpwEsXpDsd55Or4STVjbw4pYIhg5F wSnBA7dui4IEZY1lcmyk7LhrciThZ259L0DZEz46FU28ddLplzh1gTEbzLYNsZE3iHMb9 GabKQw8IbLKvFFiAME2Ilu/DHIQZpG5vrX0= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Bret Barkelew REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1772 Transfer reset data start with a null sting and followed by gEdkiiCapsuleUpdateCompleteResetGuid for capsule update. Cc: Jian J Wang Cc: Hao Wu Cc: Ray Ni Cc: Star Zeng Cc: Liming Gao Cc: Sean Brogan Cc: Michael Turner Cc: Bret Barkelew Signed-off-by: Zhichao Gao --- .../Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf | 4 +++- .../Library/DxeCapsuleLibFmp/DxeCapsuleProcessLib.c | 12 ++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf b/MdeM= odulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf index 14c3d19bc3..0ad9b2827b 100644 --- a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf +++ b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf @@ -3,7 +3,7 @@ # # Capsule library instance for DXE_DRIVER module types. # -# Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.
+# Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent # ## @@ -47,6 +47,7 @@ HobLib BmpSupportLib DisplayUpdateProgressLib + ResetSystemLib =20 [Pcd] gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleMax = ## CONSUMES @@ -74,6 +75,7 @@ gEfiCapsuleReportGuid gEfiCapsuleVendorGuid ## SOMETIMES_CONSUMES ## Variabl= e:L"CapsuleUpdateData" gEfiEndOfDxeEventGroupGuid ## CONSUMES ## Event + gEdkiiCapsuleUpdateCompleteResetGuid ## SOMETIMES_CONSUMES =20 [Depex] gEfiVariableWriteArchProtocolGuid diff --git a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleProcessLib.c b= /MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleProcessLib.c index 5e2d2b87a8..5fb3a9af32 100644 --- a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleProcessLib.c +++ b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleProcessLib.c @@ -9,7 +9,7 @@ ProcessCapsules(), ProcessTheseCapsules() will receive untrusted input and do basic validation. =20 - Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.
+ Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ @@ -30,6 +30,7 @@ #include #include #include +#include =20 #include =20 @@ -514,11 +515,18 @@ DoResetSystem ( VOID ) { + RESET_DATA_WITH_NULL_STRING ResetData; + DEBUG((DEBUG_INFO, "Capsule Request Cold Reboot.")); =20 REPORT_STATUS_CODE(EFI_PROGRESS_CODE, (EFI_SOFTWARE | PcdGet32(PcdStatus= CodeSubClassCapsule) | PcdGet32(PcdCapsuleStatusCodeResettingSystem))); =20 - gRT->ResetSystem(EfiResetCold, EFI_SUCCESS, 0, NULL); + ResetData.NullString =3D CHAR_NULL; + CopyGuid ( + (GUID *)((UINT8 *)&ResetData + OFFSET_OF (RESET_DATA_WITH_NULL_STRING,= ResetGuid)), + &gEdkiiCapsuleUpdateCompleteResetGuid + ); + gRT->ResetSystem(EfiResetCold, EFI_SUCCESS, sizeof (RESET_DATA_WITH_NULL= _STRING), &ResetData); =20 CpuDeadLoop(); } --=20 2.21.0.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 (#40173): https://edk2.groups.io/g/devel/message/40173 Mute This Topic: https://groups.io/mt/31540324/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- From nobody Mon May 6 02:21:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+40174+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+40174+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1557291042; cv=none; d=zoho.com; s=zohoarc; b=JEoK+W+OkVtOfRZwT4yq44aptqyXKUTTe6X+lmIb/Z3hHgl2X/sLUpg7tULWGToAxXSRP79cHKqEdHDcj1GWLLuVTp4qWUgzBoPKYt727FfL8XlnQ2JJF2jzzqSg/iT20mkC2W6YtizFYxVe8lqZjXX+uYXC5M/OSNLVraKQK7Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1557291042; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To:ARC-Authentication-Results; bh=hY1SXXE+t+anYzpUlit1Oe7ER8740KTfIEZ9HuJK0WU=; b=RBwYpJohcG8tDdmrdegIi68fyY+Cq1QfLOYUNwjOGaMOBGo0WnH1RL+/HD8DwsNMNY+BkIRkQISAMU0ybM/TL1cNb9eY2Yza+Xr8N14BgJCDUFcYSQROIwCev1iiP0Lc8kNXGnLsiMG6eAct882A8yxwE/zeyr+rvYc+4j8Wfak= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+40174+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 15572910425811023.9979540228959; Tue, 7 May 2019 21:50:42 -0700 (PDT) Return-Path: X-Received: from mga14.intel.com (mga14.intel.com []) by groups.io with SMTP; Tue, 07 May 2019 21:50:41 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 May 2019 21:50:41 -0700 X-ExtLoop1: 1 X-Received: from fieedk001.ccr.corp.intel.com ([10.239.33.119]) by orsmga002.jf.intel.com with ESMTP; 07 May 2019 21:50:39 -0700 From: "Gao, Zhichao" To: devel@edk2.groups.io Cc: Jian J Wang , Hao Wu , Ray Ni , Star Zeng , Liming Gao , Sean Brogan , Michael Turner , Bret Barkelew Subject: [edk2-devel] [PATCH V2 4/6] MdeModulePkg/ResetUtilityLib: Replace the reset data difinition Date: Wed, 8 May 2019 12:49:37 +0800 Message-Id: <20190508044939.15744-5-zhichao.gao@intel.com> In-Reply-To: <20190508044939.15744-1-zhichao.gao@intel.com> References: <20190508044939.15744-1-zhichao.gao@intel.com> MIME-Version: 1.0 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,zhichao.gao@intel.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1557291042; bh=2Idpu80/av+RZsTlxh5VVRoBbItZwiQNWj9gGdeXZpU=; h=Cc:Date:From:Reply-To:Subject:To; b=ZvNLpUiBtTk7FqAapMmvNDGVO0CwiPlsqhUcEHyKn3cfk8axUnSsuC339ZU5m4e/rKj 1f4VCrX30HocfSJbsazkXUsSWRX3cr89fmlYWlJQUpleAtQj7Uf5ZoDaY1LIJEjZMnItn 5k+uA2Dq4/0H83qNfCoV1iJIv8O+gkbBgNI= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1772 Replace the definition of 'RESET_UTILITY_GUID_SPECIFIC_RESET_DATA' with 'RESET_DATA_WITH_NULL_STRING'. Cc: Jian J Wang Cc: Hao Wu Cc: Ray Ni Cc: Star Zeng Cc: Liming Gao Cc: Sean Brogan Cc: Michael Turner Cc: Bret Barkelew Signed-off-by: Zhichao Gao --- .../Library/ResetUtilityLib/ResetUtility.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/MdeModulePkg/Library/ResetUtilityLib/ResetUtility.c b/MdeModul= ePkg/Library/ResetUtilityLib/ResetUtility.c index 2b5af4b95a..1bf8a694fb 100644 --- a/MdeModulePkg/Library/ResetUtilityLib/ResetUtility.c +++ b/MdeModulePkg/Library/ResetUtilityLib/ResetUtility.c @@ -13,15 +13,6 @@ #include #include =20 -#pragma pack(1) -typedef struct { - CHAR16 NullTerminator; - GUID ResetSubtype; -} RESET_UTILITY_GUID_SPECIFIC_RESET_DATA; -#pragma pack() - -VERIFY_SIZE_OF (RESET_UTILITY_GUID_SPECIFIC_RESET_DATA, 18); - /** This is a shorthand helper function to reset with reset type and a subty= pe so that the caller doesn't have to bother with a function that has half @@ -46,11 +37,11 @@ ResetSystemWithSubtype ( IN CONST GUID *ResetSubtype ) { - RESET_UTILITY_GUID_SPECIFIC_RESET_DATA ResetData; + RESET_DATA_WITH_NULL_STRING ResetData; =20 - ResetData.NullTerminator =3D CHAR_NULL; + ResetData.NullString =3D CHAR_NULL; CopyGuid ( - (GUID *)((UINT8 *)&ResetData + OFFSET_OF (RESET_UTILITY_GUID_SPECIFIC_= RESET_DATA, ResetSubtype)), + (GUID *)((UINT8 *)&ResetData + OFFSET_OF (RESET_DATA_WITH_NULL_STRING,= ResetGuid)), ResetSubtype ); =20 --=20 2.21.0.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 (#40174): https://edk2.groups.io/g/devel/message/40174 Mute This Topic: https://groups.io/mt/31540325/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- From nobody Mon May 6 02:21:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+40175+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+40175+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1557291043; cv=none; d=zoho.com; s=zohoarc; b=JqVYEsMavRkmbDbrnEzMxTRIspV9EbA0v9R8Cn+BwXnxDbpYOeyBmAJ9AcxYyyTm4w9NFlWL9SbPFz9hsE1JC7q0dER+KPOpKs4sVCxSNnfECcquPpqunt9kZEkiZu+UoKQWIJtchxxhtv9t7Uxxbebkr17OJgU6kbcIrHscXVk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1557291043; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To:ARC-Authentication-Results; bh=pEWHVel5Q7xVv7CE+nu6IBJ8TkM1Mbsdc1m8h4QlDwM=; b=HFCp/hkt8DvFCShkPHWUnaewmwIy3Y+80Xc9ICY+EJCrh5ySwO6k5Y48ArRI2vzw2Qj37/P2VUQIc0W/2s+UaNE/tR0cR3503xEUISJpXEJGK2NfBPBFpsQYKEyRv++nfJ6yKqGRSTIIsjSCqyX5fetaofwUGEeGJGDGA6pu0n4= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+40175+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 1557291043505463.6619752919827; Tue, 7 May 2019 21:50:43 -0700 (PDT) Return-Path: X-Received: from mga14.intel.com (mga14.intel.com []) by groups.io with SMTP; Tue, 07 May 2019 21:50:42 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 May 2019 21:50:42 -0700 X-ExtLoop1: 1 X-Received: from fieedk001.ccr.corp.intel.com ([10.239.33.119]) by orsmga002.jf.intel.com with ESMTP; 07 May 2019 21:50:41 -0700 From: "Gao, Zhichao" To: devel@edk2.groups.io Cc: Michael D Kinney , Liming Gao Subject: [edk2-devel] [PATCH V2 5/6] MdePkg/UefiRuntimeLib.h: Change the comment Date: Wed, 8 May 2019 12:49:38 +0800 Message-Id: <20190508044939.15744-6-zhichao.gao@intel.com> In-Reply-To: <20190508044939.15744-1-zhichao.gao@intel.com> References: <20190508044939.15744-1-zhichao.gao@intel.com> MIME-Version: 1.0 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,zhichao.gao@intel.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1557291043; bh=r1VDAaL9vWXAkZl1A/UCkomxPzkKxgsOIeGlTjHu6T4=; h=Cc:Date:From:Reply-To:Subject:To; b=oKzV9wWuFDxl/+tzufOQNoT6rW8CQYKW/0BaF4pFdMEjNSNTzMlv8Fcwf0l8Q7N/zn1 GYO1OuAyw+JtCak627/bFE3U3SVPs3gaCvvuf5GQzCiLXQxOytypouE1FvOSdyM5Wp8XK 7IlsRUfELUvphd2ExGZdSnOWio1NtxrtQMM= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Change the comment of EfiResetSystem base on the UEFI spec 2.8 Cc: Michael D Kinney Cc: Liming Gao Signed-off-by: Zhichao Gao --- MdePkg/Include/Library/UefiRuntimeLib.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/MdePkg/Include/Library/UefiRuntimeLib.h b/MdePkg/Include/Libra= ry/UefiRuntimeLib.h index 8f13ca275d..3962347d36 100644 --- a/MdePkg/Include/Library/UefiRuntimeLib.h +++ b/MdePkg/Include/Library/UefiRuntimeLib.h @@ -321,10 +321,10 @@ EfiGetNextHighMonotonicCount ( @param DataSizeThe size, in bytes, of ResetData. @param ResetData For a ResetType of EfiResetCold, EfiResetWarm, or Ef= iResetShutdown the data buffer starts with a Null-terminated Unicode string, optionally followed = by additional binary data. The string is a - description that the caller may use to further indic= ate the reason for the system reset. ResetData - is only valid if ResetStatus is something other then= EFI_SUCCESS. This pointer must be a physical - address. For a ResetType of EfiResetPlatformSpecific= the data buffer also starts with a Null-terminated - string that is followed by an EFI_GUID that describe= s the specific type of reset to perform. + description that the caller may use to further indic= ate the reason for the system reset. This + pointer must be a physical address. For a ResetType = of EfiResetPlatformSpecific the data buffer + also starts with a Null-terminated string that is fo= llowed by an EFI_GUID that describes the + specific type of reset to perform. **/ VOID EFIAPI --=20 2.21.0.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 (#40175): https://edk2.groups.io/g/devel/message/40175 Mute This Topic: https://groups.io/mt/31540326/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- From nobody Mon May 6 02:21:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+40176+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+40176+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1557291044; cv=none; d=zoho.com; s=zohoarc; b=Hi1Y9ttguB9qKKfD23OfzpMF2l5ZkbpqeKSAEsusC6oMo9n01CQe4OEuCMcXUGW5E0oGA7y8rkjOhkJm3u1aND7ByumySp5Oubj8kU7GyHxcgXtDb3gbVLgm+mWVfnuyfFiOkf5dc1gSyZc5BnUQOhqLZR3JOeuxepBFyLV5Ws4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1557291044; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To:ARC-Authentication-Results; bh=wOixfAcD3zIkUvcA2oa+k3GbVWyy6iHV5McB7EdDBdo=; b=YDwCHkSpFwUjx3o2orwYHBFWDiBN2onBYwTDx/zs03/kFaVZxSJiTBbUiXY24Qme62NeTz4Esl/vCxqVpMxf+zOrL5zV3aEqpO8XJbzyMsFyC1ld6jrlBVbf6/rxBzmipHVwYoMnLOC6zf94RkHbVNXyiKraVfobJtiuovYRyI4= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+40176+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 1557291044616933.6144184020899; Tue, 7 May 2019 21:50:44 -0700 (PDT) Return-Path: X-Received: from mga14.intel.com (mga14.intel.com []) by groups.io with SMTP; Tue, 07 May 2019 21:50:43 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 May 2019 21:50:43 -0700 X-ExtLoop1: 1 X-Received: from fieedk001.ccr.corp.intel.com ([10.239.33.119]) by orsmga002.jf.intel.com with ESMTP; 07 May 2019 21:50:42 -0700 From: "Gao, Zhichao" To: devel@edk2.groups.io Cc: Michael D Kinney , Liming Gao Subject: [edk2-devel] [PATCH V2 6/6] MdePkg/UefiRuntimeLib: Change the comment Date: Wed, 8 May 2019 12:49:39 +0800 Message-Id: <20190508044939.15744-7-zhichao.gao@intel.com> In-Reply-To: <20190508044939.15744-1-zhichao.gao@intel.com> References: <20190508044939.15744-1-zhichao.gao@intel.com> MIME-Version: 1.0 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,zhichao.gao@intel.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1557291044; bh=0O2HID0v0YjnConJO6VMkH5nzyHO4vPt+Y0iUUU8eEE=; h=Cc:Date:From:Reply-To:Subject:To; b=lZRzpZdwbM3wirXfkLjI9YUeFu1CBrj0YGnWTozRjSyvB/K/+5GpY7DWplBWLg+1gWw cE4fS+6aSFsTyNItLo3pPnmdyIES2dZxWm5C9gKthd9hxgYKKf0WpQowrAu+MtKmqgk4y dk6KSzBDw2cMS4gn0ulrLPR6tTkH0EYmyDc= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Change the comment of EfiResetSystem base on the UEFI spec 2.8 Cc: Michael D Kinney Cc: Liming Gao Signed-off-by: Zhichao Gao --- MdePkg/Library/UefiRuntimeLib/RuntimeLib.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/MdePkg/Library/UefiRuntimeLib/RuntimeLib.c b/MdePkg/Library/Ue= fiRuntimeLib/RuntimeLib.c index 933e0099ce..28cbf493b6 100644 --- a/MdePkg/Library/UefiRuntimeLib/RuntimeLib.c +++ b/MdePkg/Library/UefiRuntimeLib/RuntimeLib.c @@ -218,10 +218,10 @@ EfiGoneVirtual ( @param DataSizeThe size, in bytes, of ResetData. @param ResetData For a ResetType of EfiResetCold, EfiResetWarm, or Ef= iResetShutdown the data buffer starts with a Null-terminated Unicode string, optionally followed = by additional binary data. The string is a - description that the caller may use to further indic= ate the reason for the system reset. ResetData - is only valid if ResetStatus is something other then= EFI_SUCCESS. This pointer must be a physical - address. For a ResetType of EfiRestUpdate the data b= uffer also starts with a Null-terminated string - that is followed by a physical VOID * to an EFI_CAPS= ULE_HEADER. + description that the caller may use to further indic= ate the reason for the system reset. This + pointer must be a physical address. For a ResetType = of EfiResetPlatformSpecific the data buffer + also starts with a Null-terminated string that is fo= llowed by an EFI_GUID that describes the + specific type of reset to perform. =20 **/ VOID --=20 2.21.0.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 (#40176): https://edk2.groups.io/g/devel/message/40176 Mute This Topic: https://groups.io/mt/31540327/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-