Hi, Ray & Eric I am doing the TDVF upstreaming and this commit is in UefiCpuPkg. You're the maintainer of UefiCpuPkg. Your comments to this patch is great helpful. The complete code is at: https://github.com/mxu9/edk2/tree/tdvf_wave2.v6
Thanks Min > > RFC: https://bugzilla.tianocore.org/show_bug.cgi?id=3429 > > VmgExitLib performs the necessary processing to handle a #VC exception. > VmgExitLibNull is a NULL instance of VmgExitLib which provides a default > limited interface. In this commit VmgExitLibNull is extended to handle a #VE > exception with a default limited interface. A full feature version of #VE > handler will be created later. > > Cc: Brijesh Singh <brijesh.si...@amd.com> > Cc: Erdem Aktas <erdemak...@google.com> > Cc: James Bottomley <j...@linux.ibm.com> > Cc: Jiewen Yao <jiewen....@intel.com> > Cc: Tom Lendacky <thomas.lenda...@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> > Acked-by: Gerd Hoffmann <kra...@redhat.com> > Signed-off-by: Min Xu <min.m...@intel.com> > --- > UefiCpuPkg/Include/Library/VmgExitLib.h | 28 ++++++++++++++ > .../Library/VmgExitLibNull/VmTdExitNull.c | 38 +++++++++++++++++++ > .../Library/VmgExitLibNull/VmgExitLibNull.inf | 1 + > 3 files changed, 67 insertions(+) > create mode 100644 UefiCpuPkg/Library/VmgExitLibNull/VmTdExitNull.c > > diff --git a/UefiCpuPkg/Include/Library/VmgExitLib.h > b/UefiCpuPkg/Include/Library/VmgExitLib.h > index ebda1c3d907c..f9f911099a7b 100644 > --- a/UefiCpuPkg/Include/Library/VmgExitLib.h > +++ b/UefiCpuPkg/Include/Library/VmgExitLib.h > @@ -15,6 +15,8 @@ > #include <Protocol/DebugSupport.h> > #include <Register/Amd/Ghcb.h> > > +#define VE_EXCEPTION 20 > + > /** > Perform VMGEXIT. > > @@ -142,4 +144,30 @@ VmgExitHandleVc ( > IN OUT EFI_SYSTEM_CONTEXT SystemContext > ); > > +/** > + Handle a #VE exception. > + > + Performs the necessary processing to handle a #VE exception. > + > + The base library function returns an error equal to VE_EXCEPTION, to > + be propagated to the standard exception handling stack. > + > + @param[in, out] ExceptionType Pointer to an EFI_EXCEPTION_TYPE to be > set > + as value to use on error. > + @param[in, out] SystemContext Pointer to EFI_SYSTEM_CONTEXT > + > + @retval EFI_SUCCESS Exception handled > + @retval EFI_UNSUPPORTED #VE not supported, (new) exception value > to > + propagate provided > + @retval EFI_PROTOCOL_ERROR #VE handling failed, (new) exception > value to > + propagate provided > + > +**/ > +EFI_STATUS > +EFIAPI > +VmTdExitHandleVe ( > + IN OUT EFI_EXCEPTION_TYPE *ExceptionType, > + IN OUT EFI_SYSTEM_CONTEXT SystemContext > + ); > + > #endif > diff --git a/UefiCpuPkg/Library/VmgExitLibNull/VmTdExitNull.c > b/UefiCpuPkg/Library/VmgExitLibNull/VmTdExitNull.c > new file mode 100644 > index 000000000000..6a4e8087cb89 > --- /dev/null > +++ b/UefiCpuPkg/Library/VmgExitLibNull/VmTdExitNull.c > @@ -0,0 +1,38 @@ > +/** @file > + > + Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> > + > + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > +#include <Base.h> > +#include <Uefi.h> > +#include <Library/VmgExitLib.h> > + > +/** > + Handle a #VE exception. > + > + Performs the necessary processing to handle a #VE exception. > + > + @param[in, out] ExceptionType Pointer to an EFI_EXCEPTION_TYPE to be > set > + as value to use on error. > + @param[in, out] SystemContext Pointer to EFI_SYSTEM_CONTEXT > + > + @retval EFI_SUCCESS Exception handled > + @retval EFI_UNSUPPORTED #VE not supported, (new) exception value > to > + propagate provided > + @retval EFI_PROTOCOL_ERROR #VE handling failed, (new) exception > value to > + propagate provided > + > +**/ > +EFI_STATUS > +EFIAPI > +VmTdExitHandleVe ( > + IN OUT EFI_EXCEPTION_TYPE *ExceptionType, > + IN OUT EFI_SYSTEM_CONTEXT SystemContext > + ) > +{ > + *ExceptionType = VE_EXCEPTION; > + > + return EFI_UNSUPPORTED; > +} > diff --git a/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > b/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > index d8770a21c355..4aab601939ff 100644 > --- a/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > +++ b/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > @@ -17,6 +17,7 @@ > > [Sources.common] > VmgExitLibNull.c > + VmTdExitNull.c > > [Packages] > MdePkg/MdePkg.dec > -- > 2.29.2.windows.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#86875): https://edk2.groups.io/g/devel/message/86875 Mute This Topic: https://groups.io/mt/89252025/21656 Mute #ve:https://edk2.groups.io/g/devel/mutehashtag/ve Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-