162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2021 Advanced Micro Devices, Inc. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Author: Brijesh Singh <brijesh.singh@amd.com> 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * SEV-SNP API spec is available at https://developer.amd.com/sev 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#ifndef __VIRT_SEVGUEST_H__ 1162306a36Sopenharmony_ci#define __VIRT_SEVGUEST_H__ 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#include <linux/types.h> 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#define MAX_AUTHTAG_LEN 32 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci/* See SNP spec SNP_GUEST_REQUEST section for the structure */ 1862306a36Sopenharmony_cienum msg_type { 1962306a36Sopenharmony_ci SNP_MSG_TYPE_INVALID = 0, 2062306a36Sopenharmony_ci SNP_MSG_CPUID_REQ, 2162306a36Sopenharmony_ci SNP_MSG_CPUID_RSP, 2262306a36Sopenharmony_ci SNP_MSG_KEY_REQ, 2362306a36Sopenharmony_ci SNP_MSG_KEY_RSP, 2462306a36Sopenharmony_ci SNP_MSG_REPORT_REQ, 2562306a36Sopenharmony_ci SNP_MSG_REPORT_RSP, 2662306a36Sopenharmony_ci SNP_MSG_EXPORT_REQ, 2762306a36Sopenharmony_ci SNP_MSG_EXPORT_RSP, 2862306a36Sopenharmony_ci SNP_MSG_IMPORT_REQ, 2962306a36Sopenharmony_ci SNP_MSG_IMPORT_RSP, 3062306a36Sopenharmony_ci SNP_MSG_ABSORB_REQ, 3162306a36Sopenharmony_ci SNP_MSG_ABSORB_RSP, 3262306a36Sopenharmony_ci SNP_MSG_VMRK_REQ, 3362306a36Sopenharmony_ci SNP_MSG_VMRK_RSP, 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci SNP_MSG_TYPE_MAX 3662306a36Sopenharmony_ci}; 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_cienum aead_algo { 3962306a36Sopenharmony_ci SNP_AEAD_INVALID, 4062306a36Sopenharmony_ci SNP_AEAD_AES_256_GCM, 4162306a36Sopenharmony_ci}; 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_cistruct snp_guest_msg_hdr { 4462306a36Sopenharmony_ci u8 authtag[MAX_AUTHTAG_LEN]; 4562306a36Sopenharmony_ci u64 msg_seqno; 4662306a36Sopenharmony_ci u8 rsvd1[8]; 4762306a36Sopenharmony_ci u8 algo; 4862306a36Sopenharmony_ci u8 hdr_version; 4962306a36Sopenharmony_ci u16 hdr_sz; 5062306a36Sopenharmony_ci u8 msg_type; 5162306a36Sopenharmony_ci u8 msg_version; 5262306a36Sopenharmony_ci u16 msg_sz; 5362306a36Sopenharmony_ci u32 rsvd2; 5462306a36Sopenharmony_ci u8 msg_vmpck; 5562306a36Sopenharmony_ci u8 rsvd3[35]; 5662306a36Sopenharmony_ci} __packed; 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_cistruct snp_guest_msg { 5962306a36Sopenharmony_ci struct snp_guest_msg_hdr hdr; 6062306a36Sopenharmony_ci u8 payload[4000]; 6162306a36Sopenharmony_ci} __packed; 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci#endif /* __VIRT_SEVGUEST_H__ */ 64