Signed-off-by: BALATON Zoltan <bala...@eik.bme.hu>
---
hw/ppc/mac_newworld.c | 94 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 94 insertions(+)
diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
index bcd6566ead..7321ac925e 100644
--- a/hw/ppc/mac_newworld.c
+++ b/hw/ppc/mac_newworld.c
@@ -649,9 +649,103 @@ static const TypeInfo core99_machine_info = {
},
};
+static void powermac3_1_machine_class_init(ObjectClass *oc, void *data)
+{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
+ core99_machine_class_init(oc, data);
+ mc->desc = "Apple Power Mac G4 AGP (Sawtooth)";
+ mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("7400_v2.9");
+}
+
+static void powermac3_1_instance_init(Object *obj)
+{
+ Core99MachineState *cms = CORE99_MACHINE(obj);
+
+ cms->via_config = CORE99_VIA_CONFIG_PMU;
+ return;
+}
+
+static const TypeInfo powermac3_1_machine_info = {
+ .name = MACHINE_TYPE_NAME("powermac3_1"),
+ .parent = TYPE_MACHINE,
+ .class_init = powermac3_1_machine_class_init,
+ .instance_init = powermac3_1_instance_init,
+ .instance_size = sizeof(Core99MachineState),
+ .interfaces = (InterfaceInfo[]) {
+ { TYPE_FW_PATH_PROVIDER },
+ { }
+ },
+};
+
+static void powerbook3_2_machine_class_init(ObjectClass *oc, void *data)
+{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
+ core99_machine_class_init(oc, data);
+ mc->desc = "Apple PowerBook G4 Titanium (Mercury)";
+ mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("7400_v2.9");
+}
+
+static void powerbook3_2_instance_init(Object *obj)
+{
+ Core99MachineState *cms = CORE99_MACHINE(obj);
+
+ cms->via_config = CORE99_VIA_CONFIG_PMU_ADB;
+ return;
+}
+
+static const TypeInfo powerbook3_2_machine_info = {
+ .name = MACHINE_TYPE_NAME("powerbook3_2"),
+ .parent = TYPE_MACHINE,
+ .class_init = powerbook3_2_machine_class_init,
+ .instance_init = powerbook3_2_instance_init,
+ .instance_size = sizeof(Core99MachineState),
+ .interfaces = (InterfaceInfo[]) {
+ { TYPE_FW_PATH_PROVIDER },
+ { }
+ },
+};
+
+#ifdef TARGET_PPC64
+static void powermac7_3_machine_class_init(ObjectClass *oc, void *data)
+{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
+ core99_machine_class_init(oc, data);
+ mc->desc = "Apple Power Mac G5 (Niagara)";
+ mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("970fx_v3.1");
+}
+
+static void powermac7_3_instance_init(Object *obj)
+{
+ Core99MachineState *cms = CORE99_MACHINE(obj);
+
+ cms->via_config = CORE99_VIA_CONFIG_PMU;
+ return;
+}
+
+static const TypeInfo powermac7_3_machine_info = {
+ .name = MACHINE_TYPE_NAME("powermac7_3"),
+ .parent = TYPE_MACHINE,
+ .class_init = powermac7_3_machine_class_init,
+ .instance_init = powermac7_3_instance_init,
+ .instance_size = sizeof(Core99MachineState),
+ .interfaces = (InterfaceInfo[]) {
+ { TYPE_FW_PATH_PROVIDER },
+ { }
+ },
+};
+#endif
+
static void mac_machine_register_types(void)
{
type_register_static(&core99_machine_info);
+ type_register_static(&powermac3_1_machine_info);
+ type_register_static(&powerbook3_2_machine_info);
+#ifdef TARGET_PPC64
+ type_register_static(&powermac7_3_machine_info);
+#endif
}
type_init(mac_machine_register_types)