git: 3deb21f1afd5 - main - random: TPM_HARVEST should have been named RANDOM_ENABLE_TPM
Date: Tue, 11 Nov 2025 00:30:59 UTC
The branch main has been updated by obrien:
URL: https://cgit.FreeBSD.org/src/commit/?id=3deb21f1afd5c4abfd9cb93ca120097a841536c5
commit 3deb21f1afd5c4abfd9cb93ca120097a841536c5
Author: David E. O'Brien <obrien@FreeBSD.org>
AuthorDate: 2025-10-28 03:53:43 +0000
Commit: David E. O'Brien <obrien@FreeBSD.org>
CommitDate: 2025-11-10 20:54:48 +0000
random: TPM_HARVEST should have been named RANDOM_ENABLE_TPM
* Enable RANDOM_ENABLE_TPM by default
* The commit of TPM_HARVEST failed to add it to NOTES
so that the LINT kernel would build the code.
Fixes: 4ee7d3b0118c82e651712bb65da53d08e78cd7b1
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D53460
---
share/man/man4/random.4 | 1 +
sys/amd64/conf/GENERIC | 6 +++++-
sys/amd64/conf/MINIMAL | 6 +++++-
sys/arm/conf/GENERIC | 4 ++++
sys/arm64/conf/std.arm64 | 4 ++++
sys/conf/NOTES | 2 ++
sys/conf/options | 1 +
sys/dev/tpm/tpm20.c | 10 +++++-----
sys/riscv/conf/GENERIC | 4 ++++
9 files changed, 31 insertions(+), 7 deletions(-)
diff --git a/share/man/man4/random.4 b/share/man/man4/random.4
index 04d46e4d32aa..457f49f3d3ce 100644
--- a/share/man/man4/random.4
+++ b/share/man/man4/random.4
@@ -30,6 +30,7 @@
.Sh SYNOPSIS
.Cd "options RANDOM_LOADABLE"
.Cd "options RANDOM_ENABLE_ETHER"
+.Cd "options RANDOM_ENABLE_TPM"
.Cd "options RANDOM_ENABLE_UMA"
.Sh DESCRIPTION
The
diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC
index fb8473505128..1de895a5b333 100644
--- a/sys/amd64/conf/GENERIC
+++ b/sys/amd64/conf/GENERIC
@@ -309,7 +309,6 @@ device wpi # Intel 3945ABG wireless NICs.
device crypto # core crypto support
device aesni # AES-NI OpenCrypto module
device loop # Network loopback
-device rdrand_rng # Intel Bull Mountain RNG
device ether # Ethernet support
device vlan # 802.1Q VLAN support
device tuntap # Packet tunnel.
@@ -323,6 +322,11 @@ device xz # lzma decompression
# Note that 'bpf' is required for DHCP.
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
+
# USB support
options USB_DEBUG # enable debug msgs
device uhci # UHCI PCI->USB interface
diff --git a/sys/amd64/conf/MINIMAL b/sys/amd64/conf/MINIMAL
index 61c713c609a4..2bd8851ab20c 100644
--- a/sys/amd64/conf/MINIMAL
+++ b/sys/amd64/conf/MINIMAL
@@ -113,7 +113,6 @@ device uart # Generic UART driver
# Pseudo devices.
device loop # Network loopback
-device rdrand_rng # Intel Bull Mountain RNG
device ether # Ethernet support
# The `bpf' device enables the Berkeley Packet Filter.
@@ -121,6 +120,11 @@ device ether # Ethernet support
# Note that 'bpf' is required for DHCP.
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
+
# VirtIO support
device virtio # Generic VirtIO bus (required)
device virtio_pci # VirtIO PCI device
diff --git a/sys/arm/conf/GENERIC b/sys/arm/conf/GENERIC
index 22bb75993834..0d741a7e584a 100644
--- a/sys/arm/conf/GENERIC
+++ b/sys/arm/conf/GENERIC
@@ -216,6 +216,10 @@ device ffec # Freescale Fast Ethernet Controller
device neta # Marvell 10/100/1000 Network controller
device smsc # SMSC LAN91C111
+# random(4)
+device tpm # Trusted Platform Module
+options RANDOM_ENABLE_TPM # enable entropy from TPM 2.0
+
# Sound support
device sound
diff --git a/sys/arm64/conf/std.arm64 b/sys/arm64/conf/std.arm64
index a0568466cfaf..003f13c8f1cc 100644
--- a/sys/arm64/conf/std.arm64
+++ b/sys/arm64/conf/std.arm64
@@ -106,3 +106,7 @@ device efirtc # EFI RTC
# SMBIOS -- all EFI platforms
device smbios
+
+# random(4)
+device tpm # Trusted Platform Module
+options RANDOM_ENABLE_TPM # enable entropy from TPM 2.0
diff --git a/sys/conf/NOTES b/sys/conf/NOTES
index df71aa60099d..71d14dc8915f 100644
--- a/sys/conf/NOTES
+++ b/sys/conf/NOTES
@@ -2825,6 +2825,8 @@ options RANDOM_ENABLE_UMA # slab allocator
# environment.
options RANDOM_ENABLE_ETHER # ether_input
+options RANDOM_ENABLE_TPM # implies TPM_HARVEST
+
# Module to enable execution of application via emulators like QEMU
options IMGACT_BINMISC
diff --git a/sys/conf/options b/sys/conf/options
index b00b381d1da1..963263e8a732 100644
--- a/sys/conf/options
+++ b/sys/conf/options
@@ -956,6 +956,7 @@ RANDOM_LOADABLE opt_global.h
# the uma slab allocator.
RANDOM_ENABLE_UMA opt_global.h
RANDOM_ENABLE_ETHER opt_global.h
+RANDOM_ENABLE_TPM opt_global.h
# This options turns TPM into entropy source.
TPM_HARVEST opt_tpm.h
diff --git a/sys/dev/tpm/tpm20.c b/sys/dev/tpm/tpm20.c
index 067e7ccae8f9..6c587818058d 100644
--- a/sys/dev/tpm/tpm20.c
+++ b/sys/dev/tpm/tpm20.c
@@ -42,7 +42,7 @@
MALLOC_DEFINE(M_TPM20, "tpm_buffer", "buffer for tpm 2.0 driver");
static void tpm20_discard_buffer(void *arg);
-#ifdef TPM_HARVEST
+#if defined TPM_HARVEST || defined RANDOM_ENABLE_TPM
static void tpm20_harvest(void *arg, int unused);
#endif
static int tpm20_save_state(device_t dev, bool suspend);
@@ -184,7 +184,7 @@ tpm20_ioctl(struct cdev *dev, u_long cmd, caddr_t data,
return (ENOTTY);
}
-#ifdef TPM_HARVEST
+#if defined TPM_HARVEST || defined RANDOM_ENABLE_TPM
static const struct random_source random_tpm = {
.rs_ident = "TPM",
.rs_source = RANDOM_PURE_TPM,
@@ -212,7 +212,7 @@ tpm20_init(struct tpm_sc *sc)
if (result != 0)
tpm20_release(sc);
-#ifdef TPM_HARVEST
+#if defined TPM_HARVEST || defined RANDOM_ENABLE_TPM
random_source_register(&random_tpm);
TIMEOUT_TASK_INIT(taskqueue_thread, &sc->harvest_task, 0,
tpm20_harvest, sc);
@@ -227,7 +227,7 @@ void
tpm20_release(struct tpm_sc *sc)
{
-#ifdef TPM_HARVEST
+#if defined TPM_HARVEST || defined RANDOM_ENABLE_TPM
if (device_is_attached(sc->dev))
taskqueue_drain_timeout(taskqueue_thread, &sc->harvest_task);
random_source_deregister(&random_tpm);
@@ -254,7 +254,7 @@ tpm20_shutdown(device_t dev)
return (tpm20_save_state(dev, false));
}
-#ifdef TPM_HARVEST
+#if defined TPM_HARVEST || defined RANDOM_ENABLE_TPM
/*
* Get TPM_HARVEST_SIZE random bytes and add them
* into system entropy pool.
diff --git a/sys/riscv/conf/GENERIC b/sys/riscv/conf/GENERIC
index a8500fe80019..a7e1200e3884 100644
--- a/sys/riscv/conf/GENERIC
+++ b/sys/riscv/conf/GENERIC
@@ -204,6 +204,10 @@ options FDT
device iicbus # Bus support, required for iicoc below.
device iicoc # OpenCores I2C controller support
+# random(4)
+device tpm # Trusted Platform Module
+options RANDOM_ENABLE_TPM # enable entropy from TPM 2.0
+
# Include SoC specific configuration
include "std.allwinner"
include "std.cvitek"