qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] hw/riscv: virt: pass random seed to fdt
@ 2022-06-13 11:58 Jason A. Donenfeld
  2022-06-15  4:05 ` Bin Meng
  2022-06-29  2:09 ` Alistair Francis
  0 siblings, 2 replies; 16+ messages in thread
From: Jason A. Donenfeld @ 2022-06-13 11:58 UTC (permalink / raw)
  To: qemu-devel; +Cc: Jason A. Donenfeld, Alistair Francis

If the FDT contains /chosen/rng-seed, then the Linux RNG will use it to
initialize early. Set this using the usual guest random number
generation function. This is confirmed to successfully initialize the
RNG on Linux 5.19-rc2.

Cc: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
---
 hw/riscv/virt.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
index bc424dd2f5..368a723bf6 100644
--- a/hw/riscv/virt.c
+++ b/hw/riscv/virt.c
@@ -21,6 +21,7 @@
 #include "qemu/osdep.h"
 #include "qemu/units.h"
 #include "qemu/error-report.h"
+#include "qemu/guest-random.h"
 #include "qapi/error.h"
 #include "hw/boards.h"
 #include "hw/loader.h"
@@ -998,6 +999,7 @@ static void create_fdt(RISCVVirtState *s, const MemMapEntry *memmap,
     MachineState *mc = MACHINE(s);
     uint32_t phandle = 1, irq_mmio_phandle = 1, msi_pcie_phandle = 1;
     uint32_t irq_pcie_phandle = 1, irq_virtio_phandle = 1;
+    uint8_t rng_seed[32];
 
     if (mc->dtb) {
         mc->fdt = load_device_tree(mc->dtb, &s->fdt_size);
@@ -1046,6 +1048,10 @@ update_bootargs:
     if (cmdline && *cmdline) {
         qemu_fdt_setprop_string(mc->fdt, "/chosen", "bootargs", cmdline);
     }
+
+    /* Pass seed to RNG. */
+    qemu_guest_getrandom_nofail(rng_seed, sizeof(rng_seed));
+    qemu_fdt_setprop(mc->fdt, "/chosen", "rng-seed", rng_seed, sizeof(rng_seed));
 }
 
 static inline DeviceState *gpex_pcie_init(MemoryRegion *sys_mem,
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2022-07-18 22:41 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-06-13 11:58 [PATCH] hw/riscv: virt: pass random seed to fdt Jason A. Donenfeld
2022-06-15  4:05 ` Bin Meng
2022-06-16  2:32   ` Alistair Francis
2022-06-16 10:01     ` Jason A. Donenfeld
2022-06-16 12:17       ` Alistair Francis
2022-06-29  2:09 ` Alistair Francis
2022-07-05  1:09   ` Jason A. Donenfeld
2022-07-07  1:04     ` Jason A. Donenfeld
2022-07-08  7:59       ` Alistair Francis
2022-07-08  9:56         ` Jason A. Donenfeld
2022-07-11  0:25           ` Alistair Francis
2022-07-11  0:27             ` Jason A. Donenfeld
2022-07-11  3:36               ` Alistair Francis
2022-07-11 16:45                 ` Jason A. Donenfeld
2022-07-13 17:29                   ` Jason A. Donenfeld
2022-07-18 22:39                     ` Alistair Francis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).