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>
This commit is contained in:
ps 2004-05-17 17:27:38 +00:00
parent 858adca10f
commit f0f9792ad4
2 changed files with 12 additions and 2 deletions

View File

@ -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));

View File

@ -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;
/*