rng: Introduce SPL_DM_RNG

Add SPL variant of DM_RNG so that the DM_RNG can be disabled in SPL
if necessary. This may be necessary due to e.g. size constraints of
the SPL.

Signed-off-by: Marek Vasut <marex@denx.de>
This commit is contained in:
Marek Vasut
2024-04-26 01:02:07 +02:00
committed by Fabio Estevam
parent 2f1e76bcfe
commit 591257b05c
9 changed files with 16 additions and 11 deletions

View File

@@ -21,9 +21,7 @@
#include <errno.h> #include <errno.h>
#include <linux/list.h> #include <linux/list.h>
#ifdef CONFIG_DM_RNG
#include <rng.h> #include <rng.h>
#endif
#include <splash.h> #include <splash.h>
#include <asm/io.h> #include <asm/io.h>
@@ -323,7 +321,7 @@ static int label_localboot(struct pxe_label *label)
static void label_boot_kaslrseed(void) static void label_boot_kaslrseed(void)
{ {
#ifdef CONFIG_DM_RNG #if CONFIG_IS_ENABLED(DM_RNG)
ulong fdt_addr; ulong fdt_addr;
struct fdt_header *working_fdt; struct fdt_header *working_fdt;
size_t n = 0x8; size_t n = 0x8;

View File

@@ -36,7 +36,7 @@ static int handle_random_req(ofnode node, int default_size,
u32 size; u32 size;
int ret; int ret;
if (!IS_ENABLED(CONFIG_DM_RNG)) if (!CONFIG_IS_ENABLED(DM_RNG))
return -ENOTSUPP; return -ENOTSUPP;
if (ofnode_read_u32(node, "vbe,size", &size)) { if (ofnode_read_u32(node, "vbe,size", &size)) {

View File

@@ -126,7 +126,7 @@ obj-$(CONFIG_W1_EEPROM) += w1-eeprom/
obj-$(CONFIG_MACH_PIC32) += ddr/microchip/ obj-$(CONFIG_MACH_PIC32) += ddr/microchip/
obj-$(CONFIG_FUZZ) += fuzz/ obj-$(CONFIG_FUZZ) += fuzz/
obj-$(CONFIG_DM_HWSPINLOCK) += hwspinlock/ obj-$(CONFIG_DM_HWSPINLOCK) += hwspinlock/
obj-$(CONFIG_DM_RNG) += rng/ obj-$(CONFIG_$(SPL_TPL_)DM_RNG) += rng/
endif endif
obj-y += soc/ obj-y += soc/

View File

@@ -787,7 +787,7 @@ init:
} }
#if CONFIG_IS_ENABLED(OF_CONTROL) #if CONFIG_IS_ENABLED(OF_CONTROL)
if (ofnode_valid(scu_node)) { if (ofnode_valid(scu_node)) {
if (IS_ENABLED(CONFIG_DM_RNG)) { if (CONFIG_IS_ENABLED(DM_RNG)) {
ret = device_bind_driver(NULL, "caam-rng", "caam-rng", NULL); ret = device_bind_driver(NULL, "caam-rng", "caam-rng", NULL);
if (ret) if (ret)
printf("Couldn't bind rng driver (%d)\n", ret); printf("Couldn't bind rng driver (%d)\n", ret);
@@ -810,7 +810,7 @@ init:
return -1; return -1;
} }
if (IS_ENABLED(CONFIG_DM_RNG)) { if (CONFIG_IS_ENABLED(DM_RNG)) {
ret = device_bind_driver(NULL, "caam-rng", "caam-rng", ret = device_bind_driver(NULL, "caam-rng", "caam-rng",
NULL); NULL);
if (ret) if (ret)

View File

@@ -6,6 +6,13 @@ config DM_RNG
This interface is used to initialise the rng device and to This interface is used to initialise the rng device and to
read the random seed from the device. read the random seed from the device.
config SPL_DM_RNG
bool "Driver support for Random Number Generator devices in SPL"
depends on SPL_DM
help
This option is an SPL-variant of the DM_RNG option.
See the help of DM_RNG for details.
if DM_RNG if DM_RNG
config RNG_MESON config RNG_MESON

View File

@@ -3,7 +3,7 @@
# Copyright (c) 2019, Linaro Limited # Copyright (c) 2019, Linaro Limited
# #
obj-$(CONFIG_DM_RNG) += rng-uclass.o obj-$(CONFIG_$(SPL_TPL_)DM_RNG) += rng-uclass.o
obj-$(CONFIG_RNG_MESON) += meson-rng.o obj-$(CONFIG_RNG_MESON) += meson-rng.o
obj-$(CONFIG_RNG_SANDBOX) += sandbox_rng.o obj-$(CONFIG_RNG_SANDBOX) += sandbox_rng.o
obj-$(CONFIG_RNG_MSM) += msm_rng.o obj-$(CONFIG_RNG_MSM) += msm_rng.o

View File

@@ -378,7 +378,7 @@ void gen_rand_uuid(unsigned char *uuid_bin)
struct udevice *devp; struct udevice *devp;
u32 randv = 0; u32 randv = 0;
if (IS_ENABLED(CONFIG_DM_RNG)) { if (CONFIG_IS_ENABLED(DM_RNG)) {
ret = uclass_get_device(UCLASS_RNG, 0, &devp); ret = uclass_get_device(UCLASS_RNG, 0, &devp);
if (!ret) { if (!ret) {
ret = dm_rng_read(devp, &randv, sizeof(randv)); ret = dm_rng_read(devp, &randv, sizeof(randv));

View File

@@ -42,7 +42,7 @@ static inline void srand_mac(void)
struct udevice *devp; struct udevice *devp;
u32 randv = 0; u32 randv = 0;
if (IS_ENABLED(CONFIG_DM_RNG)) { if (CONFIG_IS_ENABLED(DM_RNG)) {
ret = uclass_get_device(UCLASS_RNG, 0, &devp); ret = uclass_get_device(UCLASS_RNG, 0, &devp);
if (ret) { if (ret) {
ret = dm_rng_read(devp, &randv, sizeof(randv)); ret = dm_rng_read(devp, &randv, sizeof(randv));

View File

@@ -102,7 +102,7 @@ obj-$(CONFIG_DM_RESET) += reset.o
obj-$(CONFIG_SYSRESET) += sysreset.o obj-$(CONFIG_SYSRESET) += sysreset.o
obj-$(CONFIG_DM_REGULATOR) += regulator.o obj-$(CONFIG_DM_REGULATOR) += regulator.o
obj-$(CONFIG_CMD_RKMTD) += rkmtd.o obj-$(CONFIG_CMD_RKMTD) += rkmtd.o
obj-$(CONFIG_DM_RNG) += rng.o obj-$(CONFIG_$(SPL_TPL_)DM_RNG) += rng.o
obj-$(CONFIG_DM_RTC) += rtc.o obj-$(CONFIG_DM_RTC) += rtc.o
obj-$(CONFIG_SCMI_FIRMWARE) += scmi.o obj-$(CONFIG_SCMI_FIRMWARE) += scmi.o
obj-$(CONFIG_SCSI) += scsi.o obj-$(CONFIG_SCSI) += scsi.o