Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp373516pxb; Thu, 26 Aug 2021 05:21:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxCXa+4f1ej6CNa7lhvId0hBgpPewkcXuARR/17MmmB594WolOl9tW/0ktVvfueVbW2vx+P X-Received: by 2002:a17:906:9a4e:: with SMTP id aj14mr647518ejc.84.1629980503825; Thu, 26 Aug 2021 05:21:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629980503; cv=none; d=google.com; s=arc-20160816; b=0tIfQDMfcWmXNagpOUs4U7kWpKYGanJMuO+JG1Otey/KxQ3RutgMb6cIPzjttgL9UT NtOi5xf4ng6vbs+m+ETYN4f6Tgy21JEm0IVmNH9mwgVVrr6cJsqTp97TVsZrVpYJk5Tj YAaR/5UYYZCFvJFUG5bLy3edO4ikycBOZtTbtrBydIQLL2SNtyza1sTgfNKYxsQKykyZ eqgK3JoimRaSeWnLBYbr+Mqi8gnAVZ/p1G11Klwmsvg6sj77/J4LTH3/GYg9uzjKfIvU ZwsmxZxlmQmSZp5hx4fG37Mgt/oAyXnXB8EKaiJmt43TsO8sTWr6QutFsUAyaxyMR5Y2 tDaQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=op4RZyhM+WZxhmQ9AT3hy7zm6EF5wEPUkPqarARNB9Q=; b=sBrXM+YYDpujmq1WoJvXVCvzjRnTQj3Cda38cxwB65uKENk+CfvIqnzMAnPhNbX9Ci ad2ySxo7tCRnR0qAynRsagvLcZSUeQH+dkEP7qRZ6BO9LLGiykX5YxrFuZPAxbvwAhcC v/a+Se2DbOAVIsgmTymJFXbVRjkBWLudV7lreUjRsdaiIQ68AuuIDkFxYmkx+a7kKuyz qrVwQGRG1QNVTNPY3bKcnD78cRooOWFpIfceSqRzWFoNIXTGW1RHzs+XK2hQkBIeFqPa 2saiS9eSzUp4Tfx3wc07iUoohcIPVj6Xx1MbuqoImcABastHUoXT5MEF4d7a1dJSKJY7 qGJQ== 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 qa20si2654846ejc.447.2021.08.26.05.21.07; Thu, 26 Aug 2021 05:21:43 -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 S242535AbhHZMTK (ORCPT + 99 others); Thu, 26 Aug 2021 08:19:10 -0400 Received: from 212.199.177.27.static.012.net.il ([212.199.177.27]:41642 "EHLO herzl.nuvoton.co.il" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S242404AbhHZMTK (ORCPT ); Thu, 26 Aug 2021 08:19:10 -0400 X-Greylist: delayed 3347 seconds by postgrey-1.27 at vger.kernel.org; Thu, 26 Aug 2021 08:19:09 EDT 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 17QBJY8M025250; Thu, 26 Aug 2021 14:19:34 +0300 Received: by taln60.nuvoton.co.il (Postfix, from userid 10140) id F075963A1C; Thu, 26 Aug 2021 14:19:43 +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 v13 4/7] tpm: Handle an exception for TPM Firmware Update mode. Date: Thu, 26 Aug 2021 14:19:05 +0300 Message-Id: <20210826111908.117278-5-amirmizi6@gmail.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20210826111908.117278-1-amirmizi6@gmail.com> References: <20210826111908.117278-1-amirmizi6@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 a25815a..c2b541d 100644 --- a/drivers/char/tpm/tpm2-cmd.c +++ b/drivers/char/tpm/tpm2-cmd.c @@ -729,6 +729,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 aa11fe3..c5bf934 100644 --- a/include/linux/tpm.h +++ b/include/linux/tpm.h @@ -207,6 +207,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