Hi, Philippe and Peter, On Tue, Jan 5, 2021 at 2:30 AM Philippe Mathieu-Daudé <f4...@amsat.org> wrote: > > On 1/4/21 7:24 PM, Philippe Mathieu-Daudé wrote: > > On 1/4/21 6:39 PM, Philippe Mathieu-Daudé wrote: > >> On 1/4/21 4:01 PM, Peter Maydell wrote: > >>> On Mon, 4 Jan 2021 at 13:59, Philippe Mathieu-Daudé <f4...@amsat.org> > >>> wrote: > >>>> I don't have access to OSX host. I'll see to install an aarch32 chroot > >>>> and > >>>> keep testing (not sure what can differ from an i386 guest). > >>>> If I can't find anything I'll resend the same series without the > >>>> Loongson-3 > >>>> machine, which is the single part adding QOM objects. > > > > OK I guess I found the problem, we have: > > > > struct LoongsonMachineState { > > MachineState parent_obj; > > MemoryRegion *pio_alias; > > MemoryRegion *mmio_alias; > > MemoryRegion *ecam_alias; > > }; > > > > Then: > > > > static inline void loongson3_virt_devices_init(MachineState *machine, > > DeviceState *pic) > > { > > int i; > > qemu_irq irq; > > PCIBus *pci_bus; > > DeviceState *dev; > > MemoryRegion *mmio_reg, *ecam_reg; > > LoongsonMachineState *s = LOONGSON_MACHINE(machine); > > > > LoongsonMachineState is never allocated... Accessing its MR lead > > to BOF. > > I'm going to respin with this (pass 32-bit tests): > > -- >8 -- > diff --git a/hw/mips/loongson3_virt.c b/hw/mips/loongson3_virt.c > index e3723d3dd0f..d4a82fa5367 100644 > --- a/hw/mips/loongson3_virt.c > +++ b/hw/mips/loongson3_virt.c > @@ -612,8 +612,10 @@ static void mips_loongson3_virt_init(MachineState > *machine) > loongson3_virt_devices_init(machine, liointc); > } > > -static void mips_loongson3_virt_machine_init(MachineClass *mc) > +static void loongson3v_machine_class_init(ObjectClass *oc, void *data) > { > + MachineClass *mc = MACHINE_CLASS(oc); > + > mc->desc = "Loongson-3 Virtualization Platform"; > mc->init = mips_loongson3_virt_init; > mc->block_default_type = IF_IDE; > @@ -624,4 +626,13 @@ static void > mips_loongson3_virt_machine_init(MachineClass *mc) > mc->minimum_page_bits = 14; > } > > -DEFINE_MACHINE("loongson3-virt", mips_loongson3_virt_machine_init) > +static const TypeInfo loongson3_machine_types[] = { > + { > + .name = TYPE_LOONGSON_MACHINE, > + .parent = TYPE_MACHINE, > + .instance_size = sizeof(LoongsonMachineState), > + .class_init = loongson3v_machine_class_init, > + } > +}; > + > +DEFINE_TYPES(loongson3_machine_types) > --- > > Thanks Peter for catching this (we really need a 32-bit host runner > on GitLab...). > Should I send a new version?
Huacai > Phil.