2 .\" Device driver optimized for the Symbios/LSI 53C896/53C895A/53C1010
3 .\" PCI-SCSI controllers.
5 .\" Copyright (C) 1999-2000 Gerard Roudier <groudier@club-internet.fr>
7 .\" This driver also supports the following Symbios/LSI PCI-SCSI chips:
8 .\" 53C810A, 53C825A, 53C860, 53C875, 53C876, 53C885, 53C895.
10 .\" but does not support earlier chips as the following ones:
11 .\" 53C810, 53C815, 53C825.
13 .\" This driver for FreeBSD-CAM is derived from the Linux sym53c8xx driver.
14 .\" Copyright (C) 1998-1999 Gerard Roudier
16 .\" The sym53c8xx driver is derived from the ncr53c8xx driver that had been
17 .\" a port of the FreeBSD ncr driver to Linux-1.2.13.
19 .\" The original ncr driver has been written for 386bsd and FreeBSD by
20 .\" Wolfgang Stanglmeier <wolf@cologne.de>
21 .\" Stefan Esser <se@mi.Uni-Koeln.de>
22 .\" Copyright (C) 1994 Wolfgang Stanglmeier
24 .\" The initialization code, and part of the code that addresses
25 .\" FreeBSD-CAM services is based on the aic7xxx driver for FreeBSD-CAM
26 .\" written by Justin T. Gibbs.
28 .\" Other major contributions:
30 .\" NVRAM detection and reading.
31 .\" Copyright (C) 1997 Richard Waltham <dormouse@farsrobt.demon.co.uk>
33 .\" ----------------------------------------------------------------------------
35 .\" Redistribution and use in source and binary forms, with or without
36 .\" modification, are permitted provided that the following conditions
38 .\" 1. Redistributions of source code must retain the above copyright
39 .\" notice, this list of conditions and the following disclaimer.
40 .\" 2. Redistributions in binary form must reproduce the above copyright
41 .\" notice, this list of conditions and the following disclaimer in the
42 .\" documentation and/or other materials provided with the distribution.
43 .\" 3. The name of the author may not be used to endorse or promote products
44 .\" derived from this software without specific prior written permission.
46 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
47 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
48 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
49 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
50 .\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
51 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
52 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
53 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
54 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
55 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
65 .Nd Symbios/LSI Logic PCI-SCSI host adapter driver
67 For any number of cards:
70 To disable PCI parity checking (needed for broken bridges)
71 .Cd options SYM_SETUP_PCI_PARITY=<boolean>
73 To control driver probing against HVD buses
74 .Cd options SYM_SETUP_SCSI_DIFF=<bit combination>
76 To control chip attachment balancing between the ncr driver and this driver
77 .Cd options SYM_SETUP_LP_PROBE_MAP=<bit combination>
79 This driver provides support for the Symbios/LSI Logic
94 Driver features include support for wide SCSI busses, fast10, fast20,
95 fast40 and fast80-dt synchronous data transfers depending on controller
97 It also provides generic SCSI features as tagged command
98 queuing and auto-request sense.
99 This driver is configured by default
100 for a maximum of 446 outstanding commands per bus, 8 LUNs per target
101 and 64 tagged tasks per LUN.
102 These numbers are not so limited by design,
103 as have been considered reasonable values for current SCSI technology.
104 These values can be increased by changing appropriate
105 constants in driver header files (not recommended).
107 This driver requires the PCI-SCSI chip to implement LOAD/STORE SCRIPTS
108 instructions and therefore it does not provide support for 53C810 revid < 16,
109 53C825 revid < 16 and all 53C815 revisions.
112 driver can be used to support these early chips.
114 By default, when both the
118 drivers are configured, the
120 driver takes precedence over the
122 driver for all chips that are supported by
126 driver does only attach the 53C8XX
127 chips that donnot support LOAD/STORE (i.e.: 53C810, 53C815 and 53C825).
128 User can change the balancing of chip types between drivers by defining
130 .Ar SYM_SETUP_LP_PROBE_MAP
131 kernel configuration option as follows:
132 .Bl -column "Bit " "53C8XXA, 53C8XX, 53C8XX, 53C8XX, 53C8XX, 53C8XX"
133 .Em Bit Devices attached by ncr instead
135 2 53C825a, 53C875, 53C876, 53C885, 53C895
136 4 53C895a, 53C896, 53C897, 53C1510d
141 .Ar SYM_SETUP_LP_PROBE_MAP
142 is supplied with value 7, all the
143 above chips will be attached by the
148 attach the 53C1010 Ultra-3 controllers.
150 HVD/LVD capable controllers (895, 895A, 896, 897 and 1010) report
151 the actual bus mode from the STEST4 chip IO registers.
153 allows to safely probe against bus mode and to set up the chip
155 By default the driver only supports HVD for these chips.
156 For other chips that can support HVD but not LVD, the driver has to probe
157 implementation dependent registers (GPIO) in order to detect HVD bus mode.
158 Only HVD implementations that conform with Symbios Logic recommendation can
159 be detected by the driver.
161 .Ar SYM_SETUP_SCSI_DIFF
163 as value 1, the driver will also probe against HVD for 825a, 875, 876 and
164 885 chips, assuming Symbios Logic compatible implementation of HVD.
166 When supplied as 0, the
167 .Ar SYM_SETUP_PCI_PARITY
168 kernel configuration option
169 indicates the driver not to enable PCI parity checking.
171 checking should not be an option for PCI-SCSI controllers, but some
172 systems have been reported to fail using 53C8XX chips due to spurious or
173 permanent PCI parity errors detected.
174 This option is supplied for
175 convenience but it is not recommended nor supported.
177 This driver offers other options that are not currently exported to user.
178 They are defined and documented in the sym_conf.h driver file.
180 recommended to change these options unless absolute need.
182 options are planned to be exported through SYSCTL or equivalent mechanism
183 in a further driver release and therefore, no compatibility is guaranteed.
185 At initialization, the driver tries to detect and read user settings from
187 The Symbios/Logic NVRAM layout and the Tekram NVRAM
188 layout are currently supported.
189 If the reading of the NVRAM succeeds, the
190 following settings are taken into account and reported to CAM:
192 .Bl -column "SCSI parity checking " "Symbios " "Tekram"
193 .Em Host settings Symbios Tekram
194 SCSI parity checking Y N
197 Scan targets hi-lo Y N
198 Avoid SCSI bus reset Y N
201 .Bl -column "Synchronous period " "Symbios " "Tekram"
202 .Em Device settings Symbios Tekram
203 Synchronous period Y Y
207 Disconnect enable Y Y
208 Scan at boot time Y N
212 Devices that are configured as disabled for 'scan' in the NVRAM are not
213 reported to CAM at system start-up.
214 They can be discovered later using
216 .Nm camcontrol rescan
219 The table below summarizes the main features and capabilities of the
220 NCR/Symbios/LSI Logic 53C8XX family of PCI-SCSI controllers.
222 .Bl -column sym53c1510d "Sync " "Width " "SRAM " "PCI64"
223 .Em Chip Sync Width SRAM PCI64 Supported
224 sym53c810 10MHz 8Bit N N N
225 sym53c810a 10MHz 8Bit N N Y
226 sym53c815 10MHz 8Bit N N N
227 sym53c825 10MHz 16Bit N N N
228 sym53c825a 10MHz 16Bit 4KB N Y
229 sym53c860 20MHz 8Bit N N Y
230 sym53c875 20MHz 16Bit 4KB N Y
231 sym53c876 20MHz 16Bit 4KB N Y
232 sym53c885 20MHz 16Bit 4KB N Y
233 sym53c895 40MHz 16Bit 4KB N Y
234 sym53c895A 40MHz 16Bit 8KB N Y
235 sym53c896 40MHz 16Bit 8KB Y Y
236 sym53c897 40MHz 16Bit 8KB Y Y
237 sym53c1510D 40MHz 16Bit 4KB Y Y
238 sym53c1010 80MHz 16Bit 8KB Y Y
253 driver has been written by Gerard Roudier and is derived from the
254 Linux sym53c8xx driver from the same author.
255 The sym53c8xx driver is derived from the ncr53c8xx driver that had been
259 driver to Linux-1.2.13.
262 driver was written for 386BSD and
264 by Wolfgang Stanglmeier and Stefan Esser.