Announce: updated "iswraid" (ICH5R/ICH6R ataraid sub-driver) for 2.4.25

From: mkrikis
Date: Fri Feb 20 2004 - 21:44:03 EST


Hello,

Attached to this email is a gzipped patch for the next revision
of the Intel Software RAID driver "iswraid" (which is an ataraid
subdriver) for the 2.4.x series kernels. The patch is taken
against kernel 2.4.25 with Jeff Garzik's 2.4.25-libata1.patch
already applied. (This driver is useless without libata.)
My apologies about the size and the binary nature of this attachment.

Also attached is a very small patch that enables (partial?) Intel's
ICH6R chipset's SATA support in the ata_piix driver. I am sure
that Jeff can enable this properly (or perhaps already has), but
for those who find the chipset unidentified, this may be a quick fix.
ICH6R is then usable in both the IDE and RAID modes.

The driver is intended to be used with Intel's ICH5R/ICH6R chipsets.
Configuration of RAID volumes is done from the Option ROM.
This "iswraid" driver differs from the other ataraid sub-drivers
in that it operates on SCSI block devices rather than the ATA/IDE
ones. The "ata_piix" driver (part of libata1) presents the SATA
disks connected to ICH5R/ICH6R chipsets as SCSI disks. The "iswraid"
driver is considered experimental, use at your own risk.

Thanks to Boji Kannanthanam for answering my questions and to
Jeff Garzik for providing a great low level driver to utilize.

Please feel free to send me any feedback and/or comments.

Thanks,

Martins Krikis

Attachment: 2.4.25-libata1-iswraid.patch.gz
Description: Binary data

diff -Naur linux-2.4.25-libata1/drivers/scsi/ata_piix.c linux-2.4.25-libata1-ich6r/drivers/scsi/ata_piix.c
--- linux-2.4.25-libata1/drivers/scsi/ata_piix.c 2004-02-20 22:41:05.000000000 +0000
+++ linux-2.4.25-libata1-ich6r/drivers/scsi/ata_piix.c 2004-02-20 23:03:57.000000000 +0000
@@ -45,6 +45,7 @@
ich5_pata = 0,
ich5_sata = 1,
piix4_pata = 2,
+ ich6_sata = 3,
};

static int piix_init_one (struct pci_dev *pdev,
@@ -71,6 +72,7 @@
{ 0x8086, 0x24df, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },
{ 0x8086, 0x25a3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },
{ 0x8086, 0x25b0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },
+ { 0x8086, 0x2652, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata },

{ } /* terminate list */
};
@@ -175,6 +177,17 @@
.udma_mask = ATA_UDMA_MASK_40C, /* FIXME: cbl det */
.port_ops = &piix_pata_ops,
},
+
+ /* ich6_sata */
+ {
+ .sht = &piix_sht,
+ .host_flags = ATA_FLAG_SATA | PIIX_FLAG_COMBINED |
+ ATA_FLAG_SRST | ATA_FLAG_SLAVE_POSS |
+ ATA_FLAG_NO_LEGACY,
+ .pio_mask = 0x03, /* pio3-4 */
+ .udma_mask = 0x7f, /* udma0-6 ; FIXME */
+ .port_ops = &piix_sata_ops,
+ },
};

static struct pci_bits piix_enable_bits[] = {