audk/MdePkg/Include/ConfidentialComputingGuestAttr.h
Alexey Kardashevskiy 3f28aa2fb0 MdePkg: Add AMD SEV features to PcdConfidentialComputingGuestAttr
PcdConfidentialComputingGuestAttr so far only contained an SEV mode bit
but there are more other features which do not translate to levels
such as DebugVirtualization or SecureTsc.

Add the feature mask and the DebugVirtualization feature bit to the PCD.

Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Alexey Kardashevskiy <aik@amd.com>
---
Changes:
v4:
* s/CCAttrFeatureAmdSevDebugSwap/CCAttrFeatureAmdSevEsDebugVirtualization/

v2:
* expanded features mask
* added type mask
2024-07-04 20:39:26 +00:00

49 lines
1.4 KiB
C

/** @file
Definitions for Confidential Computing Guest Attributes
Copyright (c) 2021 AMD Inc. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef CONFIDENTIAL_COMPUTING_GUEST_ATTR_H_
#define CONFIDENTIAL_COMPUTING_GUEST_ATTR_H_
//
// Confidential computing guest type
//
typedef enum {
CcGuestTypeNonEncrypted = 0,
CcGuestTypeAmdSev,
CcGuestTypeIntelTdx,
} CC_GUEST_TYPE;
typedef enum {
/* The guest is running with memory encryption disabled. */
CCAttrNotEncrypted = 0,
/* The guest is running with AMD SEV memory encryption enabled. */
CCAttrAmdSev = 0x100,
CCAttrAmdSevEs = 0x101,
CCAttrAmdSevSnp = 0x102,
/* The guest is running with Intel TDX memory encryption enabled. */
CCAttrIntelTdx = 0x200,
CCAttrTypeMask = 0x000000000000ffff,
/* Features */
/* The AMD SEV-ES DebugVirtualization feature is enabled in SEV_STATUS */
CCAttrFeatureAmdSevEsDebugVirtualization = 0x0000000000010000,
CCAttrFeatureMask = 0xffffffffffff0000,
} CONFIDENTIAL_COMPUTING_GUEST_ATTR;
#define _CC_GUEST_IS_TDX(x) ((x) == CCAttrIntelTdx)
#define CC_GUEST_IS_TDX(x) _CC_GUEST_IS_TDX((x) & CCAttrTypeMask)
#define _CC_GUEST_IS_SEV(x) ((x) == CCAttrAmdSev || (x) == CCAttrAmdSevEs || (x) == CCAttrAmdSevSnp)
#define CC_GUEST_IS_SEV(x) _CC_GUEST_IS_SEV((x) & CCAttrTypeMask)
#endif