Message ID | 20220801131039.1693913-3-clg@kaod.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ppc: QOM'ify 405 board | expand |
On 8/1/22 10:10, Cédric Le Goater wrote: > We will use this machine as a base to define the ref405ep and possibly > the PPC405 hotfoot board as found in the Linux kernel. > > Signed-off-by: Cédric Le Goater <clg@kaod.org> > --- > hw/ppc/ppc405_boards.c | 31 ++++++++++++++++++++++++++++--- > 1 file changed, 28 insertions(+), 3 deletions(-) > > diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c > index 1a4e7588c584..4c269b6526a5 100644 > --- a/hw/ppc/ppc405_boards.c > +++ b/hw/ppc/ppc405_boards.c > @@ -50,6 +50,15 @@ > > #define USE_FLASH_BIOS > > +struct Ppc405MachineState { > + /* Private */ > + MachineState parent_obj; > + /* Public */ > +}; > + > +#define TYPE_PPC405_MACHINE MACHINE_TYPE_NAME("ppc405") > +OBJECT_DECLARE_SIMPLE_TYPE(Ppc405MachineState, PPC405_MACHINE); > + > /*****************************************************************************/ > /* PPC405EP reference board (IBM) */ > /* Standalone board with: > @@ -332,18 +341,34 @@ static void ref405ep_class_init(ObjectClass *oc, void *data) > > mc->desc = "ref405ep"; > mc->init = ref405ep_init; > - mc->default_ram_size = 0x08000000; > - mc->default_ram_id = "ef405ep.ram"; > } > > static const TypeInfo ref405ep_type = { > .name = MACHINE_TYPE_NAME("ref405ep"), > - .parent = TYPE_MACHINE, > + .parent = TYPE_PPC405_MACHINE, > .class_init = ref405ep_class_init, > }; > > +static void ppc405_machine_class_init(ObjectClass *oc, void *data) > +{ > + MachineClass *mc = MACHINE_CLASS(oc); > + > + mc->desc = "PPC405 generic machine"; > + mc->default_ram_size = 0x08000000; > + mc->default_ram_id = "ppc405.ram"; I don't mind changing the default_ram_id from "ef405ep.ram" to "ppc405.ram", but since we're renaming it, might as well rename the remaining instances of ef405ep.ram: $ git grep 'ef405ep.ram' hw/ppc/ppc405_uc.c: "ef405ep.ram.alias", s->dram_mr, 0, s->ram_size); hw/ppc/ppc405_uc.c: memory_region_init(&s->ram_memories[1], OBJECT(s), "ef405ep.ram1", 0); I believe these can be renamed to "ppc405.ram.alias" and "ppc405.ram1" in patch 05. Thanks, Daniel > +} > + > +static const TypeInfo ppc405_machine_type = { > + .name = TYPE_PPC405_MACHINE, > + .parent = TYPE_MACHINE, > + .instance_size = sizeof(Ppc405MachineState), > + .class_init = ppc405_machine_class_init, > + .abstract = true, > +}; > + > static void ppc405_machine_init(void) > { > + type_register_static(&ppc405_machine_type); > type_register_static(&ref405ep_type); > } >
On 8/2/22 21:07, Daniel Henrique Barboza wrote: > > > On 8/1/22 10:10, Cédric Le Goater wrote: >> We will use this machine as a base to define the ref405ep and possibly >> the PPC405 hotfoot board as found in the Linux kernel. >> >> Signed-off-by: Cédric Le Goater <clg@kaod.org> >> --- >> hw/ppc/ppc405_boards.c | 31 ++++++++++++++++++++++++++++--- >> 1 file changed, 28 insertions(+), 3 deletions(-) >> >> diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c >> index 1a4e7588c584..4c269b6526a5 100644 >> --- a/hw/ppc/ppc405_boards.c >> +++ b/hw/ppc/ppc405_boards.c >> @@ -50,6 +50,15 @@ >> #define USE_FLASH_BIOS >> +struct Ppc405MachineState { >> + /* Private */ >> + MachineState parent_obj; >> + /* Public */ >> +}; >> + >> +#define TYPE_PPC405_MACHINE MACHINE_TYPE_NAME("ppc405") >> +OBJECT_DECLARE_SIMPLE_TYPE(Ppc405MachineState, PPC405_MACHINE); >> + >> /*****************************************************************************/ >> /* PPC405EP reference board (IBM) */ >> /* Standalone board with: >> @@ -332,18 +341,34 @@ static void ref405ep_class_init(ObjectClass *oc, void *data) >> mc->desc = "ref405ep"; >> mc->init = ref405ep_init; >> - mc->default_ram_size = 0x08000000; >> - mc->default_ram_id = "ef405ep.ram"; >> } >> static const TypeInfo ref405ep_type = { >> .name = MACHINE_TYPE_NAME("ref405ep"), >> - .parent = TYPE_MACHINE, >> + .parent = TYPE_PPC405_MACHINE, >> .class_init = ref405ep_class_init, >> }; >> +static void ppc405_machine_class_init(ObjectClass *oc, void *data) >> +{ >> + MachineClass *mc = MACHINE_CLASS(oc); >> + >> + mc->desc = "PPC405 generic machine"; >> + mc->default_ram_size = 0x08000000; >> + mc->default_ram_id = "ppc405.ram"; > > > I don't mind changing the default_ram_id from "ef405ep.ram" to "ppc405.ram", > but since we're renaming it, might as well rename the remaining instances > of ef405ep.ram: > > $ git grep 'ef405ep.ram' > hw/ppc/ppc405_uc.c: "ef405ep.ram.alias", s->dram_mr, 0, s->ram_size); > hw/ppc/ppc405_uc.c: memory_region_init(&s->ram_memories[1], OBJECT(s), "ef405ep.ram1", 0); Sure. I will clean that up also. Thanks, C. > > I believe these can be renamed to "ppc405.ram.alias" and "ppc405.ram1" in > patch 05. > > > Thanks, > > > Daniel > > >> +} >> + >> +static const TypeInfo ppc405_machine_type = { >> + .name = TYPE_PPC405_MACHINE, >> + .parent = TYPE_MACHINE, >> + .instance_size = sizeof(Ppc405MachineState), >> + .class_init = ppc405_machine_class_init, >> + .abstract = true, >> +}; >> + >> static void ppc405_machine_init(void) >> { >> + type_register_static(&ppc405_machine_type); >> type_register_static(&ref405ep_type); >> }
diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c index 1a4e7588c584..4c269b6526a5 100644 --- a/hw/ppc/ppc405_boards.c +++ b/hw/ppc/ppc405_boards.c @@ -50,6 +50,15 @@ #define USE_FLASH_BIOS +struct Ppc405MachineState { + /* Private */ + MachineState parent_obj; + /* Public */ +}; + +#define TYPE_PPC405_MACHINE MACHINE_TYPE_NAME("ppc405") +OBJECT_DECLARE_SIMPLE_TYPE(Ppc405MachineState, PPC405_MACHINE); + /*****************************************************************************/ /* PPC405EP reference board (IBM) */ /* Standalone board with: @@ -332,18 +341,34 @@ static void ref405ep_class_init(ObjectClass *oc, void *data) mc->desc = "ref405ep"; mc->init = ref405ep_init; - mc->default_ram_size = 0x08000000; - mc->default_ram_id = "ef405ep.ram"; } static const TypeInfo ref405ep_type = { .name = MACHINE_TYPE_NAME("ref405ep"), - .parent = TYPE_MACHINE, + .parent = TYPE_PPC405_MACHINE, .class_init = ref405ep_class_init, }; +static void ppc405_machine_class_init(ObjectClass *oc, void *data) +{ + MachineClass *mc = MACHINE_CLASS(oc); + + mc->desc = "PPC405 generic machine"; + mc->default_ram_size = 0x08000000; + mc->default_ram_id = "ppc405.ram"; +} + +static const TypeInfo ppc405_machine_type = { + .name = TYPE_PPC405_MACHINE, + .parent = TYPE_MACHINE, + .instance_size = sizeof(Ppc405MachineState), + .class_init = ppc405_machine_class_init, + .abstract = true, +}; + static void ppc405_machine_init(void) { + type_register_static(&ppc405_machine_type); type_register_static(&ref405ep_type); }
We will use this machine as a base to define the ref405ep and possibly the PPC405 hotfoot board as found in the Linux kernel. Signed-off-by: Cédric Le Goater <clg@kaod.org> --- hw/ppc/ppc405_boards.c | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-)