aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/sym/README.sym
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/sym/README.sym')
-rw-r--r--sys/dev/sym/README.sym200
1 files changed, 200 insertions, 0 deletions
diff --git a/sys/dev/sym/README.sym b/sys/dev/sym/README.sym
new file mode 100644
index 000000000000..8ce3c85e87f2
--- /dev/null
+++ b/sys/dev/sym/README.sym
@@ -0,0 +1,200 @@
+/*
+ * Device driver optimized for the Symbios/LSI 53C896/53C895A/53C1010
+ * PCI-SCSI controllers.
+ *
+ * Copyright (C) 1999 Gerard Roudier <groudier@club-internet.fr>
+ *
+ * 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 <wolf@cologne.de>
+ * Stefan Esser <se@mi.Uni-Koeln.de>
+ * 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 <dormouse@farsrobt.demon.co.uk>
+ *
+ *-----------------------------------------------------------------------------
+ *
+ * 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: (switched back to EXPERIMENTAL due to some heavy changes)
+ EXPERIMENTAL
+ This driver is currently developped under the following O/S:
+ FreeBSD 4.0 SNAPSHOT July 5th 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
+ Given that the old bus stuff is still supported under FreeBSD, the driver
+ should also compile and work just fine under FreeBSD 3.3 RELEASE.
+
+Latest revision:
+ sym-0.9.0-19991024
+
+Supported SCSI features:
+ - Initiator mode
+ - Wide 16 SCSI BUS
+ - FAST10 up to FAST80-DT synchronous data transfers (1)
+ (depends on controller capabilities)
+ - 64 luns per target
+ - 256 tags per lun
+ - MDP (2)
+ - BUS DEVICE RESET message
+ - ABORT, ABORT TAG message (2)
+
+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) Only supported by the LSI53C1010 and not yet
+ tested due to lack of C1010 based controller.
+(2) Not yet checked. 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) Copy README.sym, sym_conf.h, sym_defs.h and sym_hipd.c to
+ /usr/src/sys/pci/
+ 3) Change to /usr/src/sys/ directory
+ 4) If FreeBSD-4, apply the unified patch sym_sys.patch
+ (patch -p0 <sym_sys.patch)
+ Otherwise,
+ If FreeBSD-3, apply the unified patch sym_sys_3.patch
+ (patch -p0 <sym_sys_3.patch)
+ Otherwise, leave here. ;)
+ 5) Add sym0 to your kernel configuration as indicated in patched LINT file.
+ Configure and make your kernel.
+
+Warnings:
+- This driver uses LOAD/STORE instructions from SCRIPTS and therefore does
+ not support earliest NCR chips (NCR53C810, NCR53C815, NCR53C825).
+
+Versionning:
+- The version number consists in 3 numbers X.Y.Z, starting with 0.0.0.
+- Z will not be used for incremental patches, but may be used for
+ quick fixes.
+- Incremental diff files are of the following pattern:
+ PATCH-SYM-X.Y.Z-YYYYMMDD
+ They must be applied from directory: /usr/src/sys/pci/
+- Version 1.0.0 will add support for the C1010 (Ultra-3 DT data transfers)
+- Version 2.0.0 is not planned for now, but will add support for host target
+ mode if it will ever exist.
+
+Change log:
+* SYM-0.0.0-19990915
+ Initial release.
+
+* SYM-0.1.0-19990919 (diff file PATCH-SYM-0.1.0-19990919
+ Add NVRAM support for latest Tekram boards using 24c16 EEPROM.
+
+* SYM-0.2.0-19990922 (diff file PATCH-SYM-0.2.0-19990922
+ Add PPR negotiation and Ultra3 DT transfers for the LSI53C1010.
+ This corresponding code is untested since I haven't yet the
+ hardware. But the driver is not broken for current chips.
+
+* SYM-0.3.0-19990925 (diff file PATCH-SYM-0.3.0-19990925
+ Source review.
+ Testing of the QUEUE FULL handling (some fixes applied).
+
+* SYM-0.4.0-19990925 (diff file PATCH-SYM-0.4.0-19990928)
+ Fixes, notably the QUEUE FULL handling that requeued everything
+ without telling the XPT about the error. Note that this did not
+ break anything, but the queue depth was never reduced.
+
+* SYM-0.5.0-19991001 (diff file PATCH-SYM-0.5.0-19991001)
+ Problem of not discovering LUNs != 0 hopefully fixed.
+ Some other minor fixes.
+
+* SYM-0.6.0-19991003 (diff file PATCH-SYM-0.6.0-19991003)
+ Test error recovery pathes and residual calculation.
+ Improve Symbios NVRAM support by applying the SCAN_LUNS flag. The driver
+ answers DEV_NOT_THERE to INQUIRYs for LUNs that are not to be scanned.
+ Switch the driver status for SPI2 support to BETA-RELEASE.
+
+* SYM-0.7.0-19991006 (diff file PATCH-SYM-0.7.0-19991006)
+ Add support of the LSI1510D that emulates a 895 (infos sent by Compaq
+ that seems to be the only supplier of this chip)
+ Return CAM_REQ_ABORTED on HS_ABORT host status.
+ Fix a tiny bug that let the driver miss the TAG setting.
+
+* SYM-0.8.0-19991016 (diff file PATCH-SYM-0.8.0-19991016)
+ Heavy rewrite/rewamping of the error handling code in order to conform
+ to FreeBSD-CAM expectation of commands having to be requeued and device
+ queue to be freezed on any kind of error. Driver status switched back
+ to EXPERIMENTAL due to these changes.
+ Warn user about targets that are not flagged for SCAN AT BOOT in the
+ NVRAM, since the driver will not allow the corresponding devices to be
+ discovered by XPT.
+ And numerous minor changes.
+
+* SYM-0.9.0-19991024 (Tar file SYM-0.9.0-19991024.tar.gz)
+ Add support for previous PCI BUS stuff, for the driver to be useable
+ under FreeBSD 3.X RELEASES. The source is #ifdefed for using the old
+ PCI BUS code under __FreeBSD_version < 400000 and the new one otherwise.
+ Tested under RELENG_3_2_0_RELEASE, but should also be just fine for 3.3.
+ Other changes against version 0.8.0 are only minor buglet fixes.
+
+October 24 1999. "Gerard Roudier"<groudier@club-internet.fr>