2 * Device driver for the SYMBIOS/LSILOGIC 53C8XX and 53C1010 family
3 * of PCI-SCSI IO processors.
5 * Copyright (C) 1999-2001 Gerard Roudier <groudier@free.fr>
7 * This driver is derived from the Linux sym53c8xx driver.
8 * Copyright (C) 1998-2000 Gerard Roudier
10 * The sym53c8xx driver is derived from the ncr53c8xx driver that had been
11 * a port of the FreeBSD ncr driver to Linux-1.2.13.
13 * The original ncr driver has been written for 386bsd and FreeBSD by
14 * Wolfgang Stanglmeier <wolf@cologne.de>
15 * Stefan Esser <se@mi.Uni-Koeln.de>
16 * Copyright (C) 1994 Wolfgang Stanglmeier
18 * Other major contributions:
20 * NVRAM detection and reading.
21 * Copyright (C) 1997 Richard Waltham <dormouse@farsrobt.demon.co.uk>
23 *-----------------------------------------------------------------------------
25 * This program is free software; you can redistribute it and/or modify
26 * it under the terms of the GNU General Public License as published by
27 * the Free Software Foundation; either version 2 of the License, or
28 * (at your option) any later version.
30 * This program is distributed in the hope that it will be useful,
31 * but WITHOUT ANY WARRANTY; without even the implied warranty of
32 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33 * GNU General Public License for more details.
35 * You should have received a copy of the GNU General Public License
36 * along with this program; if not, write to the Free Software
37 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
43 #include "sym53c8xx.h"
46 * Max number of targets.
47 * Maximum is 16 and you are advised not to change this value.
49 #ifndef SYM_CONF_MAX_TARGET
50 #define SYM_CONF_MAX_TARGET (16)
54 * Max number of logical units.
55 * SPI-2 allows up to 64 logical units, but in real life, target
56 * that implements more that 7 logical units are pretty rare.
57 * Anyway, the cost of accepting up to 64 logical unit is low in
58 * this driver, thus going with the maximum is acceptable.
60 #ifndef SYM_CONF_MAX_LUN
61 #define SYM_CONF_MAX_LUN (64)
65 * Max number of IO control blocks queued to the controller.
66 * Each entry needs 8 bytes and the queues are allocated contiguously.
67 * Since we donnot want to allocate more than a page, the theorical
68 * maximum is PAGE_SIZE/8. For safety, we announce a bit less to the
70 * When not supplied, as it is suggested, the driver compute some
71 * good value for this parameter.
73 /* #define SYM_CONF_MAX_START (PAGE_SIZE/8 - 16) */
76 * Support for Immediate Arbitration.
79 /* #define SYM_CONF_IARB_SUPPORT */
82 * Number of lists for the optimization of the IO timeout handling.
83 * Not used under FreeBSD and Linux.
85 #ifndef SYM_CONF_TIMEOUT_ORDER_MAX
86 #define SYM_CONF_TIMEOUT_ORDER_MAX (8)
90 * Only relevant if IARB support configured.
91 * - Max number of successive settings of IARB hints.
92 * - Set IARB on arbitration lost.
94 #define SYM_CONF_IARB_MAX 3
95 #define SYM_CONF_SET_IARB_ON_ARB_LOST 1
98 * Returning wrong residuals may make problems.
99 * When zero, this define tells the driver to
100 * always return 0 as transfer residual.
101 * Btw, all my testings of residuals have succeeded.
103 #define SYM_SETUP_RESIDUAL_SUPPORT 1
106 * Supported maximum number of LUNs to announce to
108 * The driver supports up to 64 LUNs per target as
109 * required by SPI-2/SPI-3. However some SCSI devices
110 * designed prior to these specifications or not being
111 * conformant may be highly confused when they are
112 * asked about a LUN > 7.
114 #ifndef SYM_SETUP_MAX_LUN
115 #define SYM_SETUP_MAX_LUN (8)
118 #endif /* SYM_CONF_H */