m68k: rework BI_VIRT_RNG_SEED as BI_RNG_SEED
Following a change on the kernel side (see link), pass BI_RNG_SEED instead of BI_VIRT_RNG_SEED. This should have no impact on compatibility, as there will simply be no effect if it's an old kernel, which is how things have always been. We then use this as an opportunity to add this to q800, since now we can, which is a nice improvement. Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Laurent Vivier <laurent@vivier.eu> Link: https://lore.kernel.org/lkml/20220923170340.4099226-3-Jason@zx2c4.com/ Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Message-Id: <20220926113900.1256630-1-Jason@zx2c4.com> [lv: s/^I/ /g] Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
		
							parent
							
								
									0529245488
								
							
						
					
					
						commit
						693869a66e
					
				@ -23,6 +23,7 @@
 | 
				
			|||||||
#include "qemu/osdep.h"
 | 
					#include "qemu/osdep.h"
 | 
				
			||||||
#include "qemu/units.h"
 | 
					#include "qemu/units.h"
 | 
				
			||||||
#include "qemu/datadir.h"
 | 
					#include "qemu/datadir.h"
 | 
				
			||||||
 | 
					#include "qemu/guest-random.h"
 | 
				
			||||||
#include "sysemu/sysemu.h"
 | 
					#include "sysemu/sysemu.h"
 | 
				
			||||||
#include "cpu.h"
 | 
					#include "cpu.h"
 | 
				
			||||||
#include "hw/boards.h"
 | 
					#include "hw/boards.h"
 | 
				
			||||||
@ -385,6 +386,7 @@ static void q800_init(MachineState *machine)
 | 
				
			|||||||
    NubusBus *nubus;
 | 
					    NubusBus *nubus;
 | 
				
			||||||
    DeviceState *glue;
 | 
					    DeviceState *glue;
 | 
				
			||||||
    DriveInfo *dinfo;
 | 
					    DriveInfo *dinfo;
 | 
				
			||||||
 | 
					    uint8_t rng_seed[32];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    linux_boot = (kernel_filename != NULL);
 | 
					    linux_boot = (kernel_filename != NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -634,6 +636,11 @@ static void q800_init(MachineState *machine)
 | 
				
			|||||||
                        kernel_cmdline);
 | 
					                        kernel_cmdline);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* Pass seed to RNG. */
 | 
				
			||||||
 | 
					        qemu_guest_getrandom_nofail(rng_seed, sizeof(rng_seed));
 | 
				
			||||||
 | 
					        BOOTINFODATA(cs->as, parameters_base, BI_RNG_SEED,
 | 
				
			||||||
 | 
					                     rng_seed, sizeof(rng_seed));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /* load initrd */
 | 
					        /* load initrd */
 | 
				
			||||||
        if (initrd_filename) {
 | 
					        if (initrd_filename) {
 | 
				
			||||||
            initrd_size = get_image_size(initrd_filename);
 | 
					            initrd_size = get_image_size(initrd_filename);
 | 
				
			||||||
 | 
				
			|||||||
@ -250,7 +250,7 @@ static void virt_init(MachineState *machine)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        /* Pass seed to RNG. */
 | 
					        /* Pass seed to RNG. */
 | 
				
			||||||
        qemu_guest_getrandom_nofail(rng_seed, sizeof(rng_seed));
 | 
					        qemu_guest_getrandom_nofail(rng_seed, sizeof(rng_seed));
 | 
				
			||||||
	BOOTINFODATA(cs->as, parameters_base, BI_VIRT_RNG_SEED,
 | 
					        BOOTINFODATA(cs->as, parameters_base, BI_RNG_SEED,
 | 
				
			||||||
                     rng_seed, sizeof(rng_seed));
 | 
					                     rng_seed, sizeof(rng_seed));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /* load initrd */
 | 
					        /* load initrd */
 | 
				
			||||||
 | 
				
			|||||||
@ -12,7 +12,9 @@
 | 
				
			|||||||
#define BI_VIRT_GF_TTY_BASE	0x8003
 | 
					#define BI_VIRT_GF_TTY_BASE	0x8003
 | 
				
			||||||
#define BI_VIRT_VIRTIO_BASE	0x8004
 | 
					#define BI_VIRT_VIRTIO_BASE	0x8004
 | 
				
			||||||
#define BI_VIRT_CTRL_BASE	0x8005
 | 
					#define BI_VIRT_CTRL_BASE	0x8005
 | 
				
			||||||
#define BI_VIRT_RNG_SEED	0x8006
 | 
					
 | 
				
			||||||
 | 
					/* No longer used -- replaced with BI_RNG_SEED -- but don't reuse this index:
 | 
				
			||||||
 | 
					 * #define BI_VIRT_RNG_SEED	0x8006 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define VIRT_BOOTI_VERSION	MK_BI_VERSION(2, 0)
 | 
					#define VIRT_BOOTI_VERSION	MK_BI_VERSION(2, 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -57,7 +57,13 @@ struct mem_info {
 | 
				
			|||||||
					/* (struct mem_info) */
 | 
										/* (struct mem_info) */
 | 
				
			||||||
#define BI_COMMAND_LINE		0x0007	/* kernel command line parameters */
 | 
					#define BI_COMMAND_LINE		0x0007	/* kernel command line parameters */
 | 
				
			||||||
					/* (string) */
 | 
										/* (string) */
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * A random seed used to initialize the RNG. Record format:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *   - length       [ 2 bytes, 16-bit big endian ]
 | 
				
			||||||
 | 
					 *   - seed data    [ `length` bytes, padded to preserve 4-byte struct alignment ]
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define BI_RNG_SEED		0x0008
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /*
 | 
					    /*
 | 
				
			||||||
     *  Linux/m68k Architectures (BI_MACHTYPE)
 | 
					     *  Linux/m68k Architectures (BI_MACHTYPE)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user