From patchwork Fri Oct 19 18:22:46 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Winkler, Tomas" X-Patchwork-Id: 10649963 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C5844112B for ; Fri, 19 Oct 2018 18:27:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B44442842D for ; Fri, 19 Oct 2018 18:27:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A6EDD28435; Fri, 19 Oct 2018 18:27:33 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4396A2842D for ; Fri, 19 Oct 2018 18:27:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727631AbeJTCep (ORCPT ); Fri, 19 Oct 2018 22:34:45 -0400 Received: from mga01.intel.com ([192.55.52.88]:54180 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727193AbeJTCep (ORCPT ); Fri, 19 Oct 2018 22:34:45 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Oct 2018 11:27:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,401,1534834800"; d="scan'208";a="267150062" Received: from twinkler-lnx.jer.intel.com ([10.12.91.48]) by orsmga005.jf.intel.com with ESMTP; 19 Oct 2018 11:27:19 -0700 From: Tomas Winkler To: Jarkko Sakkinen , Jason Gunthorpe Cc: Nayna Jain , Alexander Usyskin , Tadeusz Struk , linux-integrity@vger.kernel.org, linux-security-module@vger.kernel.org, linux-kernel@vger.kernel.org, Tomas Winkler Subject: [PATCH v7 00/21] tpm: separate tpm 1.x and tpm 2.x commands Date: Fri, 19 Oct 2018 21:22:46 +0300 Message-Id: <20181019182307.17745-1-tomas.winkler@intel.com> X-Mailer: git-send-email 2.14.4 MIME-Version: 1.0 Sender: linux-integrity-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-integrity@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch series provides initial separation of tpm 1.x and tpm 2.x commands, in foresight that the tpm 1.x chips will eventually phase out and can be compiled out for modern systems. A new file is added tpm1-cmd.c that contains tpm 1.x specific commands. In addition, tpm 1.x commands are now implemented using tpm_buf structure and instead of tpm_cmd_t construct. The latter is now removed. Note: my tpm 1.x HW availability is limited hence some more testing is needed. This series also contains two trivial cleanups and addition of new commands by TCG spec 1.36, now supported on new Intet's platforms. V6: 1. Dropping tpm: move pcr extend code to tpm2-cmd.c and rebasing code over that change 2. Trivial fixes in kdoc and header V7: 1. Add backportable patch for nuvoton duration calculation 2. Rebase durations patches over it. 3. Fix notorious typo tmp->tpm Tomas Winkler (21): tpm: tpm_i2c_nuvoton: use correct command duration for TPM 2.x tpm2: add new tpm2 commands according to TCG 1.36 tpm: sort objects in the Makefile tpm: factor out tpm 1.x duration calculation to tpm1-cmd.c tpm: add tpm_calc_ordinal_duration() wrapper tpm: factor out tpm_get_timeouts() tpm: move tpm1_pcr_extend to tpm1-cmd.c tpm: move tpm_getcap to tpm1-cmd.c tpm: factor out tpm1_get_random into tpm1-cmd.c tpm: move tpm 1.x selftest code from tpm-interface.c tpm1-cmd.c tpm: factor out tpm 1.x pm suspend flow into tpm1-cmd.c tpm: factor out tpm_startup function tpm: add tpm_auto_startup() into tpm-interface.c tpm: tpm-interface.c drop unused macros tpm: tpm-space.c remove unneeded semicolon tpm: tpm1: rewrite tpm1_get_random() using tpm_buf structure tpm1: implement tpm1_pcr_read_dev() using tpm_buf structure tpm1: rename tpm1_pcr_read_dev to tpm1_pcr_read() tpm1: reimplement SAVESTATE using tpm_buf tpm1: reimplement tpm1_continue_selftest() using tpm_buf tpm: use u32 instead of int for PCR index drivers/char/tpm/Makefile | 16 +- drivers/char/tpm/st33zp24/st33zp24.c | 2 +- drivers/char/tpm/tpm-chip.c | 11 +- drivers/char/tpm/tpm-interface.c | 817 +++-------------------------------- drivers/char/tpm/tpm-sysfs.c | 52 +-- drivers/char/tpm/tpm.h | 97 ++--- drivers/char/tpm/tpm1-cmd.c | 781 +++++++++++++++++++++++++++++++++ drivers/char/tpm/tpm2-cmd.c | 301 +++++++------ drivers/char/tpm/tpm2-space.c | 2 +- drivers/char/tpm/tpm_i2c_nuvoton.c | 11 +- drivers/char/tpm/tpm_tis_core.c | 10 +- include/linux/tpm.h | 11 +- security/integrity/ima/ima_crypto.c | 5 +- 13 files changed, 1082 insertions(+), 1034 deletions(-) create mode 100644 drivers/char/tpm/tpm1-cmd.c