[PATCH] hw/microblaze: pass random seed to fdt

Jason A. Donenfeld posted 1 patch 1 year, 9 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220719122334.136290-1-Jason@zx2c4.com
Maintainers: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
There is a newer version of this series
hw/microblaze/boot.c | 5 +++++
1 file changed, 5 insertions(+)
[PATCH] hw/microblaze: pass random seed to fdt
Posted by Jason A. Donenfeld 1 year, 9 months ago
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(+)

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
Re: [PATCH] hw/microblaze: pass random seed to fdt
Posted by Edgar E. Iglesias 1 year, 9 months ago
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
>
>
Re: [PATCH] hw/microblaze: pass random seed to fdt
Posted by Jason A. Donenfeld 1 year, 9 months ago
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
Re: [PATCH] hw/microblaze: pass random seed to fdt
Posted by Edgar E. Iglesias 1 year, 9 months ago
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

>
Re: [PATCH] hw/microblaze: pass random seed to fdt
Posted by Jason A. Donenfeld 1 year, 9 months ago
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
Re: [PATCH] hw/microblaze: pass random seed to fdt
Posted by Richard Henderson 1 year, 9 months ago
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~
Re: [PATCH] hw/microblaze: pass random seed to fdt
Posted by Jason A. Donenfeld 1 year, 9 months ago
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
[PATCH RESEND] hw/microblaze: pass random seed to fdt
Posted by Jason A. Donenfeld 1 year, 7 months ago
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@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.37.3
Re: [PATCH RESEND] hw/microblaze: pass random seed to fdt
Posted by Jason A. Donenfeld 1 year, 7 months ago
On Thu, Sep 8, 2022 at 11:40 AM 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@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.37.3
>

Bumping this patch. Could somebody queue this up?
Re: [PATCH RESEND] hw/microblaze: pass random seed to fdt
Posted by Edgar E. Iglesias 1 year, 7 months ago
On Wed, Sep 21, 2022 at 12:32:37PM +0200, Jason A. Donenfeld wrote:
> On Thu, Sep 8, 2022 at 11:40 AM 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@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.37.3
> >
> 
> Bumping this patch. Could somebody queue this up?

Hi Jason,

I've just sent a pull-request with this patch.

Thanks,
Edgar