[AMD Official Use Only - General] Reviewed-by: Abner Chang <abner.ch...@amd.com>
> -----Original Message----- > From: Abdul Lateef Attar <abdat...@amd.com> > Sent: Thursday, January 19, 2023 1:01 AM > To: devel@edk2.groups.io > Cc: Attar, AbdulLateef (Abdul Lateef) <abdullateef.at...@amd.com>; > Grimes, Paul <paul.gri...@amd.com>; Kirkendall, Garrett > <garrett.kirkend...@amd.com>; Chang, Abner <abner.ch...@amd.com>; > Eric Dong <eric.d...@intel.com>; Ray Ni <ray...@intel.com>; Rahul Kumar > <rahul1.ku...@intel.com>; Gerd Hoffmann <kra...@redhat.com> > Subject: [PATCH v3 2/6] UefiCpuPkg: Adds SmmSmramSaveStateLib library > class > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4182 > > Adds SmmSmramSaveStateLib Library class in UefiCpuPkg.dec. > Adds function declaration header file. > > Cc: Paul Grimes <paul.gri...@amd.com> > Cc: Garrett Kirkendall <garrett.kirkend...@amd.com> > Cc: Abner Chang <abner.ch...@amd.com> > Cc: Eric Dong <eric.d...@intel.com> > Cc: Ray Ni <ray...@intel.com> > Cc: Rahul Kumar <rahul1.ku...@intel.com> > Cc: Gerd Hoffmann <kra...@redhat.com> > > Signed-off-by: Abdul Lateef Attar <abdat...@amd.com> > --- > UefiCpuPkg/UefiCpuPkg.dec | 4 ++ > .../Include/Library/SmmSmramSaveStateLib.h | 70 > +++++++++++++++++++ > 2 files changed, 74 insertions(+) > create mode 100644 UefiCpuPkg/Include/Library/SmmSmramSaveStateLib.h > > 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. # # > Copyright (c) 2007 - 2022, Intel Corporation. All rights reserved.<BR>+# > Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR> # # > SPDX-License-Identifier: BSD-2-Clause-Patent #@@ -65,6 +66,9 @@ > [LibraryClasses.IA32, LibraryClasses.X64] > ## @libraryclass Provides function for manipulating x86 paging > structures. > CpuPageTableLib|Include/Library/CpuPageTableLib.h + ## @libraryclass > Provides functions for manipulating Smram savestate registers.+ > SmmSmramSaveSateLib|Include/Library/SmmSmramSaveStateLib.h+ [Guids] > gUefiCpuPkgTokenSpaceGuid = { 0xac05bf33, 0x995a, 0x4ed4, { 0xaa, 0xb8, > 0xef, 0x7a, 0xe8, 0xf, 0x5c, 0xb0 }} gMsegSmramGuid = { > 0x5802bce4, > 0xeeee, 0x4e33, { 0xa1, 0x30, 0xeb, 0xad, 0x27, 0xf0, 0xe4, 0x39 }}diff --git > a/UefiCpuPkg/Include/Library/SmmSmramSaveStateLib.h > b/UefiCpuPkg/Include/Library/SmmSmramSaveStateLib.h > new file mode 100644 > index 000000000000..46bc6381bcde > --- /dev/null > +++ b/UefiCpuPkg/Include/Library/SmmSmramSaveStateLib.h > @@ -0,0 +1,70 @@ > +/** @file+Library that provides service to read/write CPU specific smram > save state registers.++Copyright (c) 2010 - 2019, Intel Corporation. All > rights > reserved.<BR>+Copyright (C) 2023 Advanced Micro Devices, Inc. All rights > reserved.<BR>++SPDX-License-Identifier: BSD-2-Clause- > Patent++**/++#ifndef SMM_SMRAM_SAVE_STATE_LIB_H_+#define > SMM_SMRAM_SAVE_STATE_LIB_H_++#include > <Protocol/SmmCpu.h>+#include <Uefi/UefiBaseType.h>++/**+ Read an > SMM Save State register on the target processor. If this function+ returns > EFI_UNSUPPORTED, then the caller is responsible for reading the+ SMM > Save Sate register.++ @param[in] CpuIndex The index of the CPU to read > the SMM Save State. The+ value must be between 0 and > the > NumberOfCpus field in+ the System Management System > Table > (SMST).+ @param[in] Register The SMM Save State register to read.+ > @param[in] Width The number of bytes to read from the CPU save state.+ > @param[out] Buffer Upon return, this holds the CPU register value read+ > from the save state.++ @retval EFI_SUCCESS The register was read > from Save State.+ @retval EFI_INVALID_PARAMTER Buffer is NULL.+ > @retval EFI_UNSUPPORTED This function does not support reading > Register.+ @retval EFI_NOT_FOUND If desired Register not > found.+**/+EFI_STATUS+EFIAPI+SmramSaveStateReadRegister (+ IN > UINTN CpuIndex,+ IN EFI_SMM_SAVE_STATE_REGISTER > Register,+ IN UINTN Width,+ OUT VOID > *Buffer+ );++/**+ Writes an SMM Save State register on the target > processor. If this function+ returns EFI_UNSUPPORTED, then the caller is > responsible for writing the+ SMM Save Sate register.++ @param[in] > CpuIndex The index of the CPU to write the SMM Save State. The+ > value must be between 0 and the NumberOfCpus field in+ > the > System Management System Table (SMST).+ @param[in] Register The > SMM Save State register to write.+ @param[in] Width The number of > bytes to write to the CPU save state.+ @param[in] Buffer Upon entry, this > holds the new CPU register value.++ @retval EFI_SUCCESS The > register > was written to Save State.+ @retval EFI_INVALID_PARAMTER Buffer is > NULL.+ @retval EFI_UNSUPPORTED This function does not support > writing Register.+ @retval EFI_NOT_FOUND If desired Register not > found.+**/+EFI_STATUS+EFIAPI+SmramSaveStateWriteRegister (+ IN > UINTN CpuIndex,+ IN EFI_SMM_SAVE_STATE_REGISTER > Register,+ IN UINTN Width,+ IN CONST VOID > *Buffer+ );++#endif-- > 2.25.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#98860): https://edk2.groups.io/g/devel/message/98860 Mute This Topic: https://groups.io/mt/96358348/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-