mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-13 14:53:06 +00:00
31565bb0aa
The ARMv8.5 architecture extension defines architectural RNDR/RNDRRS system registers, that provide 64 bits worth of randomness on every read. Since it's an extension, and implementing it is optional, there is a field in the ID_AA64ISAR0_EL1 ID register to query the availability of those registers. Add a UCLASS_RNG driver that returns entropy via repeated reads from those system registers, if the extension is implemented. The driver always binds, but checks the availability in the probe() routine. This helps systems which suffer from low boot entropy, since U-Boot can provide entropy via the generic UEFI entropy gathering protocol to the OS, at an early stage. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Reviewed-by: Simon Glass <sjg@chromium.org>
17 lines
558 B
Makefile
17 lines
558 B
Makefile
# SPDX-License-Identifier: GPL-2.0+
|
|
#
|
|
# Copyright (c) 2019, Linaro Limited
|
|
#
|
|
|
|
obj-$(CONFIG_DM_RNG) += rng-uclass.o
|
|
obj-$(CONFIG_RNG_MESON) += meson-rng.o
|
|
obj-$(CONFIG_RNG_SANDBOX) += sandbox_rng.o
|
|
obj-$(CONFIG_RNG_MSM) += msm_rng.o
|
|
obj-$(CONFIG_RNG_NPCM) += npcm_rng.o
|
|
obj-$(CONFIG_RNG_OPTEE) += optee_rng.o
|
|
obj-$(CONFIG_RNG_STM32) += stm32_rng.o
|
|
obj-$(CONFIG_RNG_ROCKCHIP) += rockchip_rng.o
|
|
obj-$(CONFIG_RNG_IPROC200) += iproc_rng200.o
|
|
obj-$(CONFIG_RNG_SMCCC_TRNG) += smccc_trng.o
|
|
obj-$(CONFIG_RNG_ARM_RNDR) += arm_rndr.o
|
|
obj-$(CONFIG_TPM_RNG) += tpm_rng.o
|