diff mbox series

hw/microblaze: pass random seed to fdt

Message ID 20220719122334.136290-1-Jason@zx2c4.com (mailing list archive)
State New, archived
Headers show
Series hw/microblaze: pass random seed to fdt | expand

Commit Message

Jason A. Donenfeld July 19, 2022, 12:23 p.m. UTC
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.

Cc: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
---
 hw/microblaze/boot.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Edgar E. Iglesias July 20, 2022, 7:13 a.m. UTC | #1
On Tue, Jul 19, 2022 at 2:23 PM Jason A. Donenfeld <Jason@zx2c4.com> wrote:

> 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.
>

Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com>



>
> Cc: Edgar E. Iglesias <edgar.iglesias@gmail.com>
> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
> ---
>  hw/microblaze/boot.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/hw/microblaze/boot.c b/hw/microblaze/boot.c
> index 8b92a9801a..25ad54754e 100644
> --- a/hw/microblaze/boot.c
> +++ b/hw/microblaze/boot.c
> @@ -30,6 +30,7 @@
>  #include "qemu/option.h"
>  #include "qemu/config-file.h"
>  #include "qemu/error-report.h"
> +#include "qemu/guest-random.h"
>  #include "sysemu/device_tree.h"
>  #include "sysemu/reset.h"
>  #include "hw/boards.h"
> @@ -75,6 +76,7 @@ static int microblaze_load_dtb(hwaddr addr,
>      int fdt_size;
>      void *fdt = NULL;
>      int r;
> +    uint8_t rng_seed[32];
>
>      if (dtb_filename) {
>          fdt = load_device_tree(dtb_filename, &fdt_size);
> @@ -83,6 +85,9 @@ static int microblaze_load_dtb(hwaddr addr,
>          return 0;
>      }
>
> +    qemu_guest_getrandom_nofail(rng_seed, sizeof(rng_seed));
> +    qemu_fdt_setprop(fdt, "/chosen", "rng-seed", rng_seed,
> sizeof(rng_seed));
> +
>      if (kernel_cmdline) {
>          r = qemu_fdt_setprop_string(fdt, "/chosen", "bootargs",
>                                      kernel_cmdline);
> --
> 2.35.1
>
>
Jason A. Donenfeld July 21, 2022, 4:43 p.m. UTC | #2
Hey Edgar,

On Wed, Jul 20, 2022 at 9:13 AM Edgar E. Iglesias
<edgar.iglesias@gmail.com> wrote:
>
>
> On Tue, Jul 19, 2022 at 2:23 PM Jason A. Donenfeld <Jason@zx2c4.com> wrote:
>>
>> 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.
>
>
> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com>

Thanks for looking at this. Paolo (CC'd) just sent a few similar
changes for different archs in a pull, but not this one, on the
supposition that you'd roll this into your next pull. If this isn't
the case, please pipe up so Paolo can take it instead later.

Jason
Edgar E. Iglesias July 21, 2022, 6:43 p.m. UTC | #3
On Thu, Jul 21, 2022, 6:44 PM Jason A. Donenfeld <Jason@zx2c4.com> wrote:

> Hey Edgar,
>
> On Wed, Jul 20, 2022 at 9:13 AM Edgar E. Iglesias
> <edgar.iglesias@gmail.com> wrote:
> >
> >
> > On Tue, Jul 19, 2022 at 2:23 PM Jason A. Donenfeld <Jason@zx2c4.com>
> wrote:
> >>
> >> 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.
> >
> >
> > Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
>
> Thanks for looking at this. Paolo (CC'd) just sent a few similar
> changes for different archs in a pull, but not this one, on the
> supposition that you'd roll this into your next pull. If this isn't
> the case, please pipe up so Paolo can take it instead later.
>
> Jason
>


Ah OK, Paolo, it would be great if you would take this via your tree!

Thanks,
Edgar

>
Jason A. Donenfeld July 27, 2022, 1:49 a.m. UTC | #4
Hi Edgar,

On Thu, Jul 21, 2022 at 8:43 PM Edgar E. Iglesias
<edgar.iglesias@gmail.com> wrote:
> Ah OK, Paolo, it would be great if you would take this via your tree!

It looks like Paolo never did this. So you might want to queue this
somewhere, or bug him to take it, or something. I don't know how this
works with 7.1-rc0 just being tagged, but I assume this means this has
to wait until 7.2

Jason
Richard Henderson July 27, 2022, 3:13 a.m. UTC | #5
On 7/26/22 18:49, Jason A. Donenfeld wrote:
> Hi Edgar,
> 
> On Thu, Jul 21, 2022 at 8:43 PM Edgar E. Iglesias
> <edgar.iglesias@gmail.com> wrote:
>> Ah OK, Paolo, it would be great if you would take this via your tree!
> 
> It looks like Paolo never did this. So you might want to queue this
> somewhere, or bug him to take it, or something. I don't know how this
> works with 7.1-rc0 just being tagged, but I assume this means this has
> to wait until 7.2

Yes, it has missed the window by over a week now: soft freeze.
You really should have kept all of these in one thread.


r~
Jason A. Donenfeld July 27, 2022, 11:51 a.m. UTC | #6
Hi Richard,

On Tue, Jul 26, 2022 at 08:13:09PM -0700, Richard Henderson wrote:
> On 7/26/22 18:49, Jason A. Donenfeld wrote:
> > Hi Edgar,
> > 
> > On Thu, Jul 21, 2022 at 8:43 PM Edgar E. Iglesias
> > <edgar.iglesias@gmail.com> wrote:
> >> Ah OK, Paolo, it would be great if you would take this via your tree!
> > 
> > It looks like Paolo never did this. So you might want to queue this
> > somewhere, or bug him to take it, or something. I don't know how this
> > works with 7.1-rc0 just being tagged, but I assume this means this has
> > to wait until 7.2
> 
> Yes, it has missed the window by over a week now: soft freeze.
> You really should have kept all of these in one thread.

Shoulda woulda coulda. It doesn't really matter to me much when the
microblaze one goes in, just that it can exist in some maintainer tree.
I'd like to be able to remove this from my "pending patch list" that I
have to monitor lest things be forgotten.

Jason
diff mbox series

Patch

diff --git a/hw/microblaze/boot.c b/hw/microblaze/boot.c
index 8b92a9801a..25ad54754e 100644
--- a/hw/microblaze/boot.c
+++ b/hw/microblaze/boot.c
@@ -30,6 +30,7 @@ 
 #include "qemu/option.h"
 #include "qemu/config-file.h"
 #include "qemu/error-report.h"
+#include "qemu/guest-random.h"
 #include "sysemu/device_tree.h"
 #include "sysemu/reset.h"
 #include "hw/boards.h"
@@ -75,6 +76,7 @@  static int microblaze_load_dtb(hwaddr addr,
     int fdt_size;
     void *fdt = NULL;
     int r;
+    uint8_t rng_seed[32];
 
     if (dtb_filename) {
         fdt = load_device_tree(dtb_filename, &fdt_size);
@@ -83,6 +85,9 @@  static int microblaze_load_dtb(hwaddr addr,
         return 0;
     }
 
+    qemu_guest_getrandom_nofail(rng_seed, sizeof(rng_seed));
+    qemu_fdt_setprop(fdt, "/chosen", "rng-seed", rng_seed, sizeof(rng_seed));
+
     if (kernel_cmdline) {
         r = qemu_fdt_setprop_string(fdt, "/chosen", "bootargs",
                                     kernel_cmdline);