From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (NAM11-DM6-obe.outbound.protection.outlook.com [40.107.223.40]) by mx.groups.io with SMTP id smtpd.web10.134126.1673756769364599552 for ; Sat, 14 Jan 2023 20:26:09 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=qV0EhEun; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.223.40, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hSpkgEBy3/OEYtHTN2aEMxWFXq8kJAaSwJoD0gvMvHAl0rNGaqCCTbKwKk3i0z5ygxlUfnXiDky2y9XzsaYBHJKA72grrmj8DD12Zj/ANaanGJe+RmxtKwHl1nceyccKZ5JgX8LbhhqRbRDsbzdoXGrPODaFsrmIdLYoXgLGWt/QJ64vb6mRsaEh+yFDln8KfO79QlRd9uADw1i4nPVT77vLJ+TWvZ8Nf5AC3tPoFYyA9p7zJk9JSkRTzva+4b1AApF9e0r8+VAuCrKSBcEWjEcvL2eQ9IPha1QC0Tv3erUUl+LInfE9hHwRZtPMCKyZuGD46kyYcXhb+2mZ6yQczQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=B7U1ckrip3mqhmLGgYq1zMm5jGB/vW5gp3Etnzx7kk0=; b=aKbsc+hleYsDG+/5jMIUfS1Dpj5nUq2BN4sFszmrQfNHvhb7tlY1x+lk5zL5TTR54NGiZ7vrWZ85Q3Fnur8hFpFsBnLCskM3xUdb0u0pVlckkmLSHK87gtLsPsIovIVkNoaa76/wo7VrhSU7IJK//t5g9RC6VdwQEHkPMvbXQ7hTzOQQSCUw18OCl7ugr/tehgwU1K7FFqJPvMH/Rf+6r3PkVRdPCDJouO7pW6EvJBnUWWUp8w4MuyHRpBmtXA0EaZ2GsH+NuD/XgXTUsggFkTXu8pQ8gtYJbxba+5ZHeWB2rFo3J1k/okWE9YhdhfzehXlOVvmDsW7oMxBuF+GrrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=B7U1ckrip3mqhmLGgYq1zMm5jGB/vW5gp3Etnzx7kk0=; b=qV0EhEunopQ5LBCyjimckULji915RVCqWDDZlsih78PAlG1dtGIri6oEbXK44zDUMeog0EUoyhXCS7ebpBWQfdPJKnzbdAY/r/W663V+Hw0bA+2EcoDwN+ck04+pHHOTBWgEEdXuIhAWg352niHWDCzndobVjf/FQJggDctd9HU= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by CY5PR12MB6204.namprd12.prod.outlook.com (2603:10b6:930:23::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.13; Sun, 15 Jan 2023 04:26:07 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::cddb:3de9:cd1d:26e4]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::cddb:3de9:cd1d:26e4%5]) with mapi id 15.20.5986.022; Sun, 15 Jan 2023 04:26:07 +0000 From: "Chang, Abner" To: "devel@edk2.groups.io" , "Attar, AbdulLateef (Abdul Lateef)" CC: "Grimes, Paul" , "Kirkendall, Garrett" , Eric Dong , Ray Ni , Rahul Kumar , Gerd Hoffmann Subject: Re: [edk2-devel] [PATCH v2 3/6] UefiCpuPkg: Adds SmmSmramSaveStateLib library class Thread-Topic: [edk2-devel] [PATCH v2 3/6] UefiCpuPkg: Adds SmmSmramSaveStateLib library class Thread-Index: AQHZJYRfRjZa6CoH9kG6Y189W3l2Ba6e564w Date: Sun, 15 Jan 2023 04:26:07 +0000 Message-ID: References: <754ac0bb0fb5bd75a2343d0030a18204672d7769.1673417268.git.abdattar@amd.com> In-Reply-To: <754ac0bb0fb5bd75a2343d0030a18204672d7769.1673417268.git.abdattar@amd.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-01-15T04:26:03Z; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=15f5f809-d3ff-4362-a085-388579ea8381; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB3966:EE_|CY5PR12MB6204:EE_ x-ms-office365-filtering-correlation-id: 623a454c-e906-4348-d52e-08daf6b09f31 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cFHLlQAp1IFKRyztCpp6bIYVzH3HO8UrsFrMIar1SIPCPiCgYpb/9uUVp4dE+oOtkUk0t9bfjCnPuzvjqg7wYml5/jkP+sb5Au29eqdYLhDp6vDRGgZARLkGJ4JjoNRJ+vZbyRzv+BeaEAgHTZA7CqYELID7qgZNRnKAX7ApsiCiio6311ZAmFVVPF7F34R57uKhATZh/Zp3L2wKx7dNQzrwOhU0/Ll7+ukrjdrXu+RhMxsNwbA9R2ThtlBWOn7brNPXvC12Qq9QjpY6Lovzo9MrjEU2s8IATL4YVBYA42UY70eb+jS3KvMtFOos8mt8c+Ph7Icy3vC5wZuum2PXfbXVvnIME3LgHcSS37HhiBWOJr1s6cwAxNtAgG+jyqS8HsuTTJwBXOVyZ7Bx6gZDS3I2cHFSPKosSrEeSHWzVKol/mS4JgnEIWdbbf1Gg1LEnoPxN0gVnjlffPkvHwemnIs5RJtqaE4/1mLHWNoMrBYSbBWIp52X7WNsurSmQgbhw0b7Ur4dBQvch4d4hM2+4dhBkq25uBx0Z8LuSJPlJdcMK3kmKDVC29bf+q8Xt8gZWBRpKRu3On0p29Sy/4JmF4zvoqq1BhF78VCa6/iyCRvGAfgb33dBVuGuaNiPqDrSnM8NfQ4jw0VREQxSym+78VbHzHVoeluJi3CgxZ4dQVEeewSEv3h0w/kyhldHlu2kdBRezD8/5NmY0V9QkTPpk/PV4dkJW61t7o0rWAjR/sI= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3966.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(376002)(136003)(396003)(346002)(39860400002)(366004)(451199015)(66899015)(38070700005)(86362001)(8936002)(8676002)(4326008)(52536014)(66476007)(64756008)(76116006)(66946007)(66556008)(66446008)(55016003)(2906002)(5660300002)(83380400001)(122000001)(33656002)(38100700002)(478600001)(966005)(7696005)(71200400001)(110136005)(54906003)(6636002)(45080400002)(316002)(41300700001)(53546011)(9686003)(26005)(186003)(6506007)(213903007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?sILAyJ1OzEMNJffOEsqkmrb53DABqaokYtPin1EWulT8zeWvoWsJBgPKtLDF?= =?us-ascii?Q?wePLw4Ip00Qxv3AJXRjveI4syW69OJghgwEJA4eEdUU26tjSHpqC4prdgTW7?= =?us-ascii?Q?EDGzpPs0U7tm332BYkPaN8xfdoTLeMkbGyPGedJ+s2WkkZ51cX97Ggl5VrKX?= =?us-ascii?Q?Gu5WSx++BxwnaJt9mCdqeRAC54Aga75IUC/RZPsorjnFA0SmdFd0Ck10pD9k?= =?us-ascii?Q?A3j8MsgTIwslTpT1n+OGoiBn7H7tPYzQl9JS/5wxNrjPNCMOCd503RiJP3sm?= =?us-ascii?Q?sMAVctV/2sf7/txo6u55c4KaduZXcxk0z4qlrslJ8mkgppEV7JyJcdqS2xV5?= =?us-ascii?Q?dzDl9gnrT2M+QiHMWSt3CbKMUjmk06iU9h7FF8JmhhJ4yDOpRklIWxYT6dqS?= =?us-ascii?Q?EZMYHrWWKpM8kSt9lr7MjbQzUxzEkWKrFCmIbiPNO2d2CphlFrpHMHNS7j4X?= =?us-ascii?Q?AvRXsjpbMhmn3TaAqNIdca8+/H2o7rTM/m7wwbqeJfp1RIWEFf62CaqN8eOK?= =?us-ascii?Q?gdHhYT+bmaf7Y78aS9iTJjZ9H87AFRc6pcZJeVoHCq0akRHF7sxaJ+fPfzFK?= =?us-ascii?Q?gmt7GBaY6fJkMVZUrzWTblJXyi3pVHjS6L2Hz2Yj+be4ZPzC0PZZnTqnPLZ5?= =?us-ascii?Q?yAMitX1GXdMV9b94uixSDmW03HVmZTcCduITCBRidhWvBet5Ojb1pTpfDjJO?= =?us-ascii?Q?eisSLF1W80pZvSEx0ah99pgfFPxbBkCWq35d68AYQPP7CMKVG/51CZiWHg/R?= =?us-ascii?Q?ULTXhd6vhYvTTYZ1qoNoyg6t7F2lQ/NkIoieNmp2yhcdQPVAS1OTybNA7GC8?= =?us-ascii?Q?APdAa50t5ml6+7r5kCp0jG+0GMm2NVKeG89kBLY9dGuj430rtqfY976vFN6S?= =?us-ascii?Q?r9EslMF6ycTRNqymS7upv5C2Ud1ir8TkXhO/uC1zMN4lR5w3a2m5SsdU2yOu?= =?us-ascii?Q?elAru5GlGX6t2WDhLzo6Y07azOtc+VWQre1/7r0ygE8kecC0yxcZsRFxKoxe?= =?us-ascii?Q?IWwX7hpla+hmNS1e7GXwbwld5vVcG2yetfz6Mh01mijEgdtwWMrfcpNWs+vG?= =?us-ascii?Q?BKjvfMCiSE7gZU6lBuzLk+Hp/E9HMIu33U9LAyBvvAhtRotKs5ELCuZmfgtp?= =?us-ascii?Q?Cc274TWIdBr4OwCXczaZsuFkyBBxnYtvh3oRLnYQS/hT0NsP2w5SgtizoBwx?= =?us-ascii?Q?QtWKj25a6slw47ofrtDmZ7e9PsahULOflA3Uf9xC0IRkUbRN5er6vi6UCunQ?= =?us-ascii?Q?GHKszqucCCr+LP2gchzUfUq4Yd9lMKioF1epGZN8q+AyHknyS8UP/9NuVgsT?= =?us-ascii?Q?oYt0bDnXvxbAUE6oXG5evgDVr7azIb/fKoLDc9IkYFO/8mvQJZzd6YwnUIg1?= =?us-ascii?Q?B8rqG6CoEUQw2fXXtCKOPBRIJ25IuHDYKDhRbHLTzhAlxWAQHI3OuZDNLXSo?= =?us-ascii?Q?IB9MCZUhrIESkYNI4jNAGNfzhOG+6xDSExUkYb/xl0xuXYnzNA6EMBWSavEY?= =?us-ascii?Q?G86t64a8j4tB34rZGwOVTUTJSTgKlbvynh/kvDOyNdRquHmHuv8+pUYn0fLC?= =?us-ascii?Q?ezYFOhZOT/npfzptovkeilW33dsfN2oWpDnDrMHh?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3966.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 623a454c-e906-4348-d52e-08daf6b09f31 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jan 2023 04:26:07.1554 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Y23aHltytM1L1pQjUbkpbUBq5TNqKVbi4ElW+yrG/tOeuJGLaABsVQ+Yqtzhjnd1YdxvjY38WJJCmfkHe7m/UQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6204 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] Comments in line. > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Abdul > Lateef Attar via groups.io > Sent: Wednesday, January 11, 2023 2:16 PM > To: devel@edk2.groups.io > Cc: Attar, AbdulLateef (Abdul Lateef) ; > Grimes, Paul ; Kirkendall, Garrett > ; Chang, Abner ; > Eric Dong ; Ray Ni ; Rahul Kumar > ; Gerd Hoffmann > Subject: [edk2-devel] [PATCH v2 3/6] UefiCpuPkg: Adds > SmmSmramSaveStateLib library class >=20 > Caution: This message originated from an External Source. Use proper > caution when opening attachments, clicking links, or responding. >=20 >=20 > BZ: > https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fbugz > illa.tianocore.org%2Fshow_bug.cgi%3Fid%3D4182&data=3D05%7C01%7Cabner. > chang%40amd.com%7C90493fee40864523f7d508daf39b7e40%7C3dd8961fe4 > 884e608e11a82d994e183d%7C0%7C0%7C638090146447645457%7CUnknown > %7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1ha > WwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3DE1WQL7%2F65L1K%2F6S > uvA0EKpQ55V1J36Ofe3NklDf3Cqw%3D&reserved=3D0 >=20 > Adds SmmSmramSaveStateLib Library class in UefiCpuPkg.dec. > Adds function declaration header file. >=20 > Cc: Paul Grimes > Cc: Garrett Kirkendall > Cc: Abner Chang > Cc: Eric Dong > Cc: Ray Ni > Cc: Rahul Kumar > Cc: Gerd Hoffmann >=20 > Signed-off-by: Abdul Lateef Attar > --- > UefiCpuPkg/UefiCpuPkg.dec | 4 ++ > .../Include/Library/SmmSmramSaveStateLib.h | 69 > +++++++++++++++++++ > 2 files changed, 73 insertions(+) > create mode 100644 UefiCpuPkg/Include/Library/SmmSmramSaveStateLib.h >=20 > diff --git a/UefiCpuPkg/UefiCpuPkg.dec b/UefiCpuPkg/UefiCpuPkg.dec > index cff239d5283e..1de90b677828 100644 > --- a/UefiCpuPkg/UefiCpuPkg.dec > +++ b/UefiCpuPkg/UefiCpuPkg.dec > @@ -2,6 +2,7 @@ > # This Package provides UEFI compatible CPU modules and libraries. >=20 > # >=20 > # Copyright (c) 2007 - 2022, Intel Corporation. All rights reserved.
>=20 > +# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights > +reserved.
>=20 > # >=20 > # SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > # >=20 > @@ -65,6 +66,9 @@ [LibraryClasses.IA32, LibraryClasses.X64] > ## @libraryclass Provides function for manipulating x86 paging struc= tures. >=20 > CpuPageTableLib|Include/Library/CpuPageTableLib.h >=20 >=20 >=20 > + ## @libraryclass Provides functions for manipulating Smram savestate > registers. >=20 > + SmmSmramSaveSateLib|Include/Library/SmmSmramSaveStateLib.h >=20 > + >=20 > [Guids] >=20 > gUefiCpuPkgTokenSpaceGuid =3D { 0xac05bf33, 0x995a, 0x4ed4, { 0xa= a, > 0xb8, 0xef, 0x7a, 0xe8, 0xf, 0x5c, 0xb0 }} >=20 > gMsegSmramGuid =3D { 0x5802bce4, 0xeeee, 0x4e33, { 0xa= 1, 0x30, > 0xeb, 0xad, 0x27, 0xf0, 0xe4, 0x39 }} >=20 > diff --git a/UefiCpuPkg/Include/Library/SmmSmramSaveStateLib.h > b/UefiCpuPkg/Include/Library/SmmSmramSaveStateLib.h > new file mode 100644 > index 000000000000..d10eb064ceac > --- /dev/null > +++ b/UefiCpuPkg/Include/Library/SmmSmramSaveStateLib.h > @@ -0,0 +1,69 @@ > +/** @file >=20 > +Library that provides service to read/write CPU specific smram save stat= e > registers. >=20 > + >=20 > +Copyright (c) 2010 - 2019, Intel Corporation. All rights reserved.
>=20 > +Copyright (C) 2023 Advanced Micro Devices, Inc. All rights > +reserved.
>=20 > + >=20 > +SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > + >=20 > +**/ >=20 > + >=20 > +#ifndef SMM_SMRAM_SAVE_STATE_LIB_H_ >=20 > +#define SMM_SMRAM_SAVE_STATE_LIB_H_ >=20 > + >=20 > +#include >=20 > +#include >=20 > + >=20 > +/** >=20 > + Read an SMM Save State register on the target processor. If this > + function >=20 > + returns EFI_UNSUPPORTED, then the caller is responsible for reading > + the >=20 > + SMM Save Sate register. >=20 > + >=20 > + @param[in] CpuIndex The index of the CPU to read the SMM Save > + State. The >=20 > + value must be between 0 and the NumberOfCpus > + field in >=20 > + the System Management System Table (SMST). >=20 > + @param[in] Register The SMM Save State register to read. >=20 > + @param[in] Width The number of bytes to read from the CPU save > state. >=20 > + @param[out] Buffer Upon return, this holds the CPU register value r= ead >=20 > + from the save state. >=20 > + >=20 > + @retval EFI_SUCCESS The register was read from Save State. >=20 > + @retval EFI_INVALID_PARAMTER Buffer is NULL. >=20 > + @retval EFI_UNSUPPORTED This function does not support reading [Chang, Abner]=20 EFI_NOT_FOUND is missed in @retval. > Register. >=20 > + >=20 > +**/ >=20 > +EFI_STATUS >=20 > +EFIAPI >=20 > +SmramSaveStateReadRegister ( >=20 > + IN UINTN CpuIndex, >=20 > + IN EFI_SMM_SAVE_STATE_REGISTER Register, >=20 > + IN UINTN Width, >=20 > + OUT VOID *Buffer >=20 > + ); >=20 > + >=20 > +/** >=20 > + Writes an SMM Save State register on the target processor. If this > + function >=20 > + returns EFI_UNSUPPORTED, then the caller is responsible for writing > + the >=20 > + SMM Save Sate register. >=20 > + >=20 > + @param[in] CpuIndex The index of the CPU to write the SMM Save > + State. The >=20 > + value must be between 0 and the NumberOfCpus > + field in >=20 > + the System Management System Table (SMST). >=20 > + @param[in] Register The SMM Save State register to write. >=20 > + @param[in] Width The number of bytes to write to the CPU save stat= e. >=20 > + @param[in] Buffer Upon entry, this holds the new CPU register value= . >=20 > + >=20 > + @retval EFI_SUCCESS The register was written to Save State. >=20 > + @retval EFI_INVALID_PARAMTER Buffer is NULL. >=20 > + @retval EFI_UNSUPPORTED This function does not support writing [Chang, Abner]=20 EFI_NOT_FOUND is missed in @retval. Thanks Abner > Register. >=20 > +**/ >=20 > +EFI_STATUS >=20 > +EFIAPI >=20 > +SmramSaveStateWriteRegister ( >=20 > + IN UINTN CpuIndex, >=20 > + IN EFI_SMM_SAVE_STATE_REGISTER Register, >=20 > + IN UINTN Width, >=20 > + IN CONST VOID *Buffer >=20 > + ); >=20 > + >=20 > +#endif >=20 > -- > 2.25.1 >=20 >=20 >=20 >=20 >=20