Subject: Re: promise raid array
To: None <simon@bigblue.demon.co.uk>
From: Andrew Doran <ad@netbsd.org>
List: port-i386
Date: 10/17/2003 00:14:29
Hi,
> I wanted to try out a promise SX6000 raid array with NetBSD but
> installing 1.6.1 has poven impossible.
> the card should have appeared as an I2O array, but the install kernel
> say its not configured.
Try a kernel with the below patch.
Andrew
--- sys/dev/pci/iop_pci.c.orig 2003-10-16 23:44:24.000000000 +0100
+++ sys/dev/pci/iop_pci.c 2003-10-16 23:51:32.000000000 +0100
@@ -76,6 +76,8 @@
iop_pci_match(struct device *parent, struct cfdata *match, void *aux)
{
struct pci_attach_args *pa;
+ u_int product, vendor;
+ pcireg_t reg;
pa = aux;
@@ -90,13 +92,24 @@
return (1);
/*
- * Match DPT/Adaptec boards that don't conform exactly to the spec.
+ * Match boards that don't conform exactly to the spec.
*/
- if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_DPT &&
- (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_DPT_RAID_I2O ||
- PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_DPT_RAID_2005S))
+ vendor = PCI_VENDOR(pa->pa_id);
+ product = PCI_PRODUCT(pa->pa_id);
+
+ if (vendor == PCI_VENDOR_DPT &&
+ (product == PCI_PRODUCT_DPT_RAID_I2O ||
+ product == PCI_PRODUCT_DPT_RAID_2005S))
return (1);
+ if (vendor == PCI_VENDOR_INTEL &&
+ (product == 0x1962 ||
+ product == PCI_PRODUCT_INTEL_80960_RP)) {
+ reg = pci_conf_read(pa->pa_pc, pa->pa_tag, PCI_SUBSYS_ID_REG);
+ if (PCI_VENDOR(reg) == PCI_VENDOR_PROMISE)
+ return (1);
+ }
+
return (0);
}