Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp3408050ybb; Tue, 31 Mar 2020 04:47:09 -0700 (PDT) X-Google-Smtp-Source: ADFU+vseSzd703fh6lA4QcEy+gJ63Pw3adb0/WWzWgUlf7CIXs8KRZeWiGBxkQlq9MBMHRgkIX5j X-Received: by 2002:a05:6808:a08:: with SMTP id n8mr1758105oij.91.1585655229118; Tue, 31 Mar 2020 04:47:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585655229; cv=none; d=google.com; s=arc-20160816; b=bgr2A2UbGplMYUftDWQ0q6PxINVggGoB/2XS8hMc9gm1IWR//H3ifsIx1Wyz8i0zgj FtxbJKZJt/DztQzv/YuQvIN/B0is8WW5z+1Aql1y6lcbcTIaH9FOmMLk/6G9Q5sC8yDB fB5xCo2MdZJzrVYmO2MnwDDKffkPBX5VUGWj4yq+ddcTgXo5CGfTMBi9ON7xK9NvL27M S7RuuV9Batu1kd17XnrZYlCjoddQl+wQafdrJaId/BLjpawpZzAcxNhAkAKyRGzpD6vm NXMMib3U4I4kUcSyPW2iQwXj4ZccvtDJDtKdfyMOKfzfhO062CK+IPGQlpsfMDhSZDlW 2/IA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=ARQESb1tsqEnz8yc6HqbGFcgWuYEh2/PxlWxnBkbn7o=; b=kL5OUjf2c10lkq42gLzpCmgGB2MMtg5QmaSBVIuRfk8AXOHdmS6dWBKfcmcpC9LuIp flulctRNItNJgdMdkoNhBiLD7lI2TNtBFRW43Ngk7zvs97xqfZfi5uobN1ts6af33NYH sZX70adyOQu09oi8sl7BVJ4dti0DuHZvQJIfGqlEC6ChVB9i37ELDLv3lHZg2uMamymB UsiWrT4AxxRx8UtYGjk3fkP4lxnGCRbVaybpRS/0P11fbszncheZAmHtu86a0MxAriu0 weoRhpqzjjnODh71IXjGtDZMknYxme/8ELNGbVALCz4K3mtS4QaeMqvCG6vDj7+bdsDb nIrA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 131si7029121oid.75.2020.03.31.04.46.57; Tue, 31 Mar 2020 04:47:09 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730715AbgCaLq0 convert rfc822-to-8bit (ORCPT + 99 others); Tue, 31 Mar 2020 07:46:26 -0400 Received: from maillog.nuvoton.com ([202.39.227.15]:40906 "EHLO maillog.nuvoton.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730617AbgCaLqZ (ORCPT ); Tue, 31 Mar 2020 07:46:25 -0400 Received: from NTHCCAS02.nuvoton.com (nthccas02.nuvoton.com [10.1.8.29]) by maillog.nuvoton.com (Postfix) with ESMTP id 153561C80E1D; Tue, 31 Mar 2020 19:33:03 +0800 (CST) Received: from NTILML02.nuvoton.com (10.190.1.46) by NTHCCAS02.nuvoton.com (10.1.8.29) with Microsoft SMTP Server (TLS) id 15.0.1130.7; Tue, 31 Mar 2020 19:33:02 +0800 Received: from NTILML02.nuvoton.com (10.190.1.47) by NTILML02.nuvoton.com (10.190.1.47) with Microsoft SMTP Server (TLS) id 15.0.1130.7; Tue, 31 Mar 2020 14:32:59 +0300 Received: from taln70.nuvoton.co.il (10.191.1.70) by NTILML02.nuvoton.com (10.190.1.46) with Microsoft SMTP Server id 15.0.1130.7 via Frontend Transport; Tue, 31 Mar 2020 14:32:59 +0300 Received: from taln60.nuvoton.co.il (taln60 [10.191.1.180]) by taln70.nuvoton.co.il (Postfix) with ESMTP id 199B8250; Tue, 31 Mar 2020 14:33:00 +0300 (IDT) Received: by taln60.nuvoton.co.il (Postfix, from userid 10140) id DF0B0639AF; Tue, 31 Mar 2020 14:32:29 +0300 (IDT) From: To: , , , , , , , , , CC: , , , , , , , , , , , Amir Mizinski Subject: [PATCH v4 0/7] Add tpm i2c ptp driver Date: Tue, 31 Mar 2020 14:32:00 +0300 Message-ID: <20200331113207.107080-1-amirmizi6@gmail.com> X-Mailer: git-send-email 2.22.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8BIT Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Amir Mizinski This patch set adds support for TPM devices that implement the I2C. Interface defined by TCG PTP specification: https://trustedcomputinggroup.org/wp-content/uploads/TCG_PC_Client_Platform_TPM_Profile_PTP_2.0_r1.03_v22.pdf The driver was tested on Raspberry-Pie 3, using Nuvoton NPCT75X TPM. Interrupts are not implemented yet, preparing it for the next patch. This patch is based on initial work by oshri Alkoby, Alexander Steffen and Christophe Ricard Changes since version 1: -"char:tpm:Add check_data handle to tpm_tis_phy_ops in order to check data integrity" - Fixed and extended commit description. - Fixed an issue regarding handling max retries. -"dt-bindings: tpm: Add YAML schema for TPM TIS I2C options": -Converted "tpm_tis_i2c.txt" to "tpm-tis-i2c.yaml". - Renamed "tpm_tis-i2c" to "tpm-tis-i2c". - Removed interrupts properties. -"char: tpm: add tpm_tis_i2c driver" - Replaced "tpm_tis-i2c" with "tpm-tis-i2c" in "tpm_tis_i2c.c". Addressed comments from: - Jarkko Sakkinen: https://patchwork.kernel.org/patch/11236257/ - Rob Herring: https://patchwork.kernel.org/patch/11236253/ Changes since version 2: - Added 2 new commits with improvements suggested by Benoit Houyere. -"Fix expected bit handling and send all bytes in one shot without last byte in exception" -"Handle an exeption for TPM Firmware Update mode." - Updated patch to latest v5.5 -"dt-bindings: tpm: Add YAML schema for TPM TIS I2C options" - Added "interrupts" and "crc-checksum" to properties. - Updated binding description and commit info. -"char: tpm: add tpm_tis_i2c driver" (suggested by Benoit Houyere) - Added repeat I2C frame after NACK. - Checksum I2C feature activation in DTS file configuration. Addressed comments from: - Rob Herring: https://lore.kernel.org/patchwork/patch/1161287/ Changes since version 3: - Updated patch to latest v5.6 - Updated commits headlines and development credit format by Jarkko Sakkinen suggestion -"tpm: tpm_tis: Make implementation of read16 read32 write32 optional" - Updated commit description. -"dt-bindings: tpm: Add YAML schema for TPM TIS I2C options" - Fixed 'make dt_binding_check' errors on YAML file. - Removed interrupts from required and examples since there is no use for them in current patch. Addressed comments from: - Jarkko Sakkinen: https://lore.kernel.org/patchwork/patch/1192101/ - Rob Herring: https://lore.kernel.org/patchwork/patch/1192099/ Amir Mizinski (7): tpm: tpm_tis: Make implementation of read16 read32 write32 optional tpm: tpm_tis: Add check_data handle to tpm_tis_phy_ops in order to check data integrity tpm: tpm_tis: rewrite "tpm_tis_req_canceled()" tpm: tpm_tis: Fix expected bit handling and send all bytes in one shot without last byte in exception tpm: Handle an exception for TPM Firmware Update mode. dt-bindings: tpm: Add YAML schema for TPM TIS I2C options tpm: tpm_tis: add tpm_tis_i2c driver .../bindings/security/tpm/tpm-tis-i2c.yaml | 43 +++ drivers/char/tpm/Kconfig | 12 + drivers/char/tpm/Makefile | 1 + drivers/char/tpm/tpm2-cmd.c | 4 + drivers/char/tpm/tpm_tis_core.c | 182 ++++++------- drivers/char/tpm/tpm_tis_core.h | 41 ++- drivers/char/tpm/tpm_tis_i2c.c | 292 +++++++++++++++++++++ drivers/char/tpm/tpm_tis_spi_main.c | 41 --- include/linux/tpm.h | 1 + 9 files changed, 482 insertions(+), 135 deletions(-) create mode 100644 Documentation/devicetree/bindings/security/tpm/tpm-tis-i2c.yaml create mode 100644 drivers/char/tpm/tpm_tis_i2c.c -- 2.7.4 =========================================================================================== The privileged confidential information contained in this email is intended for use only by the addressees as indicated by the original sender of this email. If you are not the addressee indicated in this email or are not responsible for delivery of the email to such a person, please kindly reply to the sender indicating this fact and delete all copies of it from your computer and network server immediately. Your cooperation is highly appreciated. It is advised that any unauthorized use of confidential information of Nuvoton is strictly prohibited; and any information in this email irrelevant to the official business of Nuvoton shall be deemed as neither given nor endorsed by Nuvoton.