Subject: Re: Promise SATA300 TX4 supported?
To: Douglas Wade Needham <cinnion@ka8zrt.com>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: current-users
Date: 01/19/2006 21:16:43
--tThc/1wpZn/ma/RB
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Thu, Jan 19, 2006 at 12:08:43AM -0500, Douglas Wade Needham wrote:
> reports for the card:
> 
>     pci bus 0x0000 cardnum 0x0c function 0x00: vendor 0x105a device 0x3d75
>      Promise Technology, Inc.  Device unknown
> 
> If someone has drivers they are interested in having tested, I can
> test them.  Or if someone can point me to the docs for the chip and
> perhaps let me know which chip it is similar to, I can see about
> taking a stab at it.

Well, can you please try the attached patch ? It's derived from informations
collected in the freebsd sources.

-- 
Manuel Bouyer <bouyer@antioche.eu.org>
     NetBSD: 26 ans d'experience feront toujours la difference
--

--tThc/1wpZn/ma/RB
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=diff

Index: pcidevs
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/pcidevs,v
retrieving revision 1.757
diff -u -r1.757 pcidevs
--- pcidevs	16 Jan 2006 22:59:36 -0000	1.757
+++ pcidevs	19 Jan 2006 18:59:21 -0000
@@ -2501,6 +2501,9 @@
 product PROMISE PDC20621	0x6621	PDC20621 dual Ultra/133 IDE controller
 product PROMISE PDC40718	0x3d17	PDC40718 SATA/300 IDE controller
 product PROMISE PDC40719	0x3515	PDC40719 SATA/300 IDE controller
+product PROMISE PDC20571	0x3571	PDC20571 SATA/150 IDE controller
+product PROMISE PDC20575	0x3d75	PDC20575 SATA/150 IDE controller
+product PROMISE PDC20579	0x3574	PDC20579 SATA/150 IDE controller
 
 /* QLogic products */
 product QLOGIC ISP1020	0x1020	ISP1020
Index: pdcsata.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/pdcsata.c,v
retrieving revision 1.5
diff -u -r1.5 pdcsata.c
--- pdcsata.c	16 Jan 2006 20:30:19 -0000	1.5
+++ pdcsata.c	19 Jan 2006 18:59:21 -0000
@@ -44,6 +44,7 @@
 
 #define PDC203xx_NCHANNELS 4
 #define PDC40718_NCHANNELS 4
+#define PDC20575_NCHANNELS 3
 
 #define PDC203xx_BAR_IDEREGS 0x1c /* BAR where the IDE registers are mapped */
 
@@ -117,6 +118,21 @@
 	  "Promise PDC40719 SATA300 controller",
 	  pdcsata_chip_map,
 	},
+	{ PCI_PRODUCT_PROMISE_PDC20571,
+	  0,
+	  "Promise PDC20571 SATA150 controller",
+	  pdcsata_chip_map,
+	},
+	{ PCI_PRODUCT_PROMISE_PDC20575,
+	  0,
+	  "Promise PDC20575 SATA150 controller",
+	  pdcsata_chip_map,
+	},
+	{ PCI_PRODUCT_PROMISE_PDC20579,
+	  0,
+	  "Promise PDC20579 SATA150 controller",
+	  pdcsata_chip_map,
+	},
 	{ 0,
 	  0,
 	  NULL,
@@ -184,6 +200,9 @@
 
 	case PCI_PRODUCT_PROMISE_PDC40718:
 	case PCI_PRODUCT_PROMISE_PDC40719:
+	case PCI_PRODUCT_PROMISE_PDC20571:
+	case PCI_PRODUCT_PROMISE_PDC20575:
+	case PCI_PRODUCT_PROMISE_PDC20579:
 		sc->sc_pci_ih = pci_intr_establish(pa->pa_pc,
 		    intrhandle, IPL_BIO, pdc205xx_pci_intr, sc);
 		break;
@@ -258,6 +277,7 @@
 
 	case PCI_PRODUCT_PROMISE_PDC40718:
 	case PCI_PRODUCT_PROMISE_PDC40719:
+	case PCI_PRODUCT_PROMISE_PDC20571:
 		bus_space_write_4(sc->sc_ba5_st, sc->sc_ba5_sh, 0x60, 0x00ff00ff);
 		sc->sc_wdcdev.sc_atac.atac_nchannels = PDC40718_NCHANNELS;
 
@@ -265,6 +285,15 @@
 		sc->sc_wdcdev.sc_atac.atac_probe = pdc205xx_drv_probe;
 
 		break;
+	case PCI_PRODUCT_PROMISE_PDC20575:
+	case PCI_PRODUCT_PROMISE_PDC20579:
+		bus_space_write_4(sc->sc_ba5_st, sc->sc_ba5_sh, 0x60, 0x00ff00ff);
+		sc->sc_wdcdev.sc_atac.atac_nchannels = PDC20575_NCHANNELS;
+
+		sc->sc_wdcdev.reset = pdc205xx_do_reset;
+		sc->sc_wdcdev.sc_atac.atac_probe = pdc205xx_drv_probe;
+
+		break;
 	}
 
 	wdc_allocate_regs(&sc->sc_wdcdev);

--tThc/1wpZn/ma/RB--