⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ncr53c8xx.txt

📁 linux 内核源代码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
The Linux NCR53C8XX/SYM53C8XX drivers README fileWritten by Gerard Roudier <groudier@free.fr>21 Rue Carnot95170 DEUIL LA BARRE - FRANCE29 May 1999===============================================================================1.  Introduction2.  Supported chips and SCSI features3.  Advantages of the enhanced 896 driver      3.1 Optimized SCSI SCRIPTS      3.2 New features of the SYM53C896 (64 bit PCI dual LVD SCSI controller)4.  Memory mapped I/O versus normal I/O5.  Tagged command queueing6.  Parity checking7.  Profiling information8.  Control commands      8.1  Set minimum synchronous period      8.2  Set wide size      8.3  Set maximum number of concurrent tagged commands      8.4  Set order type for tagged command      8.5  Set debug mode      8.6  Clear profile counters      8.7  Set flag (no_disc)      8.8  Set verbose level      8.9  Reset all logical units of a target      8.10 Abort all tasks of all logical units of a target9.  Configuration parameters10. Boot setup commands      10.1 Syntax      10.2 Available arguments             10.2.1  Master parity checking             10.2.2  Scsi parity checking             10.2.3  Scsi disconnections             10.2.4  Special features             10.2.5  Ultra SCSI support             10.2.6  Default number of tagged commands             10.2.7  Default synchronous period factor             10.2.8  Negotiate synchronous with all devices             10.2.9  Verbosity level             10.2.10 Debug mode             10.2.11 Burst max             10.2.12 LED support             10.2.13 Max wide             10.2.14 Differential mode             10.2.15 IRQ mode             10.2.16 Reverse probe             10.2.17 Fix up PCI configuration space             10.2.18 Serial NVRAM             10.2.19 Check SCSI BUS              10.2.20 Exclude a host from being attached             10.2.21 Suggest a default SCSI id for hosts             10.2.22 Enable use of IMMEDIATE ARBITRATION      10.3 Advised boot setup commands      10.4 PCI configuration fix-up boot option      10.5 Serial NVRAM support boot option      10.6 SCSI BUS checking boot option      10.7 IMMEDIATE ARBITRATION boot option11. Some constants and flags of the ncr53c8xx.h header file12. Installation13. Architecture dependent features14. Known problems      14.1 Tagged commands with Iomega Jaz device      14.2 Device names change when another controller is added      14.3 Using only 8 bit devices with a WIDE SCSI controller.      14.4 Possible data corruption during a Memory Write and Invalidate      14.5 IRQ sharing problems15. SCSI problem troubleshooting      15.1 Problem tracking      15.2 Understanding hardware error reports16. Synchronous transfer negotiation tables      16.1 Synchronous timings for 53C875 and 53C860 Ultra-SCSI controllers      16.2 Synchronous timings for fast SCSI-2 53C8XX controllers17. Serial NVRAM support (by Richard Waltham)      17.1 Features      17.2 Symbios NVRAM layout      17.3 Tekram  NVRAM layout18. Support for Big Endian      18.1 Big Endian CPU      18.2 NCR chip in Big Endian mode of operations===============================================================================1. IntroductionThe initial Linux ncr53c8xx driver has been a port of the ncr driver from FreeBSD that has been achieved in November 1995 by:          Gerard Roudier              <groudier@free.fr>The original driver has been written for 386bsd and FreeBSD by:          Wolfgang Stanglmeier        <wolf@cologne.de>          Stefan Esser                <se@mi.Uni-Koeln.de>It is now available as a bundle of 2 drivers:- ncr53c8xx generic driver that supports all the SYM53C8XX family including   the earliest 810 rev. 1, the latest 896 (2 channel LVD SCSI controller) and  the new 895A (1 channel LVD SCSI controller).- sym53c8xx enhanced driver (a.k.a. 896 drivers) that drops support of oldest   chips in order to gain advantage of new features, as LOAD/STORE instructions   available since the 810A and hardware phase mismatch available with the   896 and the 895A.You can find technical information about the NCR 8xx family in thePCI-HOWTO written by Michael Will and in the SCSI-HOWTO written byDrew Eckhardt.Information about new chips is available at LSILOGIC web server:          http://www.lsilogic.com/SCSI standard documentations are available at SYMBIOS ftp server:          ftp://ftp.symbios.com/Useful SCSI tools written by Eric Youngdale are available at tsx-11:          ftp://tsx-11.mit.edu/pub/linux/ALPHA/scsi/scsiinfo-X.Y.tar.gz          ftp://tsx-11.mit.edu/pub/linux/ALPHA/scsi/scsidev-X.Y.tar.gzThese tools are not ALPHA but quite clean and work quite well.It is essential you have the 'scsiinfo' package.This short documentation describes the features of the generic and enhanceddrivers, configuration parameters and control commands available through the proc SCSI file system read / write operations.This driver has been tested OK with linux/i386, Linux/Alpha and Linux/PPC.Latest driver version and patches are available at:          ftp://ftp.tux.org/pub/people/gerard-roudieror          ftp://ftp.symbios.com/mirror/ftp.tux.org/pub/tux/roudier/driversI am not a native speaker of English and there are probably lots ofmistakes in this README file. Any help will be welcome.2. Supported chips and SCSI featuresThe following features are supported for all chips:	Synchronous negotiation	Disconnection	Tagged command queuing	SCSI parity checking	Master parity checking"Wide negotiation" is supported for chips that allow it.  Thefollowing table shows some characteristics of NCR 8xx family chips and what drivers support them.                                                  Supported by   Supported by       On board                                   the generic    the enhanced Chip   SDMS BIOS   Wide   SCSI std.   Max. sync   driver         driver----   ---------   ----   ---------   ----------  ------------   -------------810        N         N      FAST10    10 MB/s        Y             N810A       N         N      FAST10    10 MB/s        Y             Y815        Y         N      FAST10    10 MB/s        Y             N825        Y         Y      FAST10    20 MB/s        Y             N825A       Y         Y      FAST10    20 MB/s        Y             Y860        N         N      FAST20    20 MB/s        Y             Y875        Y         Y      FAST20    40 MB/s        Y             Y876        Y         Y      FAST20    40 MB/s        Y             Y895        Y         Y      FAST40    80 MB/s        Y             Y895A       Y         Y      FAST40    80 MB/s        Y             Y896        Y         Y      FAST40    80 MB/s        Y             Y897        Y         Y      FAST40    80 MB/s        Y             Y1510D      Y         Y      FAST40    80 MB/s        Y             Y1010       Y         Y      FAST80   160 MB/s        N             Y1010_66*   Y         Y      FAST80   160 MB/s        N             Y* Chip supports 33MHz and 66MHz PCI buses.Summary of other supported features:Module:                allow to load the driverMemory mapped I/O:     increases performanceProfiling information: read operations from the proc SCSI file systemControl commands:      write operations to the proc SCSI file systemDebugging information: written to syslog (expert only)Scatter / gatherShared interruptBoot setup commandsSerial NVRAM:          Symbios and Tekram formats3. Advantages of the enhanced 896 driver3.1 Optimized SCSI SCRIPTS.The 810A, 825A, 875, 895, 896 and 895A support new SCSI SCRIPTS instructions named LOAD and STORE that allow to move up to 1 DWORD from/to an IO register to/from memory much faster that the MOVE MEMORY instruction that is supported by the 53c7xx and 53c8xx family.The LOAD/STORE instructions support absolute and DSA relative addressing modes.  The SCSI SCRIPTS had been entirely rewritten using LOAD/STORE instead of MOVE MEMORY instructions.3.2 New features of the SYM53C896 (64 bit PCI dual LVD SCSI controller)The 896 and the 895A allows handling of the phase mismatch context from SCRIPTS (avoids the phase mismatch interrupt that stops the SCSI processor until the C code has saved the context of the transfer).Implementing this without using LOAD/STORE instructions would be painfull and I didn't even want to try it.The 896 chip supports 64 bit PCI transactions and addressing, while the 895A supports 32 bit PCI transactions and 64 bit addressing.The SCRIPTS processor of these chips is not true 64 bit, but uses segment registers for bit 32-63. Another interesting feature is that LOAD/STORE instructions that address the on-chip RAM (8k) remain internal to the chip.Due to the use of LOAD/STORE SCRIPTS instructions, this driver does not support the following chips:- SYM53C810 revision < 0x10 (16)- SYM53C815 all revisions- SYM53C825 revision < 0x10 (16)4. Memory mapped I/O versus normal I/OMemory mapped I/O has less latency than normal I/O.  Sincelinux-1.3.x, memory mapped I/O is used rather than normal I/O.  Memorymapped I/O seems to work fine on most hardware configurations, butsome poorly designed motherboards may break this feature.The configuration option CONFIG_SCSI_NCR53C8XX_IOMAPPED forces thedriver to use normal I/O in all cases.5. Tagged command queueingQueuing more than 1 command at a time to a device allows it to perform optimizations based on actual head positions and its mechanical characteristics. This feature may also reduce average command latency.In order to really gain advantage of this feature, devices must have a reasonable cache size (No miracle is to be expected for a low-end hard disk with 128 KB or less).Some kown SCSI devices do not properly support tagged command queuing.Generally, firmware revisions that fix this kind of problems are available at respective vendor web/ftp sites.All I can say is that the hard disks I use on my machines behave well with this driver with tagged command queuing enabled:- IBM S12 0662- Conner 1080S- Quantum Atlas I- Quantum Atlas IIIf your controller has NVRAM, you can configure this feature per target from the user setup tool. The Tekram Setup program allows to tune the maximum number of queued commands up to 32. The Symbios Setup only allows to enable or disable this feature.The maximum number of simultaneous tagged commands queued to a deviceis currently set to 8 by default.  This value is suitable for most SCSIdisks.  With large SCSI disks (>= 2GB, cache >= 512KB, average seek time<= 10 ms), using a larger value may give better performances.The sym53c8xx driver supports up to 255 commands per device, and the generic ncr53c8xx driver supports up to 64, but using more than 32 is generally not worth-while, unless you are using a very large disk or disk array. It is noticeable that most of recent hard disks seem not to accept more than 64 simultaneous commands. So, using more than 64 queued commands is probably just resource wasting.If your controller does not have NVRAM or if it is managed by the SDMS BIOS/SETUP, you can configure tagged queueing feature and device queue depths from the boot command-line. For example:  ncr53c8xx=tags:4/t2t3q15-t4q7/t1u0q32will set tagged commands queue depths as follow:- target 2  all luns  on controller 0 --> 15- target 3  all luns  on controller 0 --> 15- target 4  all luns  on controller 0 -->  7- target 1  lun 0     on controller 1 --> 32- all other target/lun                -->  4In some special conditions, some SCSI disk firmwares may return aQUEUE FULL status for a SCSI command. This behaviour is managed by thedriver using the following heuristic:- Each time a QUEUE FULL status is returned, tagged queue depth is reduced   to the actual number of disconnected commands. - Every 1000 successfully completed SCSI commands, if allowed by the  current limit, the maximum number of queueable commands is incremented.Since QUEUE FULL status reception and handling is resource wasting, the driver notifies by default this problem to user by indicating the actual number of commands used and their status, as well as its decision on the device queue depth change.The heuristic used by the driver in handling QUEUE FULL ensures that the impact on performances is not too bad. You can get rid of the messages by setting verbose level to zero, as follow:1st method: boot your system using 'ncr53c8xx=verb:0' option.2nd method: apply "setverbose 0" control command to the proc fs entry             corresponding to your controller after boot-up.6. Parity checkingThe driver supports SCSI parity checking and PCI bus master paritychecking.  These features must be enabled in order to ensure safe datatransfers.  However, some flawed devices or mother boards will haveproblems with parity. You can disable either PCI parity or SCSI parity checking by entering appropriate options from the boot command line.(See 10: Boot setup commands).7. Profiling informationProfiling information is available through the proc SCSI file system.Since gathering profiling information may impact performances, this feature is disabled by default and requires a compilation configuration option to be set to Y.The device associated with a host has the following pathname:          /proc/scsi/ncr53c8xx/N     (N=0,1,2 ....)Generally, only 1 board is used on hardware configuration, and that device is:          /proc/scsi/ncr53c8xx/0However, if the driver has been made as module, the number of thehosts is incremented each time the driver is loaded.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -