diff options
Diffstat (limited to 'hw')
-rw-r--r-- | hw/ppc_oldworld.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c index 3589812104..46d0362559 100644 --- a/hw/ppc_oldworld.c +++ b/hw/ppc_oldworld.c @@ -308,12 +308,13 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size, for(i = 0; i < nb_nics; i++) pci_nic_init(pci_bus, &nd_table[i], -1, "ne2k_pci"); - /* First IDE channel is a CMD646 on the PCI bus */ if (drive_get_max_bus(IF_IDE) >= MAX_IDE_BUS) { fprintf(stderr, "qemu: too many IDE bus\n"); exit(1); } + + /* First IDE channel is a MAC IDE on the MacIO bus */ index = drive_get_index(IF_IDE, 0, 0); if (index == -1) hd[0] = NULL; @@ -324,10 +325,11 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size, hd[1] = NULL; else hd[1] = drives_table[index].bdrv; - hd[3] = hd[2] = NULL; - pci_cmd646_ide_init(pci_bus, hd, 0); + dbdma = DBDMA_init(&dbdma_mem_index); + ide_mem_index[0] = -1; + ide_mem_index[1] = pmac_ide_init(hd, pic[0x0D], dbdma, 0x16, pic[0x02]); - /* Second IDE channel is a MAC IDE on the MacIO bus */ + /* Second IDE channel is a CMD646 on the PCI bus */ index = drive_get_index(IF_IDE, 1, 0); if (index == -1) hd[0] = NULL; @@ -338,11 +340,8 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size, hd[1] = NULL; else hd[1] = drives_table[index].bdrv; - - dbdma = DBDMA_init(&dbdma_mem_index); - - ide_mem_index[0] = -1; - ide_mem_index[1] = pmac_ide_init(hd, pic[0x0D], dbdma, 0x16, pic[0x02]); + hd[3] = hd[2] = NULL; + pci_cmd646_ide_init(pci_bus, hd, 0); /* cuda also initialize ADB */ cuda_init(&cuda_mem_index, pic[0x12]); |