History

Merge tag 'x86_tdx_for_6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 tdx updates from Dave Hansen: "This includes a single chunk of new functionality for TDX guests which allows them to talk to the trusted TDX module software and obtain an attestation report. This report can then be used to prove the trustworthiness of the guest to a third party and get access to things like storage encryption keys" * tag 'x86_tdx_for_6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: selftests/tdx: Test TDX attestation GetReport support virt: Add TDX guest driver x86/tdx: Add a wrapper to get TDREPORT0 from the TDX Module

Linus Torvalds committed 3 years ago

Commit a89ef2a2 parents 2da68a7 00e07cf15 files · +469 −0Browse files

Showing the changes to include/uapi (1 of 15 files). Show all

Unified · Split

include/uapi/linux/tdx-guest.h+42−0
@@ -0,0 +1,42 @@
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2/*
3 * Userspace interface for TDX guest driver
4 *
5 * Copyright (C) 2022 Intel Corporation
6 */
7
8#ifndef _UAPI_LINUX_TDX_GUEST_H_
9#define _UAPI_LINUX_TDX_GUEST_H_
10
11#include <linux/ioctl.h>
12#include <linux/types.h>
13
14/* Length of the REPORTDATA used in TDG.MR.REPORT TDCALL */
15#define TDX_REPORTDATA_LEN 64
16
17/* Length of TDREPORT used in TDG.MR.REPORT TDCALL */
18#define TDX_REPORT_LEN 1024
19
20/**
21 * struct tdx_report_req - Request struct for TDX_CMD_GET_REPORT0 IOCTL.
22 *
23 * @reportdata: User buffer with REPORTDATA to be included into TDREPORT.
24 * Typically it can be some nonce provided by attestation
25 * service, so the generated TDREPORT can be uniquely verified.
26 * @tdreport: User buffer to store TDREPORT output from TDCALL[TDG.MR.REPORT].
27 */
28struct tdx_report_req {
29 __u8 reportdata[TDX_REPORTDATA_LEN];
30 __u8 tdreport[TDX_REPORT_LEN];
31};
32
33/*
34 * TDX_CMD_GET_REPORT0 - Get TDREPORT0 (a.k.a. TDREPORT subtype 0) using
35 * TDCALL[TDG.MR.REPORT]
36 *
37 * Return 0 on success, -EIO on TDCALL execution failure, and
38 * standard errno on other general error cases.
39 */
40#define TDX_CMD_GET_REPORT0 _IOWR('T', 1, struct tdx_report_req)
41
42#endif /* _UAPI_LINUX_TDX_GUEST_H_ */