aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2022-07-06 20:36:38 +0530
committerRichard Henderson <richard.henderson@linaro.org>2022-07-06 20:36:38 +0530
commit0e3723005bfea2f70157bf951f3e6be03bbf6e74 (patch)
treec8bd43d7565293669d195147ee87e11cab488a6c
parent180c2f24d5e8eada41e012a3899d29bb695aae06 (diff)
parenta988465d0eb7e2ee31a3679bbe3fbe71681820da (diff)
downloadqemu-0e3723005bfea2f70157bf951f3e6be03bbf6e74.zip
qemu-0e3723005bfea2f70157bf951f3e6be03bbf6e74.tar.gz
qemu-0e3723005bfea2f70157bf951f3e6be03bbf6e74.tar.bz2
Merge tag 'm68k-for-7.1-pull-request' of https://github.com/vivier/qemu-m68k into staging
Pull request m68k 20220706 pass RNG seed via bootinfo block # -----BEGIN PGP SIGNATURE----- # # iQJGBAABCAAwFiEEzS913cjjpNwuT1Fz8ww4vT8vvjwFAmLFdGkSHGxhdXJlbnRA # dml2aWVyLmV1AAoJEPMMOL0/L748oSUP/1W3bsPkFTGi0F77RuVFo8jBdvnCznH+ # mh/9FJdILuOla2Z+N+Y8dBErp9ZPk0FNAOFboZyX6+UzS6G64nLeIqEKIK+gfoWA # qImxlCnip3d0tS0/od+x5+wOYYXqTqerU++i/J/bACMjciAqbUB3GvZvmP32ixma # cqkOo0jHawRx9k0tzuWcP1zgmGHfHIJQEu/GdBUKeTYIQ7P0ACK0qIijndb4kZYO # OYuXF4TNncojzqJf6wOpvYbpifmpL2RkJmhHE2LLgIHeuZxV+9AdFmhbp7/D1kCw # 64qRn2oQHxuHQWL87ZOUXGmARcecW58uwLgUrkXIR8ZjHu8Y4KCLfnDrVHzDBfjE # AA8Jgbo07ASuGnc/DR9EieZNBFZT7sMK9VccUCI78G3ExR7xL0JkRGqc7nnX5WK/ # JDf9dDNVqlEbVJ5JUbQQBl80bTRf9toHlfbwbwDd8Ow5x/R1e62lXIukx4xo+oTW # DhjYoGqF/grcUQop50jS9vU9BMICPqmUp+4ueoj08kzAa96Z5D7ptXVY5WZFlk/W # DN5D1MYFflxt/FmSDBUpT/9u1GUYOmod3dt69x8Jk5nSkKjQECIed1kxndqIKhQI # zmeo3MKgf2HEJ0tobOe9UzD24DrvbK9g5IPFQTZDu/6u1IzNUgGi/YZUy7N1Owup # PG+ez9RwhSzV # =lR7N # -----END PGP SIGNATURE----- # gpg: Signature made Wed 06 Jul 2022 05:09:21 PM +0530 # gpg: using RSA key CD2F75DDC8E3A4DC2E4F5173F30C38BD3F2FBE3C # gpg: issuer "laurent@vivier.eu" # gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" [undefined] # gpg: aka "Laurent Vivier <laurent@vivier.eu>" [undefined] # gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" [undefined] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C * tag 'm68k-for-7.1-pull-request' of https://github.com/vivier/qemu-m68k: m68k: virt: pass RNG seed via bootinfo block m68k: use correct variable name in boot info string macro Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
-rw-r--r--hw/m68k/bootinfo.h18
-rw-r--r--hw/m68k/virt.c7
-rw-r--r--include/standard-headers/asm-m68k/bootinfo-virt.h1
3 files changed, 25 insertions, 1 deletions
diff --git a/hw/m68k/bootinfo.h b/hw/m68k/bootinfo.h
index adbf0c5..bd8b212 100644
--- a/hw/m68k/bootinfo.h
+++ b/hw/m68k/bootinfo.h
@@ -54,6 +54,22 @@
stb_phys(as, base++, string[i]); \
} \
stb_phys(as, base++, 0); \
- base = (parameters_base + 1) & ~1; \
+ base = (base + 1) & ~1; \
+ } while (0)
+
+#define BOOTINFODATA(as, base, id, data, len) \
+ do { \
+ int i; \
+ stw_phys(as, base, id); \
+ base += 2; \
+ stw_phys(as, base, \
+ (sizeof(struct bi_record) + len + 3) & ~1); \
+ base += 2; \
+ stw_phys(as, base, len); \
+ base += 2; \
+ for (i = 0; i < len; ++i) { \
+ stb_phys(as, base++, data[i]); \
+ } \
+ base = (base + 1) & ~1; \
} while (0)
#endif
diff --git a/hw/m68k/virt.c b/hw/m68k/virt.c
index e215aa3..0aa383f 100644
--- a/hw/m68k/virt.c
+++ b/hw/m68k/virt.c
@@ -9,6 +9,7 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
+#include "qemu/guest-random.h"
#include "sysemu/sysemu.h"
#include "cpu.h"
#include "hw/boards.h"
@@ -120,6 +121,7 @@ static void virt_init(MachineState *machine)
hwaddr io_base;
int i;
ResetInfo *reset_info;
+ uint8_t rng_seed[32];
if (ram_size > 3399672 * KiB) {
/*
@@ -245,6 +247,11 @@ static void virt_init(MachineState *machine)
kernel_cmdline);
}
+ /* Pass seed to RNG. */
+ qemu_guest_getrandom_nofail(rng_seed, sizeof(rng_seed));
+ BOOTINFODATA(cs->as, parameters_base, BI_VIRT_RNG_SEED,
+ rng_seed, sizeof(rng_seed));
+
/* load initrd */
if (initrd_filename) {
initrd_size = get_image_size(initrd_filename);
diff --git a/include/standard-headers/asm-m68k/bootinfo-virt.h b/include/standard-headers/asm-m68k/bootinfo-virt.h
index 81be1e0..1b1ffd4 100644
--- a/include/standard-headers/asm-m68k/bootinfo-virt.h
+++ b/include/standard-headers/asm-m68k/bootinfo-virt.h
@@ -12,6 +12,7 @@
#define BI_VIRT_GF_TTY_BASE 0x8003
#define BI_VIRT_VIRTIO_BASE 0x8004
#define BI_VIRT_CTRL_BASE 0x8005
+#define BI_VIRT_RNG_SEED 0x8006
#define VIRT_BOOTI_VERSION MK_BI_VERSION(2, 0)