[PATCH v1 1/8] x86/virt/tdx: Stop treating tdx_global_metadata.h as auto-generated
From: Chao Gao
Date: Tue Aug 04 2026 - 07:42:45 EST
From: Dave Hansen <dave@xxxxxxxx>
The TDX module exposes its capabilities and limits through "Global
Scope Metadata" fields, defined in the Intel TDX Module ABI spec.
The kernel mirrors a small subset of those fields in C structures
(for example, struct tdx_sys_info_version/features). Those structures
are populated by reading each field via the TDH.SYS.RD SEAMCALL.
Today the header that holds these structures is generated by an
out-of-tree script from a JSON file listing all of the TDX module's
metadata. That made it trivial to add a new field, but everything
else suffered for it:
- The header is opaque to anyone who doesn't have the script and
the JSON file handy, and the "Automatically generated" tag tells
reviewers their edits will be clobbered.
- The script ships outside the tree, so reproducing changes
requires fetching it from a mailing list link.
- The structures are short and stable; the script's value over
a hand-edited header is small.
In preparation for switching to a hand-maintained implementation,
mark the header as such:
- Drop the "Automatically generated" comment.
- Rename the header guard to a non-"AUTO_GENERATED" name following
the usual asm/ convention.
- Add a comment describing what the structures are and how they
are populated.
No functional change intended.
Assisted-by: Claude:claude-opus-5
Not-yet-signed-off-by: Dave Hansen <dave@xxxxxxxx>
Signed-off-by: Chao Gao <chao.gao@xxxxxxxxx>
---
arch/x86/include/asm/tdx_global_metadata.h | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/arch/x86/include/asm/tdx_global_metadata.h b/arch/x86/include/asm/tdx_global_metadata.h
index 41150d546589..a86be9e5ec77 100644
--- a/arch/x86/include/asm/tdx_global_metadata.h
+++ b/arch/x86/include/asm/tdx_global_metadata.h
@@ -1,10 +1,15 @@
/* SPDX-License-Identifier: GPL-2.0 */
-/* Automatically generated TDX global metadata structures. */
-#ifndef _X86_VIRT_TDX_AUTO_GENERATED_TDX_GLOBAL_METADATA_H
-#define _X86_VIRT_TDX_AUTO_GENERATED_TDX_GLOBAL_METADATA_H
+#ifndef _ASM_X86_TDX_GLOBAL_METADATA_H
+#define _ASM_X86_TDX_GLOBAL_METADATA_H
#include <linux/types.h>
+/*
+ * TDX module "Global Scope Metadata" as documented in the Intel TDX
+ * Module ABI spec. Each sub-structure below corresponds to one TDX
+ * metadata "Class"; its members are populated via TDH.SYS.RD SEAMCALLs.
+ */
+
struct tdx_sys_info_version {
u16 minor_version;
u16 major_version;
@@ -52,4 +57,4 @@ struct tdx_sys_info {
struct tdx_sys_info_td_conf td_conf;
};
-#endif
+#endif /* _ASM_X86_TDX_GLOBAL_METADATA_H */
--
2.52.0