xref: /kvm-unit-tests/lib/x86/amd_sev.h (revision 350bf64a67f6b00edf466363c47c7d0ef1c3c52b)
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