summaryrefslogtreecommitdiffstats
path: root/sys/dev/ciss
diff options
context:
space:
mode:
authorps <ps@FreeBSD.org>2004-05-17 17:27:38 +0000
committerps <ps@FreeBSD.org>2004-05-17 17:27:38 +0000
commitf0f9792ad4bdeea979da6479eee800628b092951 (patch)
tree27f668971903c5891432ed4445e17a568b301c6c /sys/dev/ciss
parent858adca10f16b52166830f034daf42bbdb337d6a (diff)
downloadFreeBSD-src-f0f9792ad4bdeea979da6479eee800628b092951.zip
FreeBSD-src-f0f9792ad4bdeea979da6479eee800628b092951.tar.gz
Turn SCSI pre-fetch ON. This is mainly for 64XX and 64X based
controllers and allows the controller to prefetch 1-2k on certain PCI memory reads to the host. The spec says this should only be used for IA32 based systems. Informed of feature by: John Cagle <first.last@hp.com>
Diffstat (limited to 'sys/dev/ciss')
-rw-r--r--sys/dev/ciss/ciss.c4
-rw-r--r--sys/dev/ciss/cissreg.h10
2 files changed, 12 insertions, 2 deletions
diff --git a/sys/dev/ciss/ciss.c b/sys/dev/ciss/ciss.c
index c11c28f..67edd2a 100644
--- a/sys/dev/ciss/ciss.c
+++ b/sys/dev/ciss/ciss.c
@@ -569,6 +569,10 @@ ciss_init_pci(struct ciss_softc *sc)
sc->ciss_cfg->interrupt_coalesce_delay = CISS_INTERRUPT_COALESCE_DELAY;
sc->ciss_cfg->interrupt_coalesce_count = CISS_INTERRUPT_COALESCE_COUNT;
+#ifdef __i386__
+ sc->ciss_cfg->host_driver |= CISS_DRIVER_SCSI_PREFETCH;
+#endif
+
if (ciss_update_config(sc)) {
ciss_printf(sc, "adapter refuses to accept config update (IDBR 0x%x)\n",
CISS_TL_SIMPLE_READ(sc, CISS_TL_SIMPLE_IDBR));
diff --git a/sys/dev/ciss/cissreg.h b/sys/dev/ciss/cissreg.h
index 4643850..6ecf146 100644
--- a/sys/dev/ciss/cissreg.h
+++ b/sys/dev/ciss/cissreg.h
@@ -404,14 +404,20 @@ struct ciss_config_table
#define CISS_TRANSPORT_BUS_TYPE_ULTRA3 (1<<1)
#define CISS_TRANSPORT_BUS_TYPE_FIBRE1 (1<<8)
#define CISS_TRANSPORT_BUS_TYPE_FIBRE2 (1<<9)
+ u_int32_t transport_offset;
+ char server_name[16];
+ u_int32_t heartbeat;
u_int32_t host_driver;
#define CISS_DRIVER_SUPPORT_UNIT_ATTENTION (1<<0)
#define CISS_DRIVER_QUICK_INIT (1<<1)
#define CISS_DRIVER_INTERRUPT_ON_LOCKUP (1<<2)
#define CISS_DRIVER_SUPPORT_MIXED_Q_TAGS (1<<3)
#define CISS_DRIVER_HOST_IS_ALPHA (1<<4)
- char server_name[16];
- u_int32_t heartbeat;
+#define CISS_DRIVER_MULTI_LUN_SUPPORT (1<<5)
+#define CISS_DRIVER_MESSAGE_REQUESTS_SUPPORTED (1<<7)
+#define CISS_DRIVER_DAUGHTER_ATTACHED (1<<8)
+#define CISS_DRIVER_SCSI_PREFETCH (1<<9)
+ u_int32_t max_sg_length; /* 31 in older firmware */
} __packed;
/*
OpenPOWER on IntegriCloud