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:

committed by
Fabio Estevam

parent
2f1e76bcfe
commit
591257b05c
@@ -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;
|
||||||
|
@@ -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)) {
|
||||||
|
@@ -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/
|
||||||
|
@@ -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)
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
@@ -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));
|
||||||
|
@@ -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));
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user