Re: git: d1ca01059d5d - main - padlock(4)/nehemiah: move i386-only entropy source to MD files
Date: Fri, 24 Oct 2025 08:17:52 UTC
On Thu, Oct 23, 2025 at 11:17:26PM +0000, David E. O'Brien wrote:
> The branch main has been updated by obrien:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=d1ca01059d5d756a4aef09d955e98aa59a284344
>
> commit d1ca01059d5d756a4aef09d955e98aa59a284344
> Author: David E. O'Brien <obrien@FreeBSD.org>
> AuthorDate: 2025-10-23 22:27:06 +0000
> Commit: David E. O'Brien <obrien@FreeBSD.org>
> CommitDate: 2025-10-23 23:17:19 +0000
>
> padlock(4)/nehemiah: move i386-only entropy source to MD files
Why do you think that padlock was implemented on 32bit only VIA CPUs?
I believe that VIA NANO supported both x86-64 and padlock.
And wikipedia (sorry) seems to confirm this
https://en.wikipedia.org/wiki/VIA_Nano
>
> Reviewed by: khng
> Differential Revision: https://reviews.freebsd.org/D53309
> ---
> sys/amd64/conf/GENERIC | 1 -
> sys/amd64/conf/MINIMAL | 1 -
> sys/conf/files.i386 | 1 +
> sys/conf/files.x86 | 1 -
> sys/i386/conf/NOTES | 7 +++++++
> sys/modules/Makefile | 4 +++-
> sys/x86/conf/NOTES | 1 -
> 7 files changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC
> index 2e41ed26403a..fb8473505128 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 padlock_rng # VIA Padlock RNG
> device rdrand_rng # Intel Bull Mountain RNG
> device ether # Ethernet support
> device vlan # 802.1Q VLAN support
> diff --git a/sys/amd64/conf/MINIMAL b/sys/amd64/conf/MINIMAL
> index 0baf6d6431de..61c713c609a4 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 padlock_rng # VIA Padlock RNG
> device rdrand_rng # Intel Bull Mountain RNG
> device ether # Ethernet support
>
> diff --git a/sys/conf/files.i386 b/sys/conf/files.i386
> index 41c51a7aa9c5..e6c2089e2c1e 100644
> --- a/sys/conf/files.i386
> +++ b/sys/conf/files.i386
> @@ -33,6 +33,7 @@ dev/hyperv/vmbus/i386/hyperv_machdep.c optional hyperv
> dev/le/if_le_isa.c optional le isa
> dev/ofw/ofw_pcib.c optional fdt pci
> dev/pcf/pcf_isa.c optional pcf
> +dev/random/nehemiah.c optional padlock_rng !random_loadable
> dev/sbni/if_sbni.c optional sbni
> dev/sbni/if_sbni_isa.c optional sbni isa
> dev/sbni/if_sbni_pci.c optional sbni pci
> diff --git a/sys/conf/files.x86 b/sys/conf/files.x86
> index 21a1b8046f12..31b8e88a6951 100644
> --- a/sys/conf/files.x86
> +++ b/sys/conf/files.x86
> @@ -310,7 +310,6 @@ dev/ntb/ntb_hw/ntb_hw_plx.c optional ntb_hw_plx | ntb_hw
> dev/ntb/test/ntb_tool.c optional ntb_tool
> dev/nvram/nvram.c optional nvram isa
> dev/random/ivy.c optional rdrand_rng !random_loadable
> -dev/random/nehemiah.c optional padlock_rng !random_loadable
> dev/random/rdseed.c optional rdrand_rng !random_loadable
> dev/qat_c2xxx/qat.c optional qat_c2xxx
> dev/qat_c2xxx/qat_ae.c optional qat_c2xxx
> diff --git a/sys/i386/conf/NOTES b/sys/i386/conf/NOTES
> index 93dc00634cc0..fbcea76527db 100644
> --- a/sys/i386/conf/NOTES
> +++ b/sys/i386/conf/NOTES
> @@ -302,6 +302,13 @@ envvar hint.pcf.0.irq="5"
> #
> device glxsb # AMD Geode LX Security Block
>
> +#
> +# padlock is a driver for the cryptographic functions and RNG in
> +# VIA C3, C7, and Eden processors.
> +# Requires 'device crypto'.
> +#
> +device padlock_rng # VIA Padlock RNG
> +
> #####################################################################
> # ABI Emulation
>
> diff --git a/sys/modules/Makefile b/sys/modules/Makefile
> index 9bc743c0c6d1..cde4c1c0e9ac 100644
> --- a/sys/modules/Makefile
> +++ b/sys/modules/Makefile
> @@ -819,7 +819,6 @@ _nfe= nfe
> _nvram= nvram
> .if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
> _padlock= padlock
> -_padlock_rng= padlock_rng
> _rdrand_rng= rdrand_rng
> _rdseed_rng= rdseed_rng
> .endif
> @@ -892,6 +891,9 @@ _glxsb= glxsb
> _pcfclock= pcfclock
> _pst= pst
> _sbni= sbni
> +.if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
> +_padlock_rng= padlock_rng
> +.endif
> .endif
>
> .if ${MACHINE_ARCH} == "armv7"
> diff --git a/sys/x86/conf/NOTES b/sys/x86/conf/NOTES
> index 3b3439b519d7..fadaf90d508f 100644
> --- a/sys/x86/conf/NOTES
> +++ b/sys/x86/conf/NOTES
> @@ -541,7 +541,6 @@ device smbios
> device vpd
> device asmc
> device tpm
> -device padlock_rng # VIA Padlock RNG
> device rdrand_rng # Intel Bull Mountain RNG
> device aesni # AES-NI OpenCrypto module
> device ossl # OpenSSL OpenCrypto module