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