Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp2855256ybz; Mon, 27 Apr 2020 05:55:05 -0700 (PDT) X-Google-Smtp-Source: APiQypJWcOyxkyHPvPmdM9YGpJzdNYsTVk5oVdUMpJymw3vSQjGLMde4qwpK7Cyqoliz8fTTOP5N X-Received: by 2002:a50:9f8f:: with SMTP id c15mr17111626edf.377.1587992105298; Mon, 27 Apr 2020 05:55:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587992105; cv=none; d=google.com; s=arc-20160816; b=owO6/U+IBMPxuLs1/EoLwmeHKorshSaFfaEPf9XJOb9SB/i+s6RIkwMrjTdm13JzZu /OU2HhgAKvsZJpJMmY8Or73OBw7blMa+3ozu7Cd5r8eFtIuMgfZRZ25HG969KNVBM4cp EOhyKJJtq8DnrQYa1gl+NJVq+XaySzOuzUPTENBksbu4iOswnhTcLSiJc9s9OiRX2U6K Z6vqpa8nw6HfUmG6CCXrEWfjJRhixS4nlhzDM1jbIAv+HlLFTt8Udue4FClc6q0tmqL0 wNdxJclg7yD6y6HGnviM6LE4692o9R/O/QujOCdRcOKqc6LrqTN6E5RM8MeZN0KUEDbW 5K4A== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=XsEnKG8PC7cm5GibfE1SvoWl1kh/GQMlwpAErSZBEF8=; b=QSsx3pH8CuSgs9rGjpcYpfdAxZ/VFFqTwhwKwI7iq9KzM2sUpK8EF3K5Th0MiM2t1D KdY95h7k41tkUy/8Ty/hHXY80uPyxDANQuMaSEyVFcMwAAML50b/ij5nVgRymT/HF4Vb 2RdeFwh5iIu1C2yEP5aohuRp0sTY4b3geR/8KeH8jWXUFTNEZzMxbZIcPLflnNsRVSIE z0mZgniiq18MnvDMhoFeXXfopJ/VHk8+6UsPsmZWeZ33/yOZ10ErQCWxjGU0dCyYE1WW jdfRotBkGzrbwGviQDkszpQAvUY1CQEIN9ih4/alZNZN6c5R2seUkuGj1i5s59MenmPz RWkw== 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g3si7412590edp.190.2020.04.27.05.54.42; Mon, 27 Apr 2020 05:55:05 -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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727908AbgD0Mwi (ORCPT + 99 others); Mon, 27 Apr 2020 08:52:38 -0400 Received: from 212.199.177.27.static.012.net.il ([212.199.177.27]:47795 "EHLO herzl.nuvoton.co.il" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727853AbgD0MwT (ORCPT ); Mon, 27 Apr 2020 08:52:19 -0400 Received: from taln60.nuvoton.co.il (ntil-fw [212.199.177.25]) by herzl.nuvoton.co.il (8.13.8/8.13.8) with ESMTP id 03RCpkA7024061; Mon, 27 Apr 2020 15:51:46 +0300 Received: by taln60.nuvoton.co.il (Postfix, from userid 10140) id 9C91F639B1; Mon, 27 Apr 2020 15:51:46 +0300 (IDT) From: amirmizi6@gmail.com To: Eyal.Cohen@nuvoton.com, jarkko.sakkinen@linux.intel.com, oshrialkoby85@gmail.com, alexander.steffen@infineon.com, robh+dt@kernel.org, mark.rutland@arm.com, peterhuewe@gmx.de, jgg@ziepe.ca, arnd@arndb.de, gregkh@linuxfoundation.org, benoit.houyere@st.com, eajames@linux.ibm.com, joel@jms.id.au Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-integrity@vger.kernel.org, oshri.alkoby@nuvoton.com, tmaimon77@gmail.com, gcwilson@us.ibm.com, kgoldman@us.ibm.com, Dan.Morav@nuvoton.com, oren.tanami@nuvoton.com, shmulik.hager@nuvoton.com, amir.mizinski@nuvoton.com, Amir Mizinski Subject: [PATCH v7 5/7] tpm: Handle an exception for TPM Firmware Update mode. Date: Mon, 27 Apr 2020 15:49:29 +0300 Message-Id: <20200427124931.115697-6-amirmizi6@gmail.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20200427124931.115697-1-amirmizi6@gmail.com> References: <20200427124931.115697-1-amirmizi6@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Amir Mizinski An extra precaution for TPM Firmware Update Mode. For example if TPM power was cut while in Firmware update, platform should ignore "selftest" failure and skip TPM initialization sequence. Suggested-by: Benoit Houyere Signed-off-by: Amir Mizinski --- drivers/char/tpm/tpm2-cmd.c | 4 ++++ include/linux/tpm.h | 1 + 2 files changed, 5 insertions(+) diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c index 7603295..6e42946 100644 --- a/drivers/char/tpm/tpm2-cmd.c +++ b/drivers/char/tpm/tpm2-cmd.c @@ -727,6 +727,10 @@ int tpm2_auto_startup(struct tpm_chip *chip) goto out; rc = tpm2_do_selftest(chip); + + if (rc == TPM2_RC_UPGRADE || rc == TPM2_RC_COMMAND_CODE) + return 0; + if (rc && rc != TPM2_RC_INITIALIZE) goto out; diff --git a/include/linux/tpm.h b/include/linux/tpm.h index 03e9b18..5a2e031 100644 --- a/include/linux/tpm.h +++ b/include/linux/tpm.h @@ -199,6 +199,7 @@ enum tpm2_return_codes { TPM2_RC_INITIALIZE = 0x0100, /* RC_VER1 */ TPM2_RC_FAILURE = 0x0101, TPM2_RC_DISABLED = 0x0120, + TPM2_RC_UPGRADE = 0x012D, TPM2_RC_COMMAND_CODE = 0x0143, TPM2_RC_TESTING = 0x090A, /* RC_WARN */ TPM2_RC_REFERENCE_H0 = 0x0910, -- 2.7.4