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/25/2006 17:03:25
	version=3.0.3
Sender: current-users-owner@NetBSD.org


--3MwIy2ne0vdjdPXF
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Well, it appears to work on -current and 3.0 stable.  I finally had
the cycles from my building my 3.0 repository for upgrading to do the
base OS build to grab the kernel with the mods.  When it booted, I had
the not unexpected unit shift on the drives (e.g. wd0 became wd1,
etc.)  and other devices with the SATA drive becoming wd0.  :) But
once I got past that, the system seemed to do pretty good as well, but
given a 2.1 userland and a -current kernel, I had some oddities.  I
had one, where a df would hang with union mounts (during my 3.0 build
no less).  But given that difference between the userland and kernel,
who knows what sorts of oddities one might expect.

Once I went back to a normal 3.0 kernel, I updated my source tree to
netbsd-3 instead of the 3.0 release and re-built.  I am now running on
a kernel from this build, and things seem at least as good there.  The
resulting dmesg.boot is attached to this message.  I will be doing
some more builds (pkgsrc in my chrooted 3.0 sandbox) on the machine,
and will send a followup if I encounter any problems, but it looks
good.

Thanks!

- 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! 

--3MwIy2ne0vdjdPXF
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="dmesg.boot"

NetBSD 3.0_STABLE (GENERIC.APM) #0: Tue Jan 24 20:21:49 EST 2006
	root@fargone:/u1/build_300/usr/src/sys/arch/i386/compile/GENERIC.APM
total memory = 1023 MB
avail memory = 993 MB
BIOS32 rev. 0 found at 0xf9e70
mainbus0 (root)
cpu0 at mainbus0: (uniprocessor)
cpu0: AMD Athlon XP 2200+ (686-class), 1808.53 MHz, id 0x681
cpu0: features c3c3fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu0: features c3c3fbff<PGE,MCA,CMOV,PAT,PSE36,MMXX,MMX>
cpu0: features c3c3fbff<FXSR,SSE,3DNOW2,3DNOW>
cpu0: "AMD Athlon(tm) XP 2200+"
cpu0: I-cache 64 KB 64B/line 2-way, D-cache 64 KB 64B/line 2-way
cpu0: L2 cache 256 KB 64B/line 16-way
cpu0: ITLB 16 4 KB entries fully associative, 8 4 MB entries fully associative
cpu0: DTLB 32 4 KB entries fully associative, 8 4 MB entries 4-way
cpu0: 8 page colors
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: VIA Technologies VT8377 Apollo KT400 CPU to PCI Bridge (rev. 0x00)
agp0 at pchb0: aperture at 0xd0000000, size 0x10000000
ppb0 at pci0 dev 1 function 0: VIA Technologies VT8377 CPU-AGP Bridge (rev. 0x00)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
vga1 at pci1 dev 0 function 0: Matrox MGA G400 AGP (rev. 0x04)
wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
puc0 at pci0 dev 10 function 0: SUNIX 403X 2S (com, com)
com3 at puc0 port 0: interrupting at irq 12
com3: ns16550a, working fifo
com4 at puc0 port 1: interrupting at irq 12
com4: ns16550a, working fifo
puc1 at pci0 dev 11 function 0: SUNIX 403X 2S (com, com)
com5 at puc1 port 0: interrupting at irq 11
com5: ns16550a, working fifo
com6 at puc1 port 1: interrupting at irq 11
com6: ns16550a, working fifo
pdcsata0 at pci0 dev 12 function 0
pdcsata0: Promise PDC20575 SATA150 controller (rev. 0x02)
pdcsata0: interrupting at irq 10
pdcsata0: bus-master DMA support present
atabus0 at pdcsata0 channel 0
atabus1 at pdcsata0 channel 1
atabus2 at pdcsata0 channel 2
wm0 at pci0 dev 13 function 0: Intel i82541GI 1000BASE-T Ethernet, rev. 0
wm0: interrupting at irq 5
wm0: 32-bit 33MHz PCI bus
wm0: 64 word (6 address bits) MicroWire EEPROM
wm0: Ethernet address 00:0e:0c:60:a3:19
igphy0 at wm0 phy 1: Intel IGP01E1000 Gigabit PHY, rev. 0
igphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
pdcide0 at pci0 dev 15 function 0
pdcide0: Promise Ultra133TX2/ATA Bus Master IDE Accelerator (rev. 0x01)
pdcide0: bus-master DMA support present
pdcide0: primary channel configured to native-PCI mode
pdcide0: using irq 11 for native-PCI interrupt
atabus3 at pdcide0 channel 0
pdcide0: secondary channel configured to native-PCI mode
atabus4 at pdcide0 channel 1
uhci0 at pci0 dev 16 function 0: VIA Technologies VT83C572 USB Controller (rev. 0x80)
uhci0: interrupting at irq 10
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: VIA Technologies UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1 at pci0 dev 16 function 1: VIA Technologies VT83C572 USB Controller (rev. 0x80)
uhci1: interrupting at irq 5
usb1 at uhci1: USB revision 1.0
uhub1 at usb1
uhub1: VIA Technologies UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2 at pci0 dev 16 function 2: VIA Technologies VT83C572 USB Controller (rev. 0x80)
uhci2: interrupting at irq 12
usb2 at uhci2: USB revision 1.0
uhub2 at usb2
uhub2: VIA Technologies UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
ehci0 at pci0 dev 16 function 3: VIA Technologies VT8237 EHCI USB Controller (rev. 0x82)
ehci0: interrupting at irq 11
ehci0: BIOS has given up ownership
ehci0: EHCI version 1.0
ehci0: companion controllers, 2 ports each: uhci0 uhci1 uhci2
usb3 at ehci0: USB revision 2.0
uhub3 at usb3
uhub3: VIA Technologie EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub3: single transaction translator
uhub3: 6 ports with 6 removable, self powered
pcib0 at pci0 dev 17 function 0
pcib0: VIA Technologies VT8235 (Apollo KT400) PCI-ISA Bridge (rev. 0x00)
viaide0 at pci0 dev 17 function 1
viaide0: VIA Technologies VT8235 ATA133 controller
viaide0: bus-master DMA support present
viaide0: primary channel configured to compatibility mode
viaide0: primary channel interrupting at irq 14
atabus5 at viaide0 channel 0
viaide0: secondary channel configured to compatibility mode
viaide0: secondary channel interrupting at irq 15
atabus6 at viaide0 channel 1
auvia0 at pci0 dev 17 function 5: VIA Technologies VT8235 AC'97 Audio (rev 0x50)
auvia0: interrupting at irq 12
auvia0: ac97: Avance Logic ALC650 codec; 20 bit DAC, 18 bit ADC, Realtek 3D
auvia0: ac97: ext id 5c7<AC97_22,LDAC,SDAC,CDAC,SPDIF,DRA,VRA>
audio0 at auvia0: full duplex, mmap, independent
rtk0 at pci0 dev 19 function 0: Realtek 8139 10/100BaseTX
rtk0: interrupting at irq 12
rtk0: Ethernet address 00:20:ed:92:2d:56
ukphy0 at rtk0 phy 7: Generic IEEE 802.3u media interface
ukphy0: OUI 0x000000, model 0x0000, rev. 0
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
isa0 at pcib0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
lm0 at isa0 port 0x290-0x297: ITE8705F
pcppi0 at isa0 port 0x61
midi0 at pcppi0: PC speaker
sysbeep0 at pcppi0
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
npx0 at isa0 port 0xf0-0xff: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
isapnp0: no ISA Plug 'n Play devices found
apm0 at mainbus0: Power Management spec V1.2
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
Kernelized RAIDframe activated
wd0 at atabus1 drive 0: <ST380817AS>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 76319 MB, 155061 cyl, 16 head, 63 sec, 512 bytes/sect x 156301488 sectors
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
wd0(pdcsata0:1:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
wd1 at atabus3 drive 0: <WDC WD400JB-00ENA0>
wd1: drive supports 16-sector PIO transfers, LBA addressing
wd1: 38166 MB, 77545 cyl, 16 head, 63 sec, 512 bytes/sect x 78165360 sectors
wd1: 32-bit data port
wd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd2 at atabus3 drive 1: <WDC WD1600JB-00GVA0>
wd2: drive supports 16-sector PIO transfers, LBA48 addressing
wd2: 149 GB, 310101 cyl, 16 head, 63 sec, 512 bytes/sect x 312581808 sectors
wd2: 32-bit data port
wd2: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd1(pdcide0:0:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA)
wd2(pdcide0:0:1): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA)
uhidev0 at uhub0 port 2 configuration 1 interface 0
uhidev0: Logitech USB-PS/2 Optical Mouse, rev 2.00/11.00, addr 2, iclass 3/1
ums0 at uhidev0: 3 buttons and Z dir.
wsmouse0 at ums0 mux 0
wd3 at atabus4 drive 0: <WDC WD1200JB-75CRA0>
wd3: drive supports 16-sector PIO transfers, LBA addressing
wd3: 111 GB, 232514 cyl, 16 head, 63 sec, 512 bytes/sect x 234375000 sectors
wd3: 32-bit data port
wd3: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd3(pdcide0:1:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA)
atapibus0 at atabus6: 2 targets
cd0 at atapibus0 drive 1: <ATAPI   CD-RW 48X24, , C.FZ> cdrom removable
cd0: 32-bit data port
cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33)
cd0(viaide0:1:1): using PIO mode 4, Ultra-DMA mode 2 (Ultra/33) (using DMA)
boot device: wd1
root on wd1a dumps on wd1b
root file system type: ffs
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)

--3MwIy2ne0vdjdPXF--