@@ -93,10 +93,10 @@ static const MemMapEntry sifive_u_memmap[] = {
#define OTP_SERIAL 1
#define GEM_REVISION 0x10070109
-static void create_fdt(SiFiveUState *s, const MemMapEntry *memmap,
- uint64_t mem_size, const char *cmdline, bool is_32_bit)
+static void create_fdt(MachineState *ms, SiFiveUState *s,
+ const MemMapEntry *memmap, bool is_32_bit)
{
- MachineState *ms = MACHINE(qdev_get_machine());
+ uint64_t mem_size = ms->ram_size;
void *fdt;
int cpu, fdt_size;
uint32_t *cells;
@@ -560,8 +560,7 @@ static void sifive_u_machine_init(MachineState *machine)
qemu_allocate_irq(sifive_u_machine_reset, NULL, 0));
/* create device tree */
- create_fdt(s, memmap, machine->ram_size, machine->kernel_cmdline,
- riscv_is_32bit(&s->soc.u_cpus));
+ create_fdt(machine, s, memmap, riscv_is_32bit(&s->soc.u_cpus));
if (s->start_in_flash) {
/*
cmdline' isn't being used. A MachineState pointer is being retrieved via a MACHINE() macro calling qdev_get_machine(). 'mem_size' is being set as machine->ram_size. Remove the 'cmdline' and 'mem_size' parameters, add MachineState as a parameter to avoid the cast and retrieve 'mem_size' via ms->ram_size. Cc: Palmer Dabbelt <palmer@dabbelt.com> Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> --- hw/riscv/sifive_u.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)