xref: /freebsd/share/man/man4/sym.4 (revision 23f282aa31e9b6fceacd449020e936e98d6f2298)
1.\"
2.\"  Device driver optimized for the Symbios/LSI 53C896/53C895A/53C1010
3.\"  PCI-SCSI controllers.
4.\"
5.\"  Copyright (C) 1999-2000  Gerard Roudier <groudier@club-internet.fr>
6.\"
7.\"  This driver also supports the following Symbios/LSI PCI-SCSI chips:
8.\"	53C810A, 53C825A, 53C860, 53C875, 53C876, 53C885, 53C895.
9.\"
10.\"  but does not support earlier chips as the following ones:
11.\"	53C810, 53C815, 53C825.
12.\"
13.\"  This driver for FreeBSD-CAM is derived from the Linux sym53c8xx driver.
14.\"  Copyright (C) 1998-1999  Gerard Roudier
15.\"
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.
18.\"
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
23.\"
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.
27.\"
28.\"  Other major contributions:
29.\"
30.\"  NVRAM detection and reading.
31.\"  Copyright (C) 1997 Richard Waltham <dormouse@farsrobt.demon.co.uk>
32.\"
33.\" ----------------------------------------------------------------------------
34.\"
35.\" Redistribution and use in source and binary forms, with or without
36.\" modification, are permitted provided that the following conditions
37.\" are met:
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.
45.\"
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
56.\" SUCH DAMAGE.
57.\"
58.\" $FreeBSD$
59.\"
60.Dd January 12, 2000
61.Dt SYM 4 i386
62.Os FreeBSD
63.Sh NAME
64.Nm sym
65.Nd Symbios/LSI Logic PCI-SCSI host adapter driver
66.Sh SYNOPSIS
67For any number of cards:
68.Cd device sym
69.Pp
70To disable PCI parity checking (needed for broken bridges)
71.Cd options SYM_SETUP_PCI_PARITY=<boolean>
72.Pp
73To control driver probing against HVD buses
74.Cd options SYM_SETUP_SCSI_DIFF=<bit combination>
75.Pp
76To control chip attachment balancing between the ncr driver and this driver
77.Cd options SYM_SETUP_LP_PROBE_MAP=<bit combination>
78.Sh DESCRIPTION
79This driver provides support for the Symbios/LSI Logic
80.Tn 53C810A,
81.Tn 53C825A,
82.Tn 53C860,
83.Tn 53C875,
84.Tn 53C876,
85.Tn 53C895,
86.Tn 53C895A,
87.Tn 53C896,
88.Tn 53C897,
89.Tn 53C1510D,
90and
91.Tn 53C1010
92PCI-SCSI controllers.
93.Pp
94Driver features include support for wide SCSI busses, fast10, fast20,
95fast40 and fast80-dt synchronous data transfers depending on controller
96capabilities.
97It also provides generic SCSI features as tagged command
98queuing and auto-request sense.
99This driver is configured by default
100for a maximum of 446 outstanding commands per bus, 8 LUNs per target
101and 64 tagged tasks per LUN.
102These numbers are not so limited by design,
103as have been considered reasonable values for current SCSI technology.
104These values can be increased by changing appropriate
105constants in driver header files (not recommended).
106.Pp
107This driver requires the PCI-SCSI chip to implement LOAD/STORE SCRIPTS
108instructions and therefore it does not provide support for 53C810 revid < 16,
10953C825 revid < 16 and all 53C815 revisions.
110The generic
111.Nm ncr
112driver can be used to support these early chips.
113.Pp
114By default, when both the
115.Nm ncr
116and
117.Nm
118drivers are configured, the
119.Nm
120driver takes precedence over the
121.Nm ncr
122driver for all chips that are supported by
123both drivers.
124As result, the
125.Nm ncr
126driver does only attach the 53C8XX
127chips that donnot support LOAD/STORE (i.e.: 53C810, 53C815 and 53C825).
128User can change the balancing of chip types between drivers by defining
129the
130.Ar SYM_SETUP_LP_PROBE_MAP
131kernel configuration option as follows:
132.Bl -column "Bit   " "53C8XXA, 53C8XX, 53C8XX, 53C8XX, 53C8XX, 53C8XX"
133.Em Bit	Devices attached by ncr instead
1341	53C810a, 53C860
1352	53C825a, 53C875, 53C876, 53C885, 53C895
1364	53C895a, 53C896, 53C897, 53C1510d
137.El
138.Ed
139.Pp
140For example, if
141.Ar SYM_SETUP_LP_PROBE_MAP
142is supplied with value 7, all the
143above chips will be attached by the
144.Nm ncr
145driver and the
146.Nm
147driver will only
148attach the 53C1010 Ultra-3 controllers.
149.Pp
150HVD/LVD capable controllers (895, 895A, 896, 897 and 1010) report
151the actual bus mode from the STEST4 chip IO registers.
152This feature
153allows to safely probe against bus mode and to set up the chip
154accordingly.
155By default the driver only supports HVD for these chips.
156For other chips that can support HVD but not LVD, the driver has to probe
157implementation dependent registers (GPIO) in order to detect HVD bus mode.
158Only HVD implementations that conform with Symbios Logic recommendation can
159be detected by the driver.
160When the
161.Ar SYM_SETUP_SCSI_DIFF
162kernel is provided
163as value 1, the driver will also probe against HVD for 825a, 875, 876 and
164885 chips, assuming Symbios Logic compatible implementation of HVD.
165.Pp
166When supplied as 0, the
167.Ar SYM_SETUP_PCI_PARITY
168kernel configuration option
169indicates the driver not to enable PCI parity checking.
170PCI parity
171checking should not be an option for PCI-SCSI controllers, but some
172systems have been reported to fail using 53C8XX chips due to spurious or
173permanent PCI parity errors detected.
174This option is supplied for
175convenience but it is not recommended nor supported.
176.Pp
177This driver offers other options that are not currently exported to user.
178They are defined and documented in the sym_conf.h driver file.
179It is not
180recommended to change these options unless absolute need.
181Some of these
182options are planned to be exported through SYSCTL or equivalent mechanism
183in a further driver release and therefore, no compatibility is guaranteed.
184.Pp
185At initialization, the driver tries to detect and read user settings from
186controller NVRAM.
187The Symbios/Logic NVRAM layout and the Tekram NVRAM
188layout are currently supported.
189If the reading of the NVRAM succeeds, the
190following settings are taken into account and reported to CAM:
191.Pp
192.Bl -column "SCSI parity checking      " "Symbios     " "Tekram"
193.Em Host settings	Symbios	Tekram
194SCSI parity checking	Y	N
195Host SCSI ident 	Y	Y
196Verbose messages	Y	N
197Scan targets hi-lo	Y	N
198Avoid SCSI bus reset	Y	N
199.Pp
200.El
201.Bl -column "Synchronous period       " "Symbios     " "Tekram"
202.Em Device settings	Symbios	Tekram
203Synchronous period	Y	Y
204SCSI bus width  	Y	Y
205Queue tag enable	Y	Y
206Number of tags  	NA	Y
207Disconnect enable	Y	Y
208Scan at boot time	Y	N
209Scan LUN       	Y	N
210.El
211.Pp
212Devices that are configured as disabled for 'scan' in the NVRAM are not
213reported to CAM at system start-up.
214They can be discovered later using
215the
216.Nm camcontrol rescan
217command.
218.Pp
219The table below summarizes the main features and capabilities of the
220NCR/Symbios/LSI Logic 53C8XX family of PCI-SCSI controllers.
221.Pp
222.Bl -column sym53c1510d "Sync   " "Width  " "SRAM  " "PCI64"
223.Em Chip	Sync	Width	SRAM	PCI64	Supported
224sym53c810	10MHz	8Bit	N	N	N
225sym53c810a	10MHz	8Bit	N	N	Y
226sym53c815	10MHz	8Bit	N	N	N
227sym53c825	10MHz	16Bit	N	N	N
228sym53c825a	10MHz	16Bit	4KB	N	Y
229sym53c860	20MHz	8Bit	N	N	Y
230sym53c875	20MHz	16Bit	4KB	N	Y
231sym53c876	20MHz	16Bit	4KB	N	Y
232sym53c885	20MHz	16Bit	4KB	N	Y
233sym53c895	40MHz	16Bit	4KB	N	Y
234sym53c895A	40MHz	16Bit	8KB	N	Y
235sym53c896	40MHz	16Bit	8KB	Y	Y
236sym53c897	40MHz	16Bit	8KB	Y	Y
237sym53c1510D	40MHz	16Bit	4KB	Y	Y
238sym53c1010	80MHz	16Bit	8KB	Y	Y
239.El
240.Pp
241.Sh BUGS
242No known bugs.
243.Sh SEE ALSO
244.Xr cd 4 ,
245.Xr da 4 ,
246.Xr ncr 4 ,
247.Xr sa 4 ,
248.Xr scsi 4 ,
249.Xr camcontrol 8
250.Sh AUTHORS
251The
252.Nm
253driver has been written by Gerard Roudier and is derived from the
254Linux sym53c8xx driver from the same author.
255The sym53c8xx driver is derived from the ncr53c8xx driver that had been
256a port of the
257.Fx
258.Nm ncr
259driver to Linux-1.2.13.
260The original
261.Nm ncr
262driver was written for 386BSD and
263.Fx
264by Wolfgang Stanglmeier and Stefan Esser.
265.Sh HISTORY
266The
267.Nm
268driver appeared in
269.Fx 4.0 .
270
271