git: 7fdc748c0c3d - stable/15 - amd64, powerpc: Enable tpm(4) in supported kernels

From: Kevin Bowling <kbowling_at_FreeBSD.org>
Date: Sun, 11 Oct 2026 01:22:22 UTC
The branch stable/15 has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=7fdc748c0c3d0f2f7c1c0725f9ff2a5085fc36ec

commit 7fdc748c0c3d0f2f7c1c0725f9ff2a5085fc36ec
Author:     Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2026-08-28 00:14:02 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2026-10-11 01:21:08 +0000

    amd64, powerpc: Enable tpm(4) in supported kernels
    
    tpm(4) was removed from amd64 GENERIC because it broke suspend and
    resume.  The preceding lifecycle, state-save, interrupt, locality, and
    teardown fixes address those failures for both TPM 1.2 and TPM 2.0.
    
    Restore the driver to amd64 GENERIC and MINIMAL, where TPM entropy
    harvesting remained enabled.  Enable the driver and entropy harvesting
    in the MPC85XX and QORIQ64 configurations, which already provide FDT,
    spibus, and the platform SPI controller required by FDT-attached TPMs.
    Leave the generic AIM and POWER configurations unchanged because they
    have no TPM attachment bus.
    
    The TPM 1.2 path completed repeated S3 cycles and command tests on
    ThinkPad T430 and T440p systems.  The TPM 2.0 path completed repeated
    device and full-system suspend/resume cycles on a ThinkPad P51.  The
    PowerPC configuration matrix was checked to retain tpm(4) only where its
    FDT SPI attachment path is present.
    
    PR:             291067
    Reviewed by:    kevans
    Tested by:      Marek Zarychta <zarychtam_plan-b.pwste.edu.pl> (tpm1.2)
    Fixes:          16f8ea6a81b5 ("amd64: Remove tpm(4) from GENERIC for now")
    Relnotes:       yes
    Sponsored by:   BBOX.io
    Differential Revision:  https://reviews.freebsd.org/D59247
    
    (cherry picked from commit cb2964f840e873d03a0739f41eed5921922f93a0)
---
 sys/amd64/conf/GENERIC   | 2 +-
 sys/amd64/conf/MINIMAL   | 2 +-
 sys/powerpc/conf/MPC85XX | 2 ++
 sys/powerpc/conf/QORIQ64 | 2 ++
 4 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC
index 0548c90985d1..e06c585318b6 100644
--- a/sys/amd64/conf/GENERIC
+++ b/sys/amd64/conf/GENERIC
@@ -327,7 +327,7 @@ device		bpf			# Berkeley packet filter
 # random(4)
 device		rdrand_rng		# Intel Bull Mountain RNG
 device		tpm			# Trusted Platform Module
-options 	RANDOM_ENABLE_TPM	# enable entropy from TPM 2.0
+options 	RANDOM_ENABLE_TPM	# enable entropy from TPM devices
 
 # USB support
 options 	USB_DEBUG		# enable debug msgs
diff --git a/sys/amd64/conf/MINIMAL b/sys/amd64/conf/MINIMAL
index b7baa2bd061d..043ef348698b 100644
--- a/sys/amd64/conf/MINIMAL
+++ b/sys/amd64/conf/MINIMAL
@@ -138,7 +138,7 @@ device		bpf			# Berkeley packet filter
 # random(4)
 device		rdrand_rng		# Intel Bull Mountain RNG
 device		tpm			# Trusted Platform Module
-options 	RANDOM_ENABLE_TPM	# enable entropy from TPM 2.0
+options 	RANDOM_ENABLE_TPM	# enable entropy from TPM devices
 
 # VirtIO support
 device		virtio			# Generic VirtIO bus (required)
diff --git a/sys/powerpc/conf/MPC85XX b/sys/powerpc/conf/MPC85XX
index c74819c7fee0..8ca927f9d896 100644
--- a/sys/powerpc/conf/MPC85XX
+++ b/sys/powerpc/conf/MPC85XX
@@ -29,6 +29,7 @@ options 	DDB
 options 	DEVICE_POLLING
 #options 	DIAGNOSTIC
 options 	FDT
+options 	RANDOM_ENABLE_TPM
 #makeoptions	FDT_DTS_FILE=mpc8555cds.dts
 options 	FFS
 options 	GDB
@@ -103,6 +104,7 @@ device  	sdhci
 device		sec
 device  	spibus
 device  	spigen
+device		tpm
 device		tsec
 device  	dpaa
 device		tuntap
diff --git a/sys/powerpc/conf/QORIQ64 b/sys/powerpc/conf/QORIQ64
index c64d015c37d1..37c087dd8a4d 100644
--- a/sys/powerpc/conf/QORIQ64
+++ b/sys/powerpc/conf/QORIQ64
@@ -32,6 +32,7 @@ options 	DDB
 options 	DEVICE_POLLING
 #options 	DIAGNOSTIC
 options 	FDT
+options 	RANDOM_ENABLE_TPM
 #makeoptions	FDT_DTS_FILE=mpc8555cds.dts
 options 	FFS			#Berkeley Fast Filesystem
 options 	SOFTUPDATES		#Enable FFS soft updates support
@@ -106,6 +107,7 @@ device		scc
 device  	sdhci
 device  	spibus
 device  	spigen
+device		tpm
 device		tuntap
 device		uart
 options 	USB_DEBUG	# enable debug msgs