Subject: Re: Promise SATA150 driver
To: None <bouyer@antioche.eu.org>
From: Shin'ichiro TAYA <taya@ba2.so-net.ne.jp>
List: current-users
Date: 11/28/2004 18:32:52
From: Manuel Bouyer <bouyer@antioche.eu.org>
Subject: Promise SATA150 driver
Date: Wed, 24 Nov 2004 23:25:37 +0100

> Hi,
> I commited pdcsata(4), a driver for the Promise SATA150 serial-ATA
> controllers. I developed in on sparc64, it should work on any system
> with a PCI bus.
> Attached is a version for 2.0.
> 
> Please report problems via send-pr, as usual.

Thank you for your great work.
It works fine on my amd64 system too.
And with following patch(copied from pdcide.c), it works as raid drive
like pdcide.

--- pdcsata.c	24 Nov 2004 20:49:19 -0000	1.1
+++ pdcsata.c	28 Nov 2004 09:25:35 -0000
@@ -190,6 +190,9 @@
 	if (sc->sc_dma_ok) {
 		sc->sc_wdcdev.sc_atac.atac_cap |= ATAC_CAP_DMA | ATAC_CAP_UDMA;
 	}
+	if (PCI_CLASS(pa->pa_class) == PCI_CLASS_MASS_STORAGE &&
+	    PCI_SUBCLASS(pa->pa_class) == PCI_SUBCLASS_MASS_STORAGE_RAID)
+		sc->sc_wdcdev.sc_atac.atac_cap |= ATAC_CAP_RAID;
 	sc->sc_wdcdev.irqack = pdc203xx_irqack;
 	sc->sc_wdcdev.sc_atac.atac_pio_cap = 4;
 	sc->sc_wdcdev.sc_atac.atac_dma_cap = 2;

--

But need more work to use it as root filesystem.
It can avoid by explictly spcecify ld0a as root partion.

wd0 at atabus0 drive 0: <ST3120026AS>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 111 GB, 232581 cyl, 16 head, 63 sec, 512 bytes/sect x 234441648 sectors
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
wd0(pdcsata0:0:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
wd1 at atabus1 drive 0: <ST3120026AS>
wd1: drive supports 16-sector PIO transfers, LBA48 addressing
wd1: 111 GB, 232581 cyl, 16 head, 63 sec, 512 bytes/sect x 234441648 sectors
wd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
wd1(pdcsata0:1:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
ataraid0: found 1 RAID volume
ld0 at ataraid0 vendtype 0 unit 0: Promise ATA RAID-1 array
ld0: 111 GB, 14589 cyl, 255 head, 63 sec, 512 bytes/sect x 234375000 sectors
WARNING: double match for boot device (wd0, wd1)
WARNING: double match for boot device (wd0, ld0)
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
Sun Nov 28 09:18:24 GMT 2004
swapctl: adding /dev/ld0b as swap device at priority 0
Checking for botched superblock upgrades: done.
Starting file system checks:
/dev/rld0a: file system is clean; not checking
/dev/rld0e: file system is clean; not checking
/dev/rld0f: file system is clean; not checking
/dev/rld0g: file system is clean; not checking
/dev/rld0h: file system is clean; not checking
/dev/rld0i: file system is clean; not checking
/dev/rld0j: file system is clean; not checking
mount_ffs: /dev/ld0a on /: specified device does not match mounted device