Re: [PATCH 02/25] KVM: TDX: Define TDX architectural definitions

Xiaoyao Li
2024-08-29T13:25:17Z

On 8/13/2024 6:47 AM, Rick Edgecombe wrote:
> +/*
> + * TD_PARAMS is provided as an input to TDH_MNG_INIT, the size of which is 1024B.
> + */
> +struct td_params {
> + u64 attributes;
> + u64 xfam;
> + u16 max_vcpus;
> + u8 reserved0[6];
> +
> + u64 eptp_controls;
> + u64 exec_controls;

TDX 1.5 renames 'exec_controls' to 'config_flags', maybe we need update
it to match TDX 1.5 since the minimum supported TDX module of linux
starts from 1.5.

Besides, TDX 1.5 defines more fields that was reserved in TDX 1.0, but
most of them are not used by current TDX enabling patches. If we update
TD_PARAMS to match with TDX 1.5, should we add them as well?

This leads to another topic that defining all the TDX structure in this
patch seems unfriendly for review. It seems better to put the
introduction of definition and its user in a single patch.

> + u16 tsc_frequency;
> + u8 reserved1[38];
> +
> + u64 mrconfigid[6];
> + u64 mrowner[6];
> + u64 mrownerconfig[6];
> + u64 reserved2[4];
> +
> + union {
> + DECLARE_FLEX_ARRAY(struct tdx_cpuid_value, cpuid_values);
> + u8 reserved3[768];
> + };
> +} __packed __aligned(1024);