Subject: Re: Promise SATA300 TX4 supported?
To: Manuel Bouyer <bouyer@antioche.eu.org>
From: Douglas Wade Needham <cinnion@ka8zrt.com>
List: current-users
Date: 01/20/2006 09:21:38
	version=3.0.3
Sender: current-users-owner@NetBSD.org

Will do.  Thanks!  I have to do a cvs update and build for current on
my build machine, which I disabled a few weeks ago to avoid having it
and my 2.1/3.0 builds conflicting, so it may be a day or so before I
can get the results.  I may even see if I can pull this over into my
3.0 tree to test it there as well.

- Doug

Quoting Manuel Bouyer (bouyer@antioche.eu.org):
> 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
> --

> 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);


-- 
Douglas Wade Needham - KA8ZRT        UN*X Consultant & UW/BSD kernel programmer
Email:  cinnion @ ka8zrt . com       http://cinnion.ka8zrt.com
Disclaimer: My opinions are my own.  Since I don't want them, why
            should my employer, or anybody else for that matter!