Message ID | 20230531125400.288917-7-mark.cave-ayland@ilande.co.uk |
---|---|
State | New |
Headers | show |
Series | q800: add support for booting MacOS Classic - part 1 | expand |
On 31/5/23 14:53, Mark Cave-Ayland wrote: > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > --- > hw/m68k/q800.c | 13 +++++-------- > include/hw/m68k/q800.h | 1 + > 2 files changed, 6 insertions(+), 8 deletions(-) > diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h > index 0f54f1c2cf..3e41f0e297 100644 > --- a/include/hw/m68k/q800.h > +++ b/include/hw/m68k/q800.h > @@ -31,6 +31,7 @@ struct Q800MachineState { > MachineState parent_obj; > > M68kCPU cpu; > + MemoryRegion rom; Declared in "exec/memory.h" (missing #include), otherwise: Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> > }; > > #define TYPE_Q800_MACHINE MACHINE_TYPE_NAME("q800")
Le 31/05/2023 à 14:53, Mark Cave-Ayland a écrit : > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > --- > hw/m68k/q800.c | 13 +++++-------- > include/hw/m68k/q800.h | 1 + > 2 files changed, 6 insertions(+), 8 deletions(-) > > diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c > index c34b2548ca..3d0a56d9f3 100644 > --- a/hw/m68k/q800.c > +++ b/hw/m68k/q800.c > @@ -372,7 +372,6 @@ static void q800_machine_init(MachineState *machine) > int bios_size; > ram_addr_t initrd_base; > int32_t initrd_size; > - MemoryRegion *rom; > MemoryRegion *io; > MemoryRegion *dp8393x_prom = g_new(MemoryRegion, 1); > uint8_t *prom; > @@ -647,11 +646,10 @@ static void q800_machine_init(MachineState *machine) > BOOTINFO1(param_ptr, BI_MAC_VROW, macfb_mode->stride); > BOOTINFO1(param_ptr, BI_MAC_SCCBASE, SCC_BASE); > > - rom = g_malloc(sizeof(*rom)); > - memory_region_init_ram_ptr(rom, NULL, "m68k_fake_mac.rom", > + memory_region_init_ram_ptr(&m->rom, NULL, "m68k_fake_mac.rom", > sizeof(fake_mac_rom), fake_mac_rom); > - memory_region_set_readonly(rom, true); > - memory_region_add_subregion(get_system_memory(), MACROM_ADDR, rom); > + memory_region_set_readonly(&m->rom, true); > + memory_region_add_subregion(get_system_memory(), MACROM_ADDR, &m->rom); > > if (kernel_cmdline) { > BOOTINFOSTR(param_ptr, BI_COMMAND_LINE, > @@ -693,11 +691,10 @@ static void q800_machine_init(MachineState *machine) > } else { > uint8_t *ptr; > /* allocate and load BIOS */ > - rom = g_malloc(sizeof(*rom)); > - memory_region_init_rom(rom, NULL, "m68k_mac.rom", MACROM_SIZE, > + memory_region_init_rom(&m->rom, NULL, "m68k_mac.rom", MACROM_SIZE, > &error_abort); > filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name); > - memory_region_add_subregion(get_system_memory(), MACROM_ADDR, rom); > + memory_region_add_subregion(get_system_memory(), MACROM_ADDR, &m->rom); > > /* Load MacROM binary */ > if (filename) { > diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h > index 0f54f1c2cf..3e41f0e297 100644 > --- a/include/hw/m68k/q800.h > +++ b/include/hw/m68k/q800.h > @@ -31,6 +31,7 @@ struct Q800MachineState { > MachineState parent_obj; > > M68kCPU cpu; > + MemoryRegion rom; > }; > > #define TYPE_Q800_MACHINE MACHINE_TYPE_NAME("q800") Reviewed-by: Laurent Vivier <laurent@vivier.eu>
diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index c34b2548ca..3d0a56d9f3 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -372,7 +372,6 @@ static void q800_machine_init(MachineState *machine) int bios_size; ram_addr_t initrd_base; int32_t initrd_size; - MemoryRegion *rom; MemoryRegion *io; MemoryRegion *dp8393x_prom = g_new(MemoryRegion, 1); uint8_t *prom; @@ -647,11 +646,10 @@ static void q800_machine_init(MachineState *machine) BOOTINFO1(param_ptr, BI_MAC_VROW, macfb_mode->stride); BOOTINFO1(param_ptr, BI_MAC_SCCBASE, SCC_BASE); - rom = g_malloc(sizeof(*rom)); - memory_region_init_ram_ptr(rom, NULL, "m68k_fake_mac.rom", + memory_region_init_ram_ptr(&m->rom, NULL, "m68k_fake_mac.rom", sizeof(fake_mac_rom), fake_mac_rom); - memory_region_set_readonly(rom, true); - memory_region_add_subregion(get_system_memory(), MACROM_ADDR, rom); + memory_region_set_readonly(&m->rom, true); + memory_region_add_subregion(get_system_memory(), MACROM_ADDR, &m->rom); if (kernel_cmdline) { BOOTINFOSTR(param_ptr, BI_COMMAND_LINE, @@ -693,11 +691,10 @@ static void q800_machine_init(MachineState *machine) } else { uint8_t *ptr; /* allocate and load BIOS */ - rom = g_malloc(sizeof(*rom)); - memory_region_init_rom(rom, NULL, "m68k_mac.rom", MACROM_SIZE, + memory_region_init_rom(&m->rom, NULL, "m68k_mac.rom", MACROM_SIZE, &error_abort); filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name); - memory_region_add_subregion(get_system_memory(), MACROM_ADDR, rom); + memory_region_add_subregion(get_system_memory(), MACROM_ADDR, &m->rom); /* Load MacROM binary */ if (filename) { diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h index 0f54f1c2cf..3e41f0e297 100644 --- a/include/hw/m68k/q800.h +++ b/include/hw/m68k/q800.h @@ -31,6 +31,7 @@ struct Q800MachineState { MachineState parent_obj; M68kCPU cpu; + MemoryRegion rom; }; #define TYPE_Q800_MACHINE MACHINE_TYPE_NAME("q800")
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- hw/m68k/q800.c | 13 +++++-------- include/hw/m68k/q800.h | 1 + 2 files changed, 6 insertions(+), 8 deletions(-)