summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2006-06-26 22:16:24 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2006-06-26 22:16:24 +0000
commitc20bc39ab40cead8c3af0eda351ff586252421f3 (patch)
tree838f72a38b05b2cafb374ecb945ee9e4aed7ad79 /sys
parent8fa5a1d0f63d497acc7c93402d426ef6d5a0c55c (diff)
Enable wide targets on FAS366 esp; note that this changes the way esp
user-controllable device flags are parsed, be sure to rerun config(8) on your next kernel compile.
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/macppc/conf/GENERIC4
-rw-r--r--sys/arch/macppc/conf/RAMDISK4
-rw-r--r--sys/arch/sparc/conf/GENERIC12
-rw-r--r--sys/arch/sparc/conf/RAMDISK12
-rw-r--r--sys/arch/sparc/conf/SUN44
-rw-r--r--sys/arch/sparc/conf/SUN4C8
-rw-r--r--sys/arch/sparc/conf/SUN4M8
-rw-r--r--sys/arch/sparc64/conf/GENERIC4
-rw-r--r--sys/arch/sparc64/conf/RAMDISK4
-rw-r--r--sys/arch/sparc64/conf/RAMDISKU14
-rw-r--r--sys/dev/ic/ncr53c9x.c31
-rw-r--r--sys/dev/ic/ncr53c9xvar.h5
12 files changed, 56 insertions, 44 deletions
diff --git a/sys/arch/macppc/conf/GENERIC b/sys/arch/macppc/conf/GENERIC
index 5cd1913cb04..494b4965abc 100644
--- a/sys/arch/macppc/conf/GENERIC
+++ b/sys/arch/macppc/conf/GENERIC
@@ -1,4 +1,4 @@
-# $OpenBSD: GENERIC,v 1.144 2006/06/22 23:10:28 brad Exp $g
+# $OpenBSD: GENERIC,v 1.145 2006/06/26 22:16:23 miod Exp $g
#
# For further information on compiling OpenBSD kernels, see the config(8)
# man page.
@@ -132,7 +132,7 @@ macintr0 at macobio? # old interrupt controller
openpic* at macobio? # openpic interrupt controller
bm* at macobio? # BMAC ethernet
#mc* at macobio? # MACE ethernet
-#esp* at macobio? flags 0x00ff # 53c9x SCSI
+#esp* at macobio? flags 0x0000ffff # 53c9x SCSI
#mesh* at macobio? flags 0xffff # MESH SCSI
#nvram* at macobio? # nvram
adb* at macobio? # Apple Desktop Bus
diff --git a/sys/arch/macppc/conf/RAMDISK b/sys/arch/macppc/conf/RAMDISK
index b0fd00b5d63..a17a4603922 100644
--- a/sys/arch/macppc/conf/RAMDISK
+++ b/sys/arch/macppc/conf/RAMDISK
@@ -1,4 +1,4 @@
-# $OpenBSD: RAMDISK,v 1.68 2006/06/22 23:10:28 brad Exp $
+# $OpenBSD: RAMDISK,v 1.69 2006/06/26 22:16:23 miod Exp $
#
# PPC GENERIC config file
#
@@ -119,7 +119,7 @@ macintr0 at macobio? # old interrupt controller
openpic* at macobio? # openpic interrupt controller
bm* at macobio? # bmac ethernet
#mc* at macobio? # MACE ethernet
-#esp* at macobio? flags 0x00ff# 53c9x SCSI
+#esp* at macobio? flags 0x0000ffff# 53c9x SCSI
#mesh* at macobio? flags 0xffff# MESH SCSI
#nvram* at macobio? # nvram
adb* at macobio? # Apple Desktop Bus
diff --git a/sys/arch/sparc/conf/GENERIC b/sys/arch/sparc/conf/GENERIC
index b98cd9024db..54eb2d56719 100644
--- a/sys/arch/sparc/conf/GENERIC
+++ b/sys/arch/sparc/conf/GENERIC
@@ -1,4 +1,4 @@
-# $OpenBSD: GENERIC,v 1.86 2005/12/12 20:39:36 miod Exp $
+# $OpenBSD: GENERIC,v 1.87 2006/06/26 22:16:23 miod Exp $
#
# For further information on compiling OpenBSD kernels, see the config(8)
# man page.
@@ -139,18 +139,18 @@ sbus* at xbox?
# sun4/300 SCSI - an NCR53c94 or equivalent behind
# an LSI Logic DMA controller
dma0 at obio0 addr 0xfa001000 level 4 # sun4/300
-esp0 at obio0 addr 0xfa000000 level 4 flags 0xff0f #
+esp0 at obio0 addr 0xfa000000 level 4 flags 0x00ff000f
# sun4c or sun4m SCSI - an NCR53c94 or equivalent behind
# specialized DMA glue
dma0 at sbus0 # on-board SCSI
-esp0 at sbus0 flags 0xff0f # sun4c
-esp0 at dma0 flags 0xff0f # sun4m
+esp0 at sbus0 flags 0x00ff000f # sun4c
+esp0 at dma0 flags 0x00ff000f # sun4m
# FSBE/S SCSI - an NCR53c94 or equivalent behind
dma* at sbus? # SBus SCSI
-esp* at sbus? flags 0xff0f # two flavours
-esp* at dma? flags 0xff0f # depending on model
+esp* at sbus? flags 0x00ff000f # two flavours
+esp* at dma? flags 0x00ff000f # depending on model
#sun4c, sun4m
isp* at sbus?
diff --git a/sys/arch/sparc/conf/RAMDISK b/sys/arch/sparc/conf/RAMDISK
index 992e12cd78a..8572f165f9a 100644
--- a/sys/arch/sparc/conf/RAMDISK
+++ b/sys/arch/sparc/conf/RAMDISK
@@ -1,4 +1,4 @@
-# $OpenBSD: RAMDISK,v 1.57 2005/12/06 20:18:57 pedro Exp $
+# $OpenBSD: RAMDISK,v 1.58 2006/06/26 22:16:23 miod Exp $
# $NetBSD: GENERIC,v 1.28.2.1 1996/07/02 23:55:22 jtc Exp $
# Machine architecture; required by config(8)
@@ -130,18 +130,18 @@ sbus* at xbox?
# sun4/300 SCSI - an NCR53c94 or equivalent behind
# an LSI Logic DMA controller
dma0 at obio0 addr 0xfa001000 level 4 # sun4/300
-esp0 at obio0 addr 0xfa000000 level 4 flags 0xff0f #
+esp0 at obio0 addr 0xfa000000 level 4 flags 0x00ff000f
# sun4c or sun4m SCSI - an NCR53c94 or equivalent behind
# specialized DMA glue
dma0 at sbus0 # on-board SCSI
-esp0 at sbus0 flags 0xff0f # sun4c
-esp0 at dma0 flags 0xff0f # sun4m
+esp0 at sbus0 flags 0x00ff000f # sun4c
+esp0 at dma0 flags 0x00ff000f # sun4m
# FSBE/S SCSI - an NCR53c94 or equivalent behind
dma* at sbus? # SBus SCSI
-esp* at sbus? flags 0xff0f # two flavours
-esp* at dma? flags 0xff0f # depending on model
+esp* at sbus? flags 0x00ff000f # two flavours
+esp* at dma? flags 0x00ff000f # depending on model
# sun4m Ethernet - an AMD 7990 LANCE behind specialized DMA glue
ledma0 at sbus? # sun4m on-board
diff --git a/sys/arch/sparc/conf/SUN4 b/sys/arch/sparc/conf/SUN4
index cdacd9d0e82..598e953b16e 100644
--- a/sys/arch/sparc/conf/SUN4
+++ b/sys/arch/sparc/conf/SUN4
@@ -1,4 +1,4 @@
-# $OpenBSD: SUN4,v 1.32 2005/12/12 20:39:36 miod Exp $
+# $OpenBSD: SUN4,v 1.33 2006/06/26 22:16:23 miod Exp $
# $NetBSD: GENERIC,v 1.28.2.1 1996/07/02 23:55:22 jtc Exp $
# Machine architecture; required by config(8)
@@ -79,7 +79,7 @@ wskbd* at zskbd?
# sun4/300 SCSI - an NCR53c94 or equivalent behind
# an LSI Logic DMA controller
dma0 at obio0 addr 0xfa001000 level 4 # sun4/300
-esp0 at obio0 addr 0xfa000000 level 4 flags 0xff0f #
+esp0 at obio0 addr 0xfa000000 level 4 flags 0x00ff000f
# sun4/300 and sun4c Ethernet - an AMD 7990 LANCE
le0 at obio0 addr 0xf9000000 level 6 # sun4/300
diff --git a/sys/arch/sparc/conf/SUN4C b/sys/arch/sparc/conf/SUN4C
index 1f4c14b4582..2044e031bd7 100644
--- a/sys/arch/sparc/conf/SUN4C
+++ b/sys/arch/sparc/conf/SUN4C
@@ -1,4 +1,4 @@
-# $OpenBSD: SUN4C,v 1.54 2005/12/12 20:39:36 miod Exp $
+# $OpenBSD: SUN4C,v 1.55 2006/06/26 22:16:23 miod Exp $
# $NetBSD: GENERIC,v 1.48 1997/08/23 19:19:01 mjacob Exp $
# Machine architecture; required by config(8)
@@ -84,12 +84,12 @@ sbus* at xbox?
# sun4c or sun4m SCSI - an NCR53c94 or equivalent behind
# specialized DMA glue
dma0 at sbus0 # on-board SCSI
-esp0 at sbus0 flags 0xff0f # sun4c
+esp0 at sbus0 flags 0x00ff000f # sun4c
# FSBE/S SCSI - an NCR53c94 or equivalent behind
dma* at sbus? # SBus SCSI
-esp* at sbus? flags 0xff0f # two flavours
-esp* at dma? flags 0xff0f # depending on model
+esp* at sbus? flags 0x00ff000f # two flavours
+esp* at dma? flags 0x00ff000f # depending on model
#sun4c, sun4m
isp* at sbus?
diff --git a/sys/arch/sparc/conf/SUN4M b/sys/arch/sparc/conf/SUN4M
index 1cac8ec210b..531002af273 100644
--- a/sys/arch/sparc/conf/SUN4M
+++ b/sys/arch/sparc/conf/SUN4M
@@ -1,4 +1,4 @@
-# $OpenBSD: SUN4M,v 1.70 2005/12/12 20:39:36 miod Exp $
+# $OpenBSD: SUN4M,v 1.71 2006/06/26 22:16:23 miod Exp $
# $NetBSD: GENERIC,v 1.28.2.1 1996/07/02 23:55:22 jtc Exp $
# Machine architecture; required by config(8)
@@ -100,12 +100,12 @@ sbus* at xbox?
# sun4c or sun4m SCSI - an NCR53c94 or equivalent behind
# specialized DMA glue
dma0 at sbus0 # on-board SCSI
-esp0 at dma0 flags 0xff0f # sun4m
+esp0 at dma0 flags 0x00ff000f # sun4m
# FSBE/S SCSI - an NCR53c94 or equivalent behind
dma* at sbus? # SBus SCSI
-esp* at sbus? flags 0xff0f # two flavours
-esp* at dma? flags 0xff0f # depending on model
+esp* at sbus? flags 0x00ff000f # two flavours
+esp* at dma? flags 0x00ff000f # depending on model
#sun4c, sun4m
isp* at sbus?
diff --git a/sys/arch/sparc64/conf/GENERIC b/sys/arch/sparc64/conf/GENERIC
index b1fde139a6c..23ca9fc033f 100644
--- a/sys/arch/sparc64/conf/GENERIC
+++ b/sys/arch/sparc64/conf/GENERIC
@@ -1,4 +1,4 @@
-# $OpenBSD: GENERIC,v 1.150 2006/06/22 23:10:28 brad Exp $
+# $OpenBSD: GENERIC,v 1.151 2006/06/26 22:16:23 miod Exp $
#
# For further information on compiling OpenBSD kernels, see the config(8)
# man page.
@@ -268,7 +268,7 @@ scsibus* at atapiscsi?
# to operate acceptably.
#
dma* at sbus? # SBus
-esp* at dma? flags 0x0000 # SBus
+esp* at dma? # SBus
esp* at sbus?
isp* at sbus?
diff --git a/sys/arch/sparc64/conf/RAMDISK b/sys/arch/sparc64/conf/RAMDISK
index 67aa62af29a..30ba9b0046b 100644
--- a/sys/arch/sparc64/conf/RAMDISK
+++ b/sys/arch/sparc64/conf/RAMDISK
@@ -1,4 +1,4 @@
-# $OpenBSD: RAMDISK,v 1.52 2006/06/22 23:10:28 brad Exp $
+# $OpenBSD: RAMDISK,v 1.53 2006/06/26 22:16:23 miod Exp $
# Machine architecture; required by config(8)
machine sparc64
@@ -104,7 +104,7 @@ scsibus* at atapiscsi?
# to operate acceptably.
#
dma* at sbus? # SBus
-esp* at dma? flags 0x0000 # SBus
+esp* at dma? # SBus
esp* at sbus?
isp* at sbus?
option ISP_COMPILE_1000_FW=1
diff --git a/sys/arch/sparc64/conf/RAMDISKU1 b/sys/arch/sparc64/conf/RAMDISKU1
index 70a7be050af..645592f69e2 100644
--- a/sys/arch/sparc64/conf/RAMDISKU1
+++ b/sys/arch/sparc64/conf/RAMDISKU1
@@ -1,4 +1,4 @@
-# $OpenBSD: RAMDISKU1,v 1.16 2006/06/21 19:28:08 jason Exp $
+# $OpenBSD: RAMDISKU1,v 1.17 2006/06/26 22:16:23 miod Exp $
# Machine architecture; required by config(8)
machine sparc64
@@ -59,7 +59,7 @@ hme* at sbus?
# to operate acceptably.
#
dma* at sbus? # SBus
-esp* at dma? flags 0x0000 # SBus
+esp* at dma? # SBus
esp* at sbus?
scsibus* at esp?
diff --git a/sys/dev/ic/ncr53c9x.c b/sys/dev/ic/ncr53c9x.c
index 2ab0144e102..eadec7473e9 100644
--- a/sys/dev/ic/ncr53c9x.c
+++ b/sys/dev/ic/ncr53c9x.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ncr53c9x.c,v 1.31 2006/05/23 20:35:12 miod Exp $ */
+/* $OpenBSD: ncr53c9x.c,v 1.32 2006/06/26 22:16:23 miod Exp $ */
/* $NetBSD: ncr53c9x.c,v 1.56 2000/11/30 14:41:46 thorpej Exp $ */
/*
@@ -243,6 +243,16 @@ ncr53c9x_attach(sc, adapter, dev)
/* CCF register only has 3 bits; 0 is actually 8 */
sc->sc_ccf &= 7;
+ /* Find how many targets we need to support */
+ switch (sc->sc_rev) {
+ case NCR_VARIANT_FAS366:
+ sc->sc_ntarg = 16;
+ break;
+ default:
+ sc->sc_ntarg = 8;
+ break;
+ }
+
/* Reset state & bus */
sc->sc_cfflags = sc->sc_dev.dv_cfdata->cf_flags;
sc->sc_state = 0;
@@ -256,6 +266,7 @@ ncr53c9x_attach(sc, adapter, dev)
sc->sc_link.adapter = adapter;
sc->sc_link.device = dev;
sc->sc_link.openings = 2;
+ sc->sc_link.adapter_buswidth = sc->sc_ntarg;
/*
* Now try to attach all the sub-devices
@@ -383,7 +394,7 @@ ncr53c9x_init(sc, doreset)
TAILQ_INIT(&sc->ready_list);
sc->sc_nexus = NULL;
bzero(sc->sc_tinfo, sizeof(sc->sc_tinfo));
- for (r = 0; r < NCR_NTARG; r++) {
+ for (r = 0; r < sc->sc_ntarg; r++) {
LIST_INIT(&sc->sc_tinfo[r].luns);
}
} else {
@@ -394,7 +405,7 @@ ncr53c9x_init(sc, doreset)
ecb->xs->error = XS_TIMEOUT;
ncr53c9x_done(sc, ecb);
}
- for (r = 0; r < 8; r++) {
+ for (r = 0; r < sc->sc_ntarg; r++) {
LIST_FOREACH(li, &sc->sc_tinfo[r].luns, link) {
if ((ecb = li->untagged)) {
li->untagged = NULL;
@@ -407,7 +418,7 @@ ncr53c9x_init(sc, doreset)
ecb->xs->error = XS_TIMEOUT;
ncr53c9x_done(sc, ecb);
}
- for (i = 0; i<256; i++)
+ for (i = 0; i < 256; i++)
if ((ecb = li->queued[i])) {
li->queued[i] = NULL;
ecb->xs->error = XS_TIMEOUT;
@@ -424,13 +435,13 @@ ncr53c9x_init(sc, doreset)
ncr53c9x_reset(sc);
sc->sc_phase = sc->sc_prevphase = INVALID_PHASE;
- for (r = 0; r < 8; r++) {
+ for (r = 0; r < sc->sc_ntarg; r++) {
struct ncr53c9x_tinfo *ti = &sc->sc_tinfo[r];
/* XXX - config flags per target: low bits: no reselect; high bits: no synch */
- ti->flags = ((sc->sc_minsync && !(sc->sc_cfflags & (1<<(r+8))))
- ? 0 : T_SYNCHOFF) |
- ((sc->sc_cfflags & (1<<r)) ? T_RSELECTOFF : 0) |
+ ti->flags = ((!(sc->sc_cfflags & (1 << (r + 16))) &&
+ sc->sc_minsync) ? 0 : T_SYNCHOFF) |
+ ((sc->sc_cfflags & (1 << r)) ? T_RSELECTOFF : 0) |
T_NEED_TO_RESET;
#ifdef DEBUG
if (ncr53c9x_notag)
@@ -2789,7 +2800,7 @@ ncr53c9x_timeout(arg)
(sc->sc_phase & (MSGI|CDI)) == 0) {
sc_print_addr(sc_link);
printf("sync negotiation disabled\n");
- sc->sc_cfflags |= (1<<(sc_link->target+8));
+ sc->sc_cfflags |= (1 << (sc_link->target + 16));
}
}
@@ -2808,7 +2819,7 @@ ncr53c9x_watch(arg)
time_t old = time_second - (10*60);
s = splbio();
- for (t=0; t<NCR_NTARG; t++) {
+ for (t = 0; t < sc->sc_ntarg; t++) {
ti = &sc->sc_tinfo[t];
for (li = LIST_FIRST(&ti->luns); li != LIST_END(&ti->luns); ) {
if (li->last_used < old && !li->untagged && !li->used) {
diff --git a/sys/dev/ic/ncr53c9xvar.h b/sys/dev/ic/ncr53c9xvar.h
index ffe00a0bace..a2d5a066059 100644
--- a/sys/dev/ic/ncr53c9xvar.h
+++ b/sys/dev/ic/ncr53c9xvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ncr53c9xvar.h,v 1.16 2006/05/23 20:35:40 miod Exp $ */
+/* $OpenBSD: ncr53c9xvar.h,v 1.17 2006/06/26 22:16:23 miod Exp $ */
/* $NetBSD: ncr53c9xvar.h,v 1.13 1998/05/26 23:17:34 thorpej Exp $ */
/*-
@@ -70,7 +70,7 @@
#endif
/* Wide or differential can have 16 targets */
-#define NCR_NTARG 8
+#define NCR_NTARG 16
#define NCR_NLUN 8
#define NCR_ABORT_TIMEOUT 2000 /* time to wait for abort */
@@ -270,6 +270,7 @@ struct ncr53c9x_softc {
struct ncr53c9x_glue *sc_glue; /* glue to MD code */
+ int sc_ntarg; /* number of targets */
int sc_cfflags; /* Copy of config flags */
/* register defaults */