From nobody Mon Feb 9 08:29:26 2026 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+43071+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+43071+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1561949770; cv=none; d=zoho.com; s=zohoarc; b=iePX3trIAD9xrC7hhjcu6HwcGg222SPl7qHyQxYtr4dp9sLXBURnnbatKR1GjkIzjGSsLj/cJeejUUa4Ga57qIeiDrwuoy88GLw1g52Im8AS3OOp1C/YbOwz3w9e4/Fe2MsoQOCjBnGtQeeDjNZ/GCF0eTY5F4MwjmDIhuGZCwU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1561949770; 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=Uu1Qo4BZkQA5Gs00NCDNl4GoMLoBJCITMsqzprLKcfo=; b=iVKd7yhiu8O6Cbu/0KFBLXE2r+XeEhf8sFIseo6UsZYY+kCM/VZd6jCrdVPJVQZrcBi1nNOqWDdp/5GSxPORz6U6/P7+e5GxnXdbpCyyjC+Ze4HVBpyTZbqtJUMVyhQGPObn5pNWp54D+KRhs/XEq/ICuUPPWEYU/U9Pso5l3Fg= 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+43071+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 1561949770540123.92740632905748; Sun, 30 Jun 2019 19:56:10 -0700 (PDT) Return-Path: X-Received: from mga18.intel.com (mga18.intel.com []) by groups.io with SMTP; Sun, 30 Jun 2019 19:56:09 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 Jun 2019 19:56:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,437,1557212400"; d="scan'208";a="338480250" X-Received: from mdkinney-mobl2.amr.corp.intel.com ([10.251.143.61]) by orsmga005.jf.intel.com with ESMTP; 30 Jun 2019 19:56:08 -0700 From: "Michael D Kinney" To: devel@edk2.groups.io Cc: Zailiang Sun , Yi Qian Subject: [edk2-devel] [edk2-platforms Patch 12/14] Vlv2TbltDevicePkg/PlatformSmm: Switch to PI SMM Protocols Date: Sun, 30 Jun 2019 19:55:51 -0700 Message-Id: <20190701025553.18596-13-michael.d.kinney@intel.com> In-Reply-To: <20190701025553.18596-1-michael.d.kinney@intel.com> References: <20190701025553.18596-1-michael.d.kinney@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,michael.d.kinney@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=1561949770; bh=RiysKCJeCANifxB5290GXh0EFtZsbxtJcH7aYiC5sIQ=; h=Cc:Date:From:Reply-To:Subject:To; b=cR4/jotGDll6f0rO89OqugZZbHUOIFtJD9VIYoCOU/mPsE0ChsLcB71j06R79MPYp2e ni0vy4hLTX5q1mCjywkwBfBaFHGyR1ivrKQ+bTpTMbEogsvxGPzYYJHVb2ttK6m3N4O6N mDOUgdqJEPn1BIhU6WjlfqMf97TT38lljwI= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Change use of Intel Framework SMM Protocols to PI SMM Protocols. This removes Intel Framework dependencies. The PI SMM Protocols added are: * gEfiSmmPowerButtonDispatch2ProtocolGuid * gEfiSmmSxDispatch2ProtocolGuid * gEfiSmmSwDispatch2ProtocolGuid Cc: Zailiang Sun Cc: Yi Qian Signed-off-by: Michael D Kinney --- .../Vlv2TbltDevicePkg/PlatformSmm/Platform.c | 112 +++++++++++------- .../PlatformSmm/PlatformSmm.inf | 16 +-- .../PlatformSmm/SmmPlatform.h | 104 +++++++--------- 3 files changed, 114 insertions(+), 118 deletions(-) diff --git a/Platform/Intel/Vlv2TbltDevicePkg/PlatformSmm/Platform.c b/Plat= form/Intel/Vlv2TbltDevicePkg/PlatformSmm/Platform.c index fb9d090ada..c78174ed08 100644 --- a/Platform/Intel/Vlv2TbltDevicePkg/PlatformSmm/Platform.c +++ b/Platform/Intel/Vlv2TbltDevicePkg/PlatformSmm/Platform.c @@ -101,14 +101,14 @@ InitializePlatformSmm ( EFI_STATUS Status; UINT8 Index; EFI_HANDLE Handle; - EFI_SMM_POWER_BUTTON_DISPATCH_CONTEXT PowerButtonContext; - EFI_SMM_POWER_BUTTON_DISPATCH_PROTOCOL *PowerButtonDispatch; + EFI_SMM_POWER_BUTTON_REGISTER_CONTEXT PowerButtonContext; + EFI_SMM_POWER_BUTTON_DISPATCH2_PROTOCOL *PowerButtonDispatch; EFI_SMM_ICHN_DISPATCH_CONTEXT IchnContext; EFI_SMM_ICHN_DISPATCH_PROTOCOL *IchnDispatch; - EFI_SMM_SX_DISPATCH_PROTOCOL *SxDispatch; - EFI_SMM_SX_DISPATCH_CONTEXT EntryDispatchContext; - EFI_SMM_SW_DISPATCH_PROTOCOL *SwDispatch; - EFI_SMM_SW_DISPATCH_CONTEXT SwContext; + EFI_SMM_SX_DISPATCH2_PROTOCOL *SxDispatch; + EFI_SMM_SX_REGISTER_CONTEXT EntryDispatchContext; + EFI_SMM_SW_DISPATCH2_PROTOCOL *SwDispatch; + EFI_SMM_SW_REGISTER_CONTEXT SwContext; UINTN VarSize; EFI_BOOT_MODE BootMode; =20 @@ -171,18 +171,18 @@ InitializePlatformSmm ( // // Get the Power Button protocol // - Status =3D gBS->LocateProtocol( - &gEfiSmmPowerButtonDispatchProtocolGuid, - NULL, - (void **)&PowerButtonDispatch - ); + Status =3D gSmst->SmmLocateProtocol( + &gEfiSmmPowerButtonDispatch2ProtocolGuid, + NULL, + (VOID **)&PowerButtonDispatch + ); ASSERT_EFI_ERROR(Status); =20 if (BootMode !=3D BOOT_ON_FLASH_UPDATE) { // // Register for the power button event // - PowerButtonContext.Phase =3D PowerButtonEntry; + PowerButtonContext.Phase =3D EfiPowerButtonEntry; Status =3D PowerButtonDispatch->Register( PowerButtonDispatch, PowerButtonCallback, @@ -194,11 +194,11 @@ InitializePlatformSmm ( // // Get the Sx dispatch protocol // - Status =3D gBS->LocateProtocol ( - &gEfiSmmSxDispatchProtocolGuid, - NULL, - (void **)&SxDispatch - ); + Status =3D gSmst->SmmLocateProtocol( + &gEfiSmmSxDispatch2ProtocolGuid, + NULL, + (VOID **)&SxDispatch + ); ASSERT_EFI_ERROR(Status); =20 // @@ -209,7 +209,7 @@ InitializePlatformSmm ( =20 Status =3D SxDispatch->Register ( SxDispatch, - (EFI_SMM_SX_DISPATCH)SxSleepEntryCallBack, + SxSleepEntryCallBack, &EntryDispatchContext, &Handle ); @@ -247,11 +247,11 @@ InitializePlatformSmm ( // // Get the Sw dispatch protocol // - Status =3D gBS->LocateProtocol ( - &gEfiSmmSwDispatchProtocolGuid, - NULL, - (void **)&SwDispatch - ); + Status =3D gSmst->SmmLocateProtocol ( + &gEfiSmmSwDispatch2ProtocolGuid, + NULL, + (VOID **)&SwDispatch + ); ASSERT_EFI_ERROR(Status); =20 // @@ -341,11 +341,13 @@ InitializePlatformSmm ( return EFI_SUCCESS; } =20 -VOID +EFI_STATUS EFIAPI SmmReadyToBootCallback ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext + IN EFI_HANDLE DispatchHandle, + IN CONST VOID *Context OPTIONAL, + IN OUT VOID *CommBuffer OPTIONAL, + IN OUT UINTN *CommBufferSize OPTIONAL ) { EFI_STATUS Status; @@ -371,6 +373,7 @@ SmmReadyToBootCallback ( mSetSmmVariableProtocolSmiAllowed =3D FALSE; } =20 + return EFI_SUCCESS; } =20 /** @@ -385,8 +388,10 @@ SmmReadyToBootCallback ( EFI_STATUS EFIAPI =20 SxSleepEntryCallBack ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_SX_DISPATCH_CONTEXT *DispatchContext + IN EFI_HANDLE DispatchHandle, + IN CONST VOID *Context OPTIONAL, + IN OUT VOID *CommBuffer OPTIONAL, + IN OUT UINTN *CommBufferSize OPTIONAL ) { EFI_STATUS Status; @@ -479,11 +484,13 @@ SetAfterG3On ( When a power button event happens, it shuts off the machine =20 **/ -VOID +EFI_STATUS EFIAPI PowerButtonCallback ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_POWER_BUTTON_DISPATCH_CONTEXT *DispatchContext + IN EFI_HANDLE DispatchHandle, + IN CONST VOID *Context OPTIONAL, + IN OUT VOID *CommBuffer OPTIONAL, + IN OUT UINTN *CommBufferSize OPTIONAL ) { // @@ -538,6 +545,8 @@ PowerButtonCallback ( // Should not return // CpuDeadLoop(); + + return EFI_SUCCESS; } =20 =20 @@ -547,11 +556,13 @@ PowerButtonCallback ( @param DispatchContext - The predefined context which contained sleep ty= pe and phase =20 **/ -VOID +EFI_STATUS EFIAPI S5SleepAcLossCallBack ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_SX_DISPATCH_CONTEXT *DispatchContext + IN EFI_HANDLE DispatchHandle, + IN CONST VOID *Context OPTIONAL, + IN OUT VOID *CommBuffer OPTIONAL, + IN OUT UINTN *CommBufferSize OPTIONAL ) { // @@ -561,6 +572,7 @@ S5SleepAcLossCallBack ( if (mAcLossVariable =3D=3D 1) { SetAfterG3On (TRUE); } + return EFI_SUCCESS; } =20 /** @@ -571,11 +583,13 @@ S5SleepAcLossCallBack ( @retval Clears the Save State bit in the clock. =20 **/ -VOID +EFI_STATUS EFIAPI S4S5CallBack ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_SX_DISPATCH_CONTEXT *DispatchContext + IN EFI_HANDLE DispatchHandle, + IN CONST VOID *Context OPTIONAL, + IN OUT VOID *CommBuffer OPTIONAL, + IN OUT UINTN *CommBufferSize OPTIONAL ) { =20 @@ -590,6 +604,7 @@ S4S5CallBack ( IoWrite32(GPIO_BASE_ADDRESS + R_PCH_GPIO_SC_LVL, Data32); } =20 + return EFI_SUCCESS; } =20 =20 @@ -624,16 +639,18 @@ S4S5ProgClock() Enable SCI =20 @param DispatchHandle - EFI Handle - @param DispatchContext - Pointer to the EFI_SMM_SW_DISPATCH_CONTEXT + @param DispatchContext - Pointer to the EFI_SMM_SW_REGISTER_CONTEXT =20 @retval Nothing =20 **/ -VOID +EFI_STATUS EFIAPI EnableAcpiCallback ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext + IN EFI_HANDLE DispatchHandle, + IN CONST VOID *Context OPTIONAL, + IN OUT VOID *CommBuffer OPTIONAL, + IN OUT UINTN *CommBufferSize OPTIONAL ) { UINT32 SmiEn; @@ -690,7 +707,7 @@ EnableAcpiCallback ( Pm1Cnt |=3D B_PCH_ACPI_PM1_CNT_SCI_EN; IoWrite16(mAcpiBaseAddr + R_PCH_ACPI_PM1_CNT, Pm1Cnt); =20 - + return EFI_SUCCESS; } =20 /** @@ -710,16 +727,18 @@ EnableAcpiCallback ( Disable SCI =20 @param DispatchHandle - EFI Handle - @param DispatchContext - Pointer to the EFI_SMM_SW_DISPATCH_CONTEXT + @param DispatchContext - Pointer to the EFI_SMM_SW_REGISTER_CONTEXT =20 @retval Nothing =20 **/ -VOID +EFI_STATUS EFIAPI DisableAcpiCallback ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext + IN EFI_HANDLE DispatchHandle, + IN CONST VOID *Context OPTIONAL, + IN OUT VOID *CommBuffer OPTIONAL, + IN OUT UINTN *CommBufferSize OPTIONAL ) { UINT16 Pm1Cnt; @@ -737,6 +756,7 @@ DisableAcpiCallback ( Pm1Cnt &=3D ~B_PCH_ACPI_PM1_CNT_SCI_EN; IoWrite16(mAcpiBaseAddr + R_PCH_ACPI_PM1_CNT, Pm1Cnt); =20 + return EFI_SUCCESS; } =20 /** diff --git a/Platform/Intel/Vlv2TbltDevicePkg/PlatformSmm/PlatformSmm.inf b= /Platform/Intel/Vlv2TbltDevicePkg/PlatformSmm/PlatformSmm.inf index 73c3b6f2d0..9aff4a4895 100644 --- a/Platform/Intel/Vlv2TbltDevicePkg/PlatformSmm/PlatformSmm.inf +++ b/Platform/Intel/Vlv2TbltDevicePkg/PlatformSmm/PlatformSmm.inf @@ -36,6 +36,7 @@ [Sources] [LibraryClasses] UefiDriverEntryPoint UefiBootServicesTableLib + SmmServicesTableLib DebugLib IoLib BaseLib @@ -52,15 +53,14 @@ [Guids] [Protocols] gEfiSmmIchnDispatchProtocolGuid gEfiGlobalNvsAreaProtocolGuid - gEfiSmmSwDispatchProtocolGuid - gEfiSmmPowerButtonDispatchProtocolGuid - gEfiSmmSxDispatchProtocolGuid + gEfiSmmSwDispatch2ProtocolGuid + gEfiSmmPowerButtonDispatch2ProtocolGuid + gEfiSmmSxDispatch2ProtocolGuid gEfiSmmVariableProtocolGuid =20 [Packages] MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec - IntelFrameworkPkg/IntelFrameworkPkg.dec Vlv2DeviceRefCodePkg/Vlv2DeviceRefCodePkg.dec Vlv2TbltDevicePkg/PlatformPkg.dec =20 @@ -68,11 +68,11 @@ [Pcd.common] gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress =20 [Depex] - gEfiSmmAccess2ProtocolGuid AND - gEfiSmmPowerButtonDispatchProtocolGuid AND - gEfiSmmSxDispatchProtocolGuid AND + gEfiSmmAccess2ProtocolGuid AND + gEfiSmmPowerButtonDispatch2ProtocolGuid AND + gEfiSmmSxDispatch2ProtocolGuid AND gEfiSmmIchnDispatchProtocolGuid AND - gEfiSmmSwDispatchProtocolGuid AND + gEfiSmmSwDispatch2ProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiGlobalNvsAreaProtocolGuid diff --git a/Platform/Intel/Vlv2TbltDevicePkg/PlatformSmm/SmmPlatform.h b/P= latform/Intel/Vlv2TbltDevicePkg/PlatformSmm/SmmPlatform.h index bcb1d8ae92..735a562e3e 100644 --- a/Platform/Intel/Vlv2TbltDevicePkg/PlatformSmm/SmmPlatform.h +++ b/Platform/Intel/Vlv2TbltDevicePkg/PlatformSmm/SmmPlatform.h @@ -21,18 +21,16 @@ Abstract: =20 =20 =20 -#include -#include -#include -#include -#include +#include +#include +#include #include #include -#include +#include #include #include #include -#include "Protocol/GlobalNvsArea.h" +#include #include #include #include @@ -42,6 +40,7 @@ Abstract: #include "PlatformBaseAddresses.h" =20 #include +#include #include #include #include @@ -130,53 +129,59 @@ extern EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *mPciRootBridg= eIo; // // Callback function prototypes // -VOID +EFI_STATUS EFIAPI PowerButtonCallback ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_POWER_BUTTON_DISPATCH_CONTEXT *DispatchContext + IN EFI_HANDLE DispatchHandle, + IN CONST VOID *Context OPTIONAL, + IN OUT VOID *CommBuffer OPTIONAL, + IN OUT UINTN *CommBufferSize OPTIONAL ); =20 -VOID -S5SleepWakeOnLanCallBack ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_SX_DISPATCH_CONTEXT *DispatchContext - ); - -VOID +EFI_STATUS EFIAPI S5SleepAcLossCallBack ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_SX_DISPATCH_CONTEXT *DispatchContext + IN EFI_HANDLE DispatchHandle, + IN CONST VOID *Context OPTIONAL, + IN OUT VOID *CommBuffer OPTIONAL, + IN OUT UINTN *CommBufferSize OPTIONAL ); =20 =20 -VOID +EFI_STATUS EFIAPI =20 S4S5CallBack ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_SX_DISPATCH_CONTEXT *DispatchContext + IN EFI_HANDLE DispatchHandle, + IN CONST VOID *Context OPTIONAL, + IN OUT VOID *CommBuffer OPTIONAL, + IN OUT UINTN *CommBufferSize OPTIONAL ); =20 -VOID +EFI_STATUS EFIAPI =20 EnableAcpiCallback ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext + IN EFI_HANDLE DispatchHandle, + IN CONST VOID *Context OPTIONAL, + IN OUT VOID *CommBuffer OPTIONAL, + IN OUT UINTN *CommBufferSize OPTIONAL ); =20 -VOID +EFI_STATUS EFIAPI DisableAcpiCallback ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext + IN EFI_HANDLE DispatchHandle, + IN CONST VOID *Context OPTIONAL, + IN OUT VOID *CommBuffer OPTIONAL, + IN OUT UINTN *CommBufferSize OPTIONAL ); =20 -VOID +EFI_STATUS EFIAPI SmmReadyToBootCallback ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext + IN EFI_HANDLE DispatchHandle, + IN CONST VOID *Context OPTIONAL, + IN OUT VOID *CommBuffer OPTIONAL, + IN OUT UINTN *CommBufferSize OPTIONAL ); =20 VOID @@ -185,46 +190,18 @@ DummyTco1Callback ( IN EFI_SMM_ICHN_DISPATCH_CONTEXT *DispatchContext ); =20 - -VOID -PerrSerrCallback ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_ICHN_DISPATCH_CONTEXT *DispatchContext - ); - -VOID -RiCallback ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_ICHN_DISPATCH_CONTEXT *DispatchContext - ); - - VOID SetAfterG3On ( BOOLEAN Enable ); =20 -VOID -TurnOffVregUsb ( - ); - -VOID -PStateSupportCallback ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext - ); - -VOID -PStateTransitionCallback ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext - ); - EFI_STATUS EFIAPI =20 SxSleepEntryCallBack ( - IN EFI_HANDLE DispatchHandle, - IN EFI_SMM_SX_DISPATCH_CONTEXT *DispatchContext + IN EFI_HANDLE DispatchHandle, + IN CONST VOID *Context OPTIONAL, + IN OUT VOID *CommBuffer OPTIONAL, + IN OUT UINTN *CommBufferSize OPTIONAL ); =20 EFI_STATUS @@ -232,6 +209,5 @@ SaveRuntimeScriptTable ( VOID ); =20 - #endif =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 (#43071): https://edk2.groups.io/g/devel/message/43071 Mute This Topic: https://groups.io/mt/32267627/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-