Message ID | 20210709215550.32496-2-brijesh.singh@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add AMD Secure Nested Paging (SEV-SNP) support | expand |
On Fri, Jul 09, 2021 at 04:55:45PM -0500, Brijesh Singh wrote: > Sync the kvm.h with the kernel to include the SNP specific commands. > > Signed-off-by: Brijesh Singh <brijesh.singh@amd.com> Pls specify which kernel version you used for the sync. > --- > linux-headers/linux/kvm.h | 47 +++++++++++++++++++++++++++++++++++++++ > 1 file changed, 47 insertions(+) > > diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h > index 20d6a263bb..c17ace1ece 100644 > --- a/linux-headers/linux/kvm.h > +++ b/linux-headers/linux/kvm.h > @@ -1679,6 +1679,12 @@ enum sev_cmd_id { > /* Guest Migration Extension */ > KVM_SEV_SEND_CANCEL, > > + /* SNP specific commands */ > + KVM_SEV_SNP_INIT = 256, > + KVM_SEV_SNP_LAUNCH_START, > + KVM_SEV_SNP_LAUNCH_UPDATE, > + KVM_SEV_SNP_LAUNCH_FINISH, > + > KVM_SEV_NR_MAX, > }; > > @@ -1775,6 +1781,47 @@ 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]; > +}; > + > +#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 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]; > +}; > + > #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.17.1
On 7/10/21 3:32 PM, Michael S. Tsirkin wrote: > On Fri, Jul 09, 2021 at 04:55:45PM -0500, Brijesh Singh wrote: >> Sync the kvm.h with the kernel to include the SNP specific commands. >> >> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com> > > Pls specify which kernel version you used for the sync. > This sync is based on the my guest kernel rfc patches (5.13-rc6). After the guest patches are accepted then will include the exact linux kernel version.
Hi Brijesh, On 10/07/2021 0:55, Brijesh Singh wrote: > Sync the kvm.h with the kernel to include the SNP specific commands. > > Signed-off-by: Brijesh Singh <brijesh.singh@amd.com> > --- > linux-headers/linux/kvm.h | 47 +++++++++++++++++++++++++++++++++++++++ What about psp-sev.h ? I see that kernel patch "[PATCH Part2 RFC v4 11/40] crypto:ccp: Define the SEV-SNP commands" adds some new PSP return codes. The QEMU user-friendly string list sev_fw_errlist (in sev.c) should be updated accordingly. -Dov
Hi Dov, On 7/19/21 6:35 AM, Dov Murik wrote: > Hi Brijesh, > > On 10/07/2021 0:55, Brijesh Singh wrote: >> Sync the kvm.h with the kernel to include the SNP specific commands. >> >> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com> >> --- >> linux-headers/linux/kvm.h | 47 +++++++++++++++++++++++++++++++++++++++ > > > What about psp-sev.h ? I see that kernel patch "[PATCH Part2 RFC v4 > 11/40] crypto:ccp: Define the SEV-SNP commands" adds some new PSP return > codes. > > The QEMU user-friendly string list sev_fw_errlist (in sev.c) should be > updated accordingly. > thanks for reminding me, I will sync the psp-sev.h and include the new error code as well in the sev.c.
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h index 20d6a263bb..c17ace1ece 100644 --- a/linux-headers/linux/kvm.h +++ b/linux-headers/linux/kvm.h @@ -1679,6 +1679,12 @@ enum sev_cmd_id { /* Guest Migration Extension */ KVM_SEV_SEND_CANCEL, + /* SNP specific commands */ + KVM_SEV_SNP_INIT = 256, + KVM_SEV_SNP_LAUNCH_START, + KVM_SEV_SNP_LAUNCH_UPDATE, + KVM_SEV_SNP_LAUNCH_FINISH, + KVM_SEV_NR_MAX, }; @@ -1775,6 +1781,47 @@ 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]; +}; + +#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 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]; +}; + #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)
Sync the kvm.h with the kernel to include the SNP specific commands. Signed-off-by: Brijesh Singh <brijesh.singh@amd.com> --- linux-headers/linux/kvm.h | 47 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+)