Page MenuHomeFreeBSD

D53304.id164898.diff
No OneTemporary

D53304.id164898.diff

diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC
--- a/sys/amd64/conf/GENERIC
+++ b/sys/amd64/conf/GENERIC
@@ -309,7 +309,6 @@
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
--- a/sys/amd64/conf/MINIMAL
+++ b/sys/amd64/conf/MINIMAL
@@ -113,7 +113,6 @@
# 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
--- a/sys/conf/files.i386
+++ b/sys/conf/files.i386
@@ -33,6 +33,7 @@
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
--- a/sys/conf/files.x86
+++ b/sys/conf/files.x86
@@ -310,7 +310,6 @@
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/dev/random/fenestrasX/fx_pool.c b/sys/dev/random/fenestrasX/fx_pool.c
--- a/sys/dev/random/fenestrasX/fx_pool.c
+++ b/sys/dev/random/fenestrasX/fx_pool.c
@@ -167,54 +167,49 @@
[RANDOM_RANDOMDEV] = {
.entc_cls = &fxrng_lo_push,
},
- [RANDOM_PURE_SAFE] = {
+ [RANDOM_PURE_TPM] = {
.entc_cls = &fxrng_hi_push,
},
- [RANDOM_PURE_GLXSB] = {
+ [RANDOM_PURE_SAFE] = {
.entc_cls = &fxrng_hi_push,
},
- [RANDOM_PURE_HIFN] = {
+#ifdef __i386__
+ [RANDOM_PURE_GLXSB] = {
.entc_cls = &fxrng_hi_push,
},
- [RANDOM_PURE_RDRAND] = {
+ [RANDOM_PURE_NEHEMIAH] = {
.entc_cls = &fxrng_hi_pull,
},
- [RANDOM_PURE_RDSEED] = {
+#endif
+#if defined __amd64__ || defined __i386__
+ [RANDOM_PURE_RDRAND] = {
.entc_cls = &fxrng_hi_pull,
},
- [RANDOM_PURE_NEHEMIAH] = {
- .entc_cls = &fxrng_hi_pull,
+#else
+ [RANDOM_PURE_BROADCOM] = {
+ .entc_cls = &fxrng_hi_push,
},
+#endif
[RANDOM_PURE_RNDTEST] = {
.entc_cls = &fxrng_garbage,
},
[RANDOM_PURE_VIRTIO] = {
.entc_cls = &fxrng_hi_pull,
},
- [RANDOM_PURE_BROADCOM] = {
+ [RANDOM_PURE_VMGENID] = {
.entc_cls = &fxrng_hi_push,
},
[RANDOM_PURE_CCP] = {
.entc_cls = &fxrng_hi_pull,
},
+#ifdef __powerpc64__
[RANDOM_PURE_DARN] = {
.entc_cls = &fxrng_hi_pull,
},
- [RANDOM_PURE_TPM] = {
- .entc_cls = &fxrng_hi_push,
- },
- [RANDOM_PURE_VMGENID] = {
+#endif
+ [RANDOM_PURE_HIFN] = {
.entc_cls = &fxrng_hi_push,
},
- [RANDOM_PURE_QUALCOMM] = {
- .entc_cls = &fxrng_hi_pull,
- },
- [RANDOM_PURE_ARMV8] = {
- .entc_cls = &fxrng_hi_pull,
- },
- [RANDOM_PURE_ARM_TRNG] = {
- .entc_cls = &fxrng_hi_pull,
- },
};
/* Useful for single-bit-per-source state. */
diff --git a/sys/dev/random/random_harvestq.c b/sys/dev/random/random_harvestq.c
--- a/sys/dev/random/random_harvestq.c
+++ b/sys/dev/random/random_harvestq.c
@@ -661,22 +661,31 @@
[RANDOM_UMA] = "UMA",
[RANDOM_CALLOUT] = "CALLOUT",
[RANDOM_RANDOMDEV] = "RANDOMDEV", /* ENVIRONMENTAL_END */
- [RANDOM_PURE_SAFE] = "PURE_SAFE", /* PURE_START */
+ [RANDOM_PURE_TPM] = "PURE_TPM", /* PURE_START */
+ [RANDOM_PURE_SAFE] = "PURE_SAFE",
+#ifdef __i386__
[RANDOM_PURE_GLXSB] = "PURE_GLXSB",
- [RANDOM_PURE_HIFN] = "PURE_HIFN",
+ [RANDOM_PURE_NEHEMIAH] = "PURE_NEHEMIAH",
+#endif
+#if defined __amd64__ || defined __i386__
[RANDOM_PURE_RDRAND] = "PURE_RDRAND",
[RANDOM_PURE_RDSEED] = "PURE_RDSEED",
- [RANDOM_PURE_NEHEMIAH] = "PURE_NEHEMIAH",
+#else
+ [RANDOM_PURE_BROADCOM] = "PURE_BROADCOM",
+ [RANDOM_PURE_QUALCOMM] = "PURE_QUALCOMM",
+#endif
[RANDOM_PURE_RNDTEST] = "PURE_RNDTEST",
[RANDOM_PURE_VIRTIO] = "PURE_VIRTIO",
- [RANDOM_PURE_BROADCOM] = "PURE_BROADCOM",
+ [RANDOM_PURE_VMGENID] = "PURE_VMGENID",
[RANDOM_PURE_CCP] = "PURE_CCP",
+#ifdef __powerpc64__
[RANDOM_PURE_DARN] = "PURE_DARN",
- [RANDOM_PURE_TPM] = "PURE_TPM",
- [RANDOM_PURE_VMGENID] = "PURE_VMGENID",
- [RANDOM_PURE_QUALCOMM] = "PURE_QUALCOMM",
+#endif
+#ifdef __aarch64__
[RANDOM_PURE_ARMV8] = "PURE_ARMV8",
[RANDOM_PURE_ARM_TRNG] = "PURE_ARM_TRNG",
+#endif
+ [RANDOM_PURE_HIFN] = "PURE_HIFN",
/* "ENTROPYSOURCE" */
};
diff --git a/sys/i386/conf/NOTES b/sys/i386/conf/NOTES
--- a/sys/i386/conf/NOTES
+++ b/sys/i386/conf/NOTES
@@ -302,6 +302,13 @@
#
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
--- a/sys/modules/Makefile
+++ b/sys/modules/Makefile
@@ -819,7 +819,6 @@
_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 @@
_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/sys/random.h b/sys/sys/random.h
--- a/sys/sys/random.h
+++ b/sys/sys/random.h
@@ -89,22 +89,31 @@
RANDOM_ENVIRONMENTAL_END = RANDOM_RANDOMDEV,
/* Fast hardware random-number sources from here on. */
RANDOM_PURE_START,
- RANDOM_PURE_SAFE = RANDOM_PURE_START,
+ RANDOM_PURE_TPM = RANDOM_PURE_START,
+ RANDOM_PURE_SAFE,
+#ifdef __i386__
RANDOM_PURE_GLXSB,
- RANDOM_PURE_HIFN,
+ RANDOM_PURE_NEHEMIAH,
+#endif
+#if defined __amd64__ || defined __i386__
RANDOM_PURE_RDRAND,
RANDOM_PURE_RDSEED,
- RANDOM_PURE_NEHEMIAH,
+#else
+ RANDOM_PURE_BROADCOM,
+ RANDOM_PURE_QUALCOMM,
+#endif
RANDOM_PURE_RNDTEST,
RANDOM_PURE_VIRTIO,
- RANDOM_PURE_BROADCOM,
+ RANDOM_PURE_VMGENID,
RANDOM_PURE_CCP,
+#ifdef __powerpc64__
RANDOM_PURE_DARN,
- RANDOM_PURE_TPM,
- RANDOM_PURE_VMGENID,
- RANDOM_PURE_QUALCOMM,
+#endif
+#ifdef __aarch64__
RANDOM_PURE_ARMV8,
RANDOM_PURE_ARM_TRNG,
+#endif
+ RANDOM_PURE_HIFN,
ENTROPYSOURCE
};
_Static_assert(ENTROPYSOURCE <= 32,
diff --git a/sys/x86/conf/NOTES b/sys/x86/conf/NOTES
--- a/sys/x86/conf/NOTES
+++ b/sys/x86/conf/NOTES
@@ -541,7 +541,6 @@
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

File Metadata

Mime Type
text/plain
Expires
Fri, May 15, 9:32 PM (3 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33099635
Default Alt Text
D53304.id164898.diff (6 KB)

Event Timeline