Skip to main content

Module snp

Module snp 

Source
Expand description

AMD SEV-SNP specific definitions.

Structs§

GhcbHypercallParameters
Struct representing GHCB hypercall parameters. These are located at the GHCB page starting at GHCB_PAGE_HYPERCALL_PARAMETERS_OFFSET.
GhcbInfo
GhcbMsr
GhcbPage
GhcbPageHvHypercall
GHCB layout for the secure enlightened Hyper-V hypercalls.
GhcbProtocolVersion
GhcbSaveArea
GhcbUsage
GuestFieldSelect
Indicate which guest-selectable fields will be mixed into the key. See GUEST_FIELD_SELECT in Table 19, “SEV Secure Nested Paging Firmware ABI specification”, Revision 1.55.
HvPspCpuidLeaf
PSP data structures.
HvPspCpuidPage
MovCrxDrxInfo
SecureAvicControl
SEV secure AVIC control register
SevAvicIncompleteIpiInfo1
AVIC exit info1 for the incomplete IPI exit
SevAvicIncompleteIpiInfo2
AVIC exit info2 for the incomplete IPI exit
SevAvicIpiFailure
SevAvicIrrRegister
Structure representing the SEV-ES AVIC IRR register.
SevAvicNoAccelInfo
AVIC SEV exit info1 for the no acceleration exit
SevAvicPage
Structure representing the SEV-ES AVIC backing page. Specification: “AMD64 PPR Vol3 System Programming”, 15.29.3 AVIC Backing Page.
SevAvicRegisterNumber
SevEventInjectInfo
SevExitCode
SevFeatures
SevInvlpgbEcx
SevInvlpgbEdx
SevInvlpgbRax
SevIoAccessInfo
SevNpfInfo
SevRmpAdjust
SevSelector
A X64 selector register.
SevStatusMsr
SevVirtualInterruptControl
SevVmsa
SEV VMSA structure representing CPU state
SevXmmRegister
An X64 XMM register.
SnpDerivedKeyReq
Request structure for the SNP_GET_DERIVED_KEY request. See MSG_KEY_REQ in Table 18, “SEV Secure Nested Paging Firmware ABI specification”, Revision 1.55.
SnpDerivedKeyResp
Response structure for the SNP_GET_DERIVED_KEY request. See MSG_KEY_RSP in Table 20, “SEV Secure Nested Paging Firmware ABI specification”, Revision 1.55.
SnpIdBlockPublicKey
Public key used by an SNP ID block.
SnpIdBlockSignature
ECDSA signature components used by an SNP ID block.
SnpPageInfo
Structure describing the pages being read during SNP ID block measurement. Each structure is hashed with the previous structures digest to create a final measurement
SnpPageType
The type of page described by SnpPageInfo
SnpPspIdAuth
SNP PSP ID block authentication page.
SnpPspIdAuthPublicKey
ECDSA public key in an SNP PSP ID authentication page.
SnpPspIdAuthSignature
ECDSA signature in an SNP PSP ID authentication page.
SnpPspIdBlock
Structure containing the completed SNP measurement of the IGVM file. The signature of the hash of this struct is the id_key_signature for igvm_defs::IGVM_VHS_SNP_ID_BLOCK.
SnpReport
SNP attestation report layout. See ATTESTATION_REPORT in the SEV-SNP Firmware ABI specification (AMD 56860).
SnpReportReq
Request structure for the SNP_GET_REPORT request. See MSG_REPORT_REQ in Table 21, “SEV Secure Nested Paging Firmware ABI specification”, Revision 1.55.
SnpReportResp
Response structure for the SNP_GET_REPORT request. See MSG_REPORT_RSP in Table 24, “SEV Secure Nested Paging Firmware ABI specification”, Revision 1.55.
SnpTcbVersionLegacy
Eight-byte TCB_VERSION encoding for Milan/Genoa (family 19h, models 00h–1Fh), in little-endian byte order. See AMD 56860 revision 1.59, section 2.3, table 5.
SnpTcbVersionTurin
Eight-byte TCB_VERSION encoding for Turin (family 1Ah, models 90h–AFh and C0h–CFh), in little-endian byte order. See AMD 56860 revision 1.59, section 2.3, table 4.

Enums§

Vmpl

Constants§

GHCB_DATA_PAGE_STATE_LARGE_PAGE
GHCB_DATA_PAGE_STATE_MASK
GHCB_DATA_PAGE_STATE_PRIVATE
GHCB_DATA_PAGE_STATE_PSMASH
GHCB_DATA_PAGE_STATE_SHARED
GHCB_DATA_PAGE_STATE_UNSMASH
GHCB_HYP_FEATURE_GHCB_UNREGISTER
GHCB 2.04 feature bitmap bit for unregistering the current GHCB GPA.
GHCB_PAGE_HV_HYPERCALL_DATA_SIZE
GHCB_PAGE_HYPERCALL_OUTPUT_OFFSET
GHCB_PAGE_HYPERCALL_PARAMETERS_OFFSET
HV_PSP_CPUID_LEAF_COUNT_MAX
REG_TWEAK_BITMAP_OFFSET
REG_TWEAK_BITMAP_SIZE
SEV_INTR_TYPE_EXCEPT
SEV_INTR_TYPE_EXT
SEV_INTR_TYPE_NMI
SEV_INTR_TYPE_SW
SNP_CPUID_FAMILY_MILAN_GENOA
CPUID family containing Milan/Genoa, as reported by SnpReport::cpuid_fam_id. Select the TCB layout using the model as well: AMD 56860 revision 1.59, section 2.3, table 5 covers models 00h–1Fh.
SNP_CPUID_FAMILY_TURIN
CPUID family containing Turin, as reported by SnpReport::cpuid_fam_id. This family is not exclusive to Turin: AMD 56860 revision 1.59, section 2.3, table 4 selects the Turin TCB layout for models 90h–AFh and C0h–CFh.
SNP_CPUID_MODELS_MILAN_GENOA
Milan/Genoa model IDs within SNP_CPUID_FAMILY_MILAN_GENOA that use SnpTcbVersionLegacy. AMD 56860 revision 1.59, section 2.3, table 5.
SNP_CPUID_MODELS_TURIN_90_AF
First Turin model-ID range within SNP_CPUID_FAMILY_TURIN. AMD 56860 revision 1.59, section 2.3, table 4: models 90h–AFh.
SNP_CPUID_MODELS_TURIN_C0_CF
Second Turin model-ID range within SNP_CPUID_FAMILY_TURIN. AMD 56860 revision 1.59, section 2.3, table 4: models C0h–CFh.
SNP_DERIVED_KEY_SIZE
See DERIVED_KEY in Table 20, “SEV Secure Nested Paging Firmware ABI specification”, Revision 1.55.
SNP_GUEST_REQ_MSG_VERSION
Value for the msg_version member in SNP_GUEST_REQ_MSG_VERSION. Use 1 for now.
SNP_REPORT_DATA_SIZE
Size of report_data member in SnpReport.
SNP_REPORT_RESP_DATA_SIZE
SNP_REPORT_SIZE
Size of the SnpReport.