summaryrefslogtreecommitdiff
path: root/sys/dev/pci/isp_pci.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/pci/isp_pci.c')
-rw-r--r--sys/dev/pci/isp_pci.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/sys/dev/pci/isp_pci.c b/sys/dev/pci/isp_pci.c
index 5c74cddab84..49bb6e70348 100644
--- a/sys/dev/pci/isp_pci.c
+++ b/sys/dev/pci/isp_pci.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: isp_pci.c,v 1.44 2008/06/01 15:49:25 kettenis Exp $ */
+/* $OpenBSD: isp_pci.c,v 1.45 2009/05/08 18:39:01 miod Exp $ */
/*
* PCI specific probe and attach routines for QLogic ISP SCSI adapters.
*
@@ -43,6 +43,10 @@
#ifdef __sparc64__
#include <dev/ofw/openfirm.h>
#endif
+#ifdef __sgi__
+#include <machine/autoconf.h>
+#include <mips64/archtype.h>
+#endif
static u_int16_t isp_pci_rd_reg(struct ispsoftc *, int);
static void isp_pci_wr_reg(struct ispsoftc *, int, u_int16_t);
@@ -426,6 +430,18 @@ isp_pci_attach(struct device *parent, struct device *self, void *aux)
node = OF_parent(node);
}
#endif
+#ifdef __sgi__
+ /*
+ * The on-board isp controllers found on Octane, Origin 200 and
+ * Origin 300 families use id #0.
+ * XXX We'll need to be able to tell apart onboard isp from
+ * XXX other isp...
+ */
+ if (sys_config.system_type == SGI_OCTANE ||
+ sys_config.system_type == SGI_O200 ||
+ sys_config.system_type == SGI_O300)
+ DEFAULT_IID(isp) = 0;
+#endif
ioh_valid = memh_valid = 0;