File Index
Files and directories
Sign in
FILE

debug.c

File preview with syntax highlighting.

linux-6.19.14/arch/x86/coco/tdx/debug.c 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
12static __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
29static __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
37void __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
55void __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}
~/ Read-only file preview.