The branch main has been updated by obrien:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=3deb21f1afd5c4abfd9cb93ca120097a841536c5

commit 3deb21f1afd5c4abfd9cb93ca120097a841536c5
Author:     David E. O'Brien <[email protected]>
AuthorDate: 2025-10-28 03:53:43 +0000
Commit:     David E. O'Brien <[email protected]>
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"

Reply via email to