Allow user to specify CPU model
authorBlue Swirl <blauwirbel@gmail.com>
Wed, 17 Jun 2009 15:49:37 +0000 (15:49 +0000)
committerBlue Swirl <blauwirbel@gmail.com>
Wed, 17 Jun 2009 15:49:37 +0000 (15:49 +0000)
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
hw/ppc440.c
hw/ppc440.h
hw/ppc440_bamboo.c

index 00d82e4bedf0233df8f8341a1ebb5a14e8c47eae..5171988b63c239cf09637857b369ab049f370e11 100644 (file)
@@ -34,7 +34,8 @@ static const unsigned int ppc440ep_sdram_bank_sizes[] = {
 };
 
 CPUState *ppc440ep_init(ram_addr_t *ram_size, PCIBus **pcip,
-                        const unsigned int pci_irq_nrs[4], int do_init)
+                        const unsigned int pci_irq_nrs[4], int do_init,
+                        const char *cpu_model)
 {
     target_phys_addr_t ram_bases[PPC440EP_SDRAM_NR_BANKS];
     target_phys_addr_t ram_sizes[PPC440EP_SDRAM_NR_BANKS];
@@ -44,13 +45,9 @@ CPUState *ppc440ep_init(ram_addr_t *ram_size, PCIBus **pcip,
     qemu_irq *irqs;
     qemu_irq *pci_irqs;
 
-    env = cpu_ppc_init("440EP");
-    if (!env && kvm_enabled()) {
-        /* XXX Since qemu doesn't yet emulate 440, we just say it's a 405.
-         * Since KVM doesn't use qemu's CPU emulation it seems to be working
-         * OK. */
-        env = cpu_ppc_init("405");
-    }
+    if (cpu_model == NULL)
+        cpu_model = "405"; // XXX: should be 440EP
+    env = cpu_init(cpu_model);
     if (!env) {
         fprintf(stderr, "Unable to initialize CPU!\n");
         exit(1);
index b6843eb8585bcc3ad2621917db95fcd7663c8611..a40f9176dbcf00e08536709e6258453d594ad392 100644 (file)
@@ -15,6 +15,7 @@
 #include "hw.h"
 
 CPUState *ppc440ep_init(ram_addr_t *ram_size, PCIBus **pcip,
-                        const unsigned int pci_irq_nrs[4], int do_init);
+                        const unsigned int pci_irq_nrs[4], int do_init,
+                        const char *cpu_model);
 
 #endif
index 00aa2c72a25f8d236bff52cb2c5b8b6910a1bdf1..9882ea52300482ff1f9d0f63f8dc3eafd558471b 100644 (file)
@@ -103,7 +103,7 @@ static void bamboo_init(ram_addr_t ram_size,
     int i;
 
     /* Setup CPU. */
-    env = ppc440ep_init(&ram_size, &pcibus, pci_irq_nrs, 1);
+    env = ppc440ep_init(&ram_size, &pcibus, pci_irq_nrs, 1, cpu_model);
 
     if (pcibus) {
         int unit_id = 0;