]> Git Repo - linux.git/blob - arch/x86/coco/tdx/debug.c
Linux 6.14-rc3
[linux.git] / arch / x86 / coco / tdx / debug.c
1 // SPDX-License-Identifier: GPL-2.0
2
3 #undef pr_fmt
4 #define pr_fmt(fmt)     "tdx: " fmt
5
6 #include <linux/array_size.h>
7 #include <linux/printk.h>
8 #include <asm/tdx.h>
9
10 #define DEF_TDX_ATTR_NAME(_name) [TDX_ATTR_##_name##_BIT] = __stringify(_name)
11
12 static __initdata const char *tdx_attributes[] = {
13         DEF_TDX_ATTR_NAME(DEBUG),
14         DEF_TDX_ATTR_NAME(HGS_PLUS_PROF),
15         DEF_TDX_ATTR_NAME(PERF_PROF),
16         DEF_TDX_ATTR_NAME(PMT_PROF),
17         DEF_TDX_ATTR_NAME(ICSSD),
18         DEF_TDX_ATTR_NAME(LASS),
19         DEF_TDX_ATTR_NAME(SEPT_VE_DISABLE),
20         DEF_TDX_ATTR_NAME(MIGRTABLE),
21         DEF_TDX_ATTR_NAME(PKS),
22         DEF_TDX_ATTR_NAME(KL),
23         DEF_TDX_ATTR_NAME(TPA),
24         DEF_TDX_ATTR_NAME(PERFMON),
25 };
26
27 #define DEF_TD_CTLS_NAME(_name) [TD_CTLS_##_name##_BIT] = __stringify(_name)
28
29 static __initdata const char *tdcs_td_ctls[] = {
30         DEF_TD_CTLS_NAME(PENDING_VE_DISABLE),
31         DEF_TD_CTLS_NAME(ENUM_TOPOLOGY),
32         DEF_TD_CTLS_NAME(VIRT_CPUID2),
33         DEF_TD_CTLS_NAME(REDUCE_VE),
34         DEF_TD_CTLS_NAME(LOCK),
35 };
36
37 void __init tdx_dump_attributes(u64 td_attr)
38 {
39         pr_info("Attributes:");
40
41         for (int i = 0; i < ARRAY_SIZE(tdx_attributes); i++) {
42                 if (!tdx_attributes[i])
43                         continue;
44                 if (td_attr & BIT(i))
45                         pr_cont(" %s", tdx_attributes[i]);
46                 td_attr &= ~BIT(i);
47         }
48
49         if (td_attr)
50                 pr_cont(" unknown:%#llx", td_attr);
51         pr_cont("\n");
52
53 }
54
55 void __init tdx_dump_td_ctls(u64 td_ctls)
56 {
57         pr_info("TD_CTLS:");
58
59         for (int i = 0; i < ARRAY_SIZE(tdcs_td_ctls); i++) {
60                 if (!tdcs_td_ctls[i])
61                         continue;
62                 if (td_ctls & BIT(i))
63                         pr_cont(" %s", tdcs_td_ctls[i]);
64                 td_ctls &= ~BIT(i);
65         }
66         if (td_ctls)
67                 pr_cont(" unknown:%#llx", td_ctls);
68         pr_cont("\n");
69 }
This page took 0.033658 seconds and 4 git commands to generate.