18dca37d2SMauro Carvalho Chehab.. SPDX-License-Identifier: GPL-2.0
28dca37d2SMauro Carvalho Chehab
3*7c891fe3SRandy Dunlap===========================
4*7c891fe3SRandy DunlapNCR53C8XX/SYM53C8XX drivers
5*7c891fe3SRandy Dunlap===========================
68dca37d2SMauro Carvalho Chehab
78dca37d2SMauro Carvalho ChehabWritten by Gerard Roudier <groudier@free.fr>
88dca37d2SMauro Carvalho Chehab
98dca37d2SMauro Carvalho Chehab21 Rue Carnot
108dca37d2SMauro Carvalho Chehab
118dca37d2SMauro Carvalho Chehab95170 DEUIL LA BARRE - FRANCE
128dca37d2SMauro Carvalho Chehab
138dca37d2SMauro Carvalho Chehab29 May 1999
148dca37d2SMauro Carvalho Chehab
158dca37d2SMauro Carvalho Chehab.. Contents:
168dca37d2SMauro Carvalho Chehab
178dca37d2SMauro Carvalho Chehab   1.  Introduction
188dca37d2SMauro Carvalho Chehab   2.  Supported chips and SCSI features
198dca37d2SMauro Carvalho Chehab   3.  Advantages of the enhanced 896 driver
208dca37d2SMauro Carvalho Chehab         3.1 Optimized SCSI SCRIPTS
218dca37d2SMauro Carvalho Chehab         3.2 New features of the SYM53C896 (64 bit PCI dual LVD SCSI controller)
228dca37d2SMauro Carvalho Chehab   4.  Memory mapped I/O versus normal I/O
238dca37d2SMauro Carvalho Chehab   5.  Tagged command queueing
248dca37d2SMauro Carvalho Chehab   6.  Parity checking
258dca37d2SMauro Carvalho Chehab   7.  Profiling information
268dca37d2SMauro Carvalho Chehab   8.  Control commands
278dca37d2SMauro Carvalho Chehab         8.1  Set minimum synchronous period
288dca37d2SMauro Carvalho Chehab         8.2  Set wide size
298dca37d2SMauro Carvalho Chehab         8.3  Set maximum number of concurrent tagged commands
308dca37d2SMauro Carvalho Chehab         8.4  Set order type for tagged command
318dca37d2SMauro Carvalho Chehab         8.5  Set debug mode
328dca37d2SMauro Carvalho Chehab         8.6  Clear profile counters
338dca37d2SMauro Carvalho Chehab         8.7  Set flag (no_disc)
348dca37d2SMauro Carvalho Chehab         8.8  Set verbose level
358dca37d2SMauro Carvalho Chehab         8.9  Reset all logical units of a target
368dca37d2SMauro Carvalho Chehab         8.10 Abort all tasks of all logical units of a target
378dca37d2SMauro Carvalho Chehab   9.  Configuration parameters
388dca37d2SMauro Carvalho Chehab   10. Boot setup commands
398dca37d2SMauro Carvalho Chehab         10.1 Syntax
408dca37d2SMauro Carvalho Chehab         10.2 Available arguments
418dca37d2SMauro Carvalho Chehab                10.2.1  Master parity checking
428dca37d2SMauro Carvalho Chehab                10.2.2  Scsi parity checking
438dca37d2SMauro Carvalho Chehab                10.2.3  Scsi disconnections
448dca37d2SMauro Carvalho Chehab                10.2.4  Special features
458dca37d2SMauro Carvalho Chehab                10.2.5  Ultra SCSI support
468dca37d2SMauro Carvalho Chehab                10.2.6  Default number of tagged commands
478dca37d2SMauro Carvalho Chehab                10.2.7  Default synchronous period factor
488dca37d2SMauro Carvalho Chehab                10.2.8  Negotiate synchronous with all devices
498dca37d2SMauro Carvalho Chehab                10.2.9  Verbosity level
508dca37d2SMauro Carvalho Chehab                10.2.10 Debug mode
518dca37d2SMauro Carvalho Chehab                10.2.11 Burst max
528dca37d2SMauro Carvalho Chehab                10.2.12 LED support
538dca37d2SMauro Carvalho Chehab                10.2.13 Max wide
548dca37d2SMauro Carvalho Chehab                10.2.14 Differential mode
558dca37d2SMauro Carvalho Chehab                10.2.15 IRQ mode
568dca37d2SMauro Carvalho Chehab                10.2.16 Reverse probe
578dca37d2SMauro Carvalho Chehab                10.2.17 Fix up PCI configuration space
588dca37d2SMauro Carvalho Chehab                10.2.18 Serial NVRAM
598dca37d2SMauro Carvalho Chehab                10.2.19 Check SCSI BUS
608dca37d2SMauro Carvalho Chehab                10.2.20 Exclude a host from being attached
618dca37d2SMauro Carvalho Chehab                10.2.21 Suggest a default SCSI id for hosts
628dca37d2SMauro Carvalho Chehab                10.2.22 Enable use of IMMEDIATE ARBITRATION
638dca37d2SMauro Carvalho Chehab         10.3 Advised boot setup commands
648dca37d2SMauro Carvalho Chehab         10.4 PCI configuration fix-up boot option
658dca37d2SMauro Carvalho Chehab         10.5 Serial NVRAM support boot option
668dca37d2SMauro Carvalho Chehab         10.6 SCSI BUS checking boot option
678dca37d2SMauro Carvalho Chehab         10.7 IMMEDIATE ARBITRATION boot option
688dca37d2SMauro Carvalho Chehab   11. Some constants and flags of the ncr53c8xx.h header file
698dca37d2SMauro Carvalho Chehab   12. Installation
708dca37d2SMauro Carvalho Chehab   13. Architecture dependent features
718dca37d2SMauro Carvalho Chehab   14. Known problems
728dca37d2SMauro Carvalho Chehab         14.1 Tagged commands with Iomega Jaz device
738dca37d2SMauro Carvalho Chehab         14.2 Device names change when another controller is added
748dca37d2SMauro Carvalho Chehab         14.3 Using only 8 bit devices with a WIDE SCSI controller.
758dca37d2SMauro Carvalho Chehab         14.4 Possible data corruption during a Memory Write and Invalidate
768dca37d2SMauro Carvalho Chehab         14.5 IRQ sharing problems
778dca37d2SMauro Carvalho Chehab   15. SCSI problem troubleshooting
788dca37d2SMauro Carvalho Chehab         15.1 Problem tracking
798dca37d2SMauro Carvalho Chehab         15.2 Understanding hardware error reports
808dca37d2SMauro Carvalho Chehab   16. Synchronous transfer negotiation tables
818dca37d2SMauro Carvalho Chehab         16.1 Synchronous timings for 53C875 and 53C860 Ultra-SCSI controllers
828dca37d2SMauro Carvalho Chehab         16.2 Synchronous timings for fast SCSI-2 53C8XX controllers
838dca37d2SMauro Carvalho Chehab   17. Serial NVRAM support (by Richard Waltham)
848dca37d2SMauro Carvalho Chehab         17.1 Features
858dca37d2SMauro Carvalho Chehab         17.2 Symbios NVRAM layout
868dca37d2SMauro Carvalho Chehab         17.3 Tekram  NVRAM layout
878dca37d2SMauro Carvalho Chehab   18. Support for Big Endian
888dca37d2SMauro Carvalho Chehab         18.1 Big Endian CPU
898dca37d2SMauro Carvalho Chehab         18.2 NCR chip in Big Endian mode of operations
908dca37d2SMauro Carvalho Chehab
918dca37d2SMauro Carvalho Chehab1. Introduction
928dca37d2SMauro Carvalho Chehab===============
938dca37d2SMauro Carvalho Chehab
948dca37d2SMauro Carvalho ChehabThe initial Linux ncr53c8xx driver has been a port of the ncr driver from
958dca37d2SMauro Carvalho ChehabFreeBSD that has been achieved in November 1995 by:
968dca37d2SMauro Carvalho Chehab
978dca37d2SMauro Carvalho Chehab	- Gerard Roudier              <groudier@free.fr>
988dca37d2SMauro Carvalho Chehab
998dca37d2SMauro Carvalho ChehabThe original driver has been written for 386bsd and FreeBSD by:
1008dca37d2SMauro Carvalho Chehab
1018dca37d2SMauro Carvalho Chehab        - Wolfgang Stanglmeier        <wolf@cologne.de>
1028dca37d2SMauro Carvalho Chehab        - Stefan Esser                <se@mi.Uni-Koeln.de>
1038dca37d2SMauro Carvalho Chehab
1048dca37d2SMauro Carvalho ChehabIt is now available as a bundle of 2 drivers:
1058dca37d2SMauro Carvalho Chehab
1068dca37d2SMauro Carvalho Chehab- ncr53c8xx generic driver that supports all the SYM53C8XX family including
1078dca37d2SMauro Carvalho Chehab  the earliest 810 rev. 1, the latest 896 (2 channel LVD SCSI controller) and
1088dca37d2SMauro Carvalho Chehab  the new 895A (1 channel LVD SCSI controller).
1098dca37d2SMauro Carvalho Chehab- sym53c8xx enhanced driver (a.k.a. 896 drivers) that drops support of oldest
1108dca37d2SMauro Carvalho Chehab  chips in order to gain advantage of new features, as LOAD/STORE instructions
1118dca37d2SMauro Carvalho Chehab  available since the 810A and hardware phase mismatch available with the
1128dca37d2SMauro Carvalho Chehab  896 and the 895A.
1138dca37d2SMauro Carvalho Chehab
1148dca37d2SMauro Carvalho ChehabYou can find technical information about the NCR 8xx family in the
1158dca37d2SMauro Carvalho ChehabPCI-HOWTO written by Michael Will and in the SCSI-HOWTO written by
1168dca37d2SMauro Carvalho ChehabDrew Eckhardt.
1178dca37d2SMauro Carvalho Chehab
1188dca37d2SMauro Carvalho ChehabInformation about new chips is available at LSILOGIC web server:
1198dca37d2SMauro Carvalho Chehab
1208dca37d2SMauro Carvalho Chehab          - http://www.lsilogic.com/
1218dca37d2SMauro Carvalho Chehab
1228dca37d2SMauro Carvalho ChehabSCSI standard documentations are available at SYMBIOS ftp server:
1238dca37d2SMauro Carvalho Chehab
1248dca37d2SMauro Carvalho Chehab          - ftp://ftp.symbios.com/
1258dca37d2SMauro Carvalho Chehab
1268dca37d2SMauro Carvalho ChehabUseful SCSI tools written by Eric Youngdale are available at tsx-11:
1278dca37d2SMauro Carvalho Chehab
1288dca37d2SMauro Carvalho Chehab          - ftp://tsx-11.mit.edu/pub/linux/ALPHA/scsi/scsiinfo-X.Y.tar.gz
1298dca37d2SMauro Carvalho Chehab          - ftp://tsx-11.mit.edu/pub/linux/ALPHA/scsi/scsidev-X.Y.tar.gz
1308dca37d2SMauro Carvalho Chehab
1318dca37d2SMauro Carvalho ChehabThese tools are not ALPHA but quite clean and work quite well.
1328dca37d2SMauro Carvalho ChehabIt is essential you have the 'scsiinfo' package.
1338dca37d2SMauro Carvalho Chehab
1348dca37d2SMauro Carvalho ChehabThis short documentation describes the features of the generic and enhanced
1358dca37d2SMauro Carvalho Chehabdrivers, configuration parameters and control commands available through
1368dca37d2SMauro Carvalho Chehabthe proc SCSI file system read / write operations.
1378dca37d2SMauro Carvalho Chehab
1388dca37d2SMauro Carvalho ChehabThis driver has been tested OK with linux/i386, Linux/Alpha and Linux/PPC.
1398dca37d2SMauro Carvalho Chehab
1408dca37d2SMauro Carvalho ChehabLatest driver version and patches are available at:
1418dca37d2SMauro Carvalho Chehab
1428dca37d2SMauro Carvalho Chehab          - ftp://ftp.tux.org/pub/people/gerard-roudier
1438dca37d2SMauro Carvalho Chehab
1448dca37d2SMauro Carvalho Chehabor
1458dca37d2SMauro Carvalho Chehab
1468dca37d2SMauro Carvalho Chehab          - ftp://ftp.symbios.com/mirror/ftp.tux.org/pub/tux/roudier/drivers
1478dca37d2SMauro Carvalho Chehab
1488dca37d2SMauro Carvalho ChehabI am not a native speaker of English and there are probably lots of
1498dca37d2SMauro Carvalho Chehabmistakes in this README file. Any help will be welcome.
1508dca37d2SMauro Carvalho Chehab
1518dca37d2SMauro Carvalho Chehab
1528dca37d2SMauro Carvalho Chehab2. Supported chips and SCSI features
1538dca37d2SMauro Carvalho Chehab====================================
1548dca37d2SMauro Carvalho Chehab
1558dca37d2SMauro Carvalho ChehabThe following features are supported for all chips:
1568dca37d2SMauro Carvalho Chehab
1578dca37d2SMauro Carvalho Chehab	- Synchronous negotiation
1588dca37d2SMauro Carvalho Chehab	- Disconnection
1598dca37d2SMauro Carvalho Chehab	- Tagged command queuing
1608dca37d2SMauro Carvalho Chehab	- SCSI parity checking
1618dca37d2SMauro Carvalho Chehab	- Master parity checking
1628dca37d2SMauro Carvalho Chehab
1638dca37d2SMauro Carvalho Chehab"Wide negotiation" is supported for chips that allow it.  The
1648dca37d2SMauro Carvalho Chehabfollowing table shows some characteristics of NCR 8xx family chips
1658dca37d2SMauro Carvalho Chehaband what drivers support them.
1668dca37d2SMauro Carvalho Chehab
1678dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
1688dca37d2SMauro Carvalho Chehab|        |           |     |           |            |Supported by|Supported by|
1698dca37d2SMauro Carvalho Chehab|        |On board   |     |           |            |the generic |the enhanced|
1708dca37d2SMauro Carvalho Chehab|Chip    |SDMS BIOS  |Wide |SCSI std.  | Max. sync  |driver      |driver      |
1718dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
1728dca37d2SMauro Carvalho Chehab|810     |  N        | N   |  FAST10   | 10 MB/s    |    Y       |    N       |
1738dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
1748dca37d2SMauro Carvalho Chehab|810A    |  N        | N   |  FAST10   | 10 MB/s    |    Y       |    Y       |
1758dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
1768dca37d2SMauro Carvalho Chehab|815     |  Y        | N   |  FAST10   | 10 MB/s    |    Y       |    N       |
1778dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
1788dca37d2SMauro Carvalho Chehab|825     |  Y        | Y   |  FAST10   | 20 MB/s    |    Y       |    N       |
1798dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
1808dca37d2SMauro Carvalho Chehab|825A    |  Y        | Y   |  FAST10   | 20 MB/s    |    Y       |    Y       |
1818dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
1828dca37d2SMauro Carvalho Chehab|860     |  N        | N   |  FAST20   | 20 MB/s    |    Y       |    Y       |
1838dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
1848dca37d2SMauro Carvalho Chehab|875     |  Y        | Y   |  FAST20   | 40 MB/s    |    Y       |    Y       |
1858dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
1868dca37d2SMauro Carvalho Chehab|876     |  Y        | Y   |  FAST20   | 40 MB/s    |    Y       |    Y       |
1878dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
1888dca37d2SMauro Carvalho Chehab|895     |  Y        | Y   |  FAST40   | 80 MB/s    |    Y       |    Y       |
1898dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
1908dca37d2SMauro Carvalho Chehab|895A    |  Y        | Y   |  FAST40   | 80 MB/s    |    Y       |    Y       |
1918dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
1928dca37d2SMauro Carvalho Chehab|896     |  Y        | Y   |  FAST40   | 80 MB/s    |    Y       |    Y       |
1938dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
1948dca37d2SMauro Carvalho Chehab|897     |  Y        | Y   |  FAST40   | 80 MB/s    |    Y       |    Y       |
1958dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
1968dca37d2SMauro Carvalho Chehab|1510D   |  Y        | Y   |  FAST40   | 80 MB/s    |    Y       |    Y       |
1978dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
1988dca37d2SMauro Carvalho Chehab|1010    |  Y        | Y   |  FAST80   |160 MB/s    |    N       |    Y       |
1998dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
2008dca37d2SMauro Carvalho Chehab|1010_66 |  Y        | Y   |  FAST80   |160 MB/s    |    N       |    Y       |
2018dca37d2SMauro Carvalho Chehab|[1]_    |           |     |           |            |            |            |
2028dca37d2SMauro Carvalho Chehab+--------+-----------+-----+-----------+------------+------------+------------+
2038dca37d2SMauro Carvalho Chehab
2048dca37d2SMauro Carvalho Chehab.. [1] Chip supports 33MHz and 66MHz PCI buses.
2058dca37d2SMauro Carvalho Chehab
2068dca37d2SMauro Carvalho Chehab
2078dca37d2SMauro Carvalho ChehabSummary of other supported features:
2088dca37d2SMauro Carvalho Chehab
2098dca37d2SMauro Carvalho Chehab:Module:                allow to load the driver
2108dca37d2SMauro Carvalho Chehab:Memory mapped I/O:     increases performance
2118dca37d2SMauro Carvalho Chehab:Profiling information: read operations from the proc SCSI file system
2128dca37d2SMauro Carvalho Chehab:Control commands:      write operations to the proc SCSI file system
2138dca37d2SMauro Carvalho Chehab:Debugging information: written to syslog (expert only)
2148dca37d2SMauro Carvalho Chehab:Serial NVRAM:          Symbios and Tekram formats
2158dca37d2SMauro Carvalho Chehab
2168dca37d2SMauro Carvalho Chehab- Scatter / gather
2178dca37d2SMauro Carvalho Chehab- Shared interrupt
2188dca37d2SMauro Carvalho Chehab- Boot setup commands
2198dca37d2SMauro Carvalho Chehab
2208dca37d2SMauro Carvalho Chehab
2218dca37d2SMauro Carvalho Chehab3. Advantages of the enhanced 896 driver
2228dca37d2SMauro Carvalho Chehab========================================
2238dca37d2SMauro Carvalho Chehab
2248dca37d2SMauro Carvalho Chehab3.1 Optimized SCSI SCRIPTS
2258dca37d2SMauro Carvalho Chehab--------------------------
2268dca37d2SMauro Carvalho Chehab
2278dca37d2SMauro Carvalho ChehabThe 810A, 825A, 875, 895, 896 and 895A support new SCSI SCRIPTS instructions
2288dca37d2SMauro Carvalho Chehabnamed LOAD and STORE that allow to move up to 1 DWORD from/to an IO register
2298dca37d2SMauro Carvalho Chehabto/from memory much faster that the MOVE MEMORY instruction that is supported
2308dca37d2SMauro Carvalho Chehabby the 53c7xx and 53c8xx family.
2318dca37d2SMauro Carvalho ChehabThe LOAD/STORE instructions support absolute and DSA relative addressing
2328dca37d2SMauro Carvalho Chehabmodes.  The SCSI SCRIPTS had been entirely rewritten using LOAD/STORE instead
2338dca37d2SMauro Carvalho Chehabof MOVE MEMORY instructions.
2348dca37d2SMauro Carvalho Chehab
2358dca37d2SMauro Carvalho Chehab3.2 New features of the SYM53C896 (64 bit PCI dual LVD SCSI controller)
2368dca37d2SMauro Carvalho Chehab-----------------------------------------------------------------------
2378dca37d2SMauro Carvalho Chehab
2388dca37d2SMauro Carvalho ChehabThe 896 and the 895A allows handling of the phase mismatch context from
2398dca37d2SMauro Carvalho ChehabSCRIPTS (avoids the phase mismatch interrupt that stops the SCSI processor
2408dca37d2SMauro Carvalho Chehabuntil the C code has saved the context of the transfer).
2418dca37d2SMauro Carvalho ChehabImplementing this without using LOAD/STORE instructions would be painful
2428dca37d2SMauro Carvalho Chehaband I didn't even want to try it.
2438dca37d2SMauro Carvalho Chehab
2448dca37d2SMauro Carvalho ChehabThe 896 chip supports 64 bit PCI transactions and addressing, while the
2458dca37d2SMauro Carvalho Chehab895A supports 32 bit PCI transactions and 64 bit addressing.
2468dca37d2SMauro Carvalho ChehabThe SCRIPTS processor of these chips is not true 64 bit, but uses segment
2478dca37d2SMauro Carvalho Chehabregisters for bit 32-63. Another interesting feature is that LOAD/STORE
2488dca37d2SMauro Carvalho Chehabinstructions that address the on-chip RAM (8k) remain internal to the chip.
2498dca37d2SMauro Carvalho Chehab
2508dca37d2SMauro Carvalho ChehabDue to the use of LOAD/STORE SCRIPTS instructions, this driver does not
2518dca37d2SMauro Carvalho Chehabsupport the following chips:
2528dca37d2SMauro Carvalho Chehab
2538dca37d2SMauro Carvalho Chehab- SYM53C810 revision < 0x10 (16)
2548dca37d2SMauro Carvalho Chehab- SYM53C815 all revisions
2558dca37d2SMauro Carvalho Chehab- SYM53C825 revision < 0x10 (16)
2568dca37d2SMauro Carvalho Chehab
2578dca37d2SMauro Carvalho Chehab4. Memory mapped I/O versus normal I/O
2588dca37d2SMauro Carvalho Chehab======================================
2598dca37d2SMauro Carvalho Chehab
2608dca37d2SMauro Carvalho ChehabMemory mapped I/O has less latency than normal I/O.  Since
2618dca37d2SMauro Carvalho Chehablinux-1.3.x, memory mapped I/O is used rather than normal I/O.  Memory
2628dca37d2SMauro Carvalho Chehabmapped I/O seems to work fine on most hardware configurations, but
2638dca37d2SMauro Carvalho Chehabsome poorly designed motherboards may break this feature.
2648dca37d2SMauro Carvalho Chehab
2658dca37d2SMauro Carvalho ChehabThe configuration option CONFIG_SCSI_NCR53C8XX_IOMAPPED forces the
2668dca37d2SMauro Carvalho Chehabdriver to use normal I/O in all cases.
2678dca37d2SMauro Carvalho Chehab
2688dca37d2SMauro Carvalho Chehab
2698dca37d2SMauro Carvalho Chehab5. Tagged command queueing
2708dca37d2SMauro Carvalho Chehab==========================
2718dca37d2SMauro Carvalho Chehab
2728dca37d2SMauro Carvalho ChehabQueuing more than 1 command at a time to a device allows it to perform
2738dca37d2SMauro Carvalho Chehaboptimizations based on actual head positions and its mechanical
2748dca37d2SMauro Carvalho Chehabcharacteristics. This feature may also reduce average command latency.
2758dca37d2SMauro Carvalho ChehabIn order to really gain advantage of this feature, devices must have
2768dca37d2SMauro Carvalho Chehaba reasonable cache size (No miracle is to be expected for a low-end
2778dca37d2SMauro Carvalho Chehabhard disk with 128 KB or less).
2788dca37d2SMauro Carvalho ChehabSome known SCSI devices do not properly support tagged command queuing.
2798dca37d2SMauro Carvalho ChehabGenerally, firmware revisions that fix this kind of problems are available
2808dca37d2SMauro Carvalho Chehabat respective vendor web/ftp sites.
2818dca37d2SMauro Carvalho ChehabAll I can say is that the hard disks I use on my machines behave well with
2828dca37d2SMauro Carvalho Chehabthis driver with tagged command queuing enabled:
2838dca37d2SMauro Carvalho Chehab
2848dca37d2SMauro Carvalho Chehab- IBM S12 0662
2858dca37d2SMauro Carvalho Chehab- Conner 1080S
2868dca37d2SMauro Carvalho Chehab- Quantum Atlas I
2878dca37d2SMauro Carvalho Chehab- Quantum Atlas II
2888dca37d2SMauro Carvalho Chehab
2898dca37d2SMauro Carvalho ChehabIf your controller has NVRAM, you can configure this feature per target
2908dca37d2SMauro Carvalho Chehabfrom the user setup tool. The Tekram Setup program allows to tune the
2918dca37d2SMauro Carvalho Chehabmaximum number of queued commands up to 32. The Symbios Setup only allows
2928dca37d2SMauro Carvalho Chehabto enable or disable this feature.
2938dca37d2SMauro Carvalho Chehab
2948dca37d2SMauro Carvalho ChehabThe maximum number of simultaneous tagged commands queued to a device
2958dca37d2SMauro Carvalho Chehabis currently set to 8 by default.  This value is suitable for most SCSI
2968dca37d2SMauro Carvalho Chehabdisks.  With large SCSI disks (>= 2GB, cache >= 512KB, average seek time
2978dca37d2SMauro Carvalho Chehab<= 10 ms), using a larger value may give better performances.
2988dca37d2SMauro Carvalho Chehab
2998dca37d2SMauro Carvalho ChehabThe sym53c8xx driver supports up to 255 commands per device, and the
3008dca37d2SMauro Carvalho Chehabgeneric ncr53c8xx driver supports up to 64, but using more than 32 is
3018dca37d2SMauro Carvalho Chehabgenerally not worth-while, unless you are using a very large disk or disk
3028dca37d2SMauro Carvalho Chehabarray. It is noticeable that most of recent hard disks seem not to accept
3038dca37d2SMauro Carvalho Chehabmore than 64 simultaneous commands. So, using more than 64 queued commands
3048dca37d2SMauro Carvalho Chehabis probably just resource wasting.
3058dca37d2SMauro Carvalho Chehab
3068dca37d2SMauro Carvalho ChehabIf your controller does not have NVRAM or if it is managed by the SDMS
3078dca37d2SMauro Carvalho ChehabBIOS/SETUP, you can configure tagged queueing feature and device queue
3088dca37d2SMauro Carvalho Chehabdepths from the boot command-line. For example::
3098dca37d2SMauro Carvalho Chehab
3108dca37d2SMauro Carvalho Chehab  ncr53c8xx=tags:4/t2t3q15-t4q7/t1u0q32
3118dca37d2SMauro Carvalho Chehab
3128dca37d2SMauro Carvalho Chehabwill set tagged commands queue depths as follow:
3138dca37d2SMauro Carvalho Chehab
3148dca37d2SMauro Carvalho Chehab- target 2  all luns  on controller 0 --> 15
3158dca37d2SMauro Carvalho Chehab- target 3  all luns  on controller 0 --> 15
3168dca37d2SMauro Carvalho Chehab- target 4  all luns  on controller 0 -->  7
3178dca37d2SMauro Carvalho Chehab- target 1  lun 0     on controller 1 --> 32
3188dca37d2SMauro Carvalho Chehab- all other target/lun                -->  4
3198dca37d2SMauro Carvalho Chehab
3208dca37d2SMauro Carvalho ChehabIn some special conditions, some SCSI disk firmwares may return a
3218dca37d2SMauro Carvalho ChehabQUEUE FULL status for a SCSI command. This behaviour is managed by the
3228dca37d2SMauro Carvalho Chehabdriver using the following heuristic:
3238dca37d2SMauro Carvalho Chehab
3248dca37d2SMauro Carvalho Chehab- Each time a QUEUE FULL status is returned, tagged queue depth is reduced
3258dca37d2SMauro Carvalho Chehab  to the actual number of disconnected commands.
3268dca37d2SMauro Carvalho Chehab
3278dca37d2SMauro Carvalho Chehab- Every 1000 successfully completed SCSI commands, if allowed by the
3288dca37d2SMauro Carvalho Chehab  current limit, the maximum number of queueable commands is incremented.
3298dca37d2SMauro Carvalho Chehab
3308dca37d2SMauro Carvalho ChehabSince QUEUE FULL status reception and handling is resource wasting, the
3318dca37d2SMauro Carvalho Chehabdriver notifies by default this problem to user by indicating the actual
3328dca37d2SMauro Carvalho Chehabnumber of commands used and their status, as well as its decision on the
3338dca37d2SMauro Carvalho Chehabdevice queue depth change.
3348dca37d2SMauro Carvalho ChehabThe heuristic used by the driver in handling QUEUE FULL ensures that the
3358dca37d2SMauro Carvalho Chehabimpact on performances is not too bad. You can get rid of the messages by
3368dca37d2SMauro Carvalho Chehabsetting verbose level to zero, as follow:
3378dca37d2SMauro Carvalho Chehab
3388dca37d2SMauro Carvalho Chehab1st method:
3398dca37d2SMauro Carvalho Chehab	    boot your system using 'ncr53c8xx=verb:0' option.
3408dca37d2SMauro Carvalho Chehab
3418dca37d2SMauro Carvalho Chehab2nd method:
3428dca37d2SMauro Carvalho Chehab	    apply "setverbose 0" control command to the proc fs entry
3438dca37d2SMauro Carvalho Chehab            corresponding to your controller after boot-up.
3448dca37d2SMauro Carvalho Chehab
3458dca37d2SMauro Carvalho Chehab6. Parity checking
3468dca37d2SMauro Carvalho Chehab==================
3478dca37d2SMauro Carvalho Chehab
3488dca37d2SMauro Carvalho ChehabThe driver supports SCSI parity checking and PCI bus master parity
3498dca37d2SMauro Carvalho Chehabchecking.  These features must be enabled in order to ensure safe data
3508dca37d2SMauro Carvalho Chehabtransfers.  However, some flawed devices or mother boards will have
3518dca37d2SMauro Carvalho Chehabproblems with parity. You can disable either PCI parity or SCSI parity
3528dca37d2SMauro Carvalho Chehabchecking by entering appropriate options from the boot command line.
3538dca37d2SMauro Carvalho Chehab(See 10: Boot setup commands).
3548dca37d2SMauro Carvalho Chehab
3558dca37d2SMauro Carvalho Chehab7. Profiling information
3568dca37d2SMauro Carvalho Chehab========================
3578dca37d2SMauro Carvalho Chehab
3588dca37d2SMauro Carvalho ChehabProfiling information is available through the proc SCSI file system.
3598dca37d2SMauro Carvalho ChehabSince gathering profiling information may impact performances, this
3608dca37d2SMauro Carvalho Chehabfeature is disabled by default and requires a compilation configuration
3618dca37d2SMauro Carvalho Chehaboption to be set to Y.
3628dca37d2SMauro Carvalho Chehab
3638dca37d2SMauro Carvalho ChehabThe device associated with a host has the following pathname::
3648dca37d2SMauro Carvalho Chehab
3658dca37d2SMauro Carvalho Chehab          /proc/scsi/ncr53c8xx/N     (N=0,1,2 ....)
3668dca37d2SMauro Carvalho Chehab
3678dca37d2SMauro Carvalho ChehabGenerally, only 1 board is used on hardware configuration, and that device is::
3688dca37d2SMauro Carvalho Chehab
3698dca37d2SMauro Carvalho Chehab          /proc/scsi/ncr53c8xx/0
3708dca37d2SMauro Carvalho Chehab
3718dca37d2SMauro Carvalho ChehabHowever, if the driver has been made as module, the number of the
3728dca37d2SMauro Carvalho Chehabhosts is incremented each time the driver is loaded.
3738dca37d2SMauro Carvalho Chehab
3748dca37d2SMauro Carvalho ChehabIn order to display profiling information, just enter::
3758dca37d2SMauro Carvalho Chehab
3768dca37d2SMauro Carvalho Chehab         cat /proc/scsi/ncr53c8xx/0
3778dca37d2SMauro Carvalho Chehab
3788dca37d2SMauro Carvalho Chehaband you will get something like the following text::
3798dca37d2SMauro Carvalho Chehab
3808dca37d2SMauro Carvalho Chehab    General information:
3818dca37d2SMauro Carvalho Chehab    Chip NCR53C810, device id 0x1, revision id 0x2
3828dca37d2SMauro Carvalho Chehab    IO port address 0x6000, IRQ number 10
3838dca37d2SMauro Carvalho Chehab    Using memory mapped IO at virtual address 0x282c000
3848dca37d2SMauro Carvalho Chehab    Synchronous transfer period 25, max commands per lun 4
3858dca37d2SMauro Carvalho Chehab    Profiling information:
3868dca37d2SMauro Carvalho Chehab    num_trans    = 18014
3878dca37d2SMauro Carvalho Chehab    num_kbytes   = 671314
3888dca37d2SMauro Carvalho Chehab    num_disc     = 25763
3898dca37d2SMauro Carvalho Chehab    num_break    = 1673
3908dca37d2SMauro Carvalho Chehab    num_int      = 1685
3918dca37d2SMauro Carvalho Chehab    num_fly      = 18038
3928dca37d2SMauro Carvalho Chehab    ms_setup     = 4940
3938dca37d2SMauro Carvalho Chehab    ms_data      = 369940
3948dca37d2SMauro Carvalho Chehab    ms_disc      = 183090
3958dca37d2SMauro Carvalho Chehab    ms_post      = 1320
3968dca37d2SMauro Carvalho Chehab
3978dca37d2SMauro Carvalho ChehabGeneral information is easy to understand. The device ID and the
3988dca37d2SMauro Carvalho Chehabrevision ID identify the SCSI chip as follows:
3998dca37d2SMauro Carvalho Chehab
4008dca37d2SMauro Carvalho Chehab======= ============= ===========
4018dca37d2SMauro Carvalho ChehabChip    Device id     Revision Id
4028dca37d2SMauro Carvalho Chehab======= ============= ===========
4038dca37d2SMauro Carvalho Chehab810       0x1            <  0x10
4048dca37d2SMauro Carvalho Chehab810A      0x1            >= 0x10
4058dca37d2SMauro Carvalho Chehab815       0x4
4068dca37d2SMauro Carvalho Chehab825       0x3            <  0x10
4078dca37d2SMauro Carvalho Chehab860       0x6
4088dca37d2SMauro Carvalho Chehab825A      0x3            >= 0x10
4098dca37d2SMauro Carvalho Chehab875       0xf
4108dca37d2SMauro Carvalho Chehab895       0xc
4118dca37d2SMauro Carvalho Chehab======= ============= ===========
4128dca37d2SMauro Carvalho Chehab
4138dca37d2SMauro Carvalho ChehabThe profiling information is updated upon completion of SCSI commands.
4148dca37d2SMauro Carvalho ChehabA data structure is allocated and zeroed when the host adapter is
4158dca37d2SMauro Carvalho Chehabattached. So, if the driver is a module, the profile counters are
4168dca37d2SMauro Carvalho Chehabcleared each time the driver is loaded.  The "clearprof" command
4178dca37d2SMauro Carvalho Chehaballows you to clear these counters at any time.
4188dca37d2SMauro Carvalho Chehab
4198dca37d2SMauro Carvalho ChehabThe following counters are available:
4208dca37d2SMauro Carvalho Chehab
4218dca37d2SMauro Carvalho Chehab("num" prefix means "number of",
4228dca37d2SMauro Carvalho Chehab"ms" means milli-seconds)
4238dca37d2SMauro Carvalho Chehab
4248dca37d2SMauro Carvalho Chehabnum_trans
4258dca37d2SMauro Carvalho Chehab	Number of completed commands
4268dca37d2SMauro Carvalho Chehab	Example above: 18014 completed commands
4278dca37d2SMauro Carvalho Chehab
4288dca37d2SMauro Carvalho Chehabnum_kbytes
4298dca37d2SMauro Carvalho Chehab	Number of kbytes transferred
4308dca37d2SMauro Carvalho Chehab	Example above: 671 MB transferred
4318dca37d2SMauro Carvalho Chehab
4328dca37d2SMauro Carvalho Chehabnum_disc
4338dca37d2SMauro Carvalho Chehab	Number of SCSI disconnections
4348dca37d2SMauro Carvalho Chehab	Example above: 25763 SCSI disconnections
4358dca37d2SMauro Carvalho Chehab
4368dca37d2SMauro Carvalho Chehabnum_break
4378dca37d2SMauro Carvalho Chehab	number of script interruptions (phase mismatch)
4388dca37d2SMauro Carvalho Chehab	Example above: 1673 script interruptions
4398dca37d2SMauro Carvalho Chehab
4408dca37d2SMauro Carvalho Chehabnum_int
4418dca37d2SMauro Carvalho Chehab	Number of interrupts other than "on the fly"
4428dca37d2SMauro Carvalho Chehab	Example above: 1685 interruptions not "on the fly"
4438dca37d2SMauro Carvalho Chehab
4448dca37d2SMauro Carvalho Chehabnum_fly
4458dca37d2SMauro Carvalho Chehab	Number of interrupts "on the fly"
4468dca37d2SMauro Carvalho Chehab	Example above: 18038 interruptions "on the fly"
4478dca37d2SMauro Carvalho Chehab
4488dca37d2SMauro Carvalho Chehabms_setup
4498dca37d2SMauro Carvalho Chehab	Elapsed time for SCSI commands setups
4508dca37d2SMauro Carvalho Chehab	Example above: 4.94 seconds
4518dca37d2SMauro Carvalho Chehab
4528dca37d2SMauro Carvalho Chehabms_data
4538dca37d2SMauro Carvalho Chehab	Elapsed time for data transfers
4548dca37d2SMauro Carvalho Chehab	Example above: 369.94 seconds spent for data transfer
4558dca37d2SMauro Carvalho Chehab
4568dca37d2SMauro Carvalho Chehabms_disc
4578dca37d2SMauro Carvalho Chehab	Elapsed time for SCSI disconnections
4588dca37d2SMauro Carvalho Chehab	Example above: 183.09 seconds spent disconnected
4598dca37d2SMauro Carvalho Chehab
4608dca37d2SMauro Carvalho Chehabms_post
4618dca37d2SMauro Carvalho Chehab	Elapsed time for command post processing
4628dca37d2SMauro Carvalho Chehab	(time from SCSI status get to command completion call)
4638dca37d2SMauro Carvalho Chehab	Example above: 1.32 seconds spent for post processing
4648dca37d2SMauro Carvalho Chehab
4658dca37d2SMauro Carvalho ChehabDue to the 1/100 second tick of the system clock, "ms_post" time may
4668dca37d2SMauro Carvalho Chehabbe wrong.
4678dca37d2SMauro Carvalho Chehab
4688dca37d2SMauro Carvalho ChehabIn the example above, we got 18038 interrupts "on the fly" and only
4698dca37d2SMauro Carvalho Chehab1673 script breaks generally due to disconnections inside a segment
4708dca37d2SMauro Carvalho Chehabof the scatter list.
4718dca37d2SMauro Carvalho Chehab
4728dca37d2SMauro Carvalho Chehab
4738dca37d2SMauro Carvalho Chehab8. Control commands
4748dca37d2SMauro Carvalho Chehab===================
4758dca37d2SMauro Carvalho Chehab
4768dca37d2SMauro Carvalho ChehabControl commands can be sent to the driver with write operations to
4778dca37d2SMauro Carvalho Chehabthe proc SCSI file system. The generic command syntax is the
4788dca37d2SMauro Carvalho Chehabfollowing::
4798dca37d2SMauro Carvalho Chehab
4808dca37d2SMauro Carvalho Chehab      echo "<verb> <parameters>" >/proc/scsi/ncr53c8xx/0
4818dca37d2SMauro Carvalho Chehab      (assumes controller number is 0)
4828dca37d2SMauro Carvalho Chehab
4838dca37d2SMauro Carvalho ChehabUsing "all" for "<target>" parameter with the commands below will
4848dca37d2SMauro Carvalho Chehabapply to all targets of the SCSI chain (except the controller).
4858dca37d2SMauro Carvalho Chehab
4868dca37d2SMauro Carvalho ChehabAvailable commands:
4878dca37d2SMauro Carvalho Chehab
4888dca37d2SMauro Carvalho Chehab8.1 Set minimum synchronous period factor
4898dca37d2SMauro Carvalho Chehab-----------------------------------------
4908dca37d2SMauro Carvalho Chehab
4918dca37d2SMauro Carvalho Chehab    setsync <target> <period factor>
4928dca37d2SMauro Carvalho Chehab
4938dca37d2SMauro Carvalho Chehab    :target:   target number
4948dca37d2SMauro Carvalho Chehab    :period:   minimum synchronous period.
4958dca37d2SMauro Carvalho Chehab               Maximum speed = 1000/(4*period factor) except for special
4968dca37d2SMauro Carvalho Chehab               cases below.
4978dca37d2SMauro Carvalho Chehab
4988dca37d2SMauro Carvalho Chehab    Specify a period of 255, to force asynchronous transfer mode.
4998dca37d2SMauro Carvalho Chehab
5008dca37d2SMauro Carvalho Chehab      - 10 means 25 nano-seconds synchronous period
5018dca37d2SMauro Carvalho Chehab      - 11 means 30 nano-seconds synchronous period
5028dca37d2SMauro Carvalho Chehab      - 12 means 50 nano-seconds synchronous period
5038dca37d2SMauro Carvalho Chehab
5048dca37d2SMauro Carvalho Chehab8.2 Set wide size
5058dca37d2SMauro Carvalho Chehab-----------------
5068dca37d2SMauro Carvalho Chehab
5078dca37d2SMauro Carvalho Chehab    setwide <target> <size>
5088dca37d2SMauro Carvalho Chehab
5098dca37d2SMauro Carvalho Chehab    :target:   target number
5108dca37d2SMauro Carvalho Chehab    :size:     0=8 bits, 1=16bits
5118dca37d2SMauro Carvalho Chehab
5128dca37d2SMauro Carvalho Chehab8.3 Set maximum number of concurrent tagged commands
5138dca37d2SMauro Carvalho Chehab----------------------------------------------------
5148dca37d2SMauro Carvalho Chehab
5158dca37d2SMauro Carvalho Chehab    settags <target> <tags>
5168dca37d2SMauro Carvalho Chehab
5178dca37d2SMauro Carvalho Chehab    :target:   target number
5188dca37d2SMauro Carvalho Chehab    :tags:     number of concurrent tagged commands
5198dca37d2SMauro Carvalho Chehab               must not be greater than SCSI_NCR_MAX_TAGS (default: 8)
5208dca37d2SMauro Carvalho Chehab
5218dca37d2SMauro Carvalho Chehab8.4 Set order type for tagged command
5228dca37d2SMauro Carvalho Chehab-------------------------------------
5238dca37d2SMauro Carvalho Chehab
5248dca37d2SMauro Carvalho Chehab    setorder <order>
5258dca37d2SMauro Carvalho Chehab
5268dca37d2SMauro Carvalho Chehab    :order:    3 possible values:
5278dca37d2SMauro Carvalho Chehab
5288dca37d2SMauro Carvalho Chehab               simple:
5298dca37d2SMauro Carvalho Chehab			use SIMPLE TAG for all operations (read and write)
5308dca37d2SMauro Carvalho Chehab
5318dca37d2SMauro Carvalho Chehab               ordered:
5328dca37d2SMauro Carvalho Chehab			use ORDERED TAG for all operations
5338dca37d2SMauro Carvalho Chehab
5348dca37d2SMauro Carvalho Chehab               default:
5358dca37d2SMauro Carvalho Chehab			use default tag type,
5368dca37d2SMauro Carvalho Chehab                        SIMPLE  TAG for read  operations
5378dca37d2SMauro Carvalho Chehab                        ORDERED TAG for write operations
5388dca37d2SMauro Carvalho Chehab
5398dca37d2SMauro Carvalho Chehab
5408dca37d2SMauro Carvalho Chehab8.5 Set debug mode
5418dca37d2SMauro Carvalho Chehab------------------
5428dca37d2SMauro Carvalho Chehab
5438dca37d2SMauro Carvalho Chehab    setdebug <list of debug flags>
5448dca37d2SMauro Carvalho Chehab
5458dca37d2SMauro Carvalho Chehab    Available debug flags:
5468dca37d2SMauro Carvalho Chehab
5478dca37d2SMauro Carvalho Chehab	======== ========================================================
5488dca37d2SMauro Carvalho Chehab        alloc    print info about memory allocations (ccb, lcb)
5498dca37d2SMauro Carvalho Chehab        queue    print info about insertions into the command start queue
5508dca37d2SMauro Carvalho Chehab        result   print sense data on CHECK CONDITION status
5518dca37d2SMauro Carvalho Chehab        scatter  print info about the scatter process
5528dca37d2SMauro Carvalho Chehab        scripts  print info about the script binding process
5538dca37d2SMauro Carvalho Chehab	tiny     print minimal debugging information
5548dca37d2SMauro Carvalho Chehab	timing   print timing information of the NCR chip
5558dca37d2SMauro Carvalho Chehab	nego     print information about SCSI negotiations
5568dca37d2SMauro Carvalho Chehab	phase    print information on script interruptions
5578dca37d2SMauro Carvalho Chehab	======== ========================================================
5588dca37d2SMauro Carvalho Chehab
5598dca37d2SMauro Carvalho Chehab    Use "setdebug" with no argument to reset debug flags.
5608dca37d2SMauro Carvalho Chehab
5618dca37d2SMauro Carvalho Chehab
5628dca37d2SMauro Carvalho Chehab8.6 Clear profile counters
5638dca37d2SMauro Carvalho Chehab--------------------------
5648dca37d2SMauro Carvalho Chehab
5658dca37d2SMauro Carvalho Chehab    clearprof
5668dca37d2SMauro Carvalho Chehab
5678dca37d2SMauro Carvalho Chehab    The profile counters are automatically cleared when the amount of
5688dca37d2SMauro Carvalho Chehab    data transferred reaches 1000 GB in order to avoid overflow.
5698dca37d2SMauro Carvalho Chehab    The "clearprof" command allows you to clear these counters at any time.
5708dca37d2SMauro Carvalho Chehab
5718dca37d2SMauro Carvalho Chehab
5728dca37d2SMauro Carvalho Chehab8.7 Set flag (no_disc)
5738dca37d2SMauro Carvalho Chehab----------------------
5748dca37d2SMauro Carvalho Chehab
5758dca37d2SMauro Carvalho Chehab    setflag <target> <flag>
5768dca37d2SMauro Carvalho Chehab
5778dca37d2SMauro Carvalho Chehab    target:    target number
5788dca37d2SMauro Carvalho Chehab
5798dca37d2SMauro Carvalho Chehab    For the moment, only one flag is available:
5808dca37d2SMauro Carvalho Chehab
5818dca37d2SMauro Carvalho Chehab        no_disc:   not allow target to disconnect.
5828dca37d2SMauro Carvalho Chehab
5838dca37d2SMauro Carvalho Chehab    Do not specify any flag in order to reset the flag. For example:
5848dca37d2SMauro Carvalho Chehab
5858dca37d2SMauro Carvalho Chehab    setflag 4
5868dca37d2SMauro Carvalho Chehab      will reset no_disc flag for target 4, so will allow it disconnections.
5878dca37d2SMauro Carvalho Chehab
5888dca37d2SMauro Carvalho Chehab    setflag all
5898dca37d2SMauro Carvalho Chehab      will allow disconnection for all devices on the SCSI bus.
5908dca37d2SMauro Carvalho Chehab
5918dca37d2SMauro Carvalho Chehab
5928dca37d2SMauro Carvalho Chehab8.8 Set verbose level
5938dca37d2SMauro Carvalho Chehab---------------------
5948dca37d2SMauro Carvalho Chehab
5958dca37d2SMauro Carvalho Chehab    setverbose #level
5968dca37d2SMauro Carvalho Chehab
5978dca37d2SMauro Carvalho Chehab    The driver default verbose level is 1. This command allows to change
5988dca37d2SMauro Carvalho Chehab    th driver verbose level after boot-up.
5998dca37d2SMauro Carvalho Chehab
6008dca37d2SMauro Carvalho Chehab8.9 Reset all logical units of a target
6018dca37d2SMauro Carvalho Chehab---------------------------------------
6028dca37d2SMauro Carvalho Chehab
6038dca37d2SMauro Carvalho Chehab    resetdev <target>
6048dca37d2SMauro Carvalho Chehab
6058dca37d2SMauro Carvalho Chehab    :target:   target number
6068dca37d2SMauro Carvalho Chehab
6078dca37d2SMauro Carvalho Chehab    The driver will try to send a BUS DEVICE RESET message to the target.
6088dca37d2SMauro Carvalho Chehab    (Only supported by the SYM53C8XX driver and provided for test purpose)
6098dca37d2SMauro Carvalho Chehab
6108dca37d2SMauro Carvalho Chehab8.10 Abort all tasks of all logical units of a target
6118dca37d2SMauro Carvalho Chehab-----------------------------------------------------
6128dca37d2SMauro Carvalho Chehab
6138dca37d2SMauro Carvalho Chehab    cleardev <target>
6148dca37d2SMauro Carvalho Chehab
6158dca37d2SMauro Carvalho Chehab    :target:   target number
6168dca37d2SMauro Carvalho Chehab
6178dca37d2SMauro Carvalho Chehab    The driver will try to send a ABORT message to all the logical units
6188dca37d2SMauro Carvalho Chehab    of the target.
6198dca37d2SMauro Carvalho Chehab
6208dca37d2SMauro Carvalho Chehab    (Only supported by the SYM53C8XX driver and provided for test purpose)
6218dca37d2SMauro Carvalho Chehab
6228dca37d2SMauro Carvalho Chehab
6238dca37d2SMauro Carvalho Chehab9. Configuration parameters
6248dca37d2SMauro Carvalho Chehab===========================
6258dca37d2SMauro Carvalho Chehab
6268dca37d2SMauro Carvalho ChehabIf the firmware of all your devices is perfect enough, all the
6278dca37d2SMauro Carvalho Chehabfeatures supported by the driver can be enabled at start-up.  However,
6288dca37d2SMauro Carvalho Chehabif only one has a flaw for some SCSI feature, you can disable the
6298dca37d2SMauro Carvalho Chehabsupport by the driver of this feature at linux start-up and enable
6308dca37d2SMauro Carvalho Chehabthis feature after boot-up only for devices that support it safely.
6318dca37d2SMauro Carvalho Chehab
6328dca37d2SMauro Carvalho ChehabCONFIG_SCSI_NCR53C8XX_IOMAPPED       (default answer: n)
6338dca37d2SMauro Carvalho Chehab    Answer "y" if you suspect your mother board to not allow memory mapped I/O.
6348dca37d2SMauro Carvalho Chehab
6358dca37d2SMauro Carvalho Chehab    May slow down performance a little.  This option is required by
6368dca37d2SMauro Carvalho Chehab    Linux/PPC and is used no matter what you select here.  Linux/PPC
6378dca37d2SMauro Carvalho Chehab    suffers no performance loss with this option since all IO is memory
6388dca37d2SMauro Carvalho Chehab    mapped anyway.
6398dca37d2SMauro Carvalho Chehab
6408dca37d2SMauro Carvalho ChehabCONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS    (default answer: 8)
6418dca37d2SMauro Carvalho Chehab    Default tagged command queue depth.
6428dca37d2SMauro Carvalho Chehab
6438dca37d2SMauro Carvalho ChehabCONFIG_SCSI_NCR53C8XX_MAX_TAGS         (default answer: 8)
6448dca37d2SMauro Carvalho Chehab    This option allows you to specify the maximum number of tagged commands
6458dca37d2SMauro Carvalho Chehab    that can be queued to a device. The maximum supported value is 32.
6468dca37d2SMauro Carvalho Chehab
6478dca37d2SMauro Carvalho ChehabCONFIG_SCSI_NCR53C8XX_SYNC            (default answer: 5)
6488dca37d2SMauro Carvalho Chehab    This option allows you to specify the frequency in MHz the driver
6498dca37d2SMauro Carvalho Chehab    will use at boot time for synchronous data transfer negotiations.
6508dca37d2SMauro Carvalho Chehab    This frequency can be changed later with the "setsync" control command.
6518dca37d2SMauro Carvalho Chehab    0 means "asynchronous data transfers".
6528dca37d2SMauro Carvalho Chehab
6538dca37d2SMauro Carvalho ChehabCONFIG_SCSI_NCR53C8XX_FORCE_SYNC_NEGO (default answer: n)
6548dca37d2SMauro Carvalho Chehab    Force synchronous negotiation for all SCSI-2 devices.
6558dca37d2SMauro Carvalho Chehab
6568dca37d2SMauro Carvalho Chehab    Some SCSI-2 devices do not report this feature in byte 7 of inquiry
6578dca37d2SMauro Carvalho Chehab    response but do support it properly (TAMARACK scanners for example).
6588dca37d2SMauro Carvalho Chehab
6598dca37d2SMauro Carvalho ChehabCONFIG_SCSI_NCR53C8XX_NO_DISCONNECT   (default and only reasonable answer: n)
6608dca37d2SMauro Carvalho Chehab    If you suspect a device of yours does not properly support disconnections,
6618dca37d2SMauro Carvalho Chehab    you can answer "y". Then, all SCSI devices will never disconnect the bus
6628dca37d2SMauro Carvalho Chehab    even while performing long SCSI operations.
6638dca37d2SMauro Carvalho Chehab
6648dca37d2SMauro Carvalho ChehabCONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT
6658dca37d2SMauro Carvalho Chehab    Genuine SYMBIOS boards use GPIO0 in output for controller LED and GPIO3
6668dca37d2SMauro Carvalho Chehab    bit as a flag indicating singled-ended/differential interface.
6678dca37d2SMauro Carvalho Chehab    If all the boards of your system are genuine SYMBIOS boards or use
6688dca37d2SMauro Carvalho Chehab    BIOS and drivers from SYMBIOS, you would want to enable this option.
6698dca37d2SMauro Carvalho Chehab
6708dca37d2SMauro Carvalho Chehab    This option must NOT be enabled if your system has at least one 53C8XX
6718dca37d2SMauro Carvalho Chehab    based scsi board with a vendor-specific BIOS.
6728dca37d2SMauro Carvalho Chehab    For example, Tekram DC-390/U, DC-390/W and DC-390/F scsi controllers
6738dca37d2SMauro Carvalho Chehab    use a vendor-specific BIOS and are known to not use SYMBIOS compatible
6748dca37d2SMauro Carvalho Chehab    GPIO wiring. So, this option must not be enabled if your system has
6758dca37d2SMauro Carvalho Chehab    such a board installed.
6768dca37d2SMauro Carvalho Chehab
6778dca37d2SMauro Carvalho ChehabCONFIG_SCSI_NCR53C8XX_NVRAM_DETECT
6788dca37d2SMauro Carvalho Chehab    Enable support for reading the serial NVRAM data on Symbios and
6798dca37d2SMauro Carvalho Chehab    some Symbios compatible cards, and Tekram DC390W/U/F cards. Useful for
6808dca37d2SMauro Carvalho Chehab    systems with more than one Symbios compatible controller where at least
6818dca37d2SMauro Carvalho Chehab    one has a serial NVRAM, or for a system with a mixture of Symbios and
6828dca37d2SMauro Carvalho Chehab    Tekram cards. Enables setting the boot order of host adaptors
6838dca37d2SMauro Carvalho Chehab    to something other than the default order or "reverse probe" order.
6848dca37d2SMauro Carvalho Chehab    Also enables Symbios and Tekram cards to be distinguished so
6858dca37d2SMauro Carvalho Chehab    CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT may be set in a system with a
6868dca37d2SMauro Carvalho Chehab    mixture of Symbios and Tekram cards so the Symbios cards can make use of
6878dca37d2SMauro Carvalho Chehab    the full range of Symbios features, differential, led pin, without
6888dca37d2SMauro Carvalho Chehab    causing problems for the Tekram card(s).
6898dca37d2SMauro Carvalho Chehab
6908dca37d2SMauro Carvalho Chehab10. Boot setup commands
6918dca37d2SMauro Carvalho Chehab=======================
6928dca37d2SMauro Carvalho Chehab
6938dca37d2SMauro Carvalho Chehab10.1 Syntax
6948dca37d2SMauro Carvalho Chehab-----------
6958dca37d2SMauro Carvalho Chehab
6968dca37d2SMauro Carvalho ChehabSetup commands can be passed to the driver either at boot time or as a
6978dca37d2SMauro Carvalho Chehabstring variable using 'insmod'.
6988dca37d2SMauro Carvalho Chehab
6998dca37d2SMauro Carvalho ChehabA boot setup command for the ncr53c8xx (sym53c8xx) driver begins with the
7008dca37d2SMauro Carvalho Chehabdriver name "ncr53c8xx="(sym53c8xx). The kernel syntax parser then expects
7018dca37d2SMauro Carvalho Chehaban optional list of integers separated with comma followed by an optional
7028dca37d2SMauro Carvalho Chehablist of comma-separated strings. Example of boot setup command under lilo
7038dca37d2SMauro Carvalho Chehabprompt::
7048dca37d2SMauro Carvalho Chehab
7058dca37d2SMauro Carvalho Chehab    lilo: linux root=/dev/hda2 ncr53c8xx=tags:4,sync:10,debug:0x200
7068dca37d2SMauro Carvalho Chehab
7078dca37d2SMauro Carvalho Chehab- enable tagged commands, up to 4 tagged commands queued.
7088dca37d2SMauro Carvalho Chehab- set synchronous negotiation speed to 10 Mega-transfers / second.
7098dca37d2SMauro Carvalho Chehab- set DEBUG_NEGO flag.
7108dca37d2SMauro Carvalho Chehab
7118dca37d2SMauro Carvalho ChehabSince comma seems not to be allowed when defining a string variable using
7128dca37d2SMauro Carvalho Chehab'insmod', the driver also accepts <space> as option separator.
7138dca37d2SMauro Carvalho ChehabThe following command will install driver module with the same options as
7148dca37d2SMauro Carvalho Chehababove::
7158dca37d2SMauro Carvalho Chehab
7168dca37d2SMauro Carvalho Chehab    insmod ncr53c8xx.o ncr53c8xx="tags:4 sync:10 debug:0x200"
7178dca37d2SMauro Carvalho Chehab
7188dca37d2SMauro Carvalho ChehabFor the moment, the integer list of arguments is discarded by the driver.
7198dca37d2SMauro Carvalho ChehabIt will be used in the future in order to allow a per controller setup.
7208dca37d2SMauro Carvalho Chehab
7218dca37d2SMauro Carvalho ChehabEach string argument must be specified as "keyword:value". Only lower-case
7228dca37d2SMauro Carvalho Chehabcharacters and digits are allowed.
7238dca37d2SMauro Carvalho Chehab
7248dca37d2SMauro Carvalho ChehabIn a system that contains multiple 53C8xx adapters insmod will install the
7258dca37d2SMauro Carvalho Chehabspecified driver on each adapter. To exclude a chip use the 'excl' keyword.
7268dca37d2SMauro Carvalho Chehab
7278dca37d2SMauro Carvalho ChehabThe sequence of commands::
7288dca37d2SMauro Carvalho Chehab
7298dca37d2SMauro Carvalho Chehab    insmod sym53c8xx sym53c8xx=excl:0x1400
7308dca37d2SMauro Carvalho Chehab    insmod ncr53c8xx
7318dca37d2SMauro Carvalho Chehab
7328dca37d2SMauro Carvalho Chehabinstalls the sym53c8xx driver on all adapters except the one at IO port
7338dca37d2SMauro Carvalho Chehabaddress 0x1400 and then installs the ncr53c8xx driver to the adapter at IO
7348dca37d2SMauro Carvalho Chehabport address 0x1400.
7358dca37d2SMauro Carvalho Chehab
7368dca37d2SMauro Carvalho Chehab
7378dca37d2SMauro Carvalho Chehab10.2 Available arguments
7388dca37d2SMauro Carvalho Chehab------------------------
7398dca37d2SMauro Carvalho Chehab
7408dca37d2SMauro Carvalho Chehab10.2.1  Master parity checking
7418dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
7428dca37d2SMauro Carvalho Chehab
7438dca37d2SMauro Carvalho Chehab	======     ========
7448dca37d2SMauro Carvalho Chehab        mpar:y     enabled
7458dca37d2SMauro Carvalho Chehab        mpar:n     disabled
7468dca37d2SMauro Carvalho Chehab	======     ========
7478dca37d2SMauro Carvalho Chehab
7488dca37d2SMauro Carvalho Chehab10.2.2  Scsi parity checking
7498dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^^^^^
7508dca37d2SMauro Carvalho Chehab
7518dca37d2SMauro Carvalho Chehab	======     ========
7528dca37d2SMauro Carvalho Chehab        spar:y     enabled
7538dca37d2SMauro Carvalho Chehab        spar:n     disabled
7548dca37d2SMauro Carvalho Chehab	======     ========
7558dca37d2SMauro Carvalho Chehab
7568dca37d2SMauro Carvalho Chehab10.2.3  Scsi disconnections
7578dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^^^^
7588dca37d2SMauro Carvalho Chehab
7598dca37d2SMauro Carvalho Chehab	======     ========
7608dca37d2SMauro Carvalho Chehab        disc:y     enabled
7618dca37d2SMauro Carvalho Chehab        disc:n     disabled
7628dca37d2SMauro Carvalho Chehab	======     ========
7638dca37d2SMauro Carvalho Chehab
7648dca37d2SMauro Carvalho Chehab10.2.4  Special features
7658dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^
7668dca37d2SMauro Carvalho Chehab
7678dca37d2SMauro Carvalho Chehab   Only apply to 810A, 825A, 860, 875 and 895 controllers.
7688dca37d2SMauro Carvalho Chehab   Have no effect with other ones.
7698dca37d2SMauro Carvalho Chehab
7708dca37d2SMauro Carvalho Chehab	=======    =================================================
7718dca37d2SMauro Carvalho Chehab        specf:y    (or 1) enabled
7728dca37d2SMauro Carvalho Chehab        specf:n    (or 0) disabled
7738dca37d2SMauro Carvalho Chehab        specf:3           enabled except Memory Write And Invalidate
7748dca37d2SMauro Carvalho Chehab	=======    =================================================
7758dca37d2SMauro Carvalho Chehab
7768dca37d2SMauro Carvalho Chehab   The default driver setup is 'specf:3'. As a consequence, option 'specf:y'
7778dca37d2SMauro Carvalho Chehab   must be specified in the boot setup command to enable Memory Write And
7788dca37d2SMauro Carvalho Chehab   Invalidate.
7798dca37d2SMauro Carvalho Chehab
7808dca37d2SMauro Carvalho Chehab10.2.5  Ultra SCSI support
7818dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^^^
7828dca37d2SMauro Carvalho Chehab
7838dca37d2SMauro Carvalho Chehab   Only apply to 860, 875, 895, 895a, 896, 1010 and 1010_66 controllers.
7848dca37d2SMauro Carvalho Chehab   Have no effect with other ones.
7858dca37d2SMauro Carvalho Chehab
7868dca37d2SMauro Carvalho Chehab	=======    ========================
7878dca37d2SMauro Carvalho Chehab        ultra:n    All ultra speeds enabled
7888dca37d2SMauro Carvalho Chehab        ultra:2    Ultra2 enabled
7898dca37d2SMauro Carvalho Chehab        ultra:1    Ultra enabled
7908dca37d2SMauro Carvalho Chehab        ultra:0    Ultra speeds disabled
7918dca37d2SMauro Carvalho Chehab	=======    ========================
7928dca37d2SMauro Carvalho Chehab
7938dca37d2SMauro Carvalho Chehab10.2.6  Default number of tagged commands
7948dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
7958dca37d2SMauro Carvalho Chehab
7968dca37d2SMauro Carvalho Chehab	======================= ===============================
7978dca37d2SMauro Carvalho Chehab        tags:0     (or tags:1 ) tagged command queuing disabled
7988dca37d2SMauro Carvalho Chehab        tags:#tags (#tags  > 1) tagged command queuing enabled
7998dca37d2SMauro Carvalho Chehab	======================= ===============================
8008dca37d2SMauro Carvalho Chehab
8018dca37d2SMauro Carvalho Chehab  #tags will be truncated to the max queued commands configuration parameter.
8028dca37d2SMauro Carvalho Chehab  This option also allows to specify a command queue depth for each device
8038dca37d2SMauro Carvalho Chehab  that support tagged command queueing.
8048dca37d2SMauro Carvalho Chehab
8058dca37d2SMauro Carvalho Chehab  Example::
8068dca37d2SMauro Carvalho Chehab
8078dca37d2SMauro Carvalho Chehab      ncr53c8xx=tags:10/t2t3q16-t5q24/t1u2q32
8088dca37d2SMauro Carvalho Chehab
8098dca37d2SMauro Carvalho Chehab  will set devices queue depth as follow:
8108dca37d2SMauro Carvalho Chehab
8118dca37d2SMauro Carvalho Chehab      - controller #0 target #2 and target #3                  -> 16 commands,
8128dca37d2SMauro Carvalho Chehab      - controller #0 target #5                                -> 24 commands,
8138dca37d2SMauro Carvalho Chehab      - controller #1 target #1 logical unit #2                -> 32 commands,
8148dca37d2SMauro Carvalho Chehab      - all other logical units (all targets, all controllers) -> 10 commands.
8158dca37d2SMauro Carvalho Chehab
8168dca37d2SMauro Carvalho Chehab10.2.7  Default synchronous period factor
8178dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
8188dca37d2SMauro Carvalho Chehab
8198dca37d2SMauro Carvalho Chehab============ ========================================================
8208dca37d2SMauro Carvalho Chehabsync:255     disabled (asynchronous transfer mode)
8218dca37d2SMauro Carvalho Chehabsync:#factor
8228dca37d2SMauro Carvalho Chehab	     ============     =======================================
8238dca37d2SMauro Carvalho Chehab	     #factor = 10     Ultra-2 SCSI 40 Mega-transfers / second
8248dca37d2SMauro Carvalho Chehab	     #factor = 11     Ultra-2 SCSI 33 Mega-transfers / second
8258dca37d2SMauro Carvalho Chehab	     #factor < 25     Ultra   SCSI 20 Mega-transfers / second
8268dca37d2SMauro Carvalho Chehab	     #factor < 50     Fast    SCSI-2
8278dca37d2SMauro Carvalho Chehab	     ============     =======================================
8288dca37d2SMauro Carvalho Chehab============ ========================================================
8298dca37d2SMauro Carvalho Chehab
8308dca37d2SMauro Carvalho Chehab  In all cases, the driver will use the minimum transfer period supported by
8318dca37d2SMauro Carvalho Chehab  controllers according to NCR53C8XX chip type.
8328dca37d2SMauro Carvalho Chehab
8338dca37d2SMauro Carvalho Chehab10.2.8  Negotiate synchronous with all devices
8348dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
8358dca37d2SMauro Carvalho Chehab        (force sync nego)
8368dca37d2SMauro Carvalho Chehab
8378dca37d2SMauro Carvalho Chehab        =====      =========
8388dca37d2SMauro Carvalho Chehab        fsn:y      enabled
8398dca37d2SMauro Carvalho Chehab        fsn:n      disabled
8408dca37d2SMauro Carvalho Chehab        =====      =========
8418dca37d2SMauro Carvalho Chehab
8428dca37d2SMauro Carvalho Chehab10.2.9  Verbosity level
8438dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^
8448dca37d2SMauro Carvalho Chehab
8458dca37d2SMauro Carvalho Chehab        ======     =========
8468dca37d2SMauro Carvalho Chehab        verb:0     minimal
8478dca37d2SMauro Carvalho Chehab        verb:1     normal
8488dca37d2SMauro Carvalho Chehab        verb:2     too much
8498dca37d2SMauro Carvalho Chehab        ======     =========
8508dca37d2SMauro Carvalho Chehab
8518dca37d2SMauro Carvalho Chehab10.2.10 Debug mode
8528dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^
8538dca37d2SMauro Carvalho Chehab
8548dca37d2SMauro Carvalho Chehab========   ==================================================================
8558dca37d2SMauro Carvalho Chehabdebug:0    clear debug flags
8568dca37d2SMauro Carvalho Chehabdebug:#x   set debug flags
8578dca37d2SMauro Carvalho Chehab
8588dca37d2SMauro Carvalho Chehab	    #x is an integer value combining the following power-of-2 values:
8598dca37d2SMauro Carvalho Chehab
8608dca37d2SMauro Carvalho Chehab	    =============  ======
8618dca37d2SMauro Carvalho Chehab	    DEBUG_ALLOC       0x1
8628dca37d2SMauro Carvalho Chehab	    DEBUG_PHASE       0x2
8638dca37d2SMauro Carvalho Chehab	    DEBUG_POLL        0x4
8648dca37d2SMauro Carvalho Chehab	    DEBUG_QUEUE       0x8
8658dca37d2SMauro Carvalho Chehab	    DEBUG_RESULT     0x10
8668dca37d2SMauro Carvalho Chehab	    DEBUG_SCATTER    0x20
8678dca37d2SMauro Carvalho Chehab	    DEBUG_SCRIPT     0x40
8688dca37d2SMauro Carvalho Chehab	    DEBUG_TINY       0x80
8698dca37d2SMauro Carvalho Chehab	    DEBUG_TIMING    0x100
8708dca37d2SMauro Carvalho Chehab	    DEBUG_NEGO      0x200
8718dca37d2SMauro Carvalho Chehab	    DEBUG_TAGS      0x400
8728dca37d2SMauro Carvalho Chehab	    DEBUG_FREEZE    0x800
8738dca37d2SMauro Carvalho Chehab	    DEBUG_RESTART  0x1000
8748dca37d2SMauro Carvalho Chehab	    =============  ======
8758dca37d2SMauro Carvalho Chehab========   ==================================================================
8768dca37d2SMauro Carvalho Chehab
8778dca37d2SMauro Carvalho Chehab  You can play safely with DEBUG_NEGO. However, some of these flags may
8788dca37d2SMauro Carvalho Chehab  generate bunches of syslog messages.
8798dca37d2SMauro Carvalho Chehab
8808dca37d2SMauro Carvalho Chehab10.2.11 Burst max
8818dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^
8828dca37d2SMauro Carvalho Chehab
8838dca37d2SMauro Carvalho Chehab=========  ==================================================================
8848dca37d2SMauro Carvalho Chehabburst:0    burst disabled
8858dca37d2SMauro Carvalho Chehabburst:255  get burst length from initial IO register settings.
8868dca37d2SMauro Carvalho Chehabburst:#x   burst enabled (1<<#x burst transfers max)
8878dca37d2SMauro Carvalho Chehab
8888dca37d2SMauro Carvalho Chehab	   #x is an integer value which is log base 2 of the burst transfers
8898dca37d2SMauro Carvalho Chehab	   max.
8908dca37d2SMauro Carvalho Chehab
8918dca37d2SMauro Carvalho Chehab	   The NCR53C875 and NCR53C825A support up to 128 burst transfers
8928dca37d2SMauro Carvalho Chehab	   (#x = 7).
8938dca37d2SMauro Carvalho Chehab
8948dca37d2SMauro Carvalho Chehab	   Other chips only support up to 16 (#x = 4).
8958dca37d2SMauro Carvalho Chehab
8968dca37d2SMauro Carvalho Chehab	   This is a maximum value. The driver set the burst length according
8978dca37d2SMauro Carvalho Chehab	   to chip and revision ids. By default the driver uses the maximum
8988dca37d2SMauro Carvalho Chehab	   value supported by the chip.
8998dca37d2SMauro Carvalho Chehab=========  ==================================================================
9008dca37d2SMauro Carvalho Chehab
9018dca37d2SMauro Carvalho Chehab10.2.12 LED support
9028dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^
9038dca37d2SMauro Carvalho Chehab
9048dca37d2SMauro Carvalho Chehab        =====      ===================
9058dca37d2SMauro Carvalho Chehab        led:1      enable  LED support
9068dca37d2SMauro Carvalho Chehab        led:0      disable LED support
9078dca37d2SMauro Carvalho Chehab        =====      ===================
9088dca37d2SMauro Carvalho Chehab
909cf065a7dSRandy Dunlap  Do not enable LED support if your scsi board does not use SDMS BIOS.
9108dca37d2SMauro Carvalho Chehab  (See 'Configuration parameters')
9118dca37d2SMauro Carvalho Chehab
9128dca37d2SMauro Carvalho Chehab10.2.13 Max wide
9138dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^
9148dca37d2SMauro Carvalho Chehab
9158dca37d2SMauro Carvalho Chehab        ======     ===================
9168dca37d2SMauro Carvalho Chehab        wide:1      wide scsi enabled
9178dca37d2SMauro Carvalho Chehab        wide:0      wide scsi disabled
9188dca37d2SMauro Carvalho Chehab        ======     ===================
9198dca37d2SMauro Carvalho Chehab
9208dca37d2SMauro Carvalho Chehab  Some scsi boards use a 875 (ultra wide) and only supply narrow connectors.
9218dca37d2SMauro Carvalho Chehab  If you have connected a wide device with a 50 pins to 68 pins cable
9228dca37d2SMauro Carvalho Chehab  converter, any accepted wide negotiation will break further data transfers.
9238dca37d2SMauro Carvalho Chehab  In such a case, using "wide:0" in the bootup command will be helpful.
9248dca37d2SMauro Carvalho Chehab
9258dca37d2SMauro Carvalho Chehab10.2.14 Differential mode
9268dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^^
9278dca37d2SMauro Carvalho Chehab
9288dca37d2SMauro Carvalho Chehab	======	=================================
9298dca37d2SMauro Carvalho Chehab        diff:0	never set up diff mode
9308dca37d2SMauro Carvalho Chehab        diff:1	set up diff mode if BIOS set it
9318dca37d2SMauro Carvalho Chehab        diff:2	always set up diff mode
9328dca37d2SMauro Carvalho Chehab        diff:3	set diff mode if GPIO3 is not set
9338dca37d2SMauro Carvalho Chehab	======	=================================
9348dca37d2SMauro Carvalho Chehab
9358dca37d2SMauro Carvalho Chehab10.2.15 IRQ mode
9368dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^
9378dca37d2SMauro Carvalho Chehab
9388dca37d2SMauro Carvalho Chehab	=========  ========================================================
9398dca37d2SMauro Carvalho Chehab        irqm:0     always open drain
9408dca37d2SMauro Carvalho Chehab        irqm:1     same as initial settings (assumed BIOS settings)
9418dca37d2SMauro Carvalho Chehab        irqm:2     always totem pole
9428dca37d2SMauro Carvalho Chehab        irqm:0x10  driver will not use IRQF_SHARED flag when requesting irq
9438dca37d2SMauro Carvalho Chehab	=========  ========================================================
9448dca37d2SMauro Carvalho Chehab
9458dca37d2SMauro Carvalho Chehab    (Bits 0x10 and 0x20 can be combined with hardware irq mode option)
9468dca37d2SMauro Carvalho Chehab
9478dca37d2SMauro Carvalho Chehab10.2.16 Reverse probe
9488dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^
9498dca37d2SMauro Carvalho Chehab
9508dca37d2SMauro Carvalho Chehab	=========   ========================================================
9518dca37d2SMauro Carvalho Chehab        revprob:n   probe chip ids from the PCI configuration in this order:
9528dca37d2SMauro Carvalho Chehab                    810, 815, 820, 860, 875, 885, 895, 896
9538dca37d2SMauro Carvalho Chehab        revprob:y   probe chip ids in the reverse order.
9548dca37d2SMauro Carvalho Chehab	=========   ========================================================
9558dca37d2SMauro Carvalho Chehab
9568dca37d2SMauro Carvalho Chehab10.2.17 Fix up PCI configuration space
9578dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
9588dca37d2SMauro Carvalho Chehab        pcifix:<option bits>
9598dca37d2SMauro Carvalho Chehab
9608dca37d2SMauro Carvalho Chehab    Available option bits:
9618dca37d2SMauro Carvalho Chehab
9628dca37d2SMauro Carvalho Chehab	===    ===============================================================
9638dca37d2SMauro Carvalho Chehab        0x0    No attempt to fix PCI configuration space registers values.
9648dca37d2SMauro Carvalho Chehab        0x1    Set PCI cache-line size register if not set.
9658dca37d2SMauro Carvalho Chehab        0x2    Set write and invalidate bit in PCI command register.
9668dca37d2SMauro Carvalho Chehab        0x4    Increase if necessary PCI latency timer according to burst max.
9678dca37d2SMauro Carvalho Chehab	===    ===============================================================
9688dca37d2SMauro Carvalho Chehab
9698dca37d2SMauro Carvalho Chehab    Use 'pcifix:7' in order to allow the driver to fix up all PCI features.
9708dca37d2SMauro Carvalho Chehab
9718dca37d2SMauro Carvalho Chehab10.2.18 Serial NVRAM
9728dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^
9738dca37d2SMauro Carvalho Chehab
9748dca37d2SMauro Carvalho Chehab	=======     =========================================
9758dca37d2SMauro Carvalho Chehab        nvram:n     do not look for serial NVRAM
9768dca37d2SMauro Carvalho Chehab        nvram:y     test controllers for onboard serial NVRAM
9778dca37d2SMauro Carvalho Chehab	=======     =========================================
9788dca37d2SMauro Carvalho Chehab
9798dca37d2SMauro Carvalho Chehab        (alternate binary form)
9808dca37d2SMauro Carvalho Chehab        mvram=<bits options>
9818dca37d2SMauro Carvalho Chehab
9828dca37d2SMauro Carvalho Chehab        ====   =================================================================
9838dca37d2SMauro Carvalho Chehab        0x01   look for NVRAM  (equivalent to nvram=y)
9848dca37d2SMauro Carvalho Chehab        0x02   ignore NVRAM "Synchronous negotiation" parameters for all devices
9858dca37d2SMauro Carvalho Chehab        0x04   ignore NVRAM "Wide negotiation"  parameter for all devices
9868dca37d2SMauro Carvalho Chehab        0x08   ignore NVRAM "Scan at boot time" parameter for all devices
9878dca37d2SMauro Carvalho Chehab        0x80   also attach controllers set to OFF in the NVRAM (sym53c8xx only)
9888dca37d2SMauro Carvalho Chehab        ====   =================================================================
9898dca37d2SMauro Carvalho Chehab
9908dca37d2SMauro Carvalho Chehab10.2.19 Check SCSI BUS
9918dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^
9928dca37d2SMauro Carvalho Chehab
9938dca37d2SMauro Carvalho Chehab        buschk:<option bits>
9948dca37d2SMauro Carvalho Chehab
9958dca37d2SMauro Carvalho Chehab    Available option bits:
9968dca37d2SMauro Carvalho Chehab
9978dca37d2SMauro Carvalho Chehab        ====   ================================================
9988dca37d2SMauro Carvalho Chehab        0x0:   No check.
9998dca37d2SMauro Carvalho Chehab        0x1:   Check and do not attach the controller on error.
10008dca37d2SMauro Carvalho Chehab        0x2:   Check and just warn on error.
10018dca37d2SMauro Carvalho Chehab        0x4:   Disable SCSI bus integrity checking.
10028dca37d2SMauro Carvalho Chehab        ====   ================================================
10038dca37d2SMauro Carvalho Chehab
10048dca37d2SMauro Carvalho Chehab10.2.20 Exclude a host from being attached
10058dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
10068dca37d2SMauro Carvalho Chehab
10078dca37d2SMauro Carvalho Chehab        excl=<io_address>
10088dca37d2SMauro Carvalho Chehab
10098dca37d2SMauro Carvalho Chehab    Prevent host at a given io address from being attached.
10108dca37d2SMauro Carvalho Chehab    For example 'ncr53c8xx=excl:0xb400,excl:0xc000' indicate to the
10118dca37d2SMauro Carvalho Chehab    ncr53c8xx driver not to attach hosts at address 0xb400 and 0xc000.
10128dca37d2SMauro Carvalho Chehab
10138dca37d2SMauro Carvalho Chehab10.2.21 Suggest a default SCSI id for hosts
10148dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
10158dca37d2SMauro Carvalho Chehab
10168dca37d2SMauro Carvalho Chehab	==========	==========================================
10178dca37d2SMauro Carvalho Chehab        hostid:255	no id suggested.
10188dca37d2SMauro Carvalho Chehab        hostid:#x	(0 < x < 7) x suggested for hosts SCSI id.
10198dca37d2SMauro Carvalho Chehab	==========	==========================================
10208dca37d2SMauro Carvalho Chehab
10218dca37d2SMauro Carvalho Chehab    If a host SCSI id is available from the NVRAM, the driver will ignore
10228dca37d2SMauro Carvalho Chehab    any value suggested as boot option. Otherwise, if a suggested value
10238dca37d2SMauro Carvalho Chehab    different from 255 has been supplied, it will use it. Otherwise, it will
10248dca37d2SMauro Carvalho Chehab    try to deduce the value previously set in the hardware and use value
10258dca37d2SMauro Carvalho Chehab    7 if the hardware value is zero.
10268dca37d2SMauro Carvalho Chehab
10278dca37d2SMauro Carvalho Chehab10.2.22 Enable use of IMMEDIATE ARBITRATION
10288dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
10298dca37d2SMauro Carvalho Chehab
10308dca37d2SMauro Carvalho Chehab        (only supported by the sym53c8xx driver. See 10.7 for more details)
10318dca37d2SMauro Carvalho Chehab
10328dca37d2SMauro Carvalho Chehab=======   =================================================================
10338dca37d2SMauro Carvalho Chehabiarb:0    do not use this feature.
10348dca37d2SMauro Carvalho Chehabiarb:#x   use this feature according to bit fields as follow:
10358dca37d2SMauro Carvalho Chehab
10368dca37d2SMauro Carvalho Chehab	  ========= =======================================================
10378dca37d2SMauro Carvalho Chehab	  bit 0 (1) enable IARB each time the initiator has been reselected
10388dca37d2SMauro Carvalho Chehab		    when it arbitrated for the SCSI BUS.
10398dca37d2SMauro Carvalho Chehab	  (#x >> 4) maximum number of successive settings of IARB if the
10408dca37d2SMauro Carvalho Chehab		    initiator win arbitration and it has other commands
10418dca37d2SMauro Carvalho Chehab		    to send to a device.
10428dca37d2SMauro Carvalho Chehab	  ========= =======================================================
10438dca37d2SMauro Carvalho Chehab=======   =================================================================
10448dca37d2SMauro Carvalho Chehab
10458dca37d2SMauro Carvalho ChehabBoot fail safe
10468dca37d2SMauro Carvalho Chehab    safe:y	load the following assumed fail safe initial setup
10478dca37d2SMauro Carvalho Chehab
10488dca37d2SMauro Carvalho Chehab  ========================	======================	==========
10498dca37d2SMauro Carvalho Chehab  master parity			disabled		mpar:n
10508dca37d2SMauro Carvalho Chehab  scsi parity			enabled			spar:y
10518dca37d2SMauro Carvalho Chehab  disconnections		not allowed		disc:n
10528dca37d2SMauro Carvalho Chehab  special features		disabled		specf:n
10538dca37d2SMauro Carvalho Chehab  ultra scsi			disabled		ultra:n
10548dca37d2SMauro Carvalho Chehab  force sync negotiation	disabled		fsn:n
10558dca37d2SMauro Carvalho Chehab  reverse probe			disabled		revprob:n
10568dca37d2SMauro Carvalho Chehab  PCI fix up                    disabled                pcifix:0
10578dca37d2SMauro Carvalho Chehab  serial NVRAM                  enabled                 nvram:y
10588dca37d2SMauro Carvalho Chehab  verbosity level		2			verb:2
10598dca37d2SMauro Carvalho Chehab  tagged command queuing	disabled		tags:0
10608dca37d2SMauro Carvalho Chehab  synchronous negotiation	disabled		sync:255
10618dca37d2SMauro Carvalho Chehab  debug flags			none			debug:0
10628dca37d2SMauro Carvalho Chehab  burst length			from BIOS settings	burst:255
10638dca37d2SMauro Carvalho Chehab  LED support			disabled		led:0
10648dca37d2SMauro Carvalho Chehab  wide support			disabled		wide:0
10658dca37d2SMauro Carvalho Chehab  settle time			10 seconds		settle:10
10668dca37d2SMauro Carvalho Chehab  differential support		from BIOS settings	diff:1
10678dca37d2SMauro Carvalho Chehab  irq mode			from BIOS settings	irqm:1
10688dca37d2SMauro Carvalho Chehab  SCSI BUS check		do not attach on error	buschk:1
10698dca37d2SMauro Carvalho Chehab  immediate arbitration		disabled		iarb:0
10708dca37d2SMauro Carvalho Chehab  ========================	======================	==========
10718dca37d2SMauro Carvalho Chehab
10728dca37d2SMauro Carvalho Chehab10.3 Advised boot setup commands
10738dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
10748dca37d2SMauro Carvalho Chehab
10758dca37d2SMauro Carvalho ChehabIf the driver has been configured with default options, the equivalent
10768dca37d2SMauro Carvalho Chehabboot setup is::
10778dca37d2SMauro Carvalho Chehab
10788dca37d2SMauro Carvalho Chehab   ncr53c8xx=mpar:y,spar:y,disc:y,specf:3,fsn:n,ultra:2,fsn:n,revprob:n,verb:1\
10798dca37d2SMauro Carvalho Chehab             tags:0,sync:50,debug:0,burst:7,led:0,wide:1,settle:2,diff:0,irqm:0
10808dca37d2SMauro Carvalho Chehab
10818dca37d2SMauro Carvalho ChehabFor an installation diskette or a safe but not fast system,
10828dca37d2SMauro Carvalho Chehabboot setup can be::
10838dca37d2SMauro Carvalho Chehab
10848dca37d2SMauro Carvalho Chehab    ncr53c8xx=safe:y,mpar:y,disc:y
10858dca37d2SMauro Carvalho Chehab    ncr53c8xx=safe:y,disc:y
10868dca37d2SMauro Carvalho Chehab    ncr53c8xx=safe:y,mpar:y
10878dca37d2SMauro Carvalho Chehab    ncr53c8xx=safe:y
10888dca37d2SMauro Carvalho Chehab
10898dca37d2SMauro Carvalho ChehabMy personal system works flawlessly with the following equivalent setup::
10908dca37d2SMauro Carvalho Chehab
10918dca37d2SMauro Carvalho Chehab   ncr53c8xx=mpar:y,spar:y,disc:y,specf:1,fsn:n,ultra:2,fsn:n,revprob:n,verb:1\
10928dca37d2SMauro Carvalho Chehab             tags:32,sync:12,debug:0,burst:7,led:1,wide:1,settle:2,diff:0,irqm:0
10938dca37d2SMauro Carvalho Chehab
10948dca37d2SMauro Carvalho ChehabThe driver prints its actual setup when verbosity level is 2. You can try
10958dca37d2SMauro Carvalho Chehab"ncr53c8xx=verb:2" to get the "static" setup of the driver, or add "verb:2"
10968dca37d2SMauro Carvalho Chehabto your boot setup command in order to check the actual setup the driver is
10978dca37d2SMauro Carvalho Chehabusing.
10988dca37d2SMauro Carvalho Chehab
10998dca37d2SMauro Carvalho Chehab10.4 PCI configuration fix-up boot option
11008dca37d2SMauro Carvalho Chehab-----------------------------------------
11018dca37d2SMauro Carvalho Chehab
11028dca37d2SMauro Carvalho Chehabpcifix:<option bits>
11038dca37d2SMauro Carvalho Chehab
11048dca37d2SMauro Carvalho ChehabAvailable option bits:
11058dca37d2SMauro Carvalho Chehab
11068dca37d2SMauro Carvalho Chehab    ===      =====================================================
11078dca37d2SMauro Carvalho Chehab    0x1      Set PCI cache-line size register if not set.
11088dca37d2SMauro Carvalho Chehab    0x2      Set write and invalidate bit in PCI command register.
11098dca37d2SMauro Carvalho Chehab    ===      =====================================================
11108dca37d2SMauro Carvalho Chehab
11118dca37d2SMauro Carvalho ChehabUse 'pcifix:3' in order to allow the driver to fix both PCI features.
11128dca37d2SMauro Carvalho Chehab
11138dca37d2SMauro Carvalho ChehabThese options only apply to new SYMBIOS chips 810A, 825A, 860, 875
11148dca37d2SMauro Carvalho Chehaband 895 and are only supported for Pentium and 486 class processors.
11158dca37d2SMauro Carvalho ChehabRecent SYMBIOS 53C8XX scsi processors are able to use PCI read multiple
11168dca37d2SMauro Carvalho Chehaband PCI write and invalidate commands. These features require the
11178dca37d2SMauro Carvalho Chehabcache line size register to be properly set in the PCI configuration
11188dca37d2SMauro Carvalho Chehabspace of the chips. On the other hand, chips will use PCI write and
11198dca37d2SMauro Carvalho Chehabinvalidate commands only if the corresponding bit is set to 1 in the
11208dca37d2SMauro Carvalho ChehabPCI command register.
11218dca37d2SMauro Carvalho Chehab
11228dca37d2SMauro Carvalho ChehabNot all PCI bioses set the PCI cache line register and the PCI write and
11238dca37d2SMauro Carvalho Chehabinvalidate bit in the PCI configuration space of 53C8XX chips.
11248dca37d2SMauro Carvalho ChehabOptimized PCI accesses may be broken for some PCI/memory controllers or
11258dca37d2SMauro Carvalho Chehabmake problems with some PCI boards.
11268dca37d2SMauro Carvalho Chehab
11278dca37d2SMauro Carvalho ChehabThis fix-up worked flawlessly on my previous system.
11288dca37d2SMauro Carvalho Chehab(MB Triton HX / 53C875 / 53C810A)
11298dca37d2SMauro Carvalho ChehabI use these options at my own risks as you will do if you decide to
11308dca37d2SMauro Carvalho Chehabuse them too.
11318dca37d2SMauro Carvalho Chehab
11328dca37d2SMauro Carvalho Chehab
11338dca37d2SMauro Carvalho Chehab10.5 Serial NVRAM support boot option
11348dca37d2SMauro Carvalho Chehab-------------------------------------
11358dca37d2SMauro Carvalho Chehab
11368dca37d2SMauro Carvalho Chehab=======     =========================================
11378dca37d2SMauro Carvalho Chehabnvram:n     do not look for serial NVRAM
11388dca37d2SMauro Carvalho Chehabnvram:y     test controllers for onboard serial NVRAM
11398dca37d2SMauro Carvalho Chehab=======     =========================================
11408dca37d2SMauro Carvalho Chehab
11418dca37d2SMauro Carvalho ChehabThis option can also been entered as an hexadecimal value that allows
11428dca37d2SMauro Carvalho Chehabto control what information the driver will get from the NVRAM and what
11438dca37d2SMauro Carvalho Chehabinformation it will ignore.
11448dca37d2SMauro Carvalho ChehabFor details see '17. Serial NVRAM support'.
11458dca37d2SMauro Carvalho Chehab
11468dca37d2SMauro Carvalho ChehabWhen this option is enabled, the driver tries to detect all boards using
11478dca37d2SMauro Carvalho Chehaba Serial NVRAM. This memory is used to hold user set up parameters.
11488dca37d2SMauro Carvalho Chehab
11498dca37d2SMauro Carvalho ChehabThe parameters the driver is able to get from the NVRAM depend on the
11508dca37d2SMauro Carvalho Chehabdata format used, as follow:
11518dca37d2SMauro Carvalho Chehab
11528dca37d2SMauro Carvalho Chehab+-------------------------------+------------------+--------------+
11538dca37d2SMauro Carvalho Chehab|                               |Tekram format     |Symbios format|
11548dca37d2SMauro Carvalho Chehab+-------------------------------+------------------+--------------+
11558dca37d2SMauro Carvalho Chehab|General and host parameters    |                  |              |
11568dca37d2SMauro Carvalho Chehab+-------------------------------+------------------+--------------+
11578dca37d2SMauro Carvalho Chehab|  * Boot order                 |        N         |       Y      |
11588dca37d2SMauro Carvalho Chehab+-------------------------------+------------------+--------------+
11598dca37d2SMauro Carvalho Chehab|  * Host SCSI ID               |        Y         |       Y      |
11608dca37d2SMauro Carvalho Chehab+-------------------------------+------------------+--------------+
11618dca37d2SMauro Carvalho Chehab|  * SCSI parity checking       |        Y         |       Y      |
11628dca37d2SMauro Carvalho Chehab+-------------------------------+------------------+--------------+
11638dca37d2SMauro Carvalho Chehab|  * Verbose boot messages      |        N         |       Y      |
11648dca37d2SMauro Carvalho Chehab+-------------------------------+------------------+--------------+
11658dca37d2SMauro Carvalho Chehab|SCSI devices parameters                                          |
11668dca37d2SMauro Carvalho Chehab+-------------------------------+------------------+--------------+
11678dca37d2SMauro Carvalho Chehab|  * Synchronous transfer speed |        Y         |       Y      |
11688dca37d2SMauro Carvalho Chehab+-------------------------------+------------------+--------------+
11698dca37d2SMauro Carvalho Chehab|  * Wide 16 / Narrow           |        Y         |       Y      |
11708dca37d2SMauro Carvalho Chehab+-------------------------------+------------------+--------------+
11718dca37d2SMauro Carvalho Chehab|  * Tagged Command Queuing     |        Y         |       Y      |
11728dca37d2SMauro Carvalho Chehab|    enabled                    |                  |              |
11738dca37d2SMauro Carvalho Chehab+-------------------------------+------------------+--------------+
11748dca37d2SMauro Carvalho Chehab|  * Disconnections enabled     |        Y         |       Y      |
11758dca37d2SMauro Carvalho Chehab+-------------------------------+------------------+--------------+
11768dca37d2SMauro Carvalho Chehab|  * Scan at boot time          |        N         |       Y      |
11778dca37d2SMauro Carvalho Chehab+-------------------------------+------------------+--------------+
11788dca37d2SMauro Carvalho Chehab
11798dca37d2SMauro Carvalho ChehabIn order to speed up the system boot, for each device configured without
11808dca37d2SMauro Carvalho Chehabthe "scan at boot time" option, the driver forces an error on the
11818dca37d2SMauro Carvalho Chehabfirst TEST UNIT READY command received for this device.
11828dca37d2SMauro Carvalho Chehab
11838dca37d2SMauro Carvalho ChehabSome SDMS BIOS revisions seem to be unable to boot cleanly with very fast
11848dca37d2SMauro Carvalho Chehabhard disks. In such a situation you cannot configure the NVRAM with
11858dca37d2SMauro Carvalho Chehaboptimized parameters value.
11868dca37d2SMauro Carvalho Chehab
11878dca37d2SMauro Carvalho ChehabThe 'nvram' boot option can be entered in hexadecimal form in order
11888dca37d2SMauro Carvalho Chehabto ignore some options configured in the NVRAM, as follow:
11898dca37d2SMauro Carvalho Chehab
11908dca37d2SMauro Carvalho Chehabmvram=<bits options>
11918dca37d2SMauro Carvalho Chehab
11928dca37d2SMauro Carvalho Chehab      ====   =================================================================
11938dca37d2SMauro Carvalho Chehab      0x01   look for NVRAM  (equivalent to nvram=y)
11948dca37d2SMauro Carvalho Chehab      0x02   ignore NVRAM "Synchronous negotiation" parameters for all devices
11958dca37d2SMauro Carvalho Chehab      0x04   ignore NVRAM "Wide negotiation"  parameter for all devices
11968dca37d2SMauro Carvalho Chehab      0x08   ignore NVRAM "Scan at boot time" parameter for all devices
11978dca37d2SMauro Carvalho Chehab      0x80   also attach controllers set to OFF in the NVRAM (sym53c8xx only)
11988dca37d2SMauro Carvalho Chehab      ====   =================================================================
11998dca37d2SMauro Carvalho Chehab
12008dca37d2SMauro Carvalho ChehabOption 0x80 is only supported by the sym53c8xx driver and is disabled by
12018dca37d2SMauro Carvalho Chehabdefault. Result is that, by default (option not set), the sym53c8xx driver
12028dca37d2SMauro Carvalho Chehabwill not attach controllers set to OFF in the NVRAM.
12038dca37d2SMauro Carvalho Chehab
12048dca37d2SMauro Carvalho ChehabThe ncr53c8xx always tries to attach all the controllers. Option 0x80 has
12058dca37d2SMauro Carvalho Chehabnot been added to the ncr53c8xx driver, since it has been reported to
12068dca37d2SMauro Carvalho Chehabconfuse users who use this driver since a long time. If you desire a
12078dca37d2SMauro Carvalho Chehabcontroller not to be attached by the ncr53c8xx driver at Linux boot, you
12088dca37d2SMauro Carvalho Chehabmust use the 'excl' driver boot option.
12098dca37d2SMauro Carvalho Chehab
12108dca37d2SMauro Carvalho Chehab10.6 SCSI BUS checking boot option.
12118dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
12128dca37d2SMauro Carvalho Chehab
12138dca37d2SMauro Carvalho ChehabWhen this option is set to a non-zero value, the driver checks SCSI lines
12148dca37d2SMauro Carvalho Chehablogic state, 100 micro-seconds after having asserted the SCSI RESET line.
12158dca37d2SMauro Carvalho ChehabThe driver just reads SCSI lines and checks all lines read FALSE except RESET.
12168dca37d2SMauro Carvalho ChehabSince SCSI devices shall release the BUS at most 800 nano-seconds after SCSI
12178dca37d2SMauro Carvalho ChehabRESET has been asserted, any signal to TRUE may indicate a SCSI BUS problem.
12188dca37d2SMauro Carvalho ChehabUnfortunately, the following common SCSI BUS problems are not detected:
12198dca37d2SMauro Carvalho Chehab
12208dca37d2SMauro Carvalho Chehab- Only 1 terminator installed.
12218dca37d2SMauro Carvalho Chehab- Misplaced terminators.
12228dca37d2SMauro Carvalho Chehab- Bad quality terminators.
12238dca37d2SMauro Carvalho Chehab
12248dca37d2SMauro Carvalho ChehabOn the other hand, either bad cabling, broken devices, not conformant
1225cf065a7dSRandy Dunlapdevices, ... may cause a SCSI signal to be wrong when the driver reads it.
12268dca37d2SMauro Carvalho Chehab
12278dca37d2SMauro Carvalho Chehab10.7 IMMEDIATE ARBITRATION boot option
12288dca37d2SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
12298dca37d2SMauro Carvalho Chehab
12308dca37d2SMauro Carvalho ChehabThis option is only supported by the SYM53C8XX driver (not by the NCR53C8XX).
12318dca37d2SMauro Carvalho Chehab
12328dca37d2SMauro Carvalho ChehabSYMBIOS 53C8XX chips are able to arbitrate for the SCSI BUS as soon as they
12338dca37d2SMauro Carvalho Chehabhave detected an expected disconnection (BUS FREE PHASE). For this process
12348dca37d2SMauro Carvalho Chehabto be started, bit 1 of SCNTL1 IO register must be set when the chip is
12358dca37d2SMauro Carvalho Chehabconnected to the SCSI BUS.
12368dca37d2SMauro Carvalho Chehab
12378dca37d2SMauro Carvalho ChehabWhen this feature has been enabled for the current connection, the chip has
12388dca37d2SMauro Carvalho Chehabevery chance to win arbitration if only devices with lower priority are
12398dca37d2SMauro Carvalho Chehabcompeting for the SCSI BUS. By the way, when the chip is using SCSI id 7,
12408dca37d2SMauro Carvalho Chehabthen it will for sure win the next SCSI BUS arbitration.
12418dca37d2SMauro Carvalho Chehab
12428dca37d2SMauro Carvalho ChehabSince, there is no way to know what devices are trying to arbitrate for the
12438dca37d2SMauro Carvalho ChehabBUS, using this feature can be extremely unfair. So, you are not advised
12448dca37d2SMauro Carvalho Chehabto enable it, or at most enable this feature for the case the chip lost
12458dca37d2SMauro Carvalho Chehabthe previous arbitration (boot option 'iarb:1').
12468dca37d2SMauro Carvalho Chehab
12478dca37d2SMauro Carvalho ChehabThis feature has the following advantages:
12488dca37d2SMauro Carvalho Chehab
12498dca37d2SMauro Carvalho Chehaba) Allow the initiator with ID 7 to win arbitration when it wants so.
12508dca37d2SMauro Carvalho Chehabb) Overlap at least 4 micro-seconds of arbitration time with the execution
12518dca37d2SMauro Carvalho Chehab   of SCRIPTS that deal with the end of the current connection and that
12528dca37d2SMauro Carvalho Chehab   starts the next job.
12538dca37d2SMauro Carvalho Chehab
12548dca37d2SMauro Carvalho ChehabHmmm... But (a) may just prevent other devices from reselecting the initiator,
12558dca37d2SMauro Carvalho Chehaband delay data transfers or status/completions, and (b) may just waste
12568dca37d2SMauro Carvalho ChehabSCSI BUS bandwidth if the SCRIPTS execution lasts more than 4 micro-seconds.
12578dca37d2SMauro Carvalho Chehab
12588dca37d2SMauro Carvalho ChehabThe use of IARB needs the SCSI_NCR_IARB_SUPPORT option to have been defined
12598dca37d2SMauro Carvalho Chehabat compile time and the 'iarb' boot option to have been set to a non zero
12608dca37d2SMauro Carvalho Chehabvalue at boot time. It is not that useful for real work, but can be used
12618dca37d2SMauro Carvalho Chehabto stress SCSI devices or for some applications that can gain advantage of
12628dca37d2SMauro Carvalho Chehabit. By the way, if you experience badnesses like 'unexpected disconnections',
12638dca37d2SMauro Carvalho Chehab'bad reselections', etc... when using IARB on heavy IO load, you should not
12648dca37d2SMauro Carvalho Chehabbe surprised, because force-feeding anything and blocking its arse at the
12658dca37d2SMauro Carvalho Chehabsame time cannot work for a long time. :-))
12668dca37d2SMauro Carvalho Chehab
12678dca37d2SMauro Carvalho Chehab
12688dca37d2SMauro Carvalho Chehab11. Some constants and flags of the ncr53c8xx.h header file
12698dca37d2SMauro Carvalho Chehab===========================================================
12708dca37d2SMauro Carvalho Chehab
12718dca37d2SMauro Carvalho ChehabSome of these are defined from the configuration parameters.  To
12728dca37d2SMauro Carvalho Chehabchange other "defines", you must edit the header file.  Do that only
12738dca37d2SMauro Carvalho Chehabif you know what you are doing.
12748dca37d2SMauro Carvalho Chehab
12758dca37d2SMauro Carvalho ChehabSCSI_NCR_SETUP_SPECIAL_FEATURES	(default: defined)
12768dca37d2SMauro Carvalho Chehab	If defined, the driver will enable some special features according
12778dca37d2SMauro Carvalho Chehab	to chip and revision id.
12788dca37d2SMauro Carvalho Chehab
12798dca37d2SMauro Carvalho Chehab        For 810A, 860, 825A, 875 and 895 scsi chips, this option enables
12808dca37d2SMauro Carvalho Chehab	support of features that reduce load of PCI bus and memory accesses
12818dca37d2SMauro Carvalho Chehab	during  scsi transfer processing: burst op-code fetch, read multiple,
12828dca37d2SMauro Carvalho Chehab        read line, prefetch, cache line, write and invalidate,
12838dca37d2SMauro Carvalho Chehab        burst 128 (875 only), large dma fifo (875 only), offset 16 (875 only).
12848dca37d2SMauro Carvalho Chehab	Can be changed by the following boot setup command::
12858dca37d2SMauro Carvalho Chehab
12868dca37d2SMauro Carvalho Chehab		ncr53c8xx=specf:n
12878dca37d2SMauro Carvalho Chehab
12888dca37d2SMauro Carvalho ChehabSCSI_NCR_IOMAPPED		(default: not defined)
12898dca37d2SMauro Carvalho Chehab	If defined, normal I/O is forced.
12908dca37d2SMauro Carvalho Chehab
12918dca37d2SMauro Carvalho ChehabSCSI_NCR_SHARE_IRQ		(default: defined)
12928dca37d2SMauro Carvalho Chehab	If defined, request shared IRQ.
12938dca37d2SMauro Carvalho Chehab
12948dca37d2SMauro Carvalho ChehabSCSI_NCR_MAX_TAGS		(default: 8)
12958dca37d2SMauro Carvalho Chehab	Maximum number of simultaneous tagged commands to a device.
12968dca37d2SMauro Carvalho Chehab
12978dca37d2SMauro Carvalho Chehab	Can be changed by "settags <target> <maxtags>"
12988dca37d2SMauro Carvalho Chehab
12998dca37d2SMauro Carvalho ChehabSCSI_NCR_SETUP_DEFAULT_SYNC     (default: 50)
13008dca37d2SMauro Carvalho Chehab	Transfer period factor the driver will use at boot time for synchronous
13018dca37d2SMauro Carvalho Chehab	negotiation. 0 means asynchronous.
13028dca37d2SMauro Carvalho Chehab
13038dca37d2SMauro Carvalho Chehab	Can be changed by "setsync <target> <period factor>"
13048dca37d2SMauro Carvalho Chehab
13058dca37d2SMauro Carvalho ChehabSCSI_NCR_SETUP_DEFAULT_TAGS     (default: 8)
13068dca37d2SMauro Carvalho Chehab	Default number of simultaneous tagged commands to a device.
13078dca37d2SMauro Carvalho Chehab
13088dca37d2SMauro Carvalho Chehab	< 1 means tagged command queuing disabled at start-up.
13098dca37d2SMauro Carvalho Chehab
13108dca37d2SMauro Carvalho ChehabSCSI_NCR_ALWAYS_SIMPLE_TAG	(default: defined)
13118dca37d2SMauro Carvalho Chehab	Use SIMPLE TAG for read and write commands.
13128dca37d2SMauro Carvalho Chehab
13138dca37d2SMauro Carvalho Chehab	Can be changed by "setorder <ordered|simple|default>"
13148dca37d2SMauro Carvalho Chehab
13158dca37d2SMauro Carvalho ChehabSCSI_NCR_SETUP_DISCONNECTION	(default: defined)
13168dca37d2SMauro Carvalho Chehab	If defined, targets are allowed to disconnect.
13178dca37d2SMauro Carvalho Chehab
13188dca37d2SMauro Carvalho ChehabSCSI_NCR_SETUP_FORCE_SYNC_NEGO	(default: not defined)
13198dca37d2SMauro Carvalho Chehab	If defined, synchronous negotiation is tried for all SCSI-2 devices.
13208dca37d2SMauro Carvalho Chehab
13218dca37d2SMauro Carvalho Chehab	Can be changed by "setsync <target> <period>"
13228dca37d2SMauro Carvalho Chehab
13238dca37d2SMauro Carvalho ChehabSCSI_NCR_SETUP_MASTER_PARITY	(default: defined)
13248dca37d2SMauro Carvalho Chehab	If defined, master parity checking is enabled.
13258dca37d2SMauro Carvalho Chehab
13268dca37d2SMauro Carvalho ChehabSCSI_NCR_SETUP_SCSI_PARITY	(default: defined)
13278dca37d2SMauro Carvalho Chehab	If defined, SCSI parity checking is enabled.
13288dca37d2SMauro Carvalho Chehab
13298dca37d2SMauro Carvalho ChehabSCSI_NCR_PROFILE_SUPPORT	(default: not defined)
13308dca37d2SMauro Carvalho Chehab	If defined, profiling information is gathered.
13318dca37d2SMauro Carvalho Chehab
13328dca37d2SMauro Carvalho ChehabSCSI_NCR_MAX_SCATTER		(default: 128)
13338dca37d2SMauro Carvalho Chehab	Scatter list size of the driver ccb.
13348dca37d2SMauro Carvalho Chehab
13358dca37d2SMauro Carvalho ChehabSCSI_NCR_MAX_TARGET		(default: 16)
13368dca37d2SMauro Carvalho Chehab	Max number of targets per host.
13378dca37d2SMauro Carvalho Chehab
13388dca37d2SMauro Carvalho ChehabSCSI_NCR_MAX_HOST		(default: 2)
13398dca37d2SMauro Carvalho Chehab	Max number of host controllers.
13408dca37d2SMauro Carvalho Chehab
13418dca37d2SMauro Carvalho ChehabSCSI_NCR_SETTLE_TIME		(default: 2)
13428dca37d2SMauro Carvalho Chehab	Number of seconds the driver will wait after reset.
13438dca37d2SMauro Carvalho Chehab
13448dca37d2SMauro Carvalho ChehabSCSI_NCR_TIMEOUT_ALERT		(default: 3)
13458dca37d2SMauro Carvalho Chehab	If a pending command will time out after this amount of seconds,
13468dca37d2SMauro Carvalho Chehab	an ordered tag is used for the next command.
13478dca37d2SMauro Carvalho Chehab
13488dca37d2SMauro Carvalho Chehab	Avoids timeouts for unordered tagged commands.
13498dca37d2SMauro Carvalho Chehab
13508dca37d2SMauro Carvalho ChehabSCSI_NCR_CAN_QUEUE		(default: 7*SCSI_NCR_MAX_TAGS)
13518dca37d2SMauro Carvalho Chehab	Max number of commands that can be queued to a host.
13528dca37d2SMauro Carvalho Chehab
13538dca37d2SMauro Carvalho ChehabSCSI_NCR_CMD_PER_LUN		(default: SCSI_NCR_MAX_TAGS)
13548dca37d2SMauro Carvalho Chehab	Max number of commands queued to a host for a device.
13558dca37d2SMauro Carvalho Chehab
13568dca37d2SMauro Carvalho ChehabSCSI_NCR_SG_TABLESIZE		(default: SCSI_NCR_MAX_SCATTER-1)
13578dca37d2SMauro Carvalho Chehab	Max size of the Linux scatter/gather list.
13588dca37d2SMauro Carvalho Chehab
13598dca37d2SMauro Carvalho ChehabSCSI_NCR_MAX_LUN	(default: 8)
13608dca37d2SMauro Carvalho Chehab	Max number of LUNs per target.
13618dca37d2SMauro Carvalho Chehab
13628dca37d2SMauro Carvalho Chehab
13638dca37d2SMauro Carvalho Chehab12. Installation
13648dca37d2SMauro Carvalho Chehab================
13658dca37d2SMauro Carvalho Chehab
13668dca37d2SMauro Carvalho ChehabThis driver is part of the linux kernel distribution.
13678dca37d2SMauro Carvalho ChehabDriver files are located in the sub-directory "drivers/scsi" of the
13688dca37d2SMauro Carvalho Chehabkernel source tree.
13698dca37d2SMauro Carvalho Chehab
13708dca37d2SMauro Carvalho ChehabDriver files::
13718dca37d2SMauro Carvalho Chehab
13728dca37d2SMauro Carvalho Chehab	README.ncr53c8xx	: this file
13738dca37d2SMauro Carvalho Chehab	ChangeLog.ncr53c8xx	: change log
13748dca37d2SMauro Carvalho Chehab	ncr53c8xx.h		: definitions
13758dca37d2SMauro Carvalho Chehab	ncr53c8xx.c		: the driver code
13768dca37d2SMauro Carvalho Chehab
13778dca37d2SMauro Carvalho ChehabNew driver versions are made available separately in order to allow testing
13788dca37d2SMauro Carvalho Chehabchanges and new features prior to including them into the linux kernel
13798dca37d2SMauro Carvalho Chehabdistribution. The following URL provides information on latest available
13808dca37d2SMauro Carvalho Chehabpatches:
13818dca37d2SMauro Carvalho Chehab
13828dca37d2SMauro Carvalho Chehab      ftp://ftp.tux.org/pub/people/gerard-roudier/README
13838dca37d2SMauro Carvalho Chehab
13848dca37d2SMauro Carvalho Chehab
13858dca37d2SMauro Carvalho Chehab13. Architecture dependent features
13868dca37d2SMauro Carvalho Chehab===================================
13878dca37d2SMauro Carvalho Chehab
13888dca37d2SMauro Carvalho Chehab<Not yet written>
13898dca37d2SMauro Carvalho Chehab
13908dca37d2SMauro Carvalho Chehab
13918dca37d2SMauro Carvalho Chehab14. Known problems
13928dca37d2SMauro Carvalho Chehab==================
13938dca37d2SMauro Carvalho Chehab
13948dca37d2SMauro Carvalho Chehab14.1 Tagged commands with Iomega Jaz device
13958dca37d2SMauro Carvalho Chehab-------------------------------------------
13968dca37d2SMauro Carvalho Chehab
13978dca37d2SMauro Carvalho ChehabI have not tried this device, however it has been reported to me the
13988dca37d2SMauro Carvalho Chehabfollowing: This device is capable of Tagged command queuing. However
13998dca37d2SMauro Carvalho Chehabwhile spinning up, it rejects Tagged commands. This behaviour is
14008dca37d2SMauro Carvalho Chehabconforms to 6.8.2 of SCSI-2 specifications. The current behaviour of
14018dca37d2SMauro Carvalho Chehabthe driver in that situation is not satisfying. So do not enable
14028dca37d2SMauro Carvalho ChehabTagged command queuing for devices that are able to spin down.  The
14038dca37d2SMauro Carvalho Chehabother problem that may appear is timeouts. The only way to avoid
14048dca37d2SMauro Carvalho Chehabtimeouts seems to edit linux/drivers/scsi/sd.c and to increase the
14058dca37d2SMauro Carvalho Chehabcurrent timeout values.
14068dca37d2SMauro Carvalho Chehab
14078dca37d2SMauro Carvalho Chehab14.2 Device names change when another controller is added
14088dca37d2SMauro Carvalho Chehab---------------------------------------------------------
14098dca37d2SMauro Carvalho Chehab
14108dca37d2SMauro Carvalho ChehabWhen you add a new NCR53C8XX chip based controller to a system that already
14118dca37d2SMauro Carvalho Chehabhas one or more controllers of this family, it may happen that the order
14128dca37d2SMauro Carvalho Chehabthe driver registers them to the kernel causes problems due to device
14138dca37d2SMauro Carvalho Chehabname changes.
14148dca37d2SMauro Carvalho ChehabWhen at least one controller uses NvRAM, SDMS BIOS version 4 allows you to
14158dca37d2SMauro Carvalho Chehabdefine the order the BIOS will scan the scsi boards. The driver attaches
14168dca37d2SMauro Carvalho Chehabcontrollers according to BIOS information if NvRAM detect option is set.
14178dca37d2SMauro Carvalho Chehab
14188dca37d2SMauro Carvalho ChehabIf your controllers do not have NvRAM, you can:
14198dca37d2SMauro Carvalho Chehab
14208dca37d2SMauro Carvalho Chehab- Ask the driver to probe chip ids in reverse order from the boot command
14218dca37d2SMauro Carvalho Chehab  line: ncr53c8xx=revprob:y
14228dca37d2SMauro Carvalho Chehab- Make appropriate changes in the fstab.
14238dca37d2SMauro Carvalho Chehab- Use the 'scsidev' tool from Eric Youngdale.
14248dca37d2SMauro Carvalho Chehab
14258dca37d2SMauro Carvalho Chehab14.3 Using only 8 bit devices with a WIDE SCSI controller
14268dca37d2SMauro Carvalho Chehab---------------------------------------------------------
14278dca37d2SMauro Carvalho Chehab
14288dca37d2SMauro Carvalho ChehabWhen only 8 bit NARROW devices are connected to a 16 bit WIDE SCSI controller,
14298dca37d2SMauro Carvalho Chehabyou must ensure that lines of the wide part of the SCSI BUS are pulled-up.
14308dca37d2SMauro Carvalho ChehabThis can be achieved by ENABLING the WIDE TERMINATOR portion of the SCSI
14318dca37d2SMauro Carvalho Chehabcontroller card.
14328dca37d2SMauro Carvalho Chehab
14338dca37d2SMauro Carvalho ChehabThe TYAN 1365 documentation revision 1.2 is not correct about such settings.
14348dca37d2SMauro Carvalho Chehab(page 10, figure 3.3).
14358dca37d2SMauro Carvalho Chehab
14368dca37d2SMauro Carvalho Chehab14.4 Possible data corruption during a Memory Write and Invalidate
14378dca37d2SMauro Carvalho Chehab------------------------------------------------------------------
14388dca37d2SMauro Carvalho Chehab
14398dca37d2SMauro Carvalho ChehabThis problem is described in SYMBIOS DEL 397, Part Number 69-039241, ITEM 4.
14408dca37d2SMauro Carvalho Chehab
14418dca37d2SMauro Carvalho ChehabIn some complex situations, 53C875 chips revision <= 3 may start a PCI
14428dca37d2SMauro Carvalho ChehabWrite and Invalidate Command at a not cache-line-aligned 4 DWORDS boundary.
14438dca37d2SMauro Carvalho ChehabThis is only possible when Cache Line Size is 8 DWORDS or greater.
14448dca37d2SMauro Carvalho ChehabPentium systems use a 8 DWORDS cache line size and so are concerned by
14458dca37d2SMauro Carvalho Chehabthis chip bug, unlike i486 systems that use a 4 DWORDS cache line size.
14468dca37d2SMauro Carvalho Chehab
14478dca37d2SMauro Carvalho ChehabWhen this situation occurs, the chip may complete the Write and Invalidate
14488dca37d2SMauro Carvalho Chehabcommand after having only filled part of the last cache line involved in
14498dca37d2SMauro Carvalho Chehabthe transfer, leaving to data corruption the remainder of this cache line.
14508dca37d2SMauro Carvalho Chehab
14518dca37d2SMauro Carvalho ChehabNot using Write And Invalidate obviously gets rid of this chip bug, and so
14528dca37d2SMauro Carvalho Chehabit is now the default setting of the driver.
14538dca37d2SMauro Carvalho ChehabHowever, for people like me who want to enable this feature, I have added
14548dca37d2SMauro Carvalho Chehabpart of a work-around suggested by SYMBIOS. This work-around resets the
14558dca37d2SMauro Carvalho Chehabaddressing logic when the DATA IN phase is entered and so prevents the bug
14568dca37d2SMauro Carvalho Chehabfrom being triggered for the first SCSI MOVE of the phase. This work-around
14578dca37d2SMauro Carvalho Chehabshould be enough according to the following:
14588dca37d2SMauro Carvalho Chehab
14598dca37d2SMauro Carvalho ChehabThe only driver internal data structure that is greater than 8 DWORDS  and
14608dca37d2SMauro Carvalho Chehabthat is moved by the SCRIPTS processor is the 'CCB header' that contains
14618dca37d2SMauro Carvalho Chehabthe context of the SCSI transfer. This data structure is aligned on 8 DWORDS
14628dca37d2SMauro Carvalho Chehabboundary (Pentium Cache Line Size), and so is immune to this chip bug, at
14638dca37d2SMauro Carvalho Chehableast on Pentium systems.
14648dca37d2SMauro Carvalho Chehab
14658dca37d2SMauro Carvalho ChehabBut the conditions of this bug can be met when a SCSI read command is
14668dca37d2SMauro Carvalho Chehabperformed using a buffer that is 4 DWORDS but not cache-line aligned.
14678dca37d2SMauro Carvalho ChehabThis cannot happen under Linux when scatter/gather lists are used since
14688dca37d2SMauro Carvalho Chehabthey only refer to system buffers that are well aligned. So, a work around
14698dca37d2SMauro Carvalho Chehabmay only be needed under Linux when a scatter/gather list is not used and
14708dca37d2SMauro Carvalho Chehabwhen the SCSI DATA IN phase is reentered after a phase mismatch.
14718dca37d2SMauro Carvalho Chehab
14728dca37d2SMauro Carvalho Chehab15. SCSI problem troubleshooting
14738dca37d2SMauro Carvalho Chehab================================
14748dca37d2SMauro Carvalho Chehab
14758dca37d2SMauro Carvalho Chehab15.1 Problem tracking
14768dca37d2SMauro Carvalho Chehab---------------------
14778dca37d2SMauro Carvalho Chehab
14788dca37d2SMauro Carvalho ChehabMost SCSI problems are due to a non conformant SCSI bus or to buggy
14798dca37d2SMauro Carvalho Chehabdevices.  If unfortunately you have SCSI problems, you can check the
14808dca37d2SMauro Carvalho Chehabfollowing things:
14818dca37d2SMauro Carvalho Chehab
14828dca37d2SMauro Carvalho Chehab- SCSI bus cables
14838dca37d2SMauro Carvalho Chehab- terminations at both end of the SCSI chain
14848dca37d2SMauro Carvalho Chehab- linux syslog messages (some of them may help you)
14858dca37d2SMauro Carvalho Chehab
14868dca37d2SMauro Carvalho ChehabIf you do not find the source of problems, you can configure the
14878dca37d2SMauro Carvalho Chehabdriver with no features enabled.
14888dca37d2SMauro Carvalho Chehab
14898dca37d2SMauro Carvalho Chehab- only asynchronous data transfers
14908dca37d2SMauro Carvalho Chehab- tagged commands disabled
14918dca37d2SMauro Carvalho Chehab- disconnections not allowed
14928dca37d2SMauro Carvalho Chehab
14938dca37d2SMauro Carvalho ChehabNow, if your SCSI bus is ok, your system have every chance to work
14948dca37d2SMauro Carvalho Chehabwith this safe configuration but performances will not be optimal.
14958dca37d2SMauro Carvalho Chehab
14968dca37d2SMauro Carvalho ChehabIf it still fails, then you can send your problem description to
14978dca37d2SMauro Carvalho Chehabappropriate mailing lists or news-groups.  Send me a copy in order to
14988dca37d2SMauro Carvalho Chehabbe sure I will receive it.  Obviously, a bug in the driver code is
14998dca37d2SMauro Carvalho Chehabpossible.
15008dca37d2SMauro Carvalho Chehab
15018dca37d2SMauro Carvalho Chehab     My email address: Gerard Roudier <groudier@free.fr>
15028dca37d2SMauro Carvalho Chehab
15038dca37d2SMauro Carvalho ChehabAllowing disconnections is important if you use several devices on
15048dca37d2SMauro Carvalho Chehabyour SCSI bus but often causes problems with buggy devices.
15058dca37d2SMauro Carvalho ChehabSynchronous data transfers increases throughput of fast devices like
15068dca37d2SMauro Carvalho Chehabhard disks.  Good SCSI hard disks with a large cache gain advantage of
15078dca37d2SMauro Carvalho Chehabtagged commands queuing.
15088dca37d2SMauro Carvalho Chehab
15098dca37d2SMauro Carvalho ChehabTry to enable one feature at a time with control commands.  For example:
15108dca37d2SMauro Carvalho Chehab
15118dca37d2SMauro Carvalho Chehab::
15128dca37d2SMauro Carvalho Chehab
15138dca37d2SMauro Carvalho Chehab    echo "setsync all 25" >/proc/scsi/ncr53c8xx/0
15148dca37d2SMauro Carvalho Chehab
15158dca37d2SMauro Carvalho ChehabWill enable fast synchronous data transfer negotiation for all targets.
15168dca37d2SMauro Carvalho Chehab
15178dca37d2SMauro Carvalho Chehab::
15188dca37d2SMauro Carvalho Chehab
15198dca37d2SMauro Carvalho Chehab    echo "setflag 3" >/proc/scsi/ncr53c8xx/0
15208dca37d2SMauro Carvalho Chehab
15218dca37d2SMauro Carvalho ChehabWill reset flags (no_disc) for target 3, and so will allow it to disconnect
15228dca37d2SMauro Carvalho Chehabthe SCSI Bus.
15238dca37d2SMauro Carvalho Chehab
15248dca37d2SMauro Carvalho Chehab::
15258dca37d2SMauro Carvalho Chehab
15268dca37d2SMauro Carvalho Chehab    echo "settags 3 8" >/proc/scsi/ncr53c8xx/0
15278dca37d2SMauro Carvalho Chehab
15288dca37d2SMauro Carvalho ChehabWill enable tagged command queuing for target 3 if that device supports it.
15298dca37d2SMauro Carvalho Chehab
15308dca37d2SMauro Carvalho ChehabOnce you have found the device and the feature that cause problems, just
15318dca37d2SMauro Carvalho Chehabdisable that feature for that device.
15328dca37d2SMauro Carvalho Chehab
15338dca37d2SMauro Carvalho Chehab15.2 Understanding hardware error reports
15348dca37d2SMauro Carvalho Chehab-----------------------------------------
15358dca37d2SMauro Carvalho Chehab
15368dca37d2SMauro Carvalho ChehabWhen the driver detects an unexpected error condition, it may display a
15378dca37d2SMauro Carvalho Chehabmessage of the following pattern::
15388dca37d2SMauro Carvalho Chehab
15398dca37d2SMauro Carvalho Chehab    sym53c876-0:1: ERROR (0:48) (1-21-65) (f/95) @ (script 7c0:19000000).
15408dca37d2SMauro Carvalho Chehab    sym53c876-0: script cmd = 19000000
15418dca37d2SMauro Carvalho Chehab    sym53c876-0: regdump: da 10 80 95 47 0f 01 07 75 01 81 21 80 01 09 00.
15428dca37d2SMauro Carvalho Chehab
15438dca37d2SMauro Carvalho ChehabSome fields in such a message may help you understand the cause of the
15448dca37d2SMauro Carvalho Chehabproblem, as follows::
15458dca37d2SMauro Carvalho Chehab
15468dca37d2SMauro Carvalho Chehab    sym53c876-0:1: ERROR (0:48) (1-21-65) (f/95) @ (script 7c0:19000000).
15478dca37d2SMauro Carvalho Chehab    ............A.........B.C....D.E..F....G.H.......I.....J...K.......
15488dca37d2SMauro Carvalho Chehab
15498dca37d2SMauro Carvalho ChehabField A : target number.
15508dca37d2SMauro Carvalho Chehab  SCSI ID of the device the controller was talking with at the moment the
15518dca37d2SMauro Carvalho Chehab  error occurs.
15528dca37d2SMauro Carvalho Chehab
15538dca37d2SMauro Carvalho ChehabField B : DSTAT io register (DMA STATUS)
15548dca37d2SMauro Carvalho Chehab  ========   =============================================================
15558dca37d2SMauro Carvalho Chehab  Bit 0x40   MDPE Master Data Parity Error
15568dca37d2SMauro Carvalho Chehab             Data parity error detected on the PCI BUS.
15578dca37d2SMauro Carvalho Chehab  Bit 0x20   BF   Bus Fault
15588dca37d2SMauro Carvalho Chehab             PCI bus fault condition detected
15598dca37d2SMauro Carvalho Chehab  Bit 0x01   IID  Illegal Instruction Detected
15608dca37d2SMauro Carvalho Chehab             Set by the chip when it detects an Illegal Instruction format
15618dca37d2SMauro Carvalho Chehab             on some condition that makes an instruction illegal.
15628dca37d2SMauro Carvalho Chehab  Bit 0x80   DFE Dma Fifo Empty
15638dca37d2SMauro Carvalho Chehab             Pure status bit that does not indicate an error.
15648dca37d2SMauro Carvalho Chehab  ========   =============================================================
15658dca37d2SMauro Carvalho Chehab
15668dca37d2SMauro Carvalho Chehab  If the reported DSTAT value contains a combination of MDPE (0x40),
15678dca37d2SMauro Carvalho Chehab  BF (0x20), then the cause may be likely due to a PCI BUS problem.
15688dca37d2SMauro Carvalho Chehab
15698dca37d2SMauro Carvalho ChehabField C : SIST io register (SCSI Interrupt Status)
15708dca37d2SMauro Carvalho Chehab  ========   ==================================================================
15718dca37d2SMauro Carvalho Chehab  Bit 0x08   SGE  SCSI GROSS ERROR
15728dca37d2SMauro Carvalho Chehab             Indicates that the chip detected a severe error condition
15738dca37d2SMauro Carvalho Chehab             on the SCSI BUS that prevents the SCSI protocol from functioning
15748dca37d2SMauro Carvalho Chehab             properly.
15758dca37d2SMauro Carvalho Chehab  Bit 0x04   UDC  Unexpected Disconnection
15768dca37d2SMauro Carvalho Chehab             Indicates that the device released the SCSI BUS when the chip
15778dca37d2SMauro Carvalho Chehab             was not expecting this to happen. A device may behave so to
15788dca37d2SMauro Carvalho Chehab             indicate the SCSI initiator that an error condition not reportable
15798dca37d2SMauro Carvalho Chehab             using the SCSI protocol has occurred.
15808dca37d2SMauro Carvalho Chehab  Bit 0x02   RST  SCSI BUS Reset
15818dca37d2SMauro Carvalho Chehab             Generally SCSI targets do not reset the SCSI BUS, although any
15828dca37d2SMauro Carvalho Chehab             device on the BUS can reset it at any time.
15838dca37d2SMauro Carvalho Chehab  Bit 0x01   PAR  Parity
15848dca37d2SMauro Carvalho Chehab             SCSI parity error detected.
15858dca37d2SMauro Carvalho Chehab  ========   ==================================================================
15868dca37d2SMauro Carvalho Chehab
15878dca37d2SMauro Carvalho Chehab  On a faulty SCSI BUS, any error condition among SGE (0x08), UDC (0x04) and
15888dca37d2SMauro Carvalho Chehab  PAR (0x01) may be detected by the chip. If your SCSI system sometimes
15898dca37d2SMauro Carvalho Chehab  encounters such error conditions, especially SCSI GROSS ERROR, then a SCSI
15908dca37d2SMauro Carvalho Chehab  BUS problem is likely the cause of these errors.
15918dca37d2SMauro Carvalho Chehab
15928dca37d2SMauro Carvalho ChehabFor fields D,E,F,G and H, you may look into the sym53c8xx_defs.h file
15938dca37d2SMauro Carvalho Chehabthat contains some minimal comments on IO register bits.
15948dca37d2SMauro Carvalho Chehab
15958dca37d2SMauro Carvalho ChehabField D : SOCL  Scsi Output Control Latch
15968dca37d2SMauro Carvalho Chehab          This register reflects the state of the SCSI control lines the
15978dca37d2SMauro Carvalho Chehab          chip want to drive or compare against.
15988dca37d2SMauro Carvalho Chehab
15998dca37d2SMauro Carvalho ChehabField E : SBCL  Scsi Bus Control Lines
16008dca37d2SMauro Carvalho Chehab          Actual value of control lines on the SCSI BUS.
16018dca37d2SMauro Carvalho Chehab
16028dca37d2SMauro Carvalho ChehabField F : SBDL  Scsi Bus Data Lines
16038dca37d2SMauro Carvalho Chehab          Actual value of data lines on the SCSI BUS.
16048dca37d2SMauro Carvalho Chehab
16058dca37d2SMauro Carvalho ChehabField G : SXFER  SCSI Transfer
16068dca37d2SMauro Carvalho Chehab          Contains the setting of the Synchronous Period for output and
16078dca37d2SMauro Carvalho Chehab          the current Synchronous offset (offset 0 means asynchronous).
16088dca37d2SMauro Carvalho Chehab
16098dca37d2SMauro Carvalho ChehabField H : SCNTL3 Scsi Control Register 3
16108dca37d2SMauro Carvalho Chehab          Contains the setting of timing values for both asynchronous and
16118dca37d2SMauro Carvalho Chehab          synchronous data transfers.
16128dca37d2SMauro Carvalho Chehab
16138dca37d2SMauro Carvalho ChehabUnderstanding Fields I, J, K and dumps requires to have good knowledge of
16148dca37d2SMauro Carvalho ChehabSCSI standards, chip cores functionnals and internal driver data structures.
16158dca37d2SMauro Carvalho ChehabYou are not required to decode and understand them, unless you want to help
16168dca37d2SMauro Carvalho Chehabmaintain the driver code.
16178dca37d2SMauro Carvalho Chehab
16188dca37d2SMauro Carvalho Chehab16. Synchronous transfer negotiation tables
16198dca37d2SMauro Carvalho Chehab===========================================
16208dca37d2SMauro Carvalho Chehab
16218dca37d2SMauro Carvalho ChehabTables below have been created by calling the routine the driver uses
16228dca37d2SMauro Carvalho Chehabfor synchronisation negotiation timing calculation and chip setting.
16238dca37d2SMauro Carvalho ChehabThe first table corresponds to Ultra chips 53875 and 53C860 with 80 MHz
16248dca37d2SMauro Carvalho Chehabclock and 5 clock divisors.
16258dca37d2SMauro Carvalho ChehabThe second one has been calculated by setting the scsi clock to 40 Mhz
16268dca37d2SMauro Carvalho Chehaband using 4 clock divisors and so applies to all NCR53C8XX chips in fast
16278dca37d2SMauro Carvalho ChehabSCSI-2 mode.
16288dca37d2SMauro Carvalho Chehab
16298dca37d2SMauro Carvalho ChehabPeriods are in nano-seconds and speeds are in Mega-transfers per second.
16308dca37d2SMauro Carvalho Chehab1 Mega-transfers/second means 1 MB/s with 8 bits SCSI and 2 MB/s with
16318dca37d2SMauro Carvalho ChehabWide16 SCSI.
16328dca37d2SMauro Carvalho Chehab
16338dca37d2SMauro Carvalho Chehab16.1 Synchronous timings for 53C895, 53C875 and 53C860 SCSI controllers
16348dca37d2SMauro Carvalho Chehab
16358dca37d2SMauro Carvalho Chehab+-----------------------------+--------+-------+--------------+
16368dca37d2SMauro Carvalho Chehab|Negotiated                   |NCR settings    |              |
16378dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+              |
16388dca37d2SMauro Carvalho Chehab|Factor |Period  |Speed       |Period  |Speed  |              |
16398dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16408dca37d2SMauro Carvalho Chehab|10     | 25     |40.000      | 25     |40.000 | (53C895 only)|
16418dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16428dca37d2SMauro Carvalho Chehab|11     | 30.2   |33.112      | 31.25  |32.000 | (53C895 only)|
16438dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16448dca37d2SMauro Carvalho Chehab|12     | 50     |20.000      | 50     |20.000 |              |
16458dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16468dca37d2SMauro Carvalho Chehab|13     | 52     |19.230      | 62     |16.000 |              |
16478dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16488dca37d2SMauro Carvalho Chehab|14     | 56     |17.857      | 62     |16.000 |              |
16498dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16508dca37d2SMauro Carvalho Chehab|15     | 60     |16.666      | 62     |16.000 |              |
16518dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16528dca37d2SMauro Carvalho Chehab|16     | 64     |15.625      | 75     |13.333 |              |
16538dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16548dca37d2SMauro Carvalho Chehab|17     | 68     |14.705      | 75     |13.333 |              |
16558dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16568dca37d2SMauro Carvalho Chehab|18     | 72     |13.888      | 75     |13.333 |              |
16578dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16588dca37d2SMauro Carvalho Chehab|19     | 76     |13.157      | 87     |11.428 |              |
16598dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16608dca37d2SMauro Carvalho Chehab|20     | 80     |12.500      | 87     |11.428 |              |
16618dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16628dca37d2SMauro Carvalho Chehab|21     | 84     |11.904      | 87     |11.428 |              |
16638dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16648dca37d2SMauro Carvalho Chehab|22     | 88     |11.363      | 93     |10.666 |              |
16658dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16668dca37d2SMauro Carvalho Chehab|23     | 92     |10.869      | 93     |10.666 |              |
16678dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16688dca37d2SMauro Carvalho Chehab|24     | 96     |10.416      |100     |10.000 |              |
16698dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16708dca37d2SMauro Carvalho Chehab|25     |100     |10.000      |100     |10.000 |              |
16718dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16728dca37d2SMauro Carvalho Chehab|26     |104     | 9.615      |112     | 8.888 |              |
16738dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16748dca37d2SMauro Carvalho Chehab|27     |108     | 9.259      |112     | 8.888 |              |
16758dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16768dca37d2SMauro Carvalho Chehab|28     |112     | 8.928      |112     | 8.888 |              |
16778dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16788dca37d2SMauro Carvalho Chehab|29     |116     | 8.620      |125     | 8.000 |              |
16798dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16808dca37d2SMauro Carvalho Chehab|30     |120     | 8.333      |125     | 8.000 |              |
16818dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16828dca37d2SMauro Carvalho Chehab|31     |124     | 8.064      |125     | 8.000 |              |
16838dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16848dca37d2SMauro Carvalho Chehab|32     |128     | 7.812      |131     | 7.619 |              |
16858dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16868dca37d2SMauro Carvalho Chehab|33     |132     | 7.575      |150     | 6.666 |              |
16878dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16888dca37d2SMauro Carvalho Chehab|34     |136     | 7.352      |150     | 6.666 |              |
16898dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16908dca37d2SMauro Carvalho Chehab|35     |140     | 7.142      |150     | 6.666 |              |
16918dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16928dca37d2SMauro Carvalho Chehab|36     |144     | 6.944      |150     | 6.666 |              |
16938dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16948dca37d2SMauro Carvalho Chehab|37     |148     | 6.756      |150     | 6.666 |              |
16958dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16968dca37d2SMauro Carvalho Chehab|38     |152     | 6.578      |175     | 5.714 |              |
16978dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
16988dca37d2SMauro Carvalho Chehab|39     |156     | 6.410      |175     | 5.714 |              |
16998dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
17008dca37d2SMauro Carvalho Chehab|40     |160     | 6.250      |175     | 5.714 |              |
17018dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
17028dca37d2SMauro Carvalho Chehab|41     |164     | 6.097      |175     | 5.714 |              |
17038dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
17048dca37d2SMauro Carvalho Chehab|42     |168     | 5.952      |175     | 5.714 |              |
17058dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
17068dca37d2SMauro Carvalho Chehab|43     |172     | 5.813      |175     | 5.714 |              |
17078dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
17088dca37d2SMauro Carvalho Chehab|44     |176     | 5.681      |187     | 5.333 |              |
17098dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
17108dca37d2SMauro Carvalho Chehab|45     |180     | 5.555      |187     | 5.333 |              |
17118dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
17128dca37d2SMauro Carvalho Chehab|46     |184     | 5.434      |187     | 5.333 |              |
17138dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
17148dca37d2SMauro Carvalho Chehab|47     |188     | 5.319      |200     | 5.000 |              |
17158dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
17168dca37d2SMauro Carvalho Chehab|48     |192     | 5.208      |200     | 5.000 |              |
17178dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
17188dca37d2SMauro Carvalho Chehab|49     |196     | 5.102      |200     | 5.000 |              |
17198dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+--------------+
17208dca37d2SMauro Carvalho Chehab
17218dca37d2SMauro Carvalho Chehab16.2 Synchronous timings for fast SCSI-2 53C8XX controllers
17228dca37d2SMauro Carvalho Chehab
17238dca37d2SMauro Carvalho Chehab+-----------------------------+----------------+
17248dca37d2SMauro Carvalho Chehab|Negotiated                   |NCR settings    |
17258dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17268dca37d2SMauro Carvalho Chehab|Factor |Period  |Speed       |Period  |Speed  |
17278dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17288dca37d2SMauro Carvalho Chehab|25     |100     |10.000      |100     |10.000 |
17298dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17308dca37d2SMauro Carvalho Chehab|26     |104     |9.615       |125     | 8.000 |
17318dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17328dca37d2SMauro Carvalho Chehab|27     |108     |9.259       |125     | 8.000 |
17338dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17348dca37d2SMauro Carvalho Chehab|28     |112     |8.928       |125     | 8.000 |
17358dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17368dca37d2SMauro Carvalho Chehab|29     |116     |8.620       |125     | 8.000 |
17378dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17388dca37d2SMauro Carvalho Chehab|30     |120     |8.333       |125     | 8.000 |
17398dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17408dca37d2SMauro Carvalho Chehab|31     |124     |8.064       |125     | 8.000 |
17418dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17428dca37d2SMauro Carvalho Chehab|32     |128     |7.812       |131     | 7.619 |
17438dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17448dca37d2SMauro Carvalho Chehab|33     |132     |7.575       |150     | 6.666 |
17458dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17468dca37d2SMauro Carvalho Chehab|34     |136     |7.352       |150     | 6.666 |
17478dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17488dca37d2SMauro Carvalho Chehab|35     |140     |7.142       |150     | 6.666 |
17498dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17508dca37d2SMauro Carvalho Chehab|36     |144     |6.944       |150     | 6.666 |
17518dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17528dca37d2SMauro Carvalho Chehab|37     |148     |6.756       |150     | 6.666 |
17538dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17548dca37d2SMauro Carvalho Chehab|38     |152     |6.578       |175     | 5.714 |
17558dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17568dca37d2SMauro Carvalho Chehab|39     |156     |6.410       |175     | 5.714 |
17578dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17588dca37d2SMauro Carvalho Chehab|40     |160     |6.250       |175     | 5.714 |
17598dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17608dca37d2SMauro Carvalho Chehab|41     |164     |6.097       |175     | 5.714 |
17618dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17628dca37d2SMauro Carvalho Chehab|42     |168     |5.952       |175     | 5.714 |
17638dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17648dca37d2SMauro Carvalho Chehab|43     |172     |5.813       |175     | 5.714 |
17658dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17668dca37d2SMauro Carvalho Chehab|44     |176     |5.681       |187     | 5.333 |
17678dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17688dca37d2SMauro Carvalho Chehab|45     |180     |5.555       |187     | 5.333 |
17698dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17708dca37d2SMauro Carvalho Chehab|46     |184     |5.434       |187     | 5.333 |
17718dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17728dca37d2SMauro Carvalho Chehab|47     |188     |5.319       |200     | 5.000 |
17738dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17748dca37d2SMauro Carvalho Chehab|48     |192     |5.208       |200     | 5.000 |
17758dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17768dca37d2SMauro Carvalho Chehab|49     |196     |5.102       |200     | 5.000 |
17778dca37d2SMauro Carvalho Chehab+-------+--------+------------+--------+-------+
17788dca37d2SMauro Carvalho Chehab
17798dca37d2SMauro Carvalho Chehab
17808dca37d2SMauro Carvalho Chehab17. Serial NVRAM
17818dca37d2SMauro Carvalho Chehab================
17828dca37d2SMauro Carvalho Chehab
17838dca37d2SMauro Carvalho Chehab(added by Richard Waltham: dormouse@farsrobt.demon.co.uk)
17848dca37d2SMauro Carvalho Chehab
17858dca37d2SMauro Carvalho Chehab17.1 Features
17868dca37d2SMauro Carvalho Chehab-------------
17878dca37d2SMauro Carvalho Chehab
17888dca37d2SMauro Carvalho ChehabEnabling serial NVRAM support enables detection of the serial NVRAM included
17898dca37d2SMauro Carvalho Chehabon Symbios and some Symbios compatible host adaptors, and Tekram boards. The
17908dca37d2SMauro Carvalho Chehabserial NVRAM is used by Symbios and Tekram to hold set up parameters for the
17918dca37d2SMauro Carvalho Chehabhost adaptor and its attached drives.
17928dca37d2SMauro Carvalho Chehab
17938dca37d2SMauro Carvalho ChehabThe Symbios NVRAM also holds data on the boot order of host adaptors in a
17948dca37d2SMauro Carvalho Chehabsystem with more than one host adaptor. This enables the order of scanning
17958dca37d2SMauro Carvalho Chehabthe cards for drives to be changed from the default used during host adaptor
17968dca37d2SMauro Carvalho Chehabdetection.
17978dca37d2SMauro Carvalho Chehab
17988dca37d2SMauro Carvalho ChehabThis can be done to a limited extent at the moment using "reverse probe" but
17998dca37d2SMauro Carvalho Chehabthis only changes the order of detection of different types of cards. The
18008dca37d2SMauro Carvalho ChehabNVRAM boot order settings can do this as well as change the order the same
18018dca37d2SMauro Carvalho Chehabtypes of cards are scanned in, something "reverse probe" cannot do.
18028dca37d2SMauro Carvalho Chehab
18038dca37d2SMauro Carvalho ChehabTekram boards using Symbios chips, DC390W/F/U, which have NVRAM are detected
18048dca37d2SMauro Carvalho Chehaband this is used to distinguish between Symbios compatible and Tekram host
18058dca37d2SMauro Carvalho Chehabadaptors. This is used to disable the Symbios compatible "diff" setting
18068dca37d2SMauro Carvalho Chehabincorrectly set on Tekram boards if the CONFIG_SCSI_53C8XX_SYMBIOS_COMPAT
18078dca37d2SMauro Carvalho Chehabconfiguration parameter is set enabling both Symbios and Tekram boards to be
18088dca37d2SMauro Carvalho Chehabused together with the Symbios cards using all their features, including
18098dca37d2SMauro Carvalho Chehab"diff" support. ("led pin" support for Symbios compatible cards can remain
18108dca37d2SMauro Carvalho Chehabenabled when using Tekram cards. It does nothing useful for Tekram host
18118dca37d2SMauro Carvalho Chehabadaptors but does not cause problems either.)
18128dca37d2SMauro Carvalho Chehab
18138dca37d2SMauro Carvalho Chehab
18148dca37d2SMauro Carvalho Chehab17.2 Symbios NVRAM layout
18158dca37d2SMauro Carvalho Chehab-------------------------
18168dca37d2SMauro Carvalho Chehab
18178dca37d2SMauro Carvalho Chehabtypical data at NVRAM address 0x100 (53c810a NVRAM)::
18188dca37d2SMauro Carvalho Chehab
18198dca37d2SMauro Carvalho Chehab    00 00
18208dca37d2SMauro Carvalho Chehab    64 01
18218dca37d2SMauro Carvalho Chehab    8e 0b
18228dca37d2SMauro Carvalho Chehab
18238dca37d2SMauro Carvalho Chehab    00 30 00 00 00 00 07 00 00 00 00 00 00 00 07 04 10 04 00 00
18248dca37d2SMauro Carvalho Chehab
18258dca37d2SMauro Carvalho Chehab    04 00 0f 00 00 10 00 50 00 00 01 00 00 62
18268dca37d2SMauro Carvalho Chehab    04 00 03 00 00 10 00 58 00 00 01 00 00 63
18278dca37d2SMauro Carvalho Chehab    04 00 01 00 00 10 00 48 00 00 01 00 00 61
18288dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00 00 00 00 00 00 00
18298dca37d2SMauro Carvalho Chehab
18308dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
18318dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
18328dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
18338dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
18348dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
18358dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
18368dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
18378dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
18388dca37d2SMauro Carvalho Chehab
18398dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
18408dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
18418dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
18428dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
18438dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
18448dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
18458dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
18468dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
18478dca37d2SMauro Carvalho Chehab
18488dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18498dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18508dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18518dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18528dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18538dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18548dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18558dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18568dca37d2SMauro Carvalho Chehab
18578dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18588dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18598dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18608dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18618dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18628dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18638dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18648dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18658dca37d2SMauro Carvalho Chehab
18668dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18678dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18688dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
18698dca37d2SMauro Carvalho Chehab
18708dca37d2SMauro Carvalho Chehab    fe fe
18718dca37d2SMauro Carvalho Chehab    00 00
18728dca37d2SMauro Carvalho Chehab    00 00
18738dca37d2SMauro Carvalho Chehab
18748dca37d2SMauro Carvalho ChehabNVRAM layout details
18758dca37d2SMauro Carvalho Chehab
18768dca37d2SMauro Carvalho Chehab=============  ================
18778dca37d2SMauro Carvalho ChehabNVRAM Address
18788dca37d2SMauro Carvalho Chehab=============  ================
18798dca37d2SMauro Carvalho Chehab0x000-0x0ff    not used
18808dca37d2SMauro Carvalho Chehab0x100-0x26f    initialised data
18818dca37d2SMauro Carvalho Chehab0x270-0x7ff    not used
18828dca37d2SMauro Carvalho Chehab=============  ================
18838dca37d2SMauro Carvalho Chehab
18848dca37d2SMauro Carvalho Chehabgeneral layout::
18858dca37d2SMauro Carvalho Chehab
18868dca37d2SMauro Carvalho Chehab        header  -   6 bytes,
18878dca37d2SMauro Carvalho Chehab        data    - 356 bytes (checksum is byte sum of this data)
18888dca37d2SMauro Carvalho Chehab        trailer -   6 bytes
18898dca37d2SMauro Carvalho Chehab                  ---
18908dca37d2SMauro Carvalho Chehab        total     368 bytes
18918dca37d2SMauro Carvalho Chehab
18928dca37d2SMauro Carvalho Chehabdata area layout::
18938dca37d2SMauro Carvalho Chehab
18948dca37d2SMauro Carvalho Chehab        controller set up  -  20 bytes
18958dca37d2SMauro Carvalho Chehab        boot configuration -  56 bytes (4x14 bytes)
18968dca37d2SMauro Carvalho Chehab        device set up      - 128 bytes (16x8 bytes)
18978dca37d2SMauro Carvalho Chehab        unused (spare?)    - 152 bytes (19x8 bytes)
18988dca37d2SMauro Carvalho Chehab                             ---
18998dca37d2SMauro Carvalho Chehab        total                356 bytes
19008dca37d2SMauro Carvalho Chehab
19018dca37d2SMauro Carvalho Chehabheader::
19028dca37d2SMauro Carvalho Chehab
19038dca37d2SMauro Carvalho Chehab    00 00   - ?? start marker
19048dca37d2SMauro Carvalho Chehab    64 01   - byte count (lsb/msb excludes header/trailer)
19058dca37d2SMauro Carvalho Chehab    8e 0b   - checksum (lsb/msb excludes header/trailer)
19068dca37d2SMauro Carvalho Chehab
19078dca37d2SMauro Carvalho Chehabcontroller set up::
19088dca37d2SMauro Carvalho Chehab
19098dca37d2SMauro Carvalho Chehab    00 30 00 00 00 00 07 00 00 00 00 00 00 00 07 04 10 04 00 00
19108dca37d2SMauro Carvalho Chehab		    |     |           |     |
19118dca37d2SMauro Carvalho Chehab		    |     |           |      -- host ID
19128dca37d2SMauro Carvalho Chehab		    |     |           |
19138dca37d2SMauro Carvalho Chehab		    |     |            --Removable Media Support
19148dca37d2SMauro Carvalho Chehab		    |     |               0x00 = none
19158dca37d2SMauro Carvalho Chehab		    |     |               0x01 = Bootable Device
19168dca37d2SMauro Carvalho Chehab		    |     |               0x02 = All with Media
19178dca37d2SMauro Carvalho Chehab		    |     |
19188dca37d2SMauro Carvalho Chehab		    |      --flag bits 2
19198dca37d2SMauro Carvalho Chehab		    |        0x00000001= scan order hi->low
19208dca37d2SMauro Carvalho Chehab		    |            (default 0x00 - scan low->hi)
19218dca37d2SMauro Carvalho Chehab			--flag bits 1
19228dca37d2SMauro Carvalho Chehab			0x00000001 scam enable
19238dca37d2SMauro Carvalho Chehab			0x00000010 parity enable
19248dca37d2SMauro Carvalho Chehab			0x00000100 verbose boot msgs
19258dca37d2SMauro Carvalho Chehab
19268dca37d2SMauro Carvalho Chehabremaining bytes unknown - they do not appear to change in my
19278dca37d2SMauro Carvalho Chehabcurrent set up for any of the controllers.
19288dca37d2SMauro Carvalho Chehab
19298dca37d2SMauro Carvalho Chehabdefault set up is identical for 53c810a and 53c875 NVRAM
19308dca37d2SMauro Carvalho Chehab(Removable Media added Symbios BIOS version 4.09)
19318dca37d2SMauro Carvalho Chehab
19328dca37d2SMauro Carvalho Chehabboot configuration
19338dca37d2SMauro Carvalho Chehab
19348dca37d2SMauro Carvalho Chehabboot order set by order of the devices in this table::
19358dca37d2SMauro Carvalho Chehab
19368dca37d2SMauro Carvalho Chehab    04 00 0f 00 00 10 00 50 00 00 01 00 00 62 -- 1st controller
19378dca37d2SMauro Carvalho Chehab    04 00 03 00 00 10 00 58 00 00 01 00 00 63    2nd controller
19388dca37d2SMauro Carvalho Chehab    04 00 01 00 00 10 00 48 00 00 01 00 00 61    3rd controller
19398dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00 00 00 00 00 00 00    4th controller
19408dca37d2SMauro Carvalho Chehab	|  |  |  |     |        |     |  |
19418dca37d2SMauro Carvalho Chehab	|  |  |  |     |        |      ---- PCI io port adr
19428dca37d2SMauro Carvalho Chehab	|  |  |  |     |         --0x01 init/scan at boot time
19438dca37d2SMauro Carvalho Chehab	|  |  |  |      --PCI device/function number (0xdddddfff)
19448dca37d2SMauro Carvalho Chehab	|  |   ----- ?? PCI vendor ID (lsb/msb)
19458dca37d2SMauro Carvalho Chehab	    ----PCI device ID (lsb/msb)
19468dca37d2SMauro Carvalho Chehab
19478dca37d2SMauro Carvalho Chehab    ?? use of this data is a guess but seems reasonable
19488dca37d2SMauro Carvalho Chehab
19498dca37d2SMauro Carvalho Chehabremaining bytes unknown - they do not appear to change in my
19508dca37d2SMauro Carvalho Chehabcurrent set up
19518dca37d2SMauro Carvalho Chehab
19528dca37d2SMauro Carvalho Chehabdefault set up is identical for 53c810a and 53c875 NVRAM
19538dca37d2SMauro Carvalho Chehab--------------------------------------------------------
19548dca37d2SMauro Carvalho Chehab
19558dca37d2SMauro Carvalho Chehabdevice set up (up to 16 devices - includes controller)::
19568dca37d2SMauro Carvalho Chehab
19578dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00 - id 0
19588dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
19598dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
19608dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
19618dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
19628dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
19638dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
19648dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
19658dca37d2SMauro Carvalho Chehab
19668dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
19678dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
19688dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
19698dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
19708dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
19718dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
19728dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00
19738dca37d2SMauro Carvalho Chehab    0f 00 08 08 64 00 0a 00 - id 15
19748dca37d2SMauro Carvalho Chehab    |     |  |  |     |  |
19758dca37d2SMauro Carvalho Chehab    |     |  |  |      ----timeout (lsb/msb)
19768dca37d2SMauro Carvalho Chehab    |     |  |   --synch period (0x?? 40 Mtrans/sec- fast 40) (probably 0x28)
19778dca37d2SMauro Carvalho Chehab    |     |  |                  (0x30 20 Mtrans/sec- fast 20)
19788dca37d2SMauro Carvalho Chehab    |     |  |                  (0x64 10 Mtrans/sec- fast )
19798dca37d2SMauro Carvalho Chehab    |     |  |                  (0xc8  5 Mtrans/sec)
19808dca37d2SMauro Carvalho Chehab    |     |  |                  (0x00  asynchronous)
19818dca37d2SMauro Carvalho Chehab    |     |   -- ?? max sync offset (0x08 in NVRAM on 53c810a)
19828dca37d2SMauro Carvalho Chehab    |     |                         (0x10 in NVRAM on 53c875)
19838dca37d2SMauro Carvalho Chehab    |      --device bus width (0x08 narrow)
19848dca37d2SMauro Carvalho Chehab    |                         (0x10 16 bit wide)
19858dca37d2SMauro Carvalho Chehab    --flag bits
19868dca37d2SMauro Carvalho Chehab	0x00000001 - disconnect enabled
19878dca37d2SMauro Carvalho Chehab	0x00000010 - scan at boot time
19888dca37d2SMauro Carvalho Chehab	0x00000100 - scan luns
19898dca37d2SMauro Carvalho Chehab	0x00001000 - queue tags enabled
19908dca37d2SMauro Carvalho Chehab
19918dca37d2SMauro Carvalho Chehabremaining bytes unknown - they do not appear to change in my
19928dca37d2SMauro Carvalho Chehabcurrent set up
19938dca37d2SMauro Carvalho Chehab
19948dca37d2SMauro Carvalho Chehab?? use of this data is a guess but seems reasonable
19958dca37d2SMauro Carvalho Chehab(but it could be max bus width)
19968dca37d2SMauro Carvalho Chehab
19978dca37d2SMauro Carvalho Chehabdefault set up for 53c810a NVRAM
19988dca37d2SMauro Carvalho Chehabdefault set up for 53c875 NVRAM
19998dca37d2SMauro Carvalho Chehab
20008dca37d2SMauro Carvalho Chehab				- bus width     - 0x10
20018dca37d2SMauro Carvalho Chehab                                - sync offset ? - 0x10
20028dca37d2SMauro Carvalho Chehab                                - sync period   - 0x30
20038dca37d2SMauro Carvalho Chehab
20048dca37d2SMauro Carvalho Chehab?? spare device space (32 bit bus ??)
20058dca37d2SMauro Carvalho Chehab
20068dca37d2SMauro Carvalho Chehab::
20078dca37d2SMauro Carvalho Chehab
20088dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00  (19x8bytes)
20098dca37d2SMauro Carvalho Chehab    .
20108dca37d2SMauro Carvalho Chehab    .
20118dca37d2SMauro Carvalho Chehab    00 00 00 00 00 00 00 00
20128dca37d2SMauro Carvalho Chehab
20138dca37d2SMauro Carvalho Chehabdefault set up is identical for 53c810a and 53c875 NVRAM
20148dca37d2SMauro Carvalho Chehab--------------------------------------------------------
20158dca37d2SMauro Carvalho Chehab
20168dca37d2SMauro Carvalho Chehabtrailer::
20178dca37d2SMauro Carvalho Chehab
20188dca37d2SMauro Carvalho Chehab    fe fe   - ? end marker ?
20198dca37d2SMauro Carvalho Chehab    00 00
20208dca37d2SMauro Carvalho Chehab    00 00
20218dca37d2SMauro Carvalho Chehab
20228dca37d2SMauro Carvalho Chehabdefault set up is identical for 53c810a and 53c875 NVRAM
20238dca37d2SMauro Carvalho Chehab-----------------------------------------------------------
20248dca37d2SMauro Carvalho Chehab
20258dca37d2SMauro Carvalho Chehab
20268dca37d2SMauro Carvalho Chehab
20278dca37d2SMauro Carvalho Chehab17.3 Tekram NVRAM layout
20288dca37d2SMauro Carvalho Chehab------------------------
20298dca37d2SMauro Carvalho Chehab
20308dca37d2SMauro Carvalho Chehabnvram 64x16 (1024 bit)
20318dca37d2SMauro Carvalho Chehab
20328dca37d2SMauro Carvalho ChehabDrive settings::
20338dca37d2SMauro Carvalho Chehab
20348dca37d2SMauro Carvalho Chehab    Drive ID 0-15 (addr 0x0yyyy0 = device setup, yyyy = ID)
20358dca37d2SMauro Carvalho Chehab		(addr 0x0yyyy1 = 0x0000)
20368dca37d2SMauro Carvalho Chehab
20378dca37d2SMauro Carvalho Chehab	x x x x  x x x x  x x x x  x x x x
20388dca37d2SMauro Carvalho Chehab		| | |      | |  | | | |
20398dca37d2SMauro Carvalho Chehab		| | |      | |  | | |  ----- parity check   0 - off
20408dca37d2SMauro Carvalho Chehab		| | |      | |  | | |                       1 - on
20418dca37d2SMauro Carvalho Chehab		| | |      | |  | | |
20428dca37d2SMauro Carvalho Chehab		| | |      | |  | |  ------- sync neg       0 - off
20438dca37d2SMauro Carvalho Chehab		| | |      | |  | |                         1 - on
20448dca37d2SMauro Carvalho Chehab		| | |      | |  | |
20458dca37d2SMauro Carvalho Chehab		| | |      | |  |  --------- disconnect     0 - off
20468dca37d2SMauro Carvalho Chehab		| | |      | |  |                           1 - on
20478dca37d2SMauro Carvalho Chehab		| | |      | |  |
20488dca37d2SMauro Carvalho Chehab		| | |      | |   ----------- start cmd      0 - off
20498dca37d2SMauro Carvalho Chehab		| | |      | |                              1 - on
20508dca37d2SMauro Carvalho Chehab		| | |      | |
20518dca37d2SMauro Carvalho Chehab		| | |      |  -------------- tagged cmds    0 - off
20528dca37d2SMauro Carvalho Chehab		| | |      |                                1 - on
20538dca37d2SMauro Carvalho Chehab		| | |      |
20548dca37d2SMauro Carvalho Chehab		| | |       ---------------- wide neg       0 - off
20558dca37d2SMauro Carvalho Chehab		| | |                                       1 - on
20568dca37d2SMauro Carvalho Chehab		| | |
20578dca37d2SMauro Carvalho Chehab		    --------------------------- sync rate      0 - 10.0 Mtrans/sec
20588dca37d2SMauro Carvalho Chehab							    1 -  8.0
20598dca37d2SMauro Carvalho Chehab							    2 -  6.6
20608dca37d2SMauro Carvalho Chehab							    3 -  5.7
20618dca37d2SMauro Carvalho Chehab							    4 -  5.0
20628dca37d2SMauro Carvalho Chehab							    5 -  4.0
20638dca37d2SMauro Carvalho Chehab							    6 -  3.0
20648dca37d2SMauro Carvalho Chehab							    7 -  2.0
20658dca37d2SMauro Carvalho Chehab							    7 -  2.0
20668dca37d2SMauro Carvalho Chehab							    8 - 20.0
20678dca37d2SMauro Carvalho Chehab							    9 - 16.7
20688dca37d2SMauro Carvalho Chehab							    a - 13.9
20698dca37d2SMauro Carvalho Chehab							    b - 11.9
20708dca37d2SMauro Carvalho Chehab
20718dca37d2SMauro Carvalho ChehabGlobal settings
20728dca37d2SMauro Carvalho Chehab
20738dca37d2SMauro Carvalho ChehabHost flags 0 (addr 0x100000, 32)::
20748dca37d2SMauro Carvalho Chehab
20758dca37d2SMauro Carvalho Chehab    x x x x  x x x x  x x x x  x x x x
20768dca37d2SMauro Carvalho Chehab    | | | |  | | | |           | | | |
20778dca37d2SMauro Carvalho Chehab    | | | |  | | | |            ----------- host ID    0x00 - 0x0f
20788dca37d2SMauro Carvalho Chehab    | | | |  | | | |
20798dca37d2SMauro Carvalho Chehab    | | | |  | | |  ----------------------- support for    0 - off
20808dca37d2SMauro Carvalho Chehab    | | | |  | | |                          > 2 drives     1 - on
20818dca37d2SMauro Carvalho Chehab    | | | |  | | |
20828dca37d2SMauro Carvalho Chehab    | | | |  | |  ------------------------- support drives 0 - off
20838dca37d2SMauro Carvalho Chehab    | | | |  | |                            > 1Gbytes      1 - on
20848dca37d2SMauro Carvalho Chehab    | | | |  | |
20858dca37d2SMauro Carvalho Chehab    | | | |  |  --------------------------- bus reset on   0 - off
20868dca37d2SMauro Carvalho Chehab    | | | |  |                                power on     1 - on
20878dca37d2SMauro Carvalho Chehab    | | | |  |
20888dca37d2SMauro Carvalho Chehab    | | | |   ----------------------------- active neg     0 - off
20898dca37d2SMauro Carvalho Chehab    | | | |                                                1 - on
20908dca37d2SMauro Carvalho Chehab    | | | |
20918dca37d2SMauro Carvalho Chehab    | | |  -------------------------------- imm seek       0 - off
20928dca37d2SMauro Carvalho Chehab    | | |                                                  1 - on
20938dca37d2SMauro Carvalho Chehab    | | |
20948dca37d2SMauro Carvalho Chehab    | |  ---------------------------------- scan luns      0 - off
20958dca37d2SMauro Carvalho Chehab    | |                                                    1 - on
20968dca37d2SMauro Carvalho Chehab    | |
20978dca37d2SMauro Carvalho Chehab     -------------------------------------- removable      0 - disable
20988dca37d2SMauro Carvalho Chehab                                            as BIOS dev    1 - boot device
20998dca37d2SMauro Carvalho Chehab                                                           2 - all
21008dca37d2SMauro Carvalho Chehab
21018dca37d2SMauro Carvalho ChehabHost flags 1 (addr 0x100001, 33)::
21028dca37d2SMauro Carvalho Chehab
21038dca37d2SMauro Carvalho Chehab    x x x x  x x x x  x x x x  x x x x
21048dca37d2SMauro Carvalho Chehab               | | |             | | |
21058dca37d2SMauro Carvalho Chehab               | | |              --------- boot delay     0 -   3 sec
21068dca37d2SMauro Carvalho Chehab               | | |                                       1 -   5
21078dca37d2SMauro Carvalho Chehab               | | |                                       2 -  10
21088dca37d2SMauro Carvalho Chehab               | | |                                       3 -  20
21098dca37d2SMauro Carvalho Chehab               | | |                                       4 -  30
21108dca37d2SMauro Carvalho Chehab               | | |                                       5 -  60
21118dca37d2SMauro Carvalho Chehab               | | |                                       6 - 120
21128dca37d2SMauro Carvalho Chehab               | | |
21138dca37d2SMauro Carvalho Chehab                --------------------------- max tag cmds   0 -  2
21148dca37d2SMauro Carvalho Chehab                                                           1 -  4
21158dca37d2SMauro Carvalho Chehab                                                           2 -  8
21168dca37d2SMauro Carvalho Chehab                                                           3 - 16
21178dca37d2SMauro Carvalho Chehab                                                           4 - 32
21188dca37d2SMauro Carvalho Chehab
21198dca37d2SMauro Carvalho ChehabHost flags 2 (addr 0x100010, 34)::
21208dca37d2SMauro Carvalho Chehab
21218dca37d2SMauro Carvalho Chehab    x x x x  x x x x  x x x x  x x x x
21228dca37d2SMauro Carvalho Chehab                                     |
21238dca37d2SMauro Carvalho Chehab                                      ----- F2/F6 enable   0 - off ???
21248dca37d2SMauro Carvalho Chehab                                                           1 - on  ???
21258dca37d2SMauro Carvalho Chehab
21268dca37d2SMauro Carvalho Chehabchecksum (addr 0x111111)
21278dca37d2SMauro Carvalho Chehab
21288dca37d2SMauro Carvalho Chehabchecksum = 0x1234 - (sum addr 0-63)
21298dca37d2SMauro Carvalho Chehab
21308dca37d2SMauro Carvalho Chehab----------------------------------------------------------------------------
21318dca37d2SMauro Carvalho Chehab
21328dca37d2SMauro Carvalho Chehabdefault nvram data::
21338dca37d2SMauro Carvalho Chehab
21348dca37d2SMauro Carvalho Chehab    0x0037 0x0000 0x0037 0x0000 0x0037 0x0000 0x0037 0x0000
21358dca37d2SMauro Carvalho Chehab    0x0037 0x0000 0x0037 0x0000 0x0037 0x0000 0x0037 0x0000
21368dca37d2SMauro Carvalho Chehab    0x0037 0x0000 0x0037 0x0000 0x0037 0x0000 0x0037 0x0000
21378dca37d2SMauro Carvalho Chehab    0x0037 0x0000 0x0037 0x0000 0x0037 0x0000 0x0037 0x0000
21388dca37d2SMauro Carvalho Chehab
21398dca37d2SMauro Carvalho Chehab    0x0f07 0x0400 0x0001 0x0000 0x0000 0x0000 0x0000 0x0000
21408dca37d2SMauro Carvalho Chehab    0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
21418dca37d2SMauro Carvalho Chehab    0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
21428dca37d2SMauro Carvalho Chehab    0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0xfbbc
21438dca37d2SMauro Carvalho Chehab
21448dca37d2SMauro Carvalho Chehab
21458dca37d2SMauro Carvalho Chehab18. Support for Big Endian
21468dca37d2SMauro Carvalho Chehab==========================
21478dca37d2SMauro Carvalho Chehab
21488dca37d2SMauro Carvalho ChehabThe PCI local bus has been primarily designed for x86 architecture.
21498dca37d2SMauro Carvalho ChehabAs a consequence, PCI devices generally expect DWORDS using little endian
21508dca37d2SMauro Carvalho Chehabbyte ordering.
21518dca37d2SMauro Carvalho Chehab
21528dca37d2SMauro Carvalho Chehab18.1 Big Endian CPU
21538dca37d2SMauro Carvalho Chehab-------------------
21548dca37d2SMauro Carvalho Chehab
21558dca37d2SMauro Carvalho ChehabIn order to support NCR chips on a Big Endian architecture the driver has to
21568dca37d2SMauro Carvalho Chehabperform byte reordering each time it is needed. This feature has been
21578dca37d2SMauro Carvalho Chehabadded to the driver by Cort <cort@cs.nmt.edu> and is available in driver
21588dca37d2SMauro Carvalho Chehabversion 2.5 and later ones. For the moment Big Endian support has only
21598dca37d2SMauro Carvalho Chehabbeen tested on Linux/PPC (PowerPC).
21608dca37d2SMauro Carvalho Chehab
21618dca37d2SMauro Carvalho Chehab18.2 NCR chip in Big Endian mode of operations
21628dca37d2SMauro Carvalho Chehab----------------------------------------------
21638dca37d2SMauro Carvalho Chehab
21648dca37d2SMauro Carvalho ChehabIt can be read in SYMBIOS documentation that some chips support a special
21658dca37d2SMauro Carvalho ChehabBig Endian mode, on paper: 53C815, 53C825A, 53C875, 53C875N, 53C895.
21668dca37d2SMauro Carvalho ChehabThis mode of operations is not software-selectable, but needs pin named
21678dca37d2SMauro Carvalho ChehabBigLit to be pulled-up. Using this mode, most of byte reorderings should
21688dca37d2SMauro Carvalho Chehabbe avoided when the driver is running on a Big Endian CPU.
21698dca37d2SMauro Carvalho ChehabDriver version 2.5 is also, in theory, ready for this feature.
2170