PPC32 - No IDE/ATA devices on new PowerBook

Benjamin Herrenschmidt benh at kernel.crashing.org
Sat Oct 29 10:02:20 EST 2005


On Fri, 2005-10-28 at 19:24 -0400, Parag Warudkar wrote:

> Thanks. I tried 2.4 kernel and to my surprise it detected the IDE/ATA  
> controller! (Although it balked out with errors - read past the end  
> of the device or something...).

2.4 used the device-tree exclusively for probing IDE on pmac, while 2.6
uses PCI probing when it's a PCI device. The device-tree method tend to
work even when we don't have the PCI ID, but it's dangerous: the driver
doesn't know the details of the timings for this chip revision etc...
and thus may well do crap. I wouldn't try too much with 2.4.

Can you try this patch ? If you don't have a way to build a patched
kernel, you may find somebody on linuxppc-dev list who can do it for
you.

Index: linux-work/drivers/ide/ppc/pmac.c
===================================================================
--- linux-work.orig/drivers/ide/ppc/pmac.c	2005-09-22 14:06:32.000000000 +1000
+++ linux-work/drivers/ide/ppc/pmac.c	2005-10-29 10:00:03.000000000 +1000
@@ -1664,11 +1664,16 @@
 };
 
 static struct pci_device_id pmac_ide_pci_match[] = {
-	{ PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_UNI_N_ATA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
-	{ PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_IPID_ATA100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
-	{ PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_K2_ATA100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
+	{ PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_UNI_N_ATA,
+	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
+	{ PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_IPID_ATA100,
+	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
+	{ PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_K2_ATA100,
+	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
 	{ PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_SH_ATA,
 	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
+	{ PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_IPIDD2_ATA,
+	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
 };
 
 static struct pci_driver pmac_ide_pci_driver = {
Index: linux-work/include/linux/pci_ids.h
===================================================================
--- linux-work.orig/include/linux/pci_ids.h	2005-10-06 09:59:14.000000000 +1000
+++ linux-work/include/linux/pci_ids.h	2005-10-29 09:59:06.000000000 +1000
@@ -912,6 +912,7 @@
 #define PCI_DEVICE_ID_APPLE_SH_FW       0x0052
 #define PCI_DEVICE_ID_APPLE_U3L_AGP	0x0058
 #define PCI_DEVICE_ID_APPLE_U3H_AGP	0x0059
+#define PCI_DEVICE_ID_APPLE_IPIDD2_ATA  0x0069
 #define PCI_DEVICE_ID_APPLE_TIGON3	0x1645
 
 #define PCI_VENDOR_ID_YAMAHA		0x1073







More information about the Linuxppc-dev mailing list