Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp1318086ybg; Thu, 4 Jun 2020 06:50:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw3xHEY82apHgUfBQCgygjDxZwIOjzRHC4ASHxmvNl+2tji1KErAO2gcg+Kvd8o8iAjb36i X-Received: by 2002:aa7:c69a:: with SMTP id n26mr4326806edq.2.1591278637272; Thu, 04 Jun 2020 06:50:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591278637; cv=none; d=google.com; s=arc-20160816; b=KhOEQLeisJkrPCV6TVOKGfCqnsz1BwFEpR6pj9cfj43og84yaRe7fDC0kjDg9usV1l kNtvNLNI/td/LPFYvmnP4n3kxchKPgKievaGz07LWFAfKa0FSVSF58FoePgFJa4mEHsM YQTg+ayfV3uVXsRY6pcbgSgCLokT5WyVZdTe2J7zigKm5fb800eRu6e/l7M/eqkSA08J 3GScj4y/U60UaLSIFfKG7p5GnDKntmTfeNicacexoGR3ewtmjrnXOhIjrEBshUfGVmRv 6dCPpdtdAlAMjKd3QeZQBYF8xMhNufDPpVbqTsZGBWyjHCYsSoQIQGoFUPxMf8ojvBSL Gz4g== 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=o8D31gGvhyI3AhKdkKJ1C9/xKrzpSbF3psArUNOVUJvEKPloT/6q7USqgX1440+1Kg is+CumHpDtAcAUY+j6tTNfQLO0rZiOeqF96zfuHKM3KdESSymZc2PINF7og3XEhvvqjo V2cnloAJ7q1WFfBU5XM/H+zKFReXIVIlwtp5jRIYleyZ9Wy3Ksp0kej9tqs8HlwB7b6v Qwzg5CuHy0tnTspNoGOWXvUgXSEuVqlMPhW8oakVSncZvP4L1iHSH14BOmF4OwjJhz5b Ybk26NBOJxApqV84RoQz+MzI2ezq5x4JAcc0Crsp1zj+oXEF6prudqkuwObzVVhMGmP9 NHRQ== 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 k12si1894290edj.143.2020.06.04.06.50.14; Thu, 04 Jun 2020 06:50:37 -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 S1728730AbgFDNs0 (ORCPT + 99 others); Thu, 4 Jun 2020 09:48:26 -0400 Received: from 212.199.177.27.static.012.net.il ([212.199.177.27]:50221 "EHLO herzl.nuvoton.co.il" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728447AbgFDNsW (ORCPT ); Thu, 4 Jun 2020 09:48:22 -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 054DlvgR011532; Thu, 4 Jun 2020 16:47:57 +0300 Received: by taln60.nuvoton.co.il (Postfix, from userid 10140) id A7465639BF; Thu, 4 Jun 2020 16:47:57 +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, "benoit.houyere@st.com--to=mark.rutland"@arm.com, peterhuewe@gmx.de, christophe-h.richard@st.com, jgg@ziepe.ca, arnd@arndb.de, gregkh@linuxfoundation.org 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 , Benoit Houyere Subject: [PATCH v10 5/8] tpm: Handle an exception for TPM Firmware Update mode. Date: Thu, 4 Jun 2020 16:47:10 +0300 Message-Id: <20200604134713.157951-6-amirmizi6@gmail.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20200604134713.157951-1-amirmizi6@gmail.com> References: <20200604134713.157951-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