qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[RFC PATCH v2 02/12] linux-header: add the SNP specific command


From: Michael Roth
Subject: [RFC PATCH v2 02/12] linux-header: add the SNP specific command
Date: Thu, 26 Aug 2021 17:26:17 -0500

From: Brijesh Singh <brijesh.singh@amd.com>

Sync the kvm.h with the kernel to include the SNP specific commands.

Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
Signed-off-by: Michael Roth <michael.roth@amd.com>
---
 linux-headers/linux/kvm.h | 50 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
index bcaf66cc4d..486c12b4f7 100644
--- a/linux-headers/linux/kvm.h
+++ b/linux-headers/linux/kvm.h
@@ -1712,6 +1712,12 @@ enum sev_cmd_id {
        /* Guest Migration Extension */
        KVM_SEV_SEND_CANCEL,
 
+       /* SNP specific commands */
+       KVM_SEV_SNP_INIT,
+       KVM_SEV_SNP_LAUNCH_START,
+       KVM_SEV_SNP_LAUNCH_UPDATE,
+       KVM_SEV_SNP_LAUNCH_FINISH,
+
        KVM_SEV_NR_MAX,
 };
 
@@ -1808,6 +1814,50 @@ struct kvm_sev_receive_update_data {
        __u32 trans_len;
 };
 
+struct kvm_snp_init {
+       __u64 flags;
+};
+
+struct kvm_sev_snp_launch_start {
+       __u64 policy;
+       __u64 ma_uaddr;
+       __u8 ma_en;
+       __u8 imi_en;
+       __u8 gosvw[16];
+       __u8 pad[6];
+};
+
+#define KVM_SEV_SNP_PAGE_TYPE_NORMAL           0x1
+#define KVM_SEV_SNP_PAGE_TYPE_VMSA             0x2
+#define KVM_SEV_SNP_PAGE_TYPE_ZERO             0x3
+#define KVM_SEV_SNP_PAGE_TYPE_UNMEASURED       0x4
+#define KVM_SEV_SNP_PAGE_TYPE_SECRETS          0x5
+#define KVM_SEV_SNP_PAGE_TYPE_CPUID            0x6
+
+struct kvm_sev_snp_launch_update {
+        __u64 start_gfn;
+       __u64 uaddr;
+       __u32 len;
+       __u8 imi_page;
+       __u8 page_type;
+       __u8 vmpl3_perms;
+       __u8 vmpl2_perms;
+       __u8 vmpl1_perms;
+};
+
+#define KVM_SEV_SNP_ID_BLOCK_SIZE      96
+#define KVM_SEV_SNP_ID_AUTH_SIZE       4096
+#define KVM_SEV_SNP_FINISH_DATA_SIZE   32
+
+struct kvm_sev_snp_launch_finish {
+       __u64 id_block_uaddr;
+       __u64 id_auth_uaddr;
+       __u8 id_block_en;
+       __u8 auth_key_en;
+       __u8 host_data[KVM_SEV_SNP_FINISH_DATA_SIZE];
+       __u8 pad[6];
+};
+
 #define KVM_DEV_ASSIGN_ENABLE_IOMMU    (1 << 0)
 #define KVM_DEV_ASSIGN_PCI_2_3         (1 << 1)
 #define KVM_DEV_ASSIGN_MASK_INTX       (1 << 2)
-- 
2.25.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]