From a891a3bf7c6fca89c8343b22a64a494e6e7f2739 Mon Sep 17 00:00:00 2001 From: Paul Saab Date: Mon, 17 May 2004 17:27:38 +0000 Subject: 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 --- sys/dev/ciss/ciss.c | 4 ++++ sys/dev/ciss/cissreg.h | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'sys/dev/ciss') diff --git a/sys/dev/ciss/ciss.c b/sys/dev/ciss/ciss.c index c11c28f334b68..67edd2ad4db17 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 46438501c5fd6..6ecf146683060 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; /* -- cgit v1.3