xref: /linux/arch/x86/include/asm/tdx_global_metadata.h (revision 43db1111073049220381944af4a3b8a5400eda71)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Automatically generated TDX global metadata structures. */
3 #ifndef _X86_VIRT_TDX_AUTO_GENERATED_TDX_GLOBAL_METADATA_H
4 #define _X86_VIRT_TDX_AUTO_GENERATED_TDX_GLOBAL_METADATA_H
5 
6 #include <linux/types.h>
7 
8 struct tdx_sys_info_features {
9 	u64 tdx_features0;
10 };
11 
12 struct tdx_sys_info_tdmr {
13 	u16 max_tdmrs;
14 	u16 max_reserved_per_tdmr;
15 	u16 pamt_4k_entry_size;
16 	u16 pamt_2m_entry_size;
17 	u16 pamt_1g_entry_size;
18 };
19 
20 struct tdx_sys_info_td_ctrl {
21 	u16 tdr_base_size;
22 	u16 tdcs_base_size;
23 	u16 tdvps_base_size;
24 };
25 
26 struct tdx_sys_info_td_conf {
27 	u64 attributes_fixed0;
28 	u64 attributes_fixed1;
29 	u64 xfam_fixed0;
30 	u64 xfam_fixed1;
31 	u16 num_cpuid_config;
32 	u16 max_vcpus_per_td;
33 	u64 cpuid_config_leaves[128];
34 	u64 cpuid_config_values[128][2];
35 };
36 
37 struct tdx_sys_info {
38 	struct tdx_sys_info_features features;
39 	struct tdx_sys_info_tdmr tdmr;
40 	struct tdx_sys_info_td_ctrl td_ctrl;
41 	struct tdx_sys_info_td_conf td_conf;
42 };
43 
44 #endif
45