From nobody Sun May 5 09:31:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.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 1519967761671445.96551588574084; Thu, 1 Mar 2018 21:16:01 -0800 (PST) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 911DC22546BB2; Thu, 1 Mar 2018 21:09:49 -0800 (PST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (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 DA40B22546B8D for ; Thu, 1 Mar 2018 21:09:47 -0800 (PST) Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Mar 2018 21:15:56 -0800 Received: from shwdeopenpsi068.ccr.corp.intel.com ([10.239.158.46]) by orsmga008.jf.intel.com with ESMTP; 01 Mar 2018 21:15:55 -0800 X-Original-To: edk2-devel@lists.01.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; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.88; helo=mga01.intel.com; envelope-from=star.zeng@intel.com; receiver=edk2-devel@lists.01.org X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.47,409,1515484800"; d="scan'208";a="21960021" From: Star Zeng To: edk2-devel@lists.01.org Date: Fri, 2 Mar 2018 13:15:47 +0800 Message-Id: <1519967749-5112-2-git-send-email-star.zeng@intel.com> X-Mailer: git-send-email 2.7.0.windows.1 In-Reply-To: <1519967749-5112-1-git-send-email-star.zeng@intel.com> References: <1519967749-5112-1-git-send-email-star.zeng@intel.com> Subject: [edk2] [PATCH 1/3] MdeModulePkg: Add S3SmmInitDone definition X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jiewen Yao , Star Zeng MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Add gEdkiiS3SmmInitDoneGuid, after S3 SMM initialization is done and before S3 boot script is executed, this GUID is installed as PPI in PEI and protocol in SMM environment. It allows for PEIMs or SMM drivers to hook this point and do the required tasks. Cc: Jiewen Yao Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Star Zeng Reviewed-by: Jiewen.yao@intel.com --- MdeModulePkg/Include/Guid/S3SmmInitDone.h | 27 +++++++++++++++++++++++++++ MdeModulePkg/MdeModulePkg.dec | 3 +++ 2 files changed, 30 insertions(+) create mode 100644 MdeModulePkg/Include/Guid/S3SmmInitDone.h diff --git a/MdeModulePkg/Include/Guid/S3SmmInitDone.h b/MdeModulePkg/Inclu= de/Guid/S3SmmInitDone.h new file mode 100644 index 000000000000..53fef8ed19ef --- /dev/null +++ b/MdeModulePkg/Include/Guid/S3SmmInitDone.h @@ -0,0 +1,27 @@ +/** @file + After S3 SMM initialization is done and before S3 boot script is execute= d, + this GUID is installed as PPI in PEI and protocol in SMM environment.=20 + It allows for PEIMs or SMM drivers to hook this point and do the require= d tasks. + + Copyright (c) 2018, Intel Corporation. All rights reserved.
+ This program and the accompanying materials =20 + are licensed and made available under the terms and conditions of the BS= D License =20 + which accompanies this distribution. The full text of the license may b= e found at =20 + http://opensource.org/licenses/bsd-license.php = =20 + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, = =20 + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMP= LIED. =20 + +**/ + +#ifndef __S3_SMM_INIT_DONE_H__ +#define __S3_SMM_INIT_DONE_H__ + +#define EDKII_S3_SMM_INIT_DONE_GUID \ + { \ + 0x8f9d4825, 0x797d, 0x48fc, { 0x84, 0x71, 0x84, 0x50, 0x25, 0x79, 0x2e= , 0xf6 } \ + } + +extern EFI_GUID gEdkiiS3SmmInitDoneGuid; + +#endif diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec index 455979386e3f..2b24ba506832 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec @@ -406,6 +406,9 @@ [Guids] ## Include/Guid/EndofS3Resume.h gEdkiiEndOfS3ResumeGuid =3D { 0x96f5296d, 0x05f7, 0x4f3c, {0x84, 0x67, 0= xe4, 0x56, 0x89, 0x0e, 0x0c, 0xb5 } } =20 + ## Include/Guid/S3SmmInitDone.h + gEdkiiS3SmmInitDoneGuid =3D { 0x8f9d4825, 0x797d, 0x48fc, { 0x84, 0x71, = 0x84, 0x50, 0x25, 0x79, 0x2e, 0xf6 } } + [Ppis] ## Include/Ppi/AtaController.h gPeiAtaControllerPpiGuid =3D { 0xa45e60d1, 0xc719, 0x44aa, { 0xb0,= 0x7a, 0xaa, 0x77, 0x7f, 0x85, 0x90, 0x6d }} --=20 2.7.0.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel From nobody Sun May 5 09:31:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.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 1519967763626776.7029763449959; Thu, 1 Mar 2018 21:16:03 -0800 (PST) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id F0C1922546BBA; Thu, 1 Mar 2018 21:09:49 -0800 (PST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (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 ECE8422546BA4 for ; Thu, 1 Mar 2018 21:09:48 -0800 (PST) Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Mar 2018 21:15:57 -0800 Received: from shwdeopenpsi068.ccr.corp.intel.com ([10.239.158.46]) by orsmga008.jf.intel.com with ESMTP; 01 Mar 2018 21:15:57 -0800 X-Original-To: edk2-devel@lists.01.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; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.88; helo=mga01.intel.com; envelope-from=star.zeng@intel.com; receiver=edk2-devel@lists.01.org X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.47,409,1515484800"; d="scan'208";a="21960025" From: Star Zeng To: edk2-devel@lists.01.org Date: Fri, 2 Mar 2018 13:15:48 +0800 Message-Id: <1519967749-5112-3-git-send-email-star.zeng@intel.com> X-Mailer: git-send-email 2.7.0.windows.1 In-Reply-To: <1519967749-5112-1-git-send-email-star.zeng@intel.com> References: <1519967749-5112-1-git-send-email-star.zeng@intel.com> Subject: [edk2] [PATCH 2/3] MdeModulePkg PiSmmCore: Register SMI handler to install S3SmmInitDone X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jiewen Yao , Star Zeng MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Cc: Jiewen Yao Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Star Zeng Reviewed-by: Jiewen.yao@intel.com --- MdeModulePkg/Core/PiSmmCore/PiSmmCore.c | 62 +++++++++++++++++++++++++++= +++- MdeModulePkg/Core/PiSmmCore/PiSmmCore.h | 26 ++++++++++++- MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf | 3 +- 3 files changed, 88 insertions(+), 3 deletions(-) diff --git a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.c b/MdeModulePkg/Core/Pi= SmmCore/PiSmmCore.c index d2f0207b5c83..686b9b45a556 100644 --- a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.c +++ b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.c @@ -1,7 +1,7 @@ /** @file SMM Core Main Entry Point =20 - Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
+ Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made availa= ble=20 under the terms and conditions of the BSD License which accompanies this=20 distribution. The full text of the license may be found at =20 @@ -87,6 +87,7 @@ SMM_CORE_SMI_HANDLERS mSmmCoreSmiHandlers[] =3D { { SmmExitBootServicesHandler, &gEfiEventExitBootServicesGuid, NULL,= FALSE }, { SmmReadyToBootHandler, &gEfiEventReadyToBootGuid, NULL,= FALSE }, { SmmEndOfDxeHandler, &gEfiEndOfDxeEventGroupGuid, NULL,= TRUE }, + { SmmS3SmmInitDoneHandler, &gEdkiiS3SmmInitDoneGuid, NULL,= FALSE }, { SmmEndOfS3ResumeHandler, &gEdkiiEndOfS3ResumeGuid, NULL,= FALSE }, { NULL, NULL, NULL,= FALSE } }; @@ -472,6 +473,65 @@ SmmEndOfDxeHandler ( } =20 /** + Software SMI handler that is called when the S3SmmInitDone signal is tri= ggered. + This function installs the SMM S3SmmInitDone Protocol so SMM Drivers are= informed that + S3 SMM initialization has been done. + + @param DispatchHandle The unique handle assigned to this handler by Sm= iHandlerRegister(). + @param Context Points to an optional handler context which was = specified when the handler was registered. + @param CommBuffer A pointer to a collection of data in memory that= will + be conveyed from a non-SMM environment into an S= MM environment. + @param CommBufferSize The size of the CommBuffer. + + @return Status Code + +**/ +EFI_STATUS +EFIAPI +SmmS3SmmInitDoneHandler ( + IN EFI_HANDLE DispatchHandle, + IN CONST VOID *Context, OPTIONAL + IN OUT VOID *CommBuffer, OPTIONAL + IN OUT UINTN *CommBufferSize OPTIONAL + ) +{ + EFI_STATUS Status; + EFI_HANDLE SmmHandle; + + DEBUG ((DEBUG_INFO, "SmmS3SmmInitDoneHandler\n")); + + if (!mDuringS3Resume) { + DEBUG ((DEBUG_ERROR, "It is not during S3 resume\n")); + return EFI_SUCCESS; + } + + // + // Install SMM S3SmmInitDone protocol + // + SmmHandle =3D NULL; + Status =3D SmmInstallProtocolInterface ( + &SmmHandle, + &gEdkiiS3SmmInitDoneGuid, + EFI_NATIVE_INTERFACE, + NULL + ); + ASSERT_EFI_ERROR (Status); + + // + // Uninstall the protocol here because the comsumer just hook the + // installation event. + // + Status =3D SmmUninstallProtocolInterface ( + SmmHandle, + &gEdkiiS3SmmInitDoneGuid, + NULL + ); + ASSERT_EFI_ERROR (Status); + + return Status; +} + +/** Software SMI handler that is called when the EndOfS3Resume signal is tri= ggered. This function installs the SMM EndOfS3Resume Protocol so SMM Drivers are= informed that S3 resume has finished. diff --git a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h b/MdeModulePkg/Core/Pi= SmmCore/PiSmmCore.h index 8c10d833e2ae..2f6032646f46 100644 --- a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h +++ b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h @@ -2,7 +2,7 @@ The internal header file includes the common header files, defines internal structure and functions used by SmmCore module. =20 - Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
+ Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made availa= ble=20 under the terms and conditions of the BSD License which accompanies this=20 distribution. The full text of the license may be found at =20 @@ -42,6 +42,7 @@ #include #include #include +#include =20 #include #include @@ -811,6 +812,29 @@ SmmReadyToBootHandler ( ); =20 /** + Software SMI handler that is called when the S3SmmInitDone signal is tri= ggered. + This function installs the SMM S3SmmInitDone Protocol so SMM Drivers are= informed that + S3 SMM initialization has been done. + + @param DispatchHandle The unique handle assigned to this handler by Sm= iHandlerRegister(). + @param Context Points to an optional handler context which was = specified when the handler was registered. + @param CommBuffer A pointer to a collection of data in memory that= will + be conveyed from a non-SMM environment into an S= MM environment. + @param CommBufferSize The size of the CommBuffer. + + @return Status Code + +**/ +EFI_STATUS +EFIAPI +SmmS3SmmInitDoneHandler ( + IN EFI_HANDLE DispatchHandle, + IN CONST VOID *Context, OPTIONAL + IN OUT VOID *CommBuffer, OPTIONAL + IN OUT UINTN *CommBufferSize OPTIONAL + ); + +/** Software SMI handler that is called when the EndOfS3Resume event is trig= ged. This function installs the SMM EndOfS3Resume Protocol so SMM Drivers are= informed that S3 resume has finished. diff --git a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf b/MdeModulePkg/Core/= PiSmmCore/PiSmmCore.inf index 5c04e851f94b..09cffb879e6f 100644 --- a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf +++ b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf @@ -1,7 +1,7 @@ ## @file # This module provide an SMM CIS compliant implementation of SMM Core. # -# Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
+# Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BS= D License @@ -124,6 +124,7 @@ [Guids] ## SOMETIMES_PRODUCES ## GUID # SmiHandlerRegister gSmiHandlerProfileGuid gEdkiiEndOfS3ResumeGuid ## SOMETIMES_PRODUCES ## GUID # Install protocol + gEdkiiS3SmmInitDoneGuid ## SOMETIMES_PRODUCES ## GUID # Install protocol =20 [UserExtensions.TianoCore."ExtraFiles"] PiSmmCoreExtra.uni --=20 2.7.0.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel From nobody Sun May 5 09:31:48 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.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 15199677661961015.8228072209353; Thu, 1 Mar 2018 21:16:06 -0800 (PST) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 5A57922546BBF; Thu, 1 Mar 2018 21:09:52 -0800 (PST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (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 64D1E22546BB0 for ; Thu, 1 Mar 2018 21:09:50 -0800 (PST) Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Mar 2018 21:15:59 -0800 Received: from shwdeopenpsi068.ccr.corp.intel.com ([10.239.158.46]) by orsmga008.jf.intel.com with ESMTP; 01 Mar 2018 21:15:58 -0800 X-Original-To: edk2-devel@lists.01.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; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.88; helo=mga01.intel.com; envelope-from=star.zeng@intel.com; receiver=edk2-devel@lists.01.org X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.47,409,1515484800"; d="scan'208";a="21960028" From: Star Zeng To: edk2-devel@lists.01.org Date: Fri, 2 Mar 2018 13:15:49 +0800 Message-Id: <1519967749-5112-4-git-send-email-star.zeng@intel.com> X-Mailer: git-send-email 2.7.0.windows.1 In-Reply-To: <1519967749-5112-1-git-send-email-star.zeng@intel.com> References: <1519967749-5112-1-git-send-email-star.zeng@intel.com> Subject: [edk2] [PATCH 3/3] UefiCpuPkg S3ResumePei: Signal S3SmmInitDone X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Laszlo Ersek , Jiewen Yao , Eric Dong , Star Zeng MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Cc: Jiewen Yao Cc: Eric Dong Cc: Laszlo Ersek Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Star Zeng Acked-by: Laszlo Ersek Reviewed-by: Jiewen.yao@intel.com --- UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c | 42 +++++++++++++++---= ---- .../Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf | 3 ++ 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c b/UefiCpuPkg= /Universal/Acpi/S3Resume2Pei/S3Resume.c index 4d776891a72d..2cb7b429e59c 100644 --- a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c +++ b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -259,6 +260,12 @@ EFI_PEI_PPI_DESCRIPTOR mPpiListEndOfPeiTable =3D { 0 }; =20 +EFI_PEI_PPI_DESCRIPTOR mPpiListS3SmmInitDoneTable =3D { + (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST), + &gEdkiiS3SmmInitDoneGuid, + 0 +}; + // // Global Descriptor Table (GDT) // @@ -322,13 +329,14 @@ IsLongModeWakingVector ( } =20 /** - Send EndOfS3Resume event to SmmCore through communication buffer way. + Signal to SMM through communication buffer way. + + @param[in] HandlerType SMI handler type to be signaled. =20 - @retval EFI_SUCCESS Return send the event success. **/ -EFI_STATUS -SignalEndOfS3Resume ( - VOID +VOID +SignalToSmmByCommunication ( + IN EFI_GUID *HandlerType ) { EFI_STATUS Status; @@ -338,7 +346,7 @@ SignalEndOfS3Resume ( SMM_COMMUNICATE_HEADER_64 Header64; VOID *CommBuffer; =20 - DEBUG ((DEBUG_INFO, "SignalEndOfS3Resume - Enter\n")); + DEBUG ((DEBUG_INFO, "Signal %g to SMM - Enter\n", HandlerType)); =20 // // This buffer consumed in DXE phase, so base on DXE mode to prepare com= municate buffer. @@ -355,7 +363,7 @@ SignalEndOfS3Resume ( Header32.MessageLength =3D 0; CommSize =3D OFFSET_OF (SMM_COMMUNICATE_HEADER_32, Data); } - CopyGuid (CommBuffer, &gEdkiiEndOfS3ResumeGuid); + CopyGuid (CommBuffer, HandlerType); =20 Status =3D PeiServicesLocatePpi ( &gEfiPeiSmmCommunicationPpiGuid, @@ -365,7 +373,7 @@ SignalEndOfS3Resume ( ); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_ERROR, "Locate Smm Communicate Ppi failed (%r)!\n", Stat= us)); - return Status; + return; } =20 Status =3D SmmCommunicationPpi->Communicate ( @@ -377,8 +385,8 @@ SignalEndOfS3Resume ( DEBUG ((DEBUG_ERROR, "SmmCommunicationPpi->Communicate return failure = (%r)!\n", Status)); } =20 - DEBUG ((DEBUG_INFO, "SignalEndOfS3Resume - Exit (%r)\n", Status)); - return Status; + DEBUG ((DEBUG_INFO, "Signal %g to SMM - Exit (%r)\n", HandlerType, Statu= s)); + return; } =20 /** @@ -464,11 +472,11 @@ S3ResumeBootOs ( PERF_END_EX (NULL, "EndOfPeiPpi", NULL, 0, PERF_INMODULE_END_ID); =20 // - // Signal EndOfS3Resume event. + // Signal EndOfS3Resume to SMM. // PERF_START_EX (NULL, "EndOfS3Resume", NULL, 0, PERF_INMODULE_START_ID); =20 - SignalEndOfS3Resume (); + SignalToSmmByCommunication (&gEdkiiEndOfS3ResumeGuid); =20 PERF_END_EX (NULL, "EndOfS3Resume", NULL, 0, PERF_INMODULE_END_ID); =20 @@ -787,6 +795,16 @@ S3ResumeExecuteBootScript ( Status =3D SmmAccess->Lock ((EFI_PEI_SERVICES **)GetPeiServicesTab= lePointer (), SmmAccess, Index); } } + + // + // Install S3SmmInitDone PPI. + // + Status =3D PeiServicesInstallPpi (&mPpiListS3SmmInitDoneTable); + ASSERT_EFI_ERROR (Status); + // + // Signal S3SmmInitDone to SMM. + // + SignalToSmmByCommunication (&gEdkiiS3SmmInitDoneGuid); } =20 if (FeaturePcdGet (PcdDxeIplSwitchToLongMode)) { diff --git a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf b/Uefi= CpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf index 9522ede726f4..47fecd7d6d80 100644 --- a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf +++ b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf @@ -78,6 +78,9 @@ [Guids] gEfiAcpiVariableGuid gEfiAcpiS3ContextGuid ## SOMETIMES_CONSUMES ## U= NDEFINED # LockBox gEdkiiEndOfS3ResumeGuid ## SOMETIMES_CONSUMES ## U= NDEFINED # Used to do smm communication + ## SOMETIMES_PRODUCES ## UNDEFINED # Install PPI + ## SOMETIMES_CONSUMES ## UNDEFINED # Used to do smm communication + gEdkiiS3SmmInitDoneGuid =20 [Ppis] gEfiPeiReadOnlyVariable2PpiGuid ## CONSUMES --=20 2.7.0.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel