1 .. SPDX-License-Identifier: GPL-2.0 1 .. SPDX-License-Identifier: GPL-2.0 2 2 3 ============================================== 3 =================================================================== 4 TDX Guest API Documentation 4 TDX Guest API Documentation 5 ============================================== 5 =================================================================== 6 6 7 1. General description 7 1. General description 8 ====================== 8 ====================== 9 9 10 The TDX guest driver exposes IOCTL interfaces 10 The TDX guest driver exposes IOCTL interfaces via the /dev/tdx-guest misc 11 device to allow userspace to get certain TDX g 11 device to allow userspace to get certain TDX guest-specific details. 12 12 13 2. API description 13 2. API description 14 ================== 14 ================== 15 15 16 In this section, for each supported IOCTL, the 16 In this section, for each supported IOCTL, the following information is 17 provided along with a generic description. 17 provided along with a generic description. 18 18 19 :Input parameters: Parameters passed to the IO 19 :Input parameters: Parameters passed to the IOCTL and related details. 20 :Output: Details about output data and return 20 :Output: Details about output data and return value (with details about 21 the non common error values). 21 the non common error values). 22 22 23 2.1 TDX_CMD_GET_REPORT0 23 2.1 TDX_CMD_GET_REPORT0 24 ----------------------- 24 ----------------------- 25 25 26 :Input parameters: struct tdx_report_req 26 :Input parameters: struct tdx_report_req 27 :Output: Upon successful execution, TDREPORT d 27 :Output: Upon successful execution, TDREPORT data is copied to 28 tdx_report_req.tdreport and return 0. 28 tdx_report_req.tdreport and return 0. Return -EINVAL for invalid 29 operands, -EIO on TDCALL failure or s 29 operands, -EIO on TDCALL failure or standard error number on other 30 common failures. 30 common failures. 31 31 32 The TDX_CMD_GET_REPORT0 IOCTL can be used by t 32 The TDX_CMD_GET_REPORT0 IOCTL can be used by the attestation software to get 33 the TDREPORT0 (a.k.a. TDREPORT subtype 0) from 33 the TDREPORT0 (a.k.a. TDREPORT subtype 0) from the TDX module using 34 TDCALL[TDG.MR.REPORT]. 34 TDCALL[TDG.MR.REPORT]. 35 35 36 A subtype index is added at the end of this IO 36 A subtype index is added at the end of this IOCTL CMD to uniquely identify the 37 subtype-specific TDREPORT request. Although th 37 subtype-specific TDREPORT request. Although the subtype option is mentioned in 38 the TDX Module v1.0 specification, section tit 38 the TDX Module v1.0 specification, section titled "TDG.MR.REPORT", it is not 39 currently used, and it expects this value to b 39 currently used, and it expects this value to be 0. So to keep the IOCTL 40 implementation simple, the subtype option was 40 implementation simple, the subtype option was not included as part of the input 41 ABI. However, in the future, if the TDX Module 41 ABI. However, in the future, if the TDX Module supports more than one subtype, 42 a new IOCTL CMD will be created to handle it. 42 a new IOCTL CMD will be created to handle it. To keep the IOCTL naming 43 consistent, a subtype index is added as part o 43 consistent, a subtype index is added as part of the IOCTL CMD. 44 44 45 Reference 45 Reference 46 --------- 46 --------- 47 47 48 TDX reference material is collected here: 48 TDX reference material is collected here: 49 49 50 https://www.intel.com/content/www/us/en/develo 50 https://www.intel.com/content/www/us/en/developer/articles/technical/intel-trust-domain-extensions.html 51 51 52 The driver is based on TDX module specificatio 52 The driver is based on TDX module specification v1.0 and TDX GHCI specification v1.0.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.