Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Nov 2025 00:30:59 GMT
From:      "David E. O'Brien" <obrien@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 3deb21f1afd5 - main - random: TPM_HARVEST should have been named RANDOM_ENABLE_TPM
Message-ID:  <202511110030.5AB0UxVW027191@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help

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"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202511110030.5AB0UxVW027191>