From nobody Sun Oct 11 01:18:13 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4j2N5L0hghz6w9Nh for ; Sun, 11 Oct 2026 01:18:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4j2N5K74FJz3MdF for ; Sun, 11 Oct 2026 01:18:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791681494; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JagmUi5M68hbBwXIbXOL9Sx/JTiO7Rl5sIJx+7f2rE0=; b=RlDMcR3ZMXMOSXasmS5LXIScYnYJYnHQBv46UfY+u5zBxjeRbF3zewu610I6NpTkcPQOwa ormajc4J9lHct0zTGajWCY4SZcvD+/nRjBtm4YB5Vl3e+hZWxwEt/QMxq4pbqMRm0OXxnU Sv6+3CKaJCK0Efu2iA6aFbX3UpAY/z1cFdUq6iU6Zm8F/O6ZHe/sg7GeX7MfElLtMjTOjH KFskGzXM9Y7Xg3CB4sU+MF41E35qP9eVQhz+vh3rwpQ5iFWhs/OoDGbKew8D5zEqdylBdt y3uZOZAZGQ35ratLUhU5gKiVTQHPG7gkEPvzFbywnERNSpz72SED8xAo4yQVqg== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1791681494; b=O21PaG5n5L4aL95H82YXqNtnYOX0EiDfpRn2QYL3iWvs7giL5SNhYrk7DuI+EU4VWRDD+6 7IJ+r9G9DBt2xM7KvsVXa5ynMhAFaEGDP58LFpekuB1wwUEc4mVLtP74nF/xyT5V334Sd1 Rn6qYRTd2p8Xs5JRE5QPl17bLRfCKn5Z2RIT8PZ2KxU2U9nGSr2zFP/vKVUmGT3QF4+dy1 46G7ixUkMYVtYptcZbsbxwqJuw2x2VFxonVvQeSTJEb/8XAJ86HcB6MHBSnlAek+jLROeu x8qJJeMBx9tBim/X9vvB5tLg9XaLmuOrXLkUa640wyGby2BdTZaWdOwTi6PqqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791681494; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JagmUi5M68hbBwXIbXOL9Sx/JTiO7Rl5sIJx+7f2rE0=; b=U5xjdQYV7eYAqwh3NekNq5FXtvCVf7d4PJFwhZmugcFlr5Br8+x9pdl9G19UDdAivXwk1n KX9T9+iGO1AzxtkgPDgqP1lJgDJUUFa6jBXYWc7ZIoQCJ72CIzxrZ+lv3QehXlUUiyOIMI b77lNr6ZKwPQQQfaP4fwyy++Nhhtoq/JOT5ViqAl7BrYc+CMh18E/Oyn3q6y/6uySZmLoi 4Idi1m3rzieAWNHMgYdm54TcdJuLDGufojy1js7nRfQosWDweY31KO7UqW/tDGLiDKr8B4 qVNhuwrJy7IS6CsCGfw6qq2YGQ0GoN/OyJoNFxTw9ZkKQvdHXP96XXqpcgcNRQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4j2N5K670KzJvS for ; Sun, 11 Oct 2026 01:18:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 31e6f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 11 Oct 2026 01:18:13 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Olivier Cochard From: Kevin Bowling Subject: git: bf62832039d7 - stable/15 - tpm: crb: check the error bit only after taking locality List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: Commit messages for all branches of the src repository List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: bf62832039d7e72cbbd64ba94c2a80da340f2e83 Auto-Submitted: auto-generated Date: Sun, 11 Oct 2026 01:18:13 +0000 Message-Id: <6acae3d5.31e6f.1615f988@gitrepo.freebsd.org> The branch stable/15 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=bf62832039d7e72cbbd64ba94c2a80da340f2e83 commit bf62832039d7e72cbbd64ba94c2a80da340f2e83 Author: Olivier Cochard AuthorDate: 2026-09-14 14:21:11 +0000 Commit: Kevin Bowling CommitDate: 2026-10-11 01:17:59 +0000 tpm: crb: check the error bit only after taking locality tpmcrb_transmit() read CRB_CTRL_STS before requesting locality 0. An AMD Pluton fTPM (like FrameWork Desktop) using the plain CRB start method reads the control area as all-ones until locality is assigned, so bit 0 looks like a stuck tpmSts and every command failed with EIO. With RANDOM_ENABLE_TPM the harvester retries every 10 seconds, so this printed "Device has Error bit set" forever. Reviewed by: kbowling Approved by: kbowling Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59661 (cherry picked from commit 7c375af72ef3f631e89431ae32a855d806e6ec98) --- sys/dev/tpm/tpm_crb.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/sys/dev/tpm/tpm_crb.c b/sys/dev/tpm/tpm_crb.c index e5bbec5d46da..f62d350948c8 100644 --- a/sys/dev/tpm/tpm_crb.c +++ b/sys/dev/tpm/tpm_crb.c @@ -514,17 +514,25 @@ tpmcrb_transmit(device_t dev, struct tpm_priv *priv, size_t length) return (E2BIG); } - if (TPM_READ_4(dev, TPM_CRB_CTRL_STS) & TPM_CRB_CTRL_STS_ERR_BIT) { - device_printf(dev, - "Device has Error bit set\n"); - return (EIO); - } if (!tpmcrb_request_locality(sc, 0)) { device_printf(dev, "Failed to obtain locality\n"); return (EIO); } locality = true; + + /* + * Only check for the error once we own the locality: some + * implementations do not return meaningful values in the control area + * before then. An AMD Pluton fTPM using the plain CRB start method + * reads all-ones, which looks like a permanently stuck tpmSts. + */ + if (TPM_READ_4(dev, TPM_CRB_CTRL_STS) & TPM_CRB_CTRL_STS_ERR_BIT) { + device_printf(dev, + "Device has Error bit set\n"); + error = EIO; + goto out; + } /* Clear cancellation bit */ TPM_WRITE_4(dev, TPM_CRB_CTRL_CANCEL, TPM_CRB_CTRL_CANCEL_CLEAR);