Introduce the 'malta-phys' machine, aiming to have the same
limitations as real hardware. Start by restricting the RAM
to 1GB, which is the maximum amount of memory the GT-64120A
north bridge can address.

Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org>
---
 hw/mips/malta.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/hw/mips/malta.c b/hw/mips/malta.c
index 1ca41b44db..013bf9272c 100644
--- a/hw/mips/malta.c
+++ b/hw/mips/malta.c
@@ -1479,11 +1479,32 @@ static void malta_machine_virt_class_init(ObjectClass 
*oc, void *data)
     mmc->max_ramsize = 2 * GiB;
 }
 
+static void malta_machine_phys_class_init(ObjectClass *oc, void *data)
+{
+    MachineClass *mc = MACHINE_CLASS(oc);
+    MaltaMachineClass *mmc = MALTA_MACHINE_CLASS(oc);
+
+    mc->desc = "MIPS Malta Core LV (physically limited as real hardware)";
+    mc->block_default_type = IF_PFLASH;
+    mc->max_cpus = 1;
+#ifdef TARGET_MIPS64
+    mc->default_cpu_type = MIPS_CPU_TYPE_NAME("5Kc");
+#else
+    mc->default_cpu_type = MIPS_CPU_TYPE_NAME("4Kc");
+#endif
+    mc->default_ram_size = 32 * MiB;
+    mmc->max_ramsize = 256 * MiB; /* 32 MByte PC100 SDRAM DIMMs x 4 slots */
+};
+
 static const TypeInfo malta_machine_types[] = {
     {
         .name          = MACHINE_TYPE_NAME("malta-virt"),
         .parent        = TYPE_MALTA_MACHINE,
         .class_init    = malta_machine_virt_class_init,
+    }, {
+        .name          = MACHINE_TYPE_NAME("malta-phys"),
+        .parent        = TYPE_MALTA_MACHINE,
+        .class_init    = malta_machine_phys_class_init,
     }, {
         .name          = TYPE_MALTA_MACHINE,
         .parent        = TYPE_MACHINE,
-- 
2.21.3


Reply via email to