TDX 访客 API 文档

1. 概述

TDX 访客驱动程序通过 `/dev/tdx-guest` 杂项设备暴露 IOCTL 接口,允许用户空间获取某些 TDX 访客特定的详细信息。

2. API 说明

在本节中,对于每个支持的 IOCTL,除了通用说明外,还提供了以下信息。

输入参数:

传递给 IOCTL 的参数及相关详细信息。

输出:

有关输出数据和返回值的详细信息(包括非通用错误值的详细信息)。

2.1 TDX_CMD_GET_REPORT0

输入参数:

struct tdx_report_req

输出:

成功执行后,TDREPORT 数据将复制到 `tdx_report_req.tdreport` 并返回 0。对于无效操作数返回 -EINVAL,TDCALL 失败返回 -EIO,其他常见失败返回标准错误码。

认证软件可以使用 TDX_CMD_GET_REPORT0 IOCTL,通过 TDCALL[TDG.MR.REPORT] 从 TDX 模块获取 TDREPORT0(也称为 TDREPORT 子类型 0)。

在此 IOCTL CMD 的末尾添加了一个子类型索引,用于唯一标识特定子类型的 TDREPORT 请求。尽管子类型选项在 TDX 模块 v1.0 规范中“TDG.MR.REPORT”一节中有所提及,但目前尚未使用,并且期望此值为 0。因此,为保持 IOCTL 实现的简洁性,子类型选项未作为输入 ABI 的一部分包含在内。然而,如果未来 TDX 模块支持多个子类型,将创建一个新的 IOCTL CMD 来处理。为保持 IOCTL 命名的一致性,子类型索引已作为 IOCTL CMD 的一部分添加。

参考

TDX 参考资料收集于此

https://www.intel.com/content/www/us/en/developer/articles/technical/intel-trust-domain-extensions.html

该驱动程序基于 TDX 模块规范 v1.0 和 TDX GHCI 规范 v1.0。