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