Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp4248187pxv; Mon, 19 Jul 2021 21:57:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwqmfzFMm/0XzXeJuQg79pefLyC6ddxADLSQLh+7HpjMYDQwyMi60HJJRAyllNNr9et2gai X-Received: by 2002:a05:6e02:5ce:: with SMTP id l14mr19605270ils.147.1626757026669; Mon, 19 Jul 2021 21:57:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626757026; cv=none; d=google.com; s=arc-20160816; b=hokBiKXTGezwv8CAVtqArEXt6UqCKqekRT0d8NmK9NDqhOIG1XUL3Y1aPYO+oyZ/yc FgKwd+ijBysNsldAZSquDzV2XQ2rLSEX/GvYeo+ezeHDrnhK2rfIopSmf+lcXNZRS1XN FzRVclDYn7R2GRIItVugIeYxVC5NygYHEVZcYw1Ku1/qg5jzBPwA3PZ3PI12hHjst2Gt qhg3PbcitnkkuvdUXP6KxPlc5CwMafKkF3uAvm1LgRcUvuzQlzuHpZLqE3n6lVDL6g7X dB/o7dCOZh+tM99cu1xiipJ/Gf8Rh0JO18bsmgpnb7bu4AUqqpNW/tDzbv/F1ks+ouQ0 jzkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=hoeG9finOIvurEWLfiSmYa1wKA0G+RUZ9PWf6Lokww4=; b=vzWo9AfV/XIMAQZcu1P3JE0lDkt90wtigmznjBSbUHwc2ZT1l695is/tExZC1yZmcW F3/YZFgE5Z5ufQWtCHHS5R+olSmadNS6Tu4kCybp23cHdnhqO1+4AOD15dmMhA9ByHYL rKHyVX+FlxWbKBiEQmKsZi6c0G7wZ0zhnHWTb6fx1RSx75xktrmzkfiT5m5FPhBrUVD2 uignQqGP8PTN8cXFs4/N5YAxt+1+cP/gFi9saan5Kq7gjPC4mE2qLPBJg7QAmofv3BI0 t9rq/YWa3ECNcWfP2CsjpBVdpyCRzBOslNn9X1d4jYbUN2fwcpVj5GVUAfFuu8Z3YU4Z GlbA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l7si5641382iow.27.2021.07.19.21.56.54; Mon, 19 Jul 2021 21:57:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238936AbhGTEPS (ORCPT + 99 others); Tue, 20 Jul 2021 00:15:18 -0400 Received: from mga14.intel.com ([192.55.52.115]:51770 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235192AbhGTEPP (ORCPT ); Tue, 20 Jul 2021 00:15:15 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10050"; a="210897301" X-IronPort-AV: E=Sophos;i="5.84,254,1620716400"; d="scan'208";a="210897301" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Jul 2021 21:55:54 -0700 X-IronPort-AV: E=Sophos;i="5.84,254,1620716400"; d="scan'208";a="431923322" Received: from ywei11-mobl1.amr.corp.intel.com (HELO skuppusw-desk1.amr.corp.intel.com) ([10.251.138.31]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Jul 2021 21:55:53 -0700 From: Kuppuswamy Sathyanarayanan To: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Peter Zijlstra , Andy Lutomirski , Hans de Goede , Mark Gross , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko Cc: Peter H Anvin , Dave Hansen , Tony Luck , Dan Williams , Andi Kleen , Kirill Shutemov , Sean Christopherson , Kuppuswamy Sathyanarayanan , x86@kernel.org, linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, bpf@vger.kernel.org, netdev@vger.kernel.org Subject: [PATCH v3 0/6] Add TDX Guest Support (Attestation support) Date: Mon, 19 Jul 2021 21:55:46 -0700 Message-Id: <20210720045552.2124688-1-sathyanarayanan.kuppuswamy@linux.intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi All, Intel's Trust Domain Extensions (TDX) protect guest VMs from malicious hosts and some physical attacks. VM guest with TDX support is called as TD Guest. In TD Guest, the attestationĀ process is used to verify the trustworthiness of TD guest to the 3rd party servers. Such attestation process is required by 3rd party servers before sending sensitive information to TD guests. One usage example is to get encryption keys from the key server for mounting the encrypted rootfs or secondary drive. Following patches adds the attestation support to TDX guest which includes attestation user interface driver, user agent example, and related hypercall support. In this series, only following patches are in arch/x86 and are intended for x86 maintainers review. * x86/tdx: Add TDREPORT TDX Module call support * x86/tdx: Add GetQuote TDX hypercall support * x86/tdx: Add SetupEventNotifyInterrupt TDX hypercall support Patch titled "platform/x86: intel_tdx_attest: Add TDX Guest attestation interface driver" adds the attestation driver support. This is supposed to be reviewed by platform-x86 maintainers. Also, patch titled "tools/tdx: Add a sample attestation user app" adds a testing app for attestation feature which needs review from bpf@vger.kernel.org. This series is the continuation of the following TDX patch series which added basic TDX guest support. [set 1] - https://lore.kernel.org/patchwork/project/lkml/list/?series=508773 [set 2] - https://lore.kernel.org/patchwork/project/lkml/list/?series=508792 [set 3] - https://lore.kernel.org/patchwork/project/lkml/list/?series=508794 [set 4] - https://lore.kernel.org/patchwork/project/lkml/list/?series=508795 [set 5] - https://lore.kernel.org/patchwork/project/lkml/list/?series=508798 Also please note that this series alone is not necessarily fully functional. You can find TDX related documents in the following link. https://software.intel.com/content/www/br/pt/develop/articles/intel-trust-domain-extensions.html Changes since v2: * Rebased on top of v5.14-rc1. * Rest of the history is included in individual patches. Changes since v1: * Included platform-x86 and test tool maintainers in recipient list. * Fixed commit log and comments in attestation driver as per Han's comments. Kuppuswamy Sathyanarayanan (6): x86/tdx: Add TDREPORT TDX Module call support x86/tdx: Add GetQuote TDX hypercall support x86/tdx: Add SetupEventNotifyInterrupt TDX hypercall support x86/tdx: Add TDX Guest event notify interrupt vector support platform/x86: intel_tdx_attest: Add TDX Guest attestation interface driver tools/tdx: Add a sample attestation user app arch/x86/include/asm/hardirq.h | 1 + arch/x86/include/asm/idtentry.h | 4 + arch/x86/include/asm/irq_vectors.h | 7 +- arch/x86/include/asm/tdx.h | 6 + arch/x86/kernel/irq.c | 7 + arch/x86/kernel/tdx.c | 137 ++++++++++++++ drivers/platform/x86/Kconfig | 9 + drivers/platform/x86/Makefile | 1 + drivers/platform/x86/intel_tdx_attest.c | 208 +++++++++++++++++++++ include/uapi/misc/tdx.h | 37 ++++ tools/Makefile | 13 +- tools/tdx/Makefile | 19 ++ tools/tdx/attest/.gitignore | 2 + tools/tdx/attest/Makefile | 24 +++ tools/tdx/attest/tdx-attest-test.c | 232 ++++++++++++++++++++++++ 15 files changed, 700 insertions(+), 7 deletions(-) create mode 100644 drivers/platform/x86/intel_tdx_attest.c create mode 100644 include/uapi/misc/tdx.h create mode 100644 tools/tdx/Makefile create mode 100644 tools/tdx/attest/.gitignore create mode 100644 tools/tdx/attest/Makefile create mode 100644 tools/tdx/attest/tdx-attest-test.c -- 2.25.1