/* * Device driver optimized for the Symbios/LSI 53C896/53C895A/53C1010 * PCI-SCSI controllers. * * Copyright (C) 1999 Gerard Roudier * * This driver also supports the following Symbios/LSI PCI-SCSI chips: * 53C810A, 53C825A, 53C860, 53C875, 53C876, 53C885, 53C895. * * but does not support earlier chips as the following ones: * 53C810, 53C815, 53C825. * * This driver for FreeBSD-CAM is derived from the Linux sym53c8xx driver. * Copyright (C) 1998-1999 Gerard Roudier * * The sym53c8xx driver is derived from the ncr53c8xx driver that had been * a port of the FreeBSD ncr driver to Linux-1.2.13. * * The original ncr driver has been written for 386bsd and FreeBSD by * Wolfgang Stanglmeier * Stefan Esser * Copyright (C) 1994 Wolfgang Stanglmeier * * The initialisation code, and part of the code that addresses * FreeBSD-CAM services is based on the aic7xxx driver for FreeBSD-CAM * written by Justin T. Gibbs. * * Other major contributions: * * NVRAM detection and reading. * Copyright (C) 1997 Richard Waltham * *----------------------------------------------------------------------------- * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ Status: BETA-RELEASE This driver is currently developped under the following O/S: FreeBSD 4.0 SNAPSHOT July 5th 1999 FreeBSD 4.0 current October 1999 Starting with version 0.9.0, the driver contains conditionnal code for using pre-4.0 BUS stuff for PCI. I have successfully tested driver version 0.9.0 under: FreeBSD 3.2 RELEASE FreeBSD 3.3 RELEASE Latest revision: sym-0.12.0-19991127 Files to download: SYM-0.9.0-19991024.tar.gz PATCH-SYM-0.10.0-19991111.gz PATCH-SYM-0.11.0-19991120.gz PATCH-SYM-0.12.0-19991127.gz Supported SCSI features: - Initiator mode - Wide 16 SCSI BUS - FAST10 up to FAST80-DT synchronous data transfers (depends on controller capabilities) - 64 luns per target - 256 tags per lun - MDP (1) - BUS DEVICE RESET message - ABORT, ABORT TAG message Supported generic chip features: - On chip RAM - PCI optimized transactions. Supported features of 896/895A/1010: - Full SCRIPTS in on-board RAM (8K) - Phase mismatch handling from SCRIPTS. Others: - SYMBIOS NVRAM layout using 24c16 EEPROM - TEKRAM NVRAM layout using 24c16 EEPROM (2) - TEKRAM NVRAM layout using 93c46 EEPROM (2) - Transfer residuals - 0(1) for both SCRIPTS and C code, allowing 100% scalability. Notes: (1) Not yet reported. May not work as expected. Files: README.sym this file sym_conf.h driver configuration sym_defs.h driver definitions sym_hipd.c driver code sym_sys.patch kernel patch for FreeBSD 4 sym_sys_3.patch kernel patch for FreeBSD 3 These patches apply a change to the ncr.c driver that forces it to ignore SYM53C8XX chips that support LOAD/STORE. These devices will be attached by the sym_hipd.c driver. Installation: 1) Untar SYM-0.9.0-19991024.tar.gz 2) Create the /usr/src/sys/dev/sym directory 3) Copy README.sym, sym_conf.h, sym_defs.h and sym_hipd.c to /usr/src/sys/dev/sym/ 4) Change to /usr/src/sys/ directory 5) If FreeBSD-4, apply the unified patch sym_sys.patch (patch -p0