OvmfPkg/ResetVector: cache the SEV status MSR value in workarea
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3582 In order to probe the SEV feature the BaseMemEncryptLib and Reset vector reads the SEV_STATUS MSR. Cache the value on the first read in the workarea. In the next patches the value saved in the workarea will be used by the BaseMemEncryptLib. This not only eliminates the extra MSR reads it also helps cleaning up the code in BaseMemEncryptLib. Cc: Min Xu <min.m.xu@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Tom Lendacky <thomas.lendacky@amd.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Cc: Erdem Aktas <erdemaktas@google.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com> Acked-by: Jiewen Yao <jiewen.yao@intel.com>
This commit is contained in:
committed by
mergify[bot]
parent
de463163d9
commit
63c50d3ff2
@@ -46,12 +46,20 @@ typedef struct _CONFIDENTIAL_COMPUTING_WORK_AREA_HEADER {
|
||||
// any changes must stay in sync with its usage.
|
||||
//
|
||||
typedef struct _SEC_SEV_ES_WORK_AREA {
|
||||
UINT8 SevEsEnabled;
|
||||
UINT8 Reserved1[7];
|
||||
//
|
||||
// Hold the SevStatus MSR value read by OvmfPkg/ResetVector/Ia32/AmdSev.c
|
||||
//
|
||||
UINT64 SevStatusMsrValue;
|
||||
|
||||
UINT64 RandomData;
|
||||
|
||||
UINT64 EncryptionMask;
|
||||
|
||||
//
|
||||
// Indicator that the VC handler is called. It is used during the SevFeature
|
||||
// detection in OvmfPkg/ResetVector/Ia32/AmdSev.c
|
||||
//
|
||||
UINT8 ReceivedVc;
|
||||
} SEC_SEV_ES_WORK_AREA;
|
||||
|
||||
//
|
||||
|
Reference in New Issue
Block a user