1*350bf64aSZixuan Wang /* 2*350bf64aSZixuan Wang * AMD SEV support in kvm-unit-tests 3*350bf64aSZixuan Wang * 4*350bf64aSZixuan Wang * Copyright (c) 2021, Google Inc 5*350bf64aSZixuan Wang * 6*350bf64aSZixuan Wang * Authors: 7*350bf64aSZixuan Wang * Zixuan Wang <zixuanwang@google.com> 8*350bf64aSZixuan Wang * 9*350bf64aSZixuan Wang * SPDX-License-Identifier: LGPL-2.0-or-later 10*350bf64aSZixuan Wang */ 11*350bf64aSZixuan Wang 12*350bf64aSZixuan Wang #ifndef _X86_AMD_SEV_H_ 13*350bf64aSZixuan Wang #define _X86_AMD_SEV_H_ 14*350bf64aSZixuan Wang 15*350bf64aSZixuan Wang #ifdef TARGET_EFI 16*350bf64aSZixuan Wang 17*350bf64aSZixuan Wang #include "libcflat.h" 18*350bf64aSZixuan Wang #include "desc.h" 19*350bf64aSZixuan Wang #include "asm/page.h" 20*350bf64aSZixuan Wang #include "efi.h" 21*350bf64aSZixuan Wang 22*350bf64aSZixuan Wang /* 23*350bf64aSZixuan Wang * AMD Programmer's Manual Volume 3 24*350bf64aSZixuan Wang * - Section "Function 8000_0000h - Maximum Extended Function Number and Vendor String" 25*350bf64aSZixuan Wang * - Section "Function 8000_001Fh - Encrypted Memory Capabilities" 26*350bf64aSZixuan Wang */ 27*350bf64aSZixuan Wang #define CPUID_FN_LARGEST_EXT_FUNC_NUM 0x80000000 28*350bf64aSZixuan Wang #define CPUID_FN_ENCRYPT_MEM_CAPAB 0x8000001f 29*350bf64aSZixuan Wang #define SEV_SUPPORT_MASK 0b10 30*350bf64aSZixuan Wang 31*350bf64aSZixuan Wang /* 32*350bf64aSZixuan Wang * AMD Programmer's Manual Volume 2 33*350bf64aSZixuan Wang * - Section "SEV_STATUS MSR" 34*350bf64aSZixuan Wang */ 35*350bf64aSZixuan Wang #define MSR_SEV_STATUS 0xc0010131 36*350bf64aSZixuan Wang #define SEV_ENABLED_MASK 0b1 37*350bf64aSZixuan Wang 38*350bf64aSZixuan Wang bool amd_sev_enabled(void); 39*350bf64aSZixuan Wang efi_status_t setup_amd_sev(void); 40*350bf64aSZixuan Wang 41*350bf64aSZixuan Wang unsigned long long get_amd_sev_c_bit_mask(void); 42*350bf64aSZixuan Wang 43*350bf64aSZixuan Wang #endif /* TARGET_EFI */ 44*350bf64aSZixuan Wang 45*350bf64aSZixuan Wang #endif /* _X86_AMD_SEV_H_ */ 46