aboutsummaryrefslogtreecommitdiff
path: root/sys/arm64/conf/std.dev
diff options
context:
space:
mode:
authorAndrew Turner <andrew@FreeBSD.org>2023-11-15 17:42:02 +0000
committerAndrew Turner <andrew@FreeBSD.org>2023-11-15 18:05:08 +0000
commit9eecef052155646fbc5f8f533b952b372572d06a (patch)
treeb2d0e5a3e6a6e75534f20e9ef419ab0d9a6d4f22 /sys/arm64/conf/std.dev
parent61f14f1da37b4e6db8f9efe40c6b544c855fb9bd (diff)
Add an Armv8 rndr random number provider
Armv8.5 adds an optional random number generator. This is implemented as two special registers one to read a random number, the other to re-seed the entropy pool before reading a random number. Both registers will set the condition flags to tell the caller they can't produce a random number in a reasonable amount of time. Without a signal to reseed the entropy pool use the latter register to provide random numbers to the kernel pool. If at a later time we had a way to tell the provider if it needs to reseed or not we could use the former. On an Amazon AWS Graviton3 VM this never failed, however this may not be the case on low end CPUs so retry reading the random number 10 times before returning an error. Reviewed by: imp, delphij (csprng) Sponsored by: The FreeBSD Foundation Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D35411
Diffstat (limited to 'sys/arm64/conf/std.dev')
-rw-r--r--sys/arm64/conf/std.dev1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/arm64/conf/std.dev b/sys/arm64/conf/std.dev
index 74d2407e0aec..0ebf2e775b11 100644
--- a/sys/arm64/conf/std.dev
+++ b/sys/arm64/conf/std.dev
@@ -53,6 +53,7 @@ device vt_simplefb
# Pseudo devices.
device crypto # core crypto support
+device armv8_rng # Armv8.5 rndr RNG
device loop # Network loopback
device ether # Ethernet support
device vlan # 802.1Q VLAN support