hw/mips: boston: pass random seed to fdt
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 FDT node is part of the DT specification. I'd do the same for other MIPS platforms but boston is the only one that seems to use FDT. Cc: Paul Burton <paulburton@kernel.org> Cc: Aleksandar Rikalo <aleksandar.rikalo@syrmia.com> Cc: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Message-Id: <20220719120843.134392-1-Jason@zx2c4.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
6b23a67916
commit
5e19cc68fb
@ -34,6 +34,7 @@
|
||||
#include "hw/qdev-properties.h"
|
||||
#include "qapi/error.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/guest-random.h"
|
||||
#include "qemu/log.h"
|
||||
#include "chardev/char.h"
|
||||
#include "sysemu/device_tree.h"
|
||||
@ -363,6 +364,7 @@ static const void *boston_fdt_filter(void *opaque, const void *fdt_orig,
|
||||
size_t ram_low_sz, ram_high_sz;
|
||||
size_t fdt_sz = fdt_totalsize(fdt_orig) * 2;
|
||||
g_autofree void *fdt = g_malloc0(fdt_sz);
|
||||
uint8_t rng_seed[32];
|
||||
|
||||
err = fdt_open_into(fdt_orig, fdt, fdt_sz);
|
||||
if (err) {
|
||||
@ -370,6 +372,9 @@ static const void *boston_fdt_filter(void *opaque, const void *fdt_orig,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
qemu_guest_getrandom_nofail(rng_seed, sizeof(rng_seed));
|
||||
qemu_fdt_setprop(fdt, "/chosen", "rng-seed", rng_seed, sizeof(rng_seed));
|
||||
|
||||
cmdline = (machine->kernel_cmdline && machine->kernel_cmdline[0])
|
||||
? machine->kernel_cmdline : " ";
|
||||
err = qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", cmdline);
|
||||
|
Loading…
Reference in New Issue
Block a user