diff options
author | ps <ps@FreeBSD.org> | 2004-05-17 17:27:38 +0000 |
---|---|---|
committer | ps <ps@FreeBSD.org> | 2004-05-17 17:27:38 +0000 |
commit | f0f9792ad4bdeea979da6479eee800628b092951 (patch) | |
tree | 27f668971903c5891432ed4445e17a568b301c6c /sys | |
parent | 858adca10f16b52166830f034daf42bbdb337d6a (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/dev/ciss/ciss.c | 4 | ||||
-rw-r--r-- | sys/dev/ciss/cissreg.h | 10 |
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; /* |