[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 06/10] PPC: Use macio IDE controller for Newworld
From: |
Alexander Graf |
Subject: |
[Qemu-devel] [PATCH 06/10] PPC: Use macio IDE controller for Newworld |
Date: |
Tue, 9 Feb 2010 17:37:06 +0100 |
Per default Linux doesn't come with a lot of storage adapters enabled on
Mac configurations. The one that's pretty much always present is the pmac-ide,
while the cmd64x is almost never included in any distribution.
So let's switch to use the MacIO based IDE controller. There is corresponding
OpenBIOS code to get interrupts working properly.
Signed-off-by: Alexander Graf <address@hidden>
---
hw/ppc_newworld.c | 16 +++++++++++-----
1 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/hw/ppc_newworld.c b/hw/ppc_newworld.c
index 49b5e04..dafd37c 100644
--- a/hw/ppc_newworld.c
+++ b/hw/ppc_newworld.c
@@ -134,6 +134,7 @@ static void ppc_core99_init (ram_addr_t ram_size,
int nvram_mem_index;
int vga_bios_size, bios_size;
int pic_mem_index, dbdma_mem_index, cuda_mem_index, escc_mem_index;
+ int ide_mem_index[3];
int ppc_boot_device;
DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
void *fw_cfg;
@@ -364,11 +365,16 @@ static void ppc_core99_init (ram_addr_t ram_size,
fprintf(stderr, "qemu: too many IDE bus\n");
exit(1);
}
- for(i = 0; i < MAX_IDE_BUS * MAX_IDE_DEVS; i++) {
- hd[i] = drive_get(IF_IDE, i / MAX_IDE_DEVS, i % MAX_IDE_DEVS);
- }
dbdma = DBDMA_init(&dbdma_mem_index);
- pci_cmd646_ide_init(pci_bus, hd, 0);
+
+ /* We only emulate 2 out of 3 IDE controllers for now */
+ ide_mem_index[0] = -1;
+ hd[0] = drive_get(IF_IDE, 0, 0);
+ hd[1] = drive_get(IF_IDE, 0, 1);
+ ide_mem_index[1] = pmac_ide_init(hd, pic[0x0d], dbdma, 0x16, pic[0x02]);
+ hd[0] = drive_get(IF_IDE, 1, 0);
+ hd[1] = drive_get(IF_IDE, 1, 1);
+ ide_mem_index[2] = pmac_ide_init(hd, pic[0x0e], dbdma, 0x1a, pic[0x02]);
/* cuda also initialize ADB */
cuda_init(&cuda_mem_index, pic[0x19]);
@@ -378,7 +384,7 @@ static void ppc_core99_init (ram_addr_t ram_size,
macio_init(pci_bus, PCI_DEVICE_ID_APPLE_UNI_N_KEYL, 0, pic_mem_index,
- dbdma_mem_index, cuda_mem_index, NULL, 0, NULL,
+ dbdma_mem_index, cuda_mem_index, NULL, 3, ide_mem_index,
escc_mem_index);
if (usb_enabled) {
--
1.6.0.2
- [Qemu-devel] [PATCH 00/10] PPC NewWorld fixery v4, Alexander Graf, 2010/02/09
- [Qemu-devel] [PATCH 06/10] PPC: Use macio IDE controller for Newworld,
Alexander Graf <=
- [Qemu-devel] [PATCH 08/10] PPC: Add USB per default on U3, Alexander Graf, 2010/02/09
- [Qemu-devel] [PATCH 04/10] PPC: Make interrupts work, Alexander Graf, 2010/02/09
- [Qemu-devel] [PATCH 03/10] PPC: Include dump of lspci -nn on real G5, Alexander Graf, 2010/02/09
- [Qemu-devel] [PATCH 07/10] PPC: Get rid of segfaults in DBDMA emulation, Alexander Graf, 2010/02/09
- [Qemu-devel] [PATCH 10/10] PPC: Add timer when running KVM, Alexander Graf, 2010/02/09
- [Qemu-devel] [PATCH 09/10] PPC: Fix large pages, Alexander Graf, 2010/02/09
- [Qemu-devel] [PATCH 01/10] PPC: Uninorth config space accessor, Alexander Graf, 2010/02/09
- [Qemu-devel] [PATCH 05/10] PPC: tell the guest about the time base frequency, Alexander Graf, 2010/02/09
- [Qemu-devel] [PATCH 02/10] PPC: Use Mac99_U3 type on ppc64, Alexander Graf, 2010/02/09
- [Qemu-devel] Re: [PATCH 00/10] PPC NewWorld fixery v4, Michael S. Tsirkin, 2010/02/09