home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / HOWTO / SCSI-HOW < prev    next >
Encoding:
Text File  |  1995-04-20  |  81.9 KB  |  2,374 lines

  1. Copyright 1994, Drew Eckhardt <drew@cs.colorado.edu>
  2.  
  3. Commercial redistribution is allowed and encouraged, provided that the 
  4. author is notified of any such distributions and given opportunity to
  5. to provide a more up-to-date version.  Failure to comply with this 
  6. will result in the author refusing to answer questions which are answered 
  7. in newer versions, and publically denouncing your distribution as a grave 
  8. disservice to the Linux community.
  9.  
  10. Noncommercial redistributions  of a verbatim copy in any medium physical or 
  11. electronic are permitted without express permission of the author.  
  12. Translations are similarly permitted without express permission if they
  13. includes a notice on who translated it. 
  14.  
  15. Short quotes may be used without prior consent by the author. Derivative work
  16. and partial distributions of the SCSI-HOWTO must include either a verbatim
  17. copy of this file or make a verbatim copy of this file available. If the 
  18. latter is the case, a pointer to the verbatim copy must be stated at a 
  19. clearly visible place.
  20.  
  21. In short, we wish to promote dissemination of this information through as
  22. many channels as possible. However, we do wish to retain copyright on the
  23. HOWTO documents, to be notified of any plans to redistribute the HOWTOs
  24. to insure that outdated versions don't spread too far, and for ALL 
  25. the information provided in the HOWTOS to be disseminated. If you have 
  26. questions, please contact Matt Welsh, the Linux HOWTO coordinator, 
  27. at mdw@sunsite.unc.edu, or +1 607 256 7372.
  28.  
  29. IMPORTANT :
  30.  
  31. BUG REPORTS WHICH FAIL TO FOLLOW THE PROCEDURE OUTLINED IN SECTION 2 WILL
  32. BE IGNORED.  
  33.  
  34. This HOWTO covers the Linux SCSI subsystem, as implemented in Linux
  35. kernel revision 1.1.38 and newer alpha code.  Earlier revisions of the 
  36. SCSI code are _unsupported_, and may differ significantly in terms of the 
  37. drivers implemented, performance, and options available.
  38.  
  39. For additional information, you may wish to join the SCSI channel of the
  40. Linux activists list - mail to linux-activists-request@joker.cs.hut.fi 
  41. with the line 
  42.  
  43. X-MN-Admin: join SCSI
  44.  
  45. in the header.
  46.  
  47. I'm aware that this document isn't the most user-friendly, 
  48. and that there may be inaccuracies and oversights.  If 
  49. you have constructive comments on how to rectify the situation
  50. you're free to mail me about it.
  51.  
  52. Table of contents 
  53. Section 1             Common Problems 
  54.     Section 1.1            General Flakiness
  55.     Section 1.2         The kernel command line
  56.     Section 1.3           A SCSI device shows up at all possible IDs 
  57.     Section 1.4         A SCSI device shows up at all possible LUNs
  58.     Section 1.5            You get sense errors when you know the devices are error free
  59.     Section 1.6            A kernel configured with networking does not work.
  60.     Section 1.7              Device detected, but unable to access.
  61.     Section 1.8            Sometimes the scsi subsystem locks up completely.
  62.     Section 1.9         Configuring and building the kernel
  63.     
  64. Section 2            Reporting Bugs
  65.  
  66. Section 3            Hosts
  67.     Section 3.1            Supported and Unsupported Hardware
  68.     Section 3.2            Common Problems
  69.     Section 3.3            Adaptec 152x, 151x, Sound Blaster 16 SCSI,
  70.                     SCSI Pro, Gigabyte, and other AIC 
  71.                     6260/6360 based products (Standard)
  72.     Section 3.4            Adaptec 154x, AMI FastDisk VLB,
  73.                     Buslogic, DTC 329x (Standard)  
  74.     Section 3.5            Adaptec 174x (Standard)
  75.     Section 3.6            Adaptec 274x (pre-ALPHA)
  76.     Section 3.7            Allways IN2000 (ALPHA)
  77.     Section 3.8            DPT (ALPHA)
  78.     Section 3.9            Future Domain 16x0 with TMC-1800, TMC-18C30,
  79.                     or TMC-18C50 chip (Standard)
  80.     Section 3.10        Generic NCR5380 / T130B (Standard)
  81.     Section 3.11        NCR53c810 (Standard)
  82.     Section 3.12        Seagate ST0x/Future Domain TMC-8xx/TMC-9xx 
  83.                     (Standard)
  84.     Section 3.13         PAS16 (Standard)
  85.     Section 3.14        Trantor T128/T128F/T228 (Standard)
  86.     Section 3.15        Ultrastor 14f, 24f,  34f (Standard)
  87.     Section 3.16        Western Digital 7000 (Standard)
  88.  
  89. Section 4            Disks
  90.     Section 4.1         Supported and Unsupported Hardware 
  91.     Section 4.2         Common Problems 
  92.     Section 4.3            Device Files
  93.     Section 4.4            Partitioning 
  94.     Section 4.5            Disk Geometry
  95.  
  96. Section 5             CD ROMs
  97.     Section 5.1            Supported and Unsupported Hardware 
  98.     Section 5.2            Common Problems
  99.     Section 5.3            Device Files 
  100.  
  101. Section 6            Tapes
  102.     Section 6.1            Supported and Unsupported Hardware 
  103.     Section 6.2            Common Problems
  104.     Section 6.3            Device Files 
  105.  
  106. Section 7            Generic 
  107.     Section 7.1            Supported and Unsupported Hardware 
  108.     Section 7.2            Common Problems
  109.     Section 7.3            Device Files 
  110.  
  111. Section 8            Buyers Guide
  112.  
  113.  
  114. Section 1 : Common Problems 
  115.  
  116. This section lists some of the common problems that people
  117. have.  If there is not anything here that answers your questions, you
  118. should also consult the sections for your host adapter and the devices
  119. in that are giving you problems.
  120.  
  121. Section 1.1 : General Flakiness
  122.     If you experience random errors, the most likely causes are
  123.     cabling and termination problems.
  124.  
  125.     Some products, such as those built arround the newer NCR
  126.     chips, feature digital filtering, active signal negation,
  127.     and aren't very sensitive to cabling problems.
  128.  
  129.     Others, such as the Adaptec 154xC, 154xCF, and 274x, are _extremely_
  130.     sensitive and may fail with cables that work with other systems.
  131.  
  132.     I reiterate : some host adapters are _extremely_ sensitive to 
  133.     cabling and termination problems and therefore, cabling and
  134.     termination should be the first things checked when there are
  135.     problems.
  136.  
  137.     To minimize your problems, you should use cables which
  138.  
  139.         1.  Claim SCSI-II compliance
  140.     2.  Have a characteristic impedance of 132 ohms
  141.     3.  All come from the same source to avoid impedance mismatches
  142.     4.  Come from a reputable vendor such as Amphenol who
  143.  
  144.     Termination power should be provided by _all_ devices on 
  145.     the SCSI bus, through a diode to prevent current backflow,
  146.     so that sufficient power is available at the ends of the cable 
  147.     where it is needed.  To prevent damage if the bus is shorted,
  148.     TERMPWR should be driven through a fuse or other current
  149.     limiting device.
  150.  
  151.     If multiple devices, external cables, or FAST SCSI 2 are used, 
  152.     active or forced perfect termination should be used on both ends 
  153.     of the SCSI bus.
  154.  
  155.     See the Comp.Periphs.Scsi FAQ (available on tsx-11 in 
  156.     pub/linux/ALPHA/scsi) for more information about active
  157.     termination.
  158.  
  159. Section 1.2 : The kernel command line
  160.  
  161.     Other parts of the documentation refer to a "kernel command line".  
  162.  
  163.     The kernel command line is a set of options you may specify 
  164.     from either the LILO : prompt after an immage name, or in the 
  165.     append field in your LILO configuration file (typically
  166.     /etc/lilo/config).
  167.  
  168.     Boot your system with LILO, and hit one of the alt, control, or 
  169.     shift keys when it first comes up to get a prompt.  LILO 
  170.     should respond with 
  171.  
  172.         :
  173.  
  174.     At this prompt, you can select a kernel image to boot, or list
  175.     them with ?.  Ie
  176.  
  177.         :?
  178.  
  179.         ramdisk floppy harddisk
  180.  
  181.     To boot that kernel with the command line options you have 
  182.     selected, simply enter the name followed by a white space delimited
  183.     list of options, terminating with a return.  
  184.  
  185.     Options take the form of 
  186.  
  187.         variable=valuelist
  188.  
  189.     Where valuelist may be a single value or comma delimited list
  190.     of values with no whitespace.  With the exception of root device,
  191.     individual values are numbers, and may be specified in either 
  192.     decimal or hexadecimal.
  193.  
  194.     Ie, to boot linux with an Adaptec 1520 clone not recognized 
  195.     at bootup, you might type 
  196.  
  197.  
  198.     Ie, to boot linux with an Adaptec 1520 clone not recognized 
  199.     at bootup, you might type 
  200.  
  201.         :floppy aha152x=0x340,11,7,1
  202.  
  203.     If you don't care to type all of this at boot time, it is also
  204.     possible to use the LILO configuration file "append" option 
  205.     with LILO .13 and newer.
  206.  
  207.  
  208. Section 1.3 :  A SCSI device shows up at all possible IDs 
  209.  
  210.     If this is the case, you have strapped the device at the same 
  211.     address as the controller (typically, 7, although some boards
  212.     use other addresses).  Please change the jumper settings.
  213.  
  214. Section 1.4 :  A SCSI device shows up at all possible LUNs
  215.  
  216.     The device has buggy firmware.  There is a list of buggy devices
  217.     in the kernel sources in drivers/scsi/scsi.c in the variable
  218.     blacklist.  Try adding the device to the list and see if this helps.
  219.  
  220. Section 1.5 :  You get sense errors when you know the devices are error free
  221.  
  222.     Sometimes this is caused by bad cables or impropper termination.
  223.  
  224.     Your SCSI bus must be terminated at both ends (using external
  225.     terminators, or onboard terminators on the host adapter or 
  226.     devices) and not in the middle.
  227.  
  228.     The SCSI-2 specification recommends active termination at both ends
  229.     of the cable.  For SCSI configurations with just one device and a
  230.     short cable, you can probably get away with passive termination,
  231.     but if you start having SCSI reliability problems when you start
  232.     adding more devices or using a longer cable then you should try
  233.     active termination.  See the Comp.Periphs.Scsi FAQ (available on
  234.     tsx-11 in pub/linux/ALPHA/scsi) for more information about active
  235.     termination.
  236.  
  237. Section 1.6 :  A kernel configured with networking does not work.
  238.  
  239.     The auto-probe routines for many of the network drivers 
  240.     are not passive, and will interfere with operation with some
  241.     of the SCSI drivers.
  242.  
  243. Section 1.7 :  Device detected, but unable to access.
  244.  
  245.     A SCSI device is detected by the kernel, but you are unable to
  246.     access it - ie mkfs /dev/sdc, tar xvf /dev/rst2, etc fails.
  247.  
  248.     You don't have a special file in /dev for the device.
  249.  
  250.     Unix devices are identified as either block or character (block 
  251.     devices go through the buffer cache, character devices do not) devices,
  252.     a major number (ie which driver is used - block major 8 corresponds
  253.     to SCSI disks) and a minor number (ie which unit is being accessed 
  254.     through a given driver - ie character major 4, minor 0 is the first 
  255.     virtual console, minor 1 the next, etc).  However, accessing devices 
  256.     through this separate namespace would break the unix/Linux metaphor of 
  257.     "everything is a file," so character and block device special files 
  258.     are created under /dev.  This lets you access the raw third SCSI disk
  259.     device as /dev/sdc, the first serial port as /dev/ttyS0, etc.  
  260.  
  261.     The preferred method for creating a file is using the MAKDEV script -
  262.     cd /dev
  263.  
  264.     and run MAKEDEV (as root) for the devices you want to create - ie
  265.  
  266.     ./MAKEDEV sdc
  267.  
  268.     wildcards "should" work - ie
  269.  
  270.     ./MAKEDEV sd\*
  271.  
  272.     "should" create entries for all SCSI disk devices (doing this should 
  273.     create /dev/sda through /dev/sdp, with fifteen partition entries for 
  274.     each)
  275.  
  276.     ./MAKEDEV sdc\*
  277.  
  278.     "should" create entries for /dev/sdc and all fifteen permissible 
  279.     partitions on /dev/sdc, etc.
  280.  
  281.     I say "should" because this is the standard unix behavior - the MAKEDEV
  282.     script in your installation may not conform to this behavior, or may 
  283.     have restricted the number of devices it will create.
  284.  
  285.     If MAKEDEV won't do the right magic for you, you'll have to create the
  286.     device entries by hand with the mknod command.
  287.  
  288.     The block/character type, major, and minor numbers are specified for the
  289.     various SCSI devices in Subsection 3 : Device Files in the appropriate 
  290.     section.  
  291.  
  292.     Take those numbers, and use (as root)
  293.  
  294.     mknod /dev/device b|c major minor
  295.  
  296.     ie - 
  297.  
  298.     mknod /dev/sdc b 8 32
  299.     mknod /dev/rst0 c 9 0
  300.  
  301. Section 1.8 :   SCSI System Lockups
  302.  
  303.     This could be one of a number of things.  Also see the section for
  304.     your specific host adapter for possible further solutions.
  305.  
  306.     There are cases where the lockups seem to occur when multiple devices
  307.     are in use at the same time.  In this case, you can try contacting
  308.     the manufacturer of the devices and see if firmware upgrades are
  309.     available which would correct the problem.  If possible, try a
  310.     different scsi cable, or try on another system.  This can also
  311.     be caused by bad blocks on disks, or by bad handling of DMA by the
  312.     motherboard (for host adapters that do DMA).  There are probably
  313.     many other possible conditions that could lead to this type of event.
  314.  
  315.     Sometimes these problems occur when there are multiple devices in
  316.     use on the bus at the same time.  In this case, if your host
  317.     adapter driver supports more than one outstanding command on the bus
  318.     at one time, try reducing this to 1 and see if this helps. If you
  319.     have tape drives or slow cdrom drives on the bus, this might not be
  320.     a practical solution.
  321.  
  322. Section 1.9 : Configuring and building the kernel
  323.  
  324.     Unused SCSI drivers eat up valuable memory, aggravating 
  325.     memory shortage problems on small systems because kernel
  326.     memory is unpagable.
  327.  
  328.     So, you will want to build a kernel tuned for your
  329.     system, with only the drivers you need installed.
  330.  
  331.     cd to /usr/src/linux
  332.  
  333.     If you are using a root device other than the current
  334.     one, or something other than 80x25 VGA, and you are 
  335.     writing a boot floppy, you should edit the makefile, 
  336.     and make sure the 
  337.  
  338.         ROOT_DEV = 
  339.  
  340.     and 
  341.  
  342.         SVGA_MODE = 
  343.  
  344.     lines are the way you want them.
  345.  
  346.     If you've installed any patches, you may wish to guarantee that all
  347.     files are rebuilt.  If this is the case, you should type 
  348.  
  349.         make mrproper
  350.  
  351.     Irregardless of weather you ran make mrproper, type
  352.  
  353.         make config
  354.  
  355.     and answer the configuration questions.  Then run
  356.  
  357.         make depend
  358.  
  359.     and finally  
  360.  
  361.         make
  362.  
  363.     Once the build completes, you may wish to update the 
  364.     lilo configuration, or write a boot floppy.  A boot floppy
  365.     may be made by running
  366.  
  367.         make zdisk
  368.  
  369. Section 2 : Reporting Bugs
  370.  
  371. The Linux SCSI developers don't necessarily maintain old revisions
  372. of the code due to space constraints.  So, if you are not running the
  373. latest publically released Linux kernel (note that many of the Linux
  374. distributions, such as MCC, SLS, Yggdrasil, etc. often lag one or more 
  375. revisions behind this) chances are we will be unable to solve your 
  376. problem.  So, before reporting a bug, please check to see if it exists
  377. with the latest publically available kernel.
  378.  
  379. If after upgrading, and reading this document thoroughly, you still
  380. believe that you have a bug, please mail a bug report to the SCSI channel
  381. of the mailing list where it will be seen by many of the people who've 
  382. contributed to the Linux SCSI drivers.
  383.  
  384. In your bug report, please provide as much information as possible
  385. regarding your hardware configuration, and the exact text of 
  386. all of the messages that Linux prints when it boots and when the 
  387. error condition occurs.  Failure to provide the exact text of any and
  388. all messages may result in misdiagnosis of your problem.
  389.  
  390. The bottom line is that if we can't reproduce your bug, and you can't 
  391. point at us what's broken, it won't get fixed.
  392.  
  393. Assuming you don't yet have Linux up and running, a good way to provide
  394. the information we need would be to perform the following procedure :
  395.  
  396. Format a floppy diskette under DOS.  Note that if you have a distribution
  397. which mounts the root diskette off of floppy rather than RAM drive, you'll
  398. have to format a diskette readable in the drive not being used to mount
  399. root.
  400.  
  401. Boot Linux, and login as root
  402.  
  403.     mkdir /tmp/dos
  404.  
  405. Insert the diskette in a drive not being used to mount root, and
  406. mount it.  Ie
  407.  
  408.     mount -t msdos /dev/fd0 /tmp/dos
  409.  
  410.     or 
  411.  
  412.     mount -t msdos /dev/fd1 /tmp/dos
  413.  
  414. Insure that the /proc filesystem is mounted.
  415.  
  416.     grep proc /etc/mtab
  417.  
  418. If the /proc filesystem is not mounted, mount it 
  419.  
  420.     mkdir /proc
  421.     chmod 755 /proc
  422.     mount -t proc /proc /proc
  423.  
  424. Copy the kernel revision and messages into a log file
  425.  
  426.     cat /proc/version > /tmp/dos/log
  427.     cat /proc/kmsg >> /tmp/dos/log
  428.  
  429. Type CNTRL-C after a second or two.
  430.  
  431. Unmount the DOS floppy
  432.  
  433.     umount /tmp/dos
  434.  
  435. And shutdown Linux
  436.  
  437.     shutdown
  438.  
  439. Reboot into DOS, and using your favorite communications software include
  440. the log file in your trouble mail.
  441.  
  442. Section 3 : Hosts
  443.  
  444. This section gives specific information about the various host adapters that
  445. are supported in some way or another under linux.
  446.  
  447. Section 3.1 : Supported and Unsupported Hardware
  448. Drivers in the distribution kernel :
  449.  
  450. Adaptec 152x, Adaptec 154x (including clones from Bustek and DTC 329x 
  451. boards), Adaptec 174x, Future Domain 850, 885, 950, and other boards 
  452. in that series (but not the 880 board unless you make the appropriate 
  453. patch), Future Domain 16x0 with TMC-1800 or TMC-18C50 chip, PAS16 
  454. SCSI ports, Seagate ST0x, Trantor T128 boards, Ultrastor 14F, 24F, and 34F, 
  455. and Western Digital 7000. 
  456.  
  457. Alpha drivers :
  458. Adaptec 2742
  459. DPT
  460. Richoh GSI-8
  461.  
  462. Many of the ALPHA drivers are available via anonymous FTP from 
  463. tsx-11.mit.edu:/pub/linux/ALPHA/scsi
  464.  
  465. Drivers that are being developed, but aren't publically available yet,
  466. and modifications needed to make existing drivers compatable with
  467. other boards :
  468.  
  469. Announcements WILL be made when drivers are available for public 
  470. alpha testing.  Until then, please don't use up the developers' 
  471. valuable time with mail asking for release dates, etc.
  472.  
  473. Adaptec 2842, 2940, various AIC 7770/7870 implementations
  474.  
  475.     An Adaptec 2742 driver for the EISA AIC-7770 board has 
  476.     been developed, and with some modifications (perhaps 
  477.     limited to detection) should support these boards.
  478.     
  479. NCR53c8x0/7x0
  480.  
  481.     A NCR53c810 drviver has been developed, and with modifications
  482.     ranging from minor to severe should support these chips
  483.  
  484.     NCR53c815 - detection changes
  485.  
  486.     NCR53c820, NCR53c825 - detection changes, possible initialization
  487.     changes, ultimately support for WDTR messages.
  488.  
  489.     NCR53c720 - detection changes, initializaion changes, modification
  490.     of the assembler to use the 720's register mapping
  491.  
  492.     NCR53c710 - detection changes, initialization changes, modification
  493.     of assembler, modification of the NCR code to use fatal
  494.     interrupts or GPIO generated non fatal interrupts for 
  495.     command completion, elimination of add with carry
  496.     instructions through DSA alignment modification.
  497.  
  498.     NCR53c700, NCR53c700-66 - detection changes, initialization changes,
  499.     modification of NCR code to not use DSA, modification of Linux 
  500.     code to handle context switches.
  501.  
  502. NCR53c9x family
  503.  
  504. Qlogic 
  505.  
  506. Trantor T130B / generic NCR53c400 using pseudo DMA
  507.  
  508.     The Trantor T130B uses an NCR53c400 chip, essentially a more 
  509.     integrated, low-performance ISA SCSI solution adding a pair of 
  510.     128 byte buffers and on-chip "pseudo-DMA" hardware to 
  511.     a NCR5380 ASIC core 
  512.  
  513.     Kevin's patches to support the on-chip buffers and interrupts
  514.     on the board work, and an effort to integrate them into an
  515.     ALPHA kernel is being made.
  516.  
  517. SCSI hosts that will not work :
  518.  
  519. All parallel->SCSI adapters, Rancho SCSI boards, and Grass Roots SCSI
  520. boards.
  521.  
  522. SCSI hosts that will NEVER work :
  523.  
  524. Non Adaptec compatable DTC boards (including the 3270 and 3280).
  525.  
  526. Aquiring programming information requires a non-disclosure agreement
  527. with DTC.  This means that it would be impossible to distribute a 
  528. Linux driver if one were written, since complying with the NDA would
  529. mean distributing no source, in violation of the GPL, and complying 
  530. with the GPL would mean distributing source, in violation of the NDA.
  531.  
  532. If you want to run Linux on an unsupported piece of hardware, your 
  533. options are to either write a driver yourself (Eric Youngdale and I are 
  534. usually willing to answer technical questions concerning the Linux
  535. SCSI drivers) or to commision a driver.
  536.  
  537. Section 3.2 : Common Problems 
  538. Section 3.2.1 : SCSI timeouts 
  539.     Make sure interrupts are enabled correctly, and there are no 
  540.     IRQ, DMA, or address conflicts with other boards.
  541.  
  542. Section 3.2.2 : Failure of autoprobe routines on boards that rely on 
  543.     BIOS for autoprobe.
  544.  
  545.     If your SCSI adapter is one of the following :
  546.  
  547.         Adaptec 152x, Adaptec 151x, Adaptec AIC-6260,
  548.         Adaptec AIC-6360, Future Domain 1680, Future Domain TMC-950,
  549.         Future Domain TMC-8xx, Trantor T128, Trantor T128F, 
  550.         Trantor T228F, Seagate ST01, Seagate ST02, or a 
  551.         Western Digital 7000
  552.  
  553.     and it is not detected on bootup, ie you get a 
  554.  
  555.         scsi : 0 hosts
  556.  
  557.     message or a 
  558.  
  559.         scsi%d : type
  560.  
  561.     message is not printed for each supported SCSI adapter installed
  562.     in the system, you may have a problem with the autoprobe routine
  563.     not knowing about your board.
  564.  
  565.     Autodetection will fail for drivers using the BIOS for autodetection
  566.     if the BIOS is disabled.  Double check that your BIOS is enabled,
  567.     and not conflicting with any other peripherial BIOSes.
  568.  
  569.     Autodetection will also fail if the board's "signature" and/or 
  570.     BIOS address don't match known ones.
  571.  
  572.     If the BIOS is installed, please use DOS and DEBUG to 
  573.     find a signature that will detect your board -
  574.  
  575.     Ie, if your board lives at 0xc8000, under DOS do
  576.  
  577.     debug
  578.     d c800:0
  579.     q
  580.  
  581.     and send a message to the SCSI channel of the mailing list with
  582.     the ASCII message, with the length and offset from the base 
  583.     address (ie, 0xc8000).  Note that the EXACT text is required,
  584.     and you should provide both the hex and ASCII portions of 
  585.     the text.
  586.  
  587.     If no BIOS is installed, and you are using an Adaptec 152x,
  588.     Trantor T128, or Seagate driver, you can use command line 
  589.     or compile time overrides to force detection.
  590.  
  591.     Please consult the appropriate subsection for your SCSI board 
  592.     as well as Section 1.1 : 
  593.  
  594.  
  595. Section 3.2.3 : Failure of boards using memory mapped I/O
  596.  
  597.     (This include the Trantor T128 and Seagate boards, but not the 
  598.     Adaptec, Generic NCR5380, PAS16, and Ultrastor drivers)
  599.  
  600.     This is often caused when the memory mapped I/O ports 
  601.     are incorrectly cached.  You should have the board's 
  602.     address space marked as uncachable in the XCMOS settings.
  603.  
  604.     If this is not possible, you will have to disable cache 
  605.     entirely.
  606.  
  607. Section 3.2.4 : Failure of bootable kernels for a ALPHA drivers
  608.  
  609.         This You get resulting in a "kernel panic : cannot mount root device"
  610.     message, or it does not work with your Linux distribution.
  611.  
  612.     You'll need to edit the binary image of the kernel (before
  613.     or after writing it out to disk), and modify a few two byte 
  614.     fields (little endian) to gurantee that it will work on your 
  615.     system.  
  616.  
  617.     1.  default swap device at offset 502, this should be set to 0
  618.  
  619.     2.  ram disk size at offset 504, this should be set to the size
  620.         of the boot floppy in K - ie, 5.25" = 1200, 3.5" = 1440.
  621.  
  622.         This means the bytes are 
  623.  
  624.         3.5" : 0xA0 0x05 
  625.         5.25" : 0xB0  0x04
  626.  
  627.     3.  root device offset at 508, this should be 0, ie the boot
  628.         device. 
  629.  
  630.     dd or rawrite the file to a disk.  Insert the disk in the
  631.     first floppy drive, wait until it prompts you to insert
  632.     the root disk, and insert the root floppy from your 
  633.     distribution.
  634.  
  635.  
  636. Section 3.2.5 : Installing a device driver not included with the distribution 
  637.     kernel
  638.  
  639.     You need to start with the version of the kernel used by the 
  640.     driver author.  This revision may be alluded to in the documentation
  641.     included with the driver.
  642.  
  643.     Various recent kernel revisions can be found at 
  644.         nic.funet.fi:/pub/OS/Linux/PEOPLE/Linus
  645.  
  646.     as linux-version.tar.gz
  647.  
  648.     They are also mirrored at tsx-11.mit.edu and various other sites.
  649.  
  650.     cd to /usr/src.
  651.  
  652.     Remove your old Linux sources, if you want to keep a backup copy
  653.     of them
  654.  
  655.     mv linux linux-old
  656.  
  657.     Untar the archive
  658.  
  659.     gunzip < linux-0.99.12.tar.gz | tar xvfp -
  660.  
  661.     Apply the patches.  The patches will be relative to some directory
  662.     in the filesystem.  By examining the output file lines in the patch
  663.     file (grep for ^---), you can tell where this is - ie patches with 
  664.     these lines
  665.  
  666.     --- ./kernel/blk_drv/scsi/Makefile
  667.  
  668.     --- ./config.in Wed Sep  1 16:19:33 1993
  669.  
  670.  
  671.     would have the files relative to /usr/src/linux.
  672.  
  673.     Untar the driver sources at an appropriate place - you
  674.     can type
  675.  
  676.     tar tfv patches.tar 
  677.  
  678.     to get a listing, and move files as necessary (The SCSI driver files 
  679.     should live in /usr/src/linux/kernel/drivers/scsi)
  680.  
  681.     Either cd to the directory they are relative to and type
  682.  
  683.     patch -p0 < patch_file
  684.  
  685.     or tell patch to strip off leading path components.  Ie,
  686.     if the files started with
  687.  
  688.     --- linux-new/kernel/blk_drv/scsi/Makefile 
  689.  
  690.     and you wanted to apply them while in /usr/src/linux, you 
  691.     could cd to /usr/src/linux and type
  692.  
  693.     patch -p1 <  patches 
  694.  
  695.     to strip off the "linux-new" component.
  696.  
  697.     After you have applied the patches, look for any patch rejects,
  698.     which will be the name of the rejected file with a # suffix appended.
  699.  
  700.     find /usr/src/linux/ -name "*#" -print 
  701.  
  702.     If any of these exist, look at them.  In some cases, the 
  703.     differences will be in RCS identifiers and will be harmless,
  704.     in other cases, you'll have to manually apply important 
  705.     parts.  Documentation on diffs files and patch is beyond the
  706.     scope of this document.
  707.  
  708.     See also Section 1.8 : Configuring and building the kernel
  709.  
  710. 3.2.6 :  Installing a driver that has no patches
  711.  
  712.     In some cases, a driver author may not offer patches with 
  713.     the .c and .h files which comprise his driver, or the patches
  714.     may be against an older revision of the kernel and not go 
  715.     in cleanly. 
  716.  
  717.     1.  Copy the .c and .h files into /usr/src/linux/drivers/scsi
  718.  
  719.     2.  Add the configuration option
  720.  
  721.         Edit /usr/src/linux/config.in, and add a line in the 
  722.  
  723.             *
  724.             * SCSI low-level drivers
  725.             *
  726.  
  727.         section, add a boolean configuration variable for your
  728.         driver.  Ie,
  729.  
  730.         bool 'Allways IN2000 SCSI support' CONFIG_SCSI_IN2000 y
  731.  
  732.     3.  Add the makefile entries
  733.  
  734.         Edit /usr/src/linux/drivers/scsi/Makefile, and add 
  735.         an entry like 
  736.  
  737.         ifdef CONFIG_SCSI_IN2000
  738.         SCSI_OBS := $(SCSI_OBJS) in2000.o
  739.         SCSI_SRCS := $(SCSI_SRCS) in2000.c
  740.         endif
  741.  
  742.         before the 
  743.  
  744.         scsi.a: $(SCSI_OBJS)
  745.  
  746.         line in the makefile, where the .c file is the .c
  747.         file you copied in, and the .o file is the basename
  748.         of the .c file with a .o suffixed.
  749.  
  750.     4.  Add the entry points
  751.  
  752.         Edit /usr/src/linux/drivers/scsi/hosts.c, and 
  753.         add a #inlclude for the header file, conditional
  754.         on the CONFIG_SCSI preprocessor define you
  755.         added to the configuration file.  Ie, after 
  756.  
  757.         #ifdef CONFIG_SCSI_GENERIC_NCR5380
  758.         #include "g_NCR5380.h"
  759.         #endif
  760.  
  761.         you might add 
  762.  
  763.         #ifdef CONFIG_SCSI_IN2000
  764.         #include "in2000.h"
  765.         #endif
  766.  
  767.         You will also need to add the Scsi_Host_Template 
  768.         entry into the scsi_hosts[] array.  Take a look
  769.         into the .h file, and you should find a #define that
  770.         looks something like this : 
  771.  
  772.         #define IN2000 {"Always IN2000", in2000_detect, \
  773.                 in2000_info, in2000_command,    \
  774.                 in2000_queuecommand,            \
  775.                 in2000_abort,                   \
  776.                 in2000_reset,                   \
  777.                 NULL,                           \
  778.                 in2000_biosparam,               \
  779.                 1, 7, IN2000_SG, 1, 0, 0}
  780.  
  781.         the name of the preprocessor define, and add 
  782.         it into the scsi_hosts[] array, conditional on
  783.         definition of the preprocessor symbol you used 
  784.         in the configuration file.
  785.  
  786.         Ie, after 
  787.  
  788.         #ifdef CONFIG_SCSI_GENERIC_NCR5380
  789.                 GENERIC_NCR5380,
  790.         #endif
  791.  
  792.         you might add
  793.  
  794.         #ifdef CONFIG_SCSI_IN2000
  795.             IN2000,
  796.         #endif
  797.  
  798.     See also Section 1.8 : Configuring and building the kernel
  799.  
  800. Section 3.3 : Adaptec 152x, 151x, Sound Blaster 16 SCSI, SCSI Pro, 
  801.     Gigabyte, and other AIC 6260/6360 based products (Standard)
  802. Supported Configurations :
  803. BIOS addresses : 0xd8000, 0xdc000, 0xd0000, 0xd4000, 0xc8000, 0xcc000, 0xe0000,
  804.     0xe4000.
  805. Ports : 0x140, 0x340
  806. IRQs : 9, 10, 11, 12
  807. DMA is not used
  808. IO : port mapped
  809.  
  810. Autoprobe :
  811.  
  812.     Works with many boards with an installed BIOS.  All
  813.     other boards, including the Adaptec 1510, and Sound Blaster16 SCSI 
  814.     must use a kernel command line or compile time override.
  815.  
  816. Autoprobe Override :
  817. Compile time : 
  818. Define PORTBASE, IRQ, SCSI_ID, RECONNECT as appropriate, see Defines
  819.  
  820. kernel command line : aha152x=<PORTBASE>,<IRQ>,<SCSI-ID>,<RECONNECT>
  821.  
  822. Usually, SCSI-ID will be 7 and RECONNECT non-zero.
  823.  
  824. To force detection at 0x340, IRQ 11, at SCSI-ID 7, allowing 
  825. disconnect/reconnect, you would use the following command line 
  826. option : 
  827.  
  828. aha152x=0x340,11,7,1
  829.  
  830. Antiquity Problems, fix by upgrading : 
  831. 1.  The driver fails with VLB boards.  There was a timing problem
  832.     in kernels older than revision 1.0.5.
  833.  
  834. Defines : 
  835. AUTOCONF      : use configuration the controller reports (only 152x)
  836. IRQ           : override interrupt channel (9,10,11 or 12) (default 11)
  837. SCSI_ID       : override scsiid of AIC-6260 (0-7) (default 7)
  838. RECONNECT     : override target dis-/reconnection/multiple 
  839.     outstanding command - set to non-zero to enable, zero to
  840.     disable.
  841. DONT_SNARF     : Don't register ports (pl12 and below)
  842. SKIP_BIOSTEST  : Don't test for BIOS signature (AHA-1510 or disabled BIOS)
  843. PORTBASE       : Force port base. Don't try to probe
  844.  
  845. Section 3.4 : Adaptec 154x, AMI FastDisk VLB, Buslogic, DTC 329x (Standard)  
  846. Supported Configurations :
  847. Ports : 0x330 and 0x334 
  848. IRQs : 9, 10, 11, 12, 14, 15
  849. DMA channels : 5, 6, 7
  850. IO : port mapped, bus master
  851.  
  852. Autoprobe : works with all supported configurations, does not 
  853.     require an installed BIOS.
  854.  
  855. Autoprobe override : none
  856.  
  857. Note: Buslogic makes a series of boards that are software compatible with
  858. the Adaptec 1542, and these come in ISA, VLB and EISA flavors.
  859.  
  860. Antiquity Problems, fix by upgrading : 
  861.  
  862. 1.  Linux kernel revisions prior to .99.10 don't support the 'C' 
  863.     revision.
  864.  
  865. 2.  Linux kernel revisions prior to .99.14k don't support the 'C'
  866.     revision options for 
  867.  
  868.     - BIOS support for the extended mapping for disks > 1G
  869.  
  870.     - BIOS support for > 2 drives
  871.  
  872.     - BIOS support for autoscanning the SCSI bus
  873.  
  874. 3.  Linux kernel revisions prior to .99.15e don't support the 'C'
  875.     with the BIOS support for > 2 drives turned on and the
  876.     BIOS support for the extended mapping for disks > 1G turned off.
  877.  
  878. 4.  Linux kernel revisions prior to .99.14u don't support the 'CF'
  879.     revisions of the board.
  880.  
  881. 5.  Linux kernel revisions prior to 1.0.5 have a race condition 
  882.     when multiple devices are accessed at the same time.
  883.  
  884. Common problems :
  885.  
  886. 1.  There are unexpected errors with a 154xC or 154xCF board,
  887.  
  888.     Early examples of the 154xC boards have a high slew rate on 
  889.     one of the SCSI signals, which results in signal reflections 
  890.     when cables with the wrong impedance are used.  
  891.  
  892.     Newer boards aren't much better, and also suffer from extreme
  893.     cabling and termination sensitivity.
  894.  
  895.     See also Common Problems #2 and #3 and Section 1 : Common Problems,
  896.     Subsection 1.1 : General Flakiness
  897.  
  898. 2.  There are unexpected errors with a 154xC or 154x with
  899.     both internal and external devices connected.
  900.  
  901.     This is probably a termination problem.  In order to 
  902.     use the software option to disable host adapter termination,
  903.     you must turn switch 1 off.
  904.     
  905.     See also Common Problems #1 and #3 and Section 1 : Common Problems,
  906.     Subsection 1.1 : General Flakiness
  907.  
  908. 3.  The SCSI subsystem locks up completely.
  909.  
  910.     There are cases where the lockups seem to occur when multiple devices
  911.     are in use at the same time.  In this case, you can try contacting
  912.     the manufacturer of the devices and see if firmware upgrades are
  913.     available which would correct the problem.  As a last resort, you
  914.     can go into aha1542.h and change AHA1542_MAILBOX to 1.  This will
  915.     effectively limit you to one outstanding command on the scsi bus at
  916.     one time, and may help the situation.  If you have tape drives or
  917.     slow cdrom drives on the bus, this might not be a practical solution.
  918.  
  919.     See also Common Problems #1 and #2 and 
  920.     Section 1.1 : Common Problems : General Flakiness 
  921.     Section 1.8 : Common Problems : SCSI Lockups
  922.  
  923.  
  924. 4.  An "Interrupt received, but no mail" message is printed on bootup
  925.     and your SCSI devices are not detected.
  926.  
  927.     Disable the BIOS options to support the extended mapping for 
  928.     disks > 1G, support for > 2 drives, and for autoscanning the 
  929.     bus.  Or, upgrade to Linux .99.14k or newer.
  930.  
  931. Section 3.5 : Adaptec 174x
  932. Supported Configurations : 
  933. Slots : 1-8
  934. Ports : EISA board, not applicable
  935. IRQs : 9, 10, 11, 12, 14, 15
  936. DMA Channels : EISA board, not applicable
  937. IO : port mapped, bus master
  938.  
  939. Autoprobe : works with all supported configurations
  940.  
  941. Autoprobe override : none
  942.  
  943. Note: This board has been discontinued by Adaptec.
  944.  
  945. Common Problems : 
  946. 1. If the Adaptec 1740 driver prints the message 
  947.     "aha1740: Board detected, but EBCNTRL = %x, so disabled it."
  948.  
  949.     your board was disabled because it was not running in enhanced 
  950.         mode.  Boards running in standard 1542 mode are not supported.
  951.  
  952. Section 3.6 : Adaptec 274x (Pre-ALPHA)
  953.     available via anonymous FTP from ftp.cpsc.ucalgary.ca
  954.     /pub/systems/linux/aha274x.
  955. Supported Configurations : 
  956. Slots : 1-12
  957. Ports : EISA board, not applicable
  958. IRQs : ALL
  959. DMA Channels : EISA board, not applicable
  960. IO : port mapped, bus master
  961.  
  962. BIOS MUST be enabled
  963.  
  964. Section 3.7 : Allways IN2000  (ALPHA)
  965. ALPHA available via ftp tsx-11.mit.edu/pub/linux/ALPHA/SCSI/in2000
  966.     driver is in2000.tar.z, bootable kernel zImage
  967. Ports : 0x100, 0x110, 0x200, 0x220
  968. IRQs : 10, 11, 14, 15
  969. DMA is not used
  970. IO : port mapped
  971.  
  972. Autoprobe : BIOS not required
  973.  
  974. Autoprobe override : none
  975.  
  976. Common Problems : 
  977.  
  978. 1.  There are known problems in systems with IDE drives and with 
  979.     swapping.
  980.  
  981. Section 3.8 : DPT
  982. ALPHA available via ftp ftp.ibp.fr in directory /pub/linux/ALPHA/scsi
  983.  
  984. Section 3.9 : Future Domain 16x0 with TMC-1800, TMC-18C30, TMC-18C50,
  985.     or TMC-36C70 chip 
  986. Supported Configurations :
  987. BIOSs :  2.0, 3.0, 3.2, 3.4
  988. BIOS Addresses :    0xc8000, 0xca000, 0xce000, 0xde000
  989. Ports : 0x140, 0x150, 0x160, 0x170
  990. IRQs : 3, 5, 10, 11, 12, 14, 15
  991. DMA is not used
  992. IO : port mapped
  993.  
  994. Autoprobe : works with all supported configurations, requires 
  995.     installed BIOS
  996.  
  997. Autoprobe Override : none
  998.  
  999. Antiquity Problems, fix by upgrading : 
  1000.  
  1001. 1.  Old versions do not support the TMC-18C50 chip, and will fail with
  1002.     newer boards. 
  1003.  
  1004. 2.  Old versions will not have the most current BIOS signatures for 
  1005.     autodetection.
  1006.  
  1007. 3.  Versions prior to the one included in Linux 1.0.9 and 1.1.6 
  1008.     don't support the new SCSI chip or 3.4 BIOS.
  1009.  
  1010. Section 3.10 : Generic NCR5380 / T130B
  1011. Supported and Unsupported Configurations : 
  1012. Ports : all
  1013. IRQs : all
  1014. DMA channels - DMA is not used
  1015. IO : port mapped
  1016.  
  1017. Autoprobe : none
  1018.  
  1019. Autoprobe Override :
  1020. Compile time : Define GENERIC_NCR5380_OVERRIDE to be an array of tupples 
  1021. with port, irq, dma, board type - ie 
  1022. #define GENERIC_NCR5380_OVERRIDE {{0x330, 5, DMA_NONE, BOARD_NCR5380}} 
  1023.  
  1024. for a NCR5380 board at port 330, IRQ 5.
  1025.  
  1026. #define GENERIC_NCR5380_OVERRIDE {{0x350, 5, DMA_NONE, BOARD_NCR53C400}}
  1027.  
  1028. for a T130B at port 0x350.
  1029.  
  1030. Older versions of the code eliminate the BOARD_* entry.
  1031.  
  1032. The symbolic IRQs IRQ_NONE and IRQ_AUTO may be used.
  1033.     
  1034. kernel command line : ncr5380=port,irq
  1035.               ncr5380=port,irq,dma
  1036.               ncr53c400=port,irq
  1037.          
  1038. 255 may be used for no irq, 254 for irq autoprobe.
  1039.  
  1040. Common Problems : 
  1041.  
  1042. 1. Using the T130B board with the old (pre public release 6) generic 
  1043.     NCR5380 driver which doesn't support the ncr53c400 command
  1044.     line option.
  1045.  
  1046.     The NCR5380 compatable registers are offset eight from
  1047.     the base address.  So, if your address is 0x350, use 
  1048.  
  1049.     ncr53480=0x358,254
  1050.  
  1051.     on the kernel command line.  
  1052.  
  1053. Antiquity problems, fix by upgrading :
  1054. 1.  The kernel locks up during disk access with T130B or other 
  1055.     NCR53c400 boards
  1056.  
  1057.     Pre-public release 6 versions of the Generic NCR5380
  1058.     driver didn't support interrupts on these boards.  
  1059.     Upgrade.
  1060.  
  1061.  
  1062. Notes : the generic driver doesn't support DMA yet, and pseudo-DMA 
  1063.     isn't supported in the generic driver.
  1064.  
  1065. Section 3.11 : NCR53c810 (Standard)
  1066.     
  1067. Supported and Unsupported Configurations :
  1068. Base addresses : ALL
  1069. IRQs : ALL
  1070. DMA channels : PCI, not applicable
  1071. IO : port mapped, busmastering
  1072.  
  1073. Autoprobe : requires PCI BIOS, uses PCI BIOS routines to
  1074.     search for devices and read configuration space
  1075.  
  1076. The driver uses the pre-programmed values in some registers for 
  1077. initialization, so a BIOS must be installed.
  1078.  
  1079. Antiquity Problems, fix by upgrading :
  1080.  
  1081. 1.  Older versions of Linux had a problem with swapping
  1082.  
  1083.     See Section 4.2.7 : Disks :  System Hangs When Swapping
  1084.  
  1085. Common Problems : 
  1086.  
  1087. 1.  Many people have encountered problems where the chip worked
  1088.     fine under DOS, but failed under Linux with a timeout on
  1089.     test 1 due to a lost interrupt.
  1090.  
  1091.     This is often due to a mismatch between the IRQ hardware
  1092.     jumper for a slot or mainboard device and the value set
  1093.     in the CMOS setup.
  1094.  
  1095.     It may also be due to PCI INTB, INTC, or INTD being selected
  1096.     on a PCI board in a system which only supports PCI INTA.
  1097.  
  1098.     Finally, PCI should be using level-sensitive rather
  1099.     than edge triggered interrupts.  Check that your board
  1100.     is jumpered for level-sensitive, and if that fails
  1101.     try edge-triggered because your system may be 
  1102.     broken.
  1103.  
  1104.     This problem is especially common with Viglen some Viglen
  1105.     motherboards, where the mainboard IRQ jumper settings are
  1106.     NOT as documented in the manual.  I've been told that what
  1107.     claims to be IRQ5 is really IRQ9, your mileage will vary.
  1108.  
  1109. 2.  Lockups occur when using an S3928P, X11, and the NCR
  1110.     chip at the same time.
  1111.  
  1112.     There are hardware bugs in at least some S3928P chip.  Don't
  1113.     do this.
  1114.  
  1115. 3.  You get a message on boot up indicating that the I/O mapping 
  1116.     was disabled because base address 0 bits 0..1 indicated a 
  1117.     non I/O mapping
  1118.  
  1119.     This is due to a BIOS bug in some machines which results in
  1120.     dword reads of configuration regsisters returning the 
  1121.     high and low 16 bit words swapped.
  1122.  
  1123. 4.  Some systems have problems if PCI write posting, or CPU->
  1124.     PCI buffering are enabled.  If you have problems,
  1125.     disable these options.
  1126.  
  1127. 5.  Some systems with the NCR SDMS software in an onboard BIOS
  1128.         ROM and in the system BIOS are unable to boot DOS. 
  1129.     Disabling the image in one place should rectify this 
  1130.     problem.
  1131.  
  1132. 6.  Some systems have hideous, broken, BIOS chips.  Don't 
  1133.     make any bug reports until you've made sure you have
  1134.     the newest ROM from your vendor.
  1135.  
  1136.     - Intel P90 boards require revision 1.00.04.AX1
  1137.  
  1138. Section 3.12 : Seagate ST0x/Future Domain TMC-8xx/TMC-9xx 
  1139. Supported and Unsupported Configurations : 
  1140. Base addresses : 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000 
  1141. IRQs : 3, 5
  1142. DMA channels : DMA is not used
  1143. IO : memory mapped
  1144.  
  1145. Autoprobe : probes for address only, IRQ is assumed to be 5,
  1146.     requires installed BIOS.
  1147.  
  1148. Autoprobe Override :
  1149. Compile time : Define OVERRIDE to be the base address, CONTROLLER to 
  1150. FD or SEAGATE as appropriate, and IRQ to the IRQ.
  1151.  
  1152. kernel command line : st0x=address,irq or tmc8xx=address,irq (only works 
  1153.     for .99.13b and newer)
  1154.  
  1155. Antiquity Problems, fix by upgrading :
  1156.  
  1157. 1.  Versions prior to the one in the Linux .99.12 kernel had a problem
  1158.     handshaking with some slow devices, where
  1159.  
  1160.     This is what happens when you write data out to the bus
  1161.  
  1162.     1.  Write byte to data register, data register is asserted to bus
  1163.     2.  time_remaining = 12us
  1164.     3.  wait while time_remaining > 0 and REQ is not asserted
  1165.     4.  if time_remaining > 0, assert ACK
  1166.     5.  wait while time remaining > 0  and REQ is asserted
  1167.     6.  deassert ACK
  1168.  
  1169.     The problem was encountered in slow devices that do the command
  1170.     processing as they read the command, where the REQ/ACK handshake
  1171.     takes over 12us - REQ didn't go false when the driver expected it
  1172.     to, so the driver ended up sending multiple bytes of data for
  1173.     each REQ pulse.
  1174.  
  1175. 2.  With Linux .99.12, a bug was introduced when I fixed the arbitration
  1176.     code, resulting in failed selections on some systems.  This was
  1177.     fixed in .99.13.
  1178. A
  1179. Common Problems : 
  1180.  
  1181. 1.  There are command timeouts when Linux attempts to read the partition
  1182.     table or do other disk access.
  1183.  
  1184.     The board ships with the defaults set up for MSDOS, ie interrupts
  1185.     are disabled.  To jumper the board for interrupts, on the Seagate
  1186.     use jumper W3 (ST01) or JP3 (ST02) and short pins F-G to select 
  1187.     IRQ 5.
  1188.  
  1189. 2.  The driver can't handle some devices, particularly cheap SCSI 
  1190.     tapes and CDROMs.
  1191.  
  1192.     The Seagate ties the SCSI bus REQ/ACK handshaking into the PC bus
  1193.     IO CHANNEL READY and (optionally) 0WS signals.  Unfortunately, it 
  1194.     doesn't tell you when the watchdog timer runs out, and you have 
  1195.     no way of knowing for certain that REQ went low, and may end up
  1196.     seeing one REQ pulse as multiple REQ pulses.
  1197.  
  1198.     Dealing with this means using a tight loop to look for REQ to 
  1199.     go low, with a timeout incase you don't catch the transition due
  1200.     to an interrupt, etc.  This results in a performance decrease, so it
  1201.     would be undesireable to apply this to all SCSI devices.  Instead, 
  1202.     it is selected on a per-device basis with the "borken" field for 
  1203.     the given SCSI device in the scsi_devices array.  If you run into
  1204.     problems, you should try adding your device to the list of 
  1205.     devices for which borken is not reset to zero (currently, 
  1206.     only the TENEX CDROM drives).
  1207.  
  1208. 3.  A future domain board (specific examples include the 840,841,
  1209.     880, and 881) doesn't work.
  1210.     
  1211.     A few of the Future domain boards use the Seagate 
  1212.     register mapping, and have the MSG and CD bits of the 
  1213.     status register flipped.
  1214.  
  1215.     You should edit seagate.h, swapping the definitions for 
  1216.     STAT_MSG and STAT_CD, and recompile the kernel with 
  1217.     CONTROLLER defined to SEAGATE and an appropriate 
  1218.     IRQ and OVERRIDE specified.
  1219.  
  1220. 4.  When attempting to fdisk your drive, you get error messages
  1221.     indicating that the HDIO_REQ or HDIO_GETGEO ioctl failed,
  1222.     or 
  1223.  
  1224.     You must set heads sectors and cylinders.
  1225.     You can do this from the extra functions menu.
  1226.  
  1227.  
  1228.     See Section 4.4 : Disks : Partitioning
  1229.  
  1230. 5.  After manually specifying the drive geometry, subsequent
  1231.     attempts to read the partition table result in partition
  1232.     boundary not on a cylinder boundary, physical and logical
  1233.     boundaries don't match, etc. error messages.
  1234.  
  1235.     See Section 4.4 : Disks : Partitioning
  1236.  
  1237.  
  1238. 6.  Some systems which worked prior to .99.13 fail with newer 
  1239.     versions of Linux.  Older versions of Linux assigned the 
  1240.     CONTROL and DATA registers in an order different than that 
  1241.     outlined in the Seagate documentation, which broke on some 
  1242.     systems.  Newer versions make the assignment in the correct 
  1243.     way, but this breaks other systems.
  1244.  
  1245.     The code in seagate.c looks like this now : 
  1246.  
  1247.     cli();
  1248.     DATA = (unsigned char) ((1 << target) | (controller_type == SEAGATE ? 0x80 : 0x40));
  1249.     CONTROL = BASE_CMD | CMD_DRVR_ENABLE | CMD_SEL | 
  1250.         (reselect ? CMD_ATTN : 0);
  1251.     sti();
  1252.  
  1253.     Changing this to 
  1254.  
  1255.     cli();
  1256.     CONTROL = BASE_CMD | CMD_DRVR_ENABLE | CMD_SEL | 
  1257.         (reselect ? CMD_ATTN : 0);
  1258.     DATA = (unsigned char) ((1 << target) | (controller_type == SEAGATE ? 0x80 : 0x40));
  1259.     sti()
  1260.  
  1261.     may fix your problem.
  1262.  
  1263. Defines : 
  1264.  
  1265. FAST or FAST32 will use blind transfers where possible
  1266.  
  1267. ARBITRATE will cause the host adapter to arbitrate for the 
  1268.     bus for better SCSI-II compatability, rather than just 
  1269.         waiting for BUS FREE and then doing its thing.  Should
  1270.     let us do one command per Lun when I integrate my 
  1271.     reorganization changes into the distribution sources.
  1272.  
  1273. SLOW_HANDSHAKE will allow compatability with broken devices that don't 
  1274.     handshake fast enough (ie, some CD ROM's) for the Seagate
  1275.     code.
  1276.  
  1277. SLOW_RATE=x, x some number will let you specify a default 
  1278.     transfer rate if handshaking isn't working correctly.
  1279.  
  1280. Section 3.13 : PAS16 SCSI
  1281. Supported and Unsupported Configurations : 
  1282. Ports : 0x388, 0x384, 0x38x, 0x288
  1283. IRQs : 10, 12, 14, 15
  1284.     IMPORTANT : IRQ MUST be different from the IRQ used for the sound
  1285.     portion of the board. 
  1286. DMA is not used for the SCSI portion of the board
  1287. IO : port mapped
  1288.  
  1289. Autoprobe : does not require BIOS
  1290.  
  1291. Autoprobe Override : 
  1292. Compile time : Define PAS16_OVERRIDE to be an array of port, irq 
  1293. tupples.  Ie 
  1294.  
  1295. #define PAS16_OVERRIDE {{0x388, 10}} 
  1296.  
  1297. for a board at port 0x388, IRQ 10.
  1298.  
  1299. kernel command line : 
  1300. pas16=port,irq 
  1301.  
  1302. Defines :
  1303. AUTOSENSE - if defined, REQUEST SENSE will be performed automatically
  1304. for commands that return with a CHECK CONDITION status. 
  1305.  
  1306. PSEUDO_DMA - enables PSEUDO-DMA hardware, should give a 3-4X performance
  1307. increase compared to polled I/O.
  1308.  
  1309. PARITY - enable parity checking.  Not supported
  1310.  
  1311. SCSI2 - enable support for SCSI-II tagged queueing.  Untested
  1312.  
  1313.  
  1314. UNSAFE - leave interrupts enabled during pseudo-DMA transfers.  You
  1315.          only really want to use this if you're having a problem with
  1316.          dropped characters during high speed communications, and even
  1317.          then, you're going to be better off twiddling with transfersize.
  1318.  
  1319. USLEEP - enable support for devices that don't disconnect.  Untested.
  1320.  
  1321.  
  1322. Common problems : 
  1323.  
  1324. 1.  Command timeouts, aborts, etc.
  1325.  
  1326.     You should install the NCR5380 patches that I posted to the net 
  1327.     some time ago, which should be integrated into some future alpha
  1328.     release.  These patches fix a race condition in earlier NCR5380
  1329.     driver cores, as well as fixing support for multiple devices on 
  1330.     NCR5380 based boards.
  1331.  
  1332.     If that fails, you should disable the PSEUDO_DMA option by 
  1333.     changing the #define PSEUDO_DMA line in drivers/scsi/pas16.c to #undef
  1334.     PSEUDO_DMA.
  1335.  
  1336.     Note that the later should be considered a last resort, because
  1337.     there will be a severe performance degradation.
  1338.  
  1339.  
  1340.  
  1341. Section 3.14 : Trantor T128/T128F/T228 
  1342. Supported and Unsupported Configurations : 
  1343. Base addresses :  0xcc000, 00xc8000, 0xdc000, 0xd8000
  1344. IRQs : none, 3, 5, 7 (all boards)
  1345.     10, 12, 14, 15 (T128F only)
  1346. DMA is not used.
  1347. IO : memory mapped
  1348.  
  1349. Autoprobe : works for all supported configurations, requires 
  1350.     installed BIOS.
  1351.  
  1352. Autoprobe Override :
  1353. Compile time : Define T128_OVERRIDE to be an array of address, irq 
  1354. tupples.  Ie 
  1355.  
  1356. #define T128_OVERRIDE {{0xcc000, 5}} 
  1357.  
  1358. for a board at address 0xcc000, IRQ 5.
  1359.  
  1360. The symbolic IRQs IRQ_NONE and IRQ_AUTO may be used.
  1361.  
  1362. kernel command line : t128=address,irq
  1363.  
  1364. -1 may be used for no irq, -2 for irq autoprobe.
  1365.  
  1366. Defines : 
  1367. AUTOSENSE - if defined, REQUEST SENSE will be performed automatically
  1368. for commands that return with a CHECK CONDITION status. 
  1369.  
  1370. PSEUDO_DMA - enables PSEUDO-DMA hardware, should give a 3-4X performance
  1371. increase compared to polled I/O.
  1372.  
  1373. PARITY - enable parity checking.  Not supported
  1374.  
  1375. SCSI2 - enable support for SCSI-II tagged queueing.  Untested
  1376.  
  1377.  
  1378. UNSAFE - leave interrupts enabled during pseudo-DMA transfers.  You
  1379.          only really want to use this if you're having a problem with
  1380.          dropped characters during high speed communications, and even
  1381.          then, you're going to be better off twiddling with transfersize.
  1382.  
  1383. USLEEP - enable support for devices that don't disconnect.  Untested.
  1384.  
  1385. Common Problems :
  1386. 1.  Command timeouts, aborts, etc.
  1387.  
  1388.     You should install the NCR5380 patches that I posted to the net 
  1389.     some time ago, which should be integrated into some future alpha
  1390.     release.  These patches fix a race condition in earlier NCR5380
  1391.     driver cores, as well as fixing support for multiple devices on 
  1392.     NCR5380 based boards.
  1393.  
  1394.     If that fails, you should disable the PSEUDO_DMA option by 
  1395.     changing the #define PSEUDO_DMA line in drivers/scsi/pas16.c to #undef
  1396.     PSEUDO_DMA.
  1397.  
  1398.     Note that the later should be considered a last resort, because
  1399.     there will be a severe performance degradation.
  1400.  
  1401. Section 3.15 : Ultrastor 14f (ISA), 24f (EISA), 34f (VLB)
  1402. Ports : 0x130, 0x140, 0x210, 0x230, 0x240, 0x310, 0x330, 0x340
  1403. IRQs : 10, 11, 14, 15
  1404. DMA channels : 5, 6, 7
  1405. IO : port mapped, bus master
  1406.  
  1407. Autoprobe : does not work for boards at port 0x310, BIOS not required.  
  1408.  
  1409. Autoprobe override : compile time only, define PORT_OVERRIDE
  1410.  
  1411. Common Problems :
  1412. 1.  The address 0x310 is not supported by the autoprobe code, and may 
  1413.         cause conflicts if networking is enabled.
  1414.  
  1415.         Please use a different address.
  1416.  
  1417. 2.  Using an Ultrastor at address 0x330 may cause the system to hang
  1418.         when the sound drivers are autoprobing.
  1419.  
  1420.         Please use a different address.
  1421.  
  1422. 3.  Various other drivers do unsafe probes at various addresses, if you
  1423.         are having problems with detection or the system is hanging at 
  1424.         boot time, please try a different address.
  1425.  
  1426.         0x340 is recommended as an address that is known to work.
  1427.  
  1428. 4.  Linux detects no SCSI devices, but detects your SCSI hard disk
  1429.     on an Ultrastor SCSI board as a normal hard disk, and the
  1430.     hard disk driver refuses to support it.  Note that when this 
  1431.     occurs, you will probably also get a message
  1432.     
  1433.     hd.c: ST-506 interface disk with more than 16 heads detected,
  1434.       probably due to non-standard sector translation.  Giving up.
  1435.       (disk %d: cyl=%d, sect=63, head=64)
  1436.  
  1437.     If this is the case, you are running the Ultrastor board in
  1438.     WD1003 emulation mode.  You have 
  1439.  
  1440.     1.  Switch the ultrastor into native mode.  This is the 
  1441.         recommended action, since the SCSI driver can be 
  1442.         significantly faster than the IDE driver, especially with
  1443.         the clustered read/write patches installed.  Some users have 
  1444.         sustained in excess of 2M/sec through the file system using 
  1445.         these patches.
  1446.  
  1447.         Note that this will be necessary if you wish to use any non-
  1448.         hard disk, or more than two hard disk devices on the Ultrastor.
  1449.  
  1450.     2.  Use the kernel command line switch 
  1451.  
  1452.         hd=cylinders,heads,sectors
  1453.  
  1454.         to override the default setting to bootstrap yourself,
  1455.         keeping number of cylinders <= 2048, number of heads <= 16,
  1456.         and number of sectors <= 255 such that cylinders * heads * sectors
  1457.         is the same for both mappings.
  1458.  
  1459.         You'll also have to manually specify the disk geometry when
  1460.         running fdisk under Linux.  Failure to do so will result in 
  1461.         incorrect partition entries being written, which will work
  1462.         correctly with Linux but fail under MSDOS which looks at 
  1463.         the cylinder/head/sector entries in the table.
  1464.  
  1465.         Once Linux is up, you can avoid the inconvience of having 
  1466.         to boot by hand by recompiling the kernel with an appropriately
  1467.         defined HD_TYPE macro in include/linux/config.h.
  1468.  
  1469. Section 3.16 : Western Digital 7000
  1470. Supported Configurations :
  1471. BIOS Addresses : 0xce000
  1472. Ports : 0x350
  1473. IRQs : 15
  1474. DMA Channels : 6
  1475. IO : port mapped, bus master
  1476.  
  1477. Autoprobe :  requires installed BIOS 
  1478.  
  1479. Common Problems : 
  1480.  
  1481. 1.  There are several revisisions of the chip and firmware.  Supposedly,
  1482.     revision 3 boards do not work, revision 5 boards do, 
  1483.     chips with no suffix do not work, chips with an 'A' suffix do.
  1484.  
  1485. 2.  The board supports a few BIOS addresses which aren't on the list 
  1486.     of supported addresses.  If you run into this situation,
  1487.     please use one of the supported addresses and submit a bug 
  1488.     report as outlined in Section 2, "Bug Reports"
  1489.  
  1490. Section 4 : Disks 
  1491.  
  1492. This section gives information that is specific to disk drives.
  1493.  
  1494. Section 4.1 : Supported and Unsupported Hardware
  1495.  
  1496. All direct access SCSI devices with a block size of 256, 512, or 
  1497. 1024 bytes should work.  Other block sizes will not work (Note
  1498. that this can often be fixed by changing the block and/or 
  1499. sector sizes using the MODE SELECT SCSI command)
  1500.  
  1501. Sector size refers to the number of data bytes allocated per sector 
  1502. on a device, ie CDROMs use a 2048 byte sector size.  
  1503.  
  1504. Block size refers to the size of the logical blocks used to interface
  1505. with the device.  Although this is usually identical to sector size,
  1506. some devices map multiple smaller physical sectors (ie, 256 bytes
  1507. in the case of 55M Syquest drives) to larger logical blocks or 
  1508. vice versa (ie, 512 byte blocks on SUN compatable CDROM drives).
  1509.  
  1510. Removeable media devices, including Bernoulis, flopticals, and MO drives 
  1511. work.  
  1512.  
  1513. Section 4.2 : Common Problems 
  1514.  
  1515. Section 4.2.1 : Cylinder > 1024 message.
  1516.  
  1517.     When partitioning, you get a warning message about "cylinder > 1024"
  1518.     or you are unable to boot from a partition including a logical
  1519.     cylinder past logical cylinder 1024.
  1520.  
  1521.     This is a BIOS limitation.
  1522.  
  1523.     See Section 4.4 Disk Geometry and Partitioning for an explanation.
  1524.  
  1525. Section 4.2.2 :  You are unable to partition "/dev/hd*"
  1526.  
  1527.     /dev/hd* aren't SCSI devices, /dev/sd* are.  
  1528.  
  1529.     See Section 4.3, Device files, and Section 4.4, Disk
  1530.     Geometry and Partitioning
  1531.     for the correct device names and partitioning procedure.
  1532.  
  1533. Section 4.2.3 :   Unable to eject media from a removeable media drive.
  1534.  
  1535.     Linux attempts to lock the drive door when a piece of 
  1536.     media is mounted to prevent filesystem corruption due to
  1537.     an inadvertant media change.
  1538.  
  1539.     Please unmount your disks before ejecting them.
  1540.  
  1541.  
  1542. Section 4.2.4 : Unable to boot using LILO from a SCSI disk
  1543.  
  1544.     In some cases, the SCSI driver and BIOS will disagree
  1545.     over the correct BIOS mapping to use, and will result 
  1546.     in LILO hanging after 'LI' at boot time and/or 
  1547.     other problems.
  1548.  
  1549.     To workarround this, you'll have to determine your BIOS 
  1550.     geometry mapping used under DOS, and make an entry for 
  1551.     your disk in /etc/lilo/disktab.
  1552.  
  1553.     Alternatively, you may be able to use the "linear" configuration
  1554.     file option.
  1555.  
  1556. Section 4.2.5 : Fdisk responds with
  1557.  
  1558.             You must set heads sectors and cylinders.
  1559.             You can do this from the extra functions menu.
  1560.     
  1561.         and disk geometry is not 'remembered' when fdisk is rerun.
  1562.  
  1563.     See Section 4.4 : Partitioning
  1564.  
  1565. Section 4.2.6 : Only one drive is detected on a bridge board with
  1566.     multiple drives connected.
  1567.  
  1568.     Linux won't search LUNs past zero on SCSI devices which 
  1569.     predate ANSI SCSI revision 1.  If you wish devices on
  1570.     alternate LUNs to be recognized, you will have to modify
  1571.     drivers/scsi/scsi.c:scan_scsis().
  1572.  
  1573. Section 4.2.7 : System hangs when swapping
  1574.  
  1575.     We think this has been fixed, try upgrading to 1.1.38. 
  1576.  
  1577. Section 4.3 : Device Files
  1578.  
  1579. SCSI disks use block device major 8, and there are no "raw" devices
  1580. ala BSD.
  1581.  
  1582. 16 minor numbers are allocated to each SCSI disk, with minor % 16 == 0 
  1583. being the whole disk, minors  1 <= (minor % 16) <= 4 the four primary 
  1584. partitions, minors 5 <= (minor % 16) <= 15 any extended partitions.
  1585.  
  1586. Due to constraints imposed by Linux's use of a sixteen bit dev_t with
  1587. only eight bits allocated to the minor number, the SCSI disk minor 
  1588. numbers are assigned dynamically starting with the lowest SCSI HOST/ID/LUN.
  1589.  
  1590. Ie, a configuration may work out like this (with one host adapter)
  1591. Device            Target, Lun        SCSI disk
  1592. 84M Seagate         0    0        /dev/sda
  1593. SCSI->SMD bridge disk 0    3    0        /dev/sdb 
  1594. SCSI->SMD bridge disk 1    3    1        /dev/sdc
  1595. Wangtek tape        4    0        none
  1596. 213M Maxtor        6    0        /dev/sdd
  1597.  
  1598. Etc.  
  1599.  
  1600. The standard naming convention is 
  1601.  
  1602. /dev/sd{letter} for the entire disk device ((minor % 16) == 0)
  1603. /dev/sd{letter}{partition} for the partitions on that device 
  1604.     (1 <= (minor % 16) <= 15)
  1605.  
  1606. Ie
  1607.  
  1608. /dev/sda    block device major 8 minor 0
  1609. /dev/sda1    block device major 8 minor 1
  1610. /dev/sda2    block device major 8 minor 2
  1611. /dev/sdb    block device major 8 minor 16
  1612.  
  1613. etc.
  1614.  
  1615. Section 4.4 : Partitioning
  1616.  
  1617. You can partition your SCSI disks using the partitioning program
  1618. of your choice, under DOS, OS/2, Linux or any other operating 
  1619. system supporting the standard partitioning scheme. 
  1620.  
  1621. The correct way to run the Linux fdisk program is by specifying the
  1622. device on the command line. Ie, to partition the first SCSI disk,
  1623.  
  1624.     fdisk /dev/sda
  1625.  
  1626. If you don't explicitly specify the device, the partitioning program
  1627. may default to /dev/hda, which isn't a SCSI disk.
  1628.  
  1629. In some cases, fdisk will respond with 
  1630.  
  1631.     You must set heads sectors and cylinders.
  1632.     You can do this from the extra functions menu.
  1633.  
  1634.     Command (m for help): 
  1635.  
  1636. and/or give a message to the effect that the HDIO_REQ or 
  1637. HDIO_GETGEO ioctl failed.  In these cases, you must 
  1638. manually specify the disk geometry as outlined in Subsection
  1639. 4.5 : Disk Geometry when running fdisk, and also in /etc/disktab
  1640. if you wish to boot kernels off that disk with LILO.
  1641.  
  1642. If you have manually specified the disk geometry, subsequent
  1643. attempts to run fdisk will give the same error message.  This 
  1644. is normal, since PCs don't store the disk geometry information
  1645. in the partition table. In and of itself, will cause _NO PROBLEMS_,
  1646. and you will have no problems accessing partitions you created on
  1647. the drive with Linux.  Some vendors' poor installation code will 
  1648. choke on this, in which case you should contact your vendor
  1649. and insist that they fix the code.
  1650.  
  1651. In some cases, you will get a warning message about a partition ending
  1652. past cylinder 1024.  If you create one of these partitions, you will 
  1653. be unable to boot Linux kernels off of that partition using LILO.  Note,
  1654. however, that this restriction does not preclude the creation of a 
  1655. root partition partially or entirely above the 1024 cylinder mark,
  1656. since it is possible to create a small /boot partition below the 
  1657. 1024 cylinder mark or to boot kernels off existing partitions.
  1658.  
  1659. Section 4.5 : Disk Geometry 
  1660.  
  1661. Under Linux, each disk is viewed as the SCSI host adapter sees it : 
  1662. N blocks, numbered from 0 to N-1, all error free, where as DOS/BIOS
  1663. predate intelligent disks and apply an arbitrary head / cylinder / 
  1664. sector mapping to this linear addressing.
  1665.  
  1666. This can pose a problem when you partition the drives under Linux,
  1667. since there is no portable way to get DOS/BIOS's idea of the mapped 
  1668. geometry.  In most cases, a HDIO_GETGEO ioctl() can be implemented 
  1669. to return this mapping.  Unfortunately, when the vendor (ie Seagate)
  1670. has chosen a perverse, non-standard, and undocumented mapping, this 
  1671. is not possible and geometry must be manually specified
  1672.  
  1673. If manual specification of the is required, you have one of several
  1674. options :
  1675.  
  1676. 1.  If you don't care about using DOS, or booting kernels from the 
  1677.     drive with LILO, create a translation such that heads * cylinders * 
  1678.     sectors * 512 < size of your drive in bytes (a megabyte is defined 
  1679.     as 2^20 bytes).
  1680.  
  1681.  
  1682.     1 <= heads <= 256
  1683.     1 <= cylinders <= 1024 
  1684.     1 <= sectors <= 63
  1685.  
  1686. 2.  Use the BIOS mapping.  In some cases, this will mean reconfiguring the 
  1687.     disk so that it is at SCSI ID 0, and disabling the second IDE drive (if you have one).
  1688.  
  1689.     You can either use a program like NU, or you can use the following 
  1690.     program :
  1691.  
  1692. begin 664 dparam.com
  1693. MBAZ``##_B+^!`+N!`(H'0SP@=/D\,'5:@#]X=`6`/UAU4(!_`3AU2H!_`P!U
  1694. M1(I7`H#J,(#Z`7<Y@,*`M`C-$PCD=3-14HC()#\PY.@R`.@J`%J(\/[`,.3H
  1695. M)0#H'0!8AL2Q!M+L0.@7`+K"`;0)S2'#NIP!ZR"ZQ0'K&[K5`>L6N]T!,=*Y
  1696. M"@#W\8#",$N(%PG`=>^)VK0)S2'#=7-A9V4Z(&1P87)A;2`P>#@P#0H@("!O
  1697. L<B`@9'!A<F%M(#!X.#$-"B1);G9A;&ED(&1R:79E#0HD("`D```````D``!O
  1698. `
  1699. end
  1700.  
  1701.     When run it prints the sectors, heads, and cylinders of the 
  1702.     drive whose BIOS address was specified on the command line (0x80
  1703.     is the first disk, 0x81 the second).
  1704.  
  1705.     Ie, dparam 0x80
  1706.     60    17    1007
  1707.  
  1708. Would mean that C: had 60 sectors, 17 heads, and 1007 cylinders.
  1709.  
  1710. Section 5 : CD ROMs
  1711.  
  1712. This section gives information that is specific to cdrom drives.
  1713.  
  1714. Section 5.1 : Supported and Unsupported Hardware
  1715.  
  1716. SCSI CDs with a block size of 512 or 2048 bytes should work.  Other
  1717. block sizes will not work.
  1718.  
  1719. Section 5.2 : Common Problems
  1720.  
  1721. Section 5.2.1 : Unable to mount cdrom.
  1722.  
  1723.         The correct syntax to mount an ISO-9660 CDROM is
  1724.  
  1725.         mount -t iso9660 /dev/sr0 /mount_point -o ro
  1726.  
  1727.         Note that for this to work, you must have the kernel
  1728.         configured with support for SCSI, your host adapter,
  1729.         the SCSI CDROM driver, and the iso9660 filesystem.
  1730.  
  1731. Section 5.2.2 : Unable to eject cdrom.
  1732.  
  1733.     Linux attempts to lock the drive door when a piece of 
  1734.     media is mounted to prevent filesystem corruption due to
  1735.     an inadvertant media change.
  1736.  
  1737. Section 5.2.3 : Unable to play audio.
  1738.  
  1739.     The programs Workman or xcdplayer will do this for you.
  1740.  
  1741. Section 5.2.4 :  Workman or Xcdplayer do not work.
  1742.  
  1743.     The functions to control audio functions are part of the
  1744. SCSI-II command set, so any drive that is not SCSI-II will probably
  1745. not work here.  Also, many SCSI-I and some SCSI-II CDROM drives use a
  1746. proprietary command set for accessing audio functions instead of the
  1747. SCSI-II command set.  For NEC drives, there is a version of xcdplayer
  1748. specially adapted to use this command set floating around - try
  1749. looking on tsx-11.mit.edu in pub/linux/BETA/cdrom.
  1750.  
  1751.     These programs may work with some of the non-SCSI cdrom drives
  1752. if the driver implements the same ioctls as the scsi drivers.
  1753.  
  1754. Section 5.3 : Device Files
  1755.  
  1756. SCSI CD ROMs use major 11.
  1757.  
  1758. Minors are allocated dynamically (See Section 4 : Disks, Subsection 4.3 :
  1759. Device Files for an example) with the first CDROM found being minor 0,
  1760. the second minor 1, etc.
  1761.  
  1762. The standard naming convention is 
  1763.  
  1764. /dev/sr{digit} ie 
  1765.  
  1766. /dev/sr0
  1767. /dev/sr1
  1768.  
  1769. etc.
  1770.  
  1771. Section 6 : Tapes
  1772.  
  1773. This setion gives information that is specific to scsi tape drives.
  1774.  
  1775. Section 6.1 : Supported and Unsupported Hardware
  1776.  
  1777. Drives using both fixed and variable length blocks smaller than the
  1778. the driver buffer length (set to 32K in the distribution sources) are
  1779. supported.
  1780.  
  1781. Parameters (block size, buffering, density) are set with ioctls
  1782. (usually with the mt program), and remain in effect after the 
  1783. device is closed and reopened.
  1784.  
  1785. Virtually all drives should work, including :
  1786.     Archive Viper QIC drives, including the 150M and 525M models
  1787.     Exabyte 8mm drives
  1788.     Wangtek 5150S drives
  1789.     Wangdat DAT drives
  1790.  
  1791. Section 6.2 : Common Problems
  1792.  
  1793. Section 6.2.1 : Tape drive not recognized at boot time.
  1794.  
  1795.     Try booting with a tape in the drive.
  1796.  
  1797. Section 6.2.2 :  Tapes with multiple files cannot be read properly.
  1798.  
  1799.     When reading a tape with multiple files, the first tar 
  1800.     is successful, a second tar fails silently, and retrying 
  1801.     the second tar is successful.
  1802.  
  1803.     User level programs, such as tar, don't understand file marks.
  1804.     The first tar reads up until the end of the file.  The second 
  1805.     tar attempts to read at the file mark, gets nothing, but the 
  1806.     tape spaces over the file mark.  The third tar is successful
  1807.     since the tape is at the start of the next file.
  1808.  
  1809.     Use mt on the no-rewind device to space forward to the next file.
  1810.  
  1811.  
  1812. Section 6.2.3 :  Decompression fails.
  1813.  
  1814.     Decompressing programs cannot handle the zeros padding the 
  1815.     last block of the file. 
  1816.  
  1817.     To prevent warnings and errors, wrap your compressed files 
  1818.     in a .tar file - ie, rather than doing 
  1819.  
  1820.     tar cfvz /dev/nrst0 file.1 file.2 ...
  1821.  
  1822.     do 
  1823.  
  1824.     tar cfvz tmp.tar.z file.1 file.2 ...
  1825.  
  1826.     tar cf /dev/nrst0 tmp.tar.z
  1827.  
  1828. Section 6.2.4 :  Problems taking tapes to/from other systems.
  1829.  
  1830.     You can't read a tape made with another operating system or
  1831.     another operating system can't read a tape written in Linux.
  1832.  
  1833.     Different systems often use different block sizes.  On a
  1834.     tape device using a fixed blocksize, you will get errors 
  1835.     when reading blocks written using a different block size.
  1836.  
  1837.     To read these tapes, you must set the blocksize of 
  1838.     the tape driver to match the blocksize used when
  1839.     the tape was written, or to variable.
  1840.  
  1841.     NOTE : this is the hardware block size, not the blocking
  1842.     factor used with tar, dump, etc.
  1843.  
  1844.     You can do this with the mt command - 
  1845.  
  1846.     
  1847.         mt setblk <size>
  1848.  
  1849.     or 
  1850.     
  1851.         mt setblk 0
  1852.  
  1853.     to get variable block length support.
  1854.  
  1855.     Note that these mt flags are NOT supported under the GNU version
  1856.     of mt which is included with some Linux distributions.  Instead,
  1857.     you must use the BSD derrived Linux SCSI mt command.  Source
  1858.     should be available from
  1859.  
  1860.     tsx-11.mit.edu:/pub/linux/ALPHA/scsi
  1861.     
  1862.  
  1863. Section 6.2.5 :  "No such device" error message.
  1864.  
  1865.     All attempts to access the tape result in a 
  1866.  
  1867.     "No such device"
  1868.  
  1869.     or similar error message.  Check the type of 
  1870.     your tape device - it MUST be a character device with 
  1871.     major and minor numbers matching those specified in subsection
  1872.     C, Device Files.
  1873.  
  1874. Section 6.2.6 : Tape reads at a given density work, writes fail
  1875.  
  1876.     Many tape drives support reading at lower densities
  1877.     for compatability with older harware, but will not 
  1878.     write at those same densities.  
  1879.  
  1880.     This is especially the case with QIC drives, which
  1881.     will read old 60M tapes but only write new 120, 150,
  1882.     250, and 525M formats.
  1883.  
  1884. Section 6.3 : Device Files
  1885.  
  1886. SCSI tapes use character device major 9.  
  1887.  
  1888. Due to constraints imposed by Linux's use of a sixteen bit dev_t with
  1889. only eight bits allocated to the minor number, the SCSI tape minor 
  1890. numbers are assigned dynamically starting with the lowest SCSI HOST/ID/LUN.
  1891.  
  1892. Rewinding devices are numbered from 0 - with the first 
  1893. SCSI tape, /dev/rst0 being c 9 0, the second /dev/rst1 c 9 1, etc.  
  1894. Non-rewinding devices have the high bit set in the minor number, 
  1895. ie /dev/nrst0 is c 9 128.
  1896.  
  1897. The standard naming convention is 
  1898. /dev/nrst{digit}     for non-rewinding devices
  1899. /dev/rst{digit}        for rewinding devices
  1900.  
  1901. Section 7 : Generic 
  1902.  
  1903. This information gives information that is specific to the generic
  1904. scsi driver.
  1905.  
  1906. Section 7.1 : Supported Hardware 
  1907.  
  1908. The Generic SCSI device driver provides an interface for sending 
  1909. SCSI commands to all SCSI devices - disks, tapes, CDROMs, media
  1910. changer robots, etc. 
  1911.  
  1912. Everything electrically compatable with your SCSI board should work.
  1913.  
  1914. Section 7.2 : Common Problems
  1915.  
  1916. None :-).
  1917.  
  1918. Section 7.3 : Device Files
  1919.  
  1920. SCSI generic devices use character major 21.  Due to constraints 
  1921. imposed by Linux's use of a 16 bit dev_t, minor numbers are dynamically
  1922. assigned from 0, one per device, with
  1923.  
  1924. /dev/sg0 
  1925.  
  1926. corresponding to the lowest numerical target/lun on the first 
  1927. SCSI board.
  1928.  
  1929. Section 8 : Buyers Guide
  1930.  
  1931.     A frequent question is:
  1932.  
  1933.     "Linux supports quite a number of different boards, so which
  1934. scsi host adapter should I get."
  1935.  
  1936.     The answer depends upon how much performance you expect or need, 
  1937. motherboard, and the scsi peripherals that you plan on attaching to 
  1938. your machine.
  1939.  
  1940.     The biggest factor affecting performance (in terms of throughput
  1941. and interactive response time during SCSI I/O) is going to be the transfer
  1942. type used.
  1943.  
  1944. Transfer type    Description / Performance / Recomendedations
  1945. Pure        A pure polled I/O board will use the CPU to handle 
  1946. Polled        all of the SCSI processing, including the REQ/ACK
  1947.         handshaking.
  1948.  
  1949.         Even a fast CPU will be slower handling the REQ/ACK
  1950.         handshake sequence than a simple finite state machine,
  1951.         resulting in peak transfer rates of about 150K/sec on
  1952.         a fast machine, perhaps 60K/sec on a slow machine 
  1953.         (through the filesystem).
  1954.  
  1955.         The driver also must sit in a tight loop as long as the 
  1956.         SCSI bus is busy, resulting in near 100% CPU utilitization
  1957.         and extremely poor responsiveness during SCSI/IO.
  1958.         Slow CDROMs which don't disconnect/reconnect will kill 
  1959.         interactive performance with these boards.
  1960.  
  1961.         Not recommended.
  1962.  
  1963. Interlocked    Boards using interlocked polled I/O are essentially
  1964. Polled        the same as pure polled I/O boards, only the SCSI REQ/ACK 
  1965.         handshaking signals are interlocked with the PC bus 
  1966.         handshaking signals.  All SCSI processing beyond 
  1967.         the handshaking is handled by the CPU.
  1968.  
  1969.         Peak transfer rates of 500-600K/sec through the 
  1970.         filesystem are possible on these boards.
  1971.  
  1972.         As with pure polled I/O boards, the driver must sit 
  1973.         in a tight loop as long as the SCSI bus is busy, 
  1974.         resulting in CPU utilization dependant on the 
  1975.         transfer rates of the devices, and when they 
  1976.         disconnect/reconnect.  CPU utilization may vary 
  1977.         between 25% for single speed CDs which handle
  1978.         disconnect/reconnect properly to 100% for faster
  1979.         drives or broken CD ROMs which fail to disconnect/reconnect.
  1980.  
  1981.         On my 486-66, with a T128, I use 90% of my CPU time to 
  1982.         sustain a throughput of 547K/sec on a drive 
  1983.         with a headrate of 1080K/sec with a T128 board.
  1984.  
  1985.         Sometimes acceptable for slow tapes and CDROMs when 
  1986.         low cost is essential.
  1987.  
  1988. FIFO         Boards using FIFO polled I/O put a small (typically 8K)
  1989. Polled        buffer between the CPU and the SCSI bus, and often implement
  1990.         some amount of intelligence.  The net effect is that 
  1991.         the CPU is only tied up when it is transfering data
  1992.         at top speed to the FIFO and when it's handling the 
  1993.         rest of the interrupt processing for FIFO empty conditions,
  1994.         disconnect/reconnect, etc.
  1995.  
  1996.         Peak transfer rates should be sufficient to handle
  1997.         most SCSI devices, and have been measured at up 
  1998.         to 4M/sec using raw SCSI commands to read 64K 
  1999.         blocks on a fast Seagate Barcuda with an Adaptec 
  2000.         1520.
  2001.  
  2002.         CPU utilization is dependant on the transfer
  2003.         rates of the  devices, with faster devices generating
  2004.         more interrupts per unit time which require more CPU 
  2005.         processing time.   Although CPU usage may be high
  2006.         (perhaps 75%) with fast devices, the system usually 
  2007.         remains usable.  These boards will provide excellent
  2008.         interactive performance with broken devices which 
  2009.         don't disconnect/reconnect (typically cheap CDROM 
  2010.         drives)
  2011.  
  2012.         Recommended for persons on a budget.
  2013.  
  2014. Slave          Drivers for boards using slave DMA program the PC's 
  2015. DMA        DMA controller for a channel when they do a data transfer,
  2016.         and return control to the CPU.
  2017.  
  2018.         Peak transfer rates are usually handicapped 
  2019.         by the poor DMA controller used on PCs, 
  2020.         with one such 8-bit board having problems
  2021.         going faster than 140-150K/sec with one mainboard.
  2022.  
  2023.         CPU utilization is very reasonable, slightly 
  2024.         less than what is seen with FIFO polled I/O boards.
  2025.         These boards are very tollerant of broken devices 
  2026.         which don't disconnect/reconnect (typically cheap
  2027.         CSG limitDROM drives).
  2028.  
  2029.         Acceptable for slow CDROM drives, tapes, etc.
  2030.  
  2031. Busmastering    These boards are intelligent.  Drivers 
  2032. DMA         for these boards throw a SCSI command, the destination
  2033.         target and lun, and where the data should end up
  2034.         in a structure, and tell the board "Hey, I have 
  2035.         a command for you."  The driver returns control
  2036.         to various running programs, and eventually the 
  2037.         SCSI board gets back and says that it's done.
  2038.  
  2039.         Since the intelligence is in the host adapter
  2040.         firmware and not the driver, drivers for these
  2041.         boards typically support more features - synchronous
  2042.         transfers, tagged queing, etc.
  2043.  
  2044.         With the clustered read/write patches, peak transfer
  2045.         rates through the file system approach 100% of head rate 
  2046.         writing, 75% reading.  
  2047.  
  2048.         CPU utilization is minimal, irregardless of 
  2049.         I/O load, with a measured 5% CPU usage while 
  2050.         accessing a double speed CDROM on an Adaptec 1540 
  2051.         and 20% while sustaining a 1.2M/sec transfer rate
  2052.         on a SCSI disk. 
  2053.  
  2054.         Recommended in all cases where money is not extremely
  2055.         tight, the main board is not broken (some broken main boards
  2056.         do not work with bus masters), and applications where time 
  2057.         to data is more important than throughput are not being run 
  2058.         (bus master overhead may hit 3-4ms per command).
  2059.  
  2060.     The second most important driver/hardware feature with respect 
  2061. to performance is support for scatter/gather I/O.  The overhead of executing 
  2062. a SCSI command is significant - on the order of milliseconds. Intelligent bus 
  2063. masters like the Adaptec 1540 may take 3-4ms to process a SCSI command before 
  2064. the target even sees it.  On unbuffered devices, this overhead is allways enough 
  2065. to slip a revolution, resulting in a transfer rate of about 60K/sec 
  2066. (assuming a 3600RPM drive) per block transfered at a time.  So, to maximize 
  2067. performance, it is necessary to minimize the number of SCSI commands needed 
  2068. to transfer a given amount of data by transfering more data per command.  Due 
  2069. to the design of the Linux buffer cache, contiguous disk blocks are not 
  2070. contiguous in memory. With the clustered read/write patches, 4K worth of 
  2071. buffers are contiguous.  So, the maximum amount of data which can 
  2072. be transfered per SCSI command is going to be 1K * # of scatter/gather
  2073. regions without the clustered read/write patches, 4K * # of regions
  2074. with.  Experimentally, we've determined that 64K is a reasonable 
  2075. a55mount to transfer with a single SCSI command - meaning 64 scatter/gather
  2076. buffers without clustered read/write patches, 16 without.  With the 
  2077. change from 16K to 64K transfers, we saw an improvement from 
  2078. 50% of headreate, through the filesystem, reading and writing,
  2079. to 75% and 100% respectively using an Adaptec 1540 series board.
  2080.  
  2081.     Bus type is the next thing to consider, with choices including ISA,
  2082. EISA, VESA, and PCI.  Marketing types often spout of absurd bandwidth
  2083. numbers based on burst transfer rates and fiction, which isn't very 
  2084. useful.  Instead, I've chosen to state "real-world" numbers based on 
  2085. measured performance with various peripherials.
  2086.  
  2087. Bus    Bandwidth, description, 
  2088. ISA    Bandwidth is slightly better than 5M/sec for  busmastering 
  2089.     devices.  With an ISA bus, arbitration for busmasters is performed 
  2090.     by the venerable 8237 third party DMA controller, resulting in 
  2091.     relatively high bus aquisition times.  Interrupt drivers are
  2092.     tri-state and edge triggered, meaning interrupts cannot be 
  2093.     shared. Generally, ISA is unbuffered, meaning the host/memory
  2094.     bus is tied up whenever a transfer is occuring. No mechanism
  2095.     is provided to prevent bus-hogging.
  2096.  
  2097. VESA    Bandwidth is about 30M/sec.  Some VESA systems run the bus out 
  2098.     of spec, rendering them incompatable with some boards, so this
  2099.     should be taken into consideration before purchasing hardware
  2100.     without a return guarantee.  Generally, VESA is unbuffered, meaning
  2101.     meaning the host/memory bus is tied up whenever a transfer is 
  2102.     occuring.
  2103.  
  2104. EISA    Bandwidth is about 30M/sec, with busmastering operations generally
  2105.     being faster than VESA.  Some EISA systems buffer the bus, allowing
  2106.     burst transfers to the faster host/memory bus and minimizing impact
  2107.     on CPU performance.  EISA interrupt drivers may be either tri-state
  2108.     edge-triggered or open collector level-active, allowing interrupt
  2109.     sharing with drivers that support it.  Since EISA allocates a 
  2110.     separate address space for each board, it is usually less prone to 
  2111.     resource conflicts than ISA or VESA.
  2112.  
  2113. PCI    Bandwidth is about 60M/sec.  Most PCI systems implement write
  2114.     posting buffers on the host bridge, allowing speed mismatches
  2115.     on either side to have a minimum impact on bus/CPU performance.  
  2116.     PCI interrupt drivers are open collector level-active, allowing
  2117.     interrupt sharing with drivers that support it. Mechanisms
  2118.     are provided to prevent bus hogging, and for both master and 
  2119.     slave to suspend a bus-mastering operation. 
  2120.  
  2121.     Since PCI provides a plug-n-play mechanism with writeable 
  2122.     configuration registers on every board, in a separate address space, 
  2123.     a propperly implemented PCI system is plug-and play.  
  2124.  
  2125.     PCI is extremely strict as to trace length, loading, mechanical
  2126.     specifications, etc. and ultimately should be more reliable than
  2127.     VESA or ISA.
  2128.  
  2129.     In summary, PCI is the best PC bus, although it does
  2130.     have its dark side.  PCI is still in its infancy, and although
  2131.     most manufacturers have ironed out the problems, there is 
  2132.     still stock of older, buggy PCI hardware and broken main 
  2133.     BIOSes.  For this reason, I _strongly_ recommend a return
  2134.     guarantee on the hardware.  While the latest PCI mainboards
  2135.     are truly plug-and-play, older PCI boards may require the 
  2136.     user to set options with both jumpers and in software (ie,
  2137.     interrupt assignments).  Although many users have 
  2138.     resolved their PCI problems, it has taken time and for this
  2139.     reason I cannot recommend a PCI purchase if having the 
  2140.     system operational is extremely time critical.
  2141.  
  2142.     For many slower SCSI devices, such as disks with head rates 
  2143. arround 2M/sec or less, CDROMs, and tapes, there will be little difference
  2144. in throughputs with the different PC bus interfaces.  For faster contemporary
  2145. SCSI drives (Typical high end multi-gigabyte drives have a head rate of 
  2146. 4-5M/sec, and at least one company is currently ALPHA testing a parallel
  2147. head unit with a 14M/sec head rate), throughput will often be significantly 
  2148. better with controllers on faster busses, with one user noting a 2.5 fold 
  2149. performance improvement when going from an Adaptec 1542 ISA board to a 
  2150. NCR53c810 PCI board. 
  2151.  
  2152.     With the exception of situations where PCI write-posting or a 
  2153. similar write-buffering mechanism is being used, when one of the busses in 
  2154. your system is busy, all of the busses will be unaccessable.  So, although 
  2155. bus saturation may not be interfering with SCSI performance, it may have a 
  2156. negative effect on interactive performance.  Ie, if you have a 4M/sec SCSI 
  2157. disk under ISA, you'll have lost 80% of your bandwidth, and in an 
  2158. ISA/VESA system would only be able to bitblt at 6M/sec.  In most cases,
  2159. a similar impact on processing jobs in the background would also be felt.
  2160.  
  2161.     Note that having over 16M of memory does not preclude using
  2162. an ISA busmastering SCSI board.  Unlike various broken operating
  2163. systems, Linux will double buffer when using a DMA with an ISA controller
  2164. and a transfer is ultimately destined for an area above 16M.  Performance
  2165. on these transfers only suffers by about 1.5%, ie not noticably.
  2166.  
  2167.     Finally, the price difference between bus masters offered with the 
  2168. different bus interfaces is often minimal.  
  2169.  
  2170.     With all that in mind, based on your priorities you will have 
  2171. certain bus preferences 
  2172.  
  2173.     Stability, time critical installations,      EISA ISA VESA PCI
  2174.         and poor return policies
  2175.     Performance, and typical hobbiest        PCI EISA VESA ISA
  2176.         installations
  2177.  
  2178.  
  2179.      As I pointed out earlier, bus mastering versus other transfer modes is going to have 
  2180. a bigger impact on total system performance, and should be considered
  2181. more important than bus type when purchasing a SCSI controller.
  2182.  
  2183.     If will you have multiple devices on your SCSI bus, you may
  2184. want to see whether the host adapter/driver that you are considering supports
  2185. more than one outstanding command at one time.  This is very
  2186. important if you are mixing devices of different speeds, like a
  2187. tape drive and a disk drive.  If the linux driver only supports one
  2188. outstanding command, you may be locked out of your disk drive while 
  2189. a tape in the tape drive is rewinding, for example.  With two
  2190. disk drives, the problem will not be as noticeable, allthough 
  2191. throughput would approach the average of the two transfer rates 
  2192. rather than the sum of the two transfer rates.
  2193.  
  2194. Driver feature comparison (supported chips are listed in parenthesis)
  2195.  
  2196. Driver                  Simultaneous    SG         > 1 
  2197.         Transfer mode        Commands    limit        Boards
  2198.                     total/LUN
  2199. aha152x          FIFO(8k) Polled           1s/1s        255s
  2200.     (AIC6260,
  2201.     AIC6360)
  2202. aha1542       Busmastering DMA     8s/1s        16        Y
  2203. aha1740          Busmastering DMA     32s        16
  2204. aha274x        Busmastering DMA    4s/1s        1        Y    
  2205. buslogic    Busmastering DMA    Y        64s, 8196h     
  2206. fdomain        FIFO(8k) Polled        1s        64s
  2207.     (TMC1800,
  2208.     TMC18c30,
  2209.     TMC18c50)
  2210. in2000*        FIFO(2k) Polled        1s        255s
  2211. g_NCR5380    Pure Polled         16s/2s        255s        Y
  2212.     (NCR5380,
  2213.     NCR53c80,
  2214.     NCR5381, 
  2215.     NCR53c400)
  2216. gsi8*        Slave DMA        16s/2s        255s
  2217.     (NCR5380)
  2218. PAS16        Pure Polled        16s/2s        255s        Y
  2219.     (NCR5380)    or Interlocked Polled
  2220.         (fails on some systems!)
  2221. seagate        Interlocked Polled    1s        255s        N
  2222. wd7000          Busmastering DMA    8s        1
  2223. t128        Interlocked Polled    16s        255s        Y
  2224.     (NCR5380)
  2225. ultrastor     Busmastering DMA    Y    
  2226. 53c7,8xx    Busmastering DMA    1s/1s        255s        Y
  2227.     (NCR53c810)
  2228.  
  2229. Notes : 
  2230. 1.  drivers flagged with an '*' are not included with the 
  2231.     distribution kernel, and binary boot images may be unavailable.
  2232.  
  2233. 2.  numbers suffixed with an 's' are arbitrary limits set in software 
  2234.     which may be changed with a compile time define.  
  2235.  
  2236. 3.  hardware limits are indicated by an 'h' suffix, and may differ
  2237.     from the software limits currently imposed by the Linux drivers.
  2238.  
  2239. 4.  unsuffixed numbers may indicate either hard or soft limits.
  2240.  
  2241.      
  2242. Board comparison : 
  2243. Board            Driver        Bus    Price    Notes
  2244. Adaptec AIC-6260    aha152x        ISA        chip, not board
  2245. Adaptec AIC-6360    aha152x        VLB        chip, not board
  2246.     (Used in most 
  2247.     VESA/ISA multi-IO
  2248.     boards with SCSI,
  2249.     Zenon mainboards)
  2250. Adaptec 1520        aha152x        ISA         
  2251. Adaptec 1522        aha152x        ISA    $80    1520 w/FDC
  2252. Adaptec 1510        aha152x        ISA        1520 w/out boot ROM,
  2253.                             won't autoprobe.
  2254. Adaptec 1540C        aha1542        ISA        
  2255. Adaptec 1542C        aha1542        ISA        1540C w/FDC
  2256. Adaptec 1540CF        aha1542        ISA        FAST SCSI-II
  2257. Adaptec 1542CF        aha1542        ISA    $200    1540CF w/FDC
  2258.  
  2259. Adaptec 1740        aha1740        EISA        discontinued
  2260. Adaptec 1742        aha1740        EISA        discontinued, 1740 
  2261.                             w/FDC
  2262. Adaptec 2740        aha274x        EISA
  2263. Adaptec 2742        aha274x        EISA        
  2264. Allways IN2000        in2000        ISA
  2265. Buslogic 445S        aha1542,     VLB    $250    FAST SCSI-II, active
  2266.             buslogic            termination, w/FDC
  2267. Buslogic 747S        aha1542,     EISA        FAST SCSI-II, active
  2268.             buslogic            termination, w/FDC
  2269. Buslogic 946S        buslogic    PCI        FAST SCSI-II, activte
  2270.                             termination.  
  2271. DTC 3290        aha1542        EISA        Although it should work,
  2272.                             due to documentation
  2273.                             release polcies, DTC
  2274.                             hardware is unsupported
  2275. DTC 3292        aha1542        EISA        3290 w/FDC
  2276. Future Domain 1680    fdomain        ISA        FDC
  2277. Future Domain 3260    fdomain        PCI
  2278.  
  2279.  
  2280. NCR53c810 (boards sold 53c7,8xx        PCI     $70    chip, not board. Boards
  2281.     by FIC, Chaintech,                (board)    don't include
  2282.     Nextor, Gigabyte, etc.                      BIOS, although most
  2283.     Mainboards with chip by                non-NCR equipped main
  2284.     AMI, ASUS, J-Bond,                    boards have the SDMS
  2285.     etc. Common in DEC                    BIOS
  2286.     PCI systems)
  2287.                             
  2288. Pro Audio Spectrum 16    pas16        ISA        Sound board w/SCSI
  2289. Seagate ST01        seagate        ISA    $20    BIOS only works with
  2290.                             some drives
  2291. Seagate ST02        seagate        ISA    $40    ST01 w/FDC
  2292. Sound Blaster 16 SCSI     aha152x        ISA        Sound board w/SCSI
  2293. Western Digital 7000    wd7000        ISA        w/FDC
  2294. Trantor T128        t128        ISA        
  2295. Trantor T128F        t128        ISA        T128 w/FDC and 
  2296.                             support for high IRQs
  2297. Trantor T130B        g_NCR5380    ISA        
  2298. Ultrastor 14F        ultrastor    ISA        w/FDC
  2299. Ultrastor 24F        ultrastor    EISA        w/FDC
  2300. Ultrastor 34F        ultrastor    VLB 
  2301.  
  2302. Notes : 
  2303. 1.  Trantor was recently purchased by Adaptec, and some products are being    
  2304.     sold under the Adaptec name.
  2305.  
  2306. 2.  Ultrastor recently filed for Chapter 11 Bankruptcy, so technical
  2307.     support is non-existant at this time.
  2308.  
  2309. 3.  Various Buslogic boards other than the 545S, 445S, 747S, and
  2310.     946S _should_ work,  although to my knowledge have not been
  2311.     tried.
  2312.  
  2313. 4.  The $70 price for the busmastering NCR53c810 boards is not
  2314.     a typo, includes the standard ASPI/CAM driver package for 
  2315.     DOS, OS/2 and Windows (32 bit access), and other drivers are 
  2316.     available for free download. 
  2317.  
  2318.     If you can't find one at that price, try Technoland at 
  2319.     1-800-292-4500 or 1-408-992-0888 if you live in California.
  2320.  
  2321. 5.  Adaptec's recent SCSI chips show an unusual sensitivity
  2322.     to cabling and termination problems. For this reason,
  2323.     I cannot recommend the Adaptec 154x C and CF revisions or the 
  2324.     274x series.
  2325.  
  2326.     Note that the reliability problems do NOT apply to the 
  2327.     older 154x B revision boards, 174x A revision boards,
  2328.     or to my knowledge AIC-6360/AIC-6260 based boards.
  2329.  
  2330.     Also, the quality of their technical support has slipped markedly, with
  2331.     long delays becoming more common, and their employees being ignorant 
  2332.     (suggesting there were non-disclosure policies affecting certain
  2333.     literature when there were none), and hostile (ie, refusing to pass 
  2334.     questions on to some one else when they couldn't answer them).
  2335.  
  2336.     If users desire handholding, or wish to make a political statement,
  2337.     they should take this point into consideration.  Otherwise, the 
  2338.     Adaptec 152x/1510 are nicer than the other ISA boards in the 
  2339.     same price range, and there are some excellent deals on used and
  2340.     surplus 154x B revision boards and 1742 boards which IMHO outweigh
  2341.     the support problems.
  2342.     
  2343.     Most ISA, EISA, and VESA users will probably be served best by 
  2344. a Buslogic board, due to its performance, features such as active termination, 
  2345. and Adaptec 1540 compatability.  There are a number of models available with 
  2346. EISA, ISA, PCI, and VESA local bus interfaces, in single ended and differential,
  2347. and 8/16 bit SCSI bus widths.
  2348.  
  2349.     People with PCI systems should seriously consider NCR53c810
  2350. based boards.  These are bus mastering SCSI controllers, available in 
  2351. Q1 for about $70 (ie, cheaper than the Adaptec 1520) with larger 
  2352. quantities being cheaper (I've seen $62 in Q20).  In addition to being
  2353. the cheapest PCI SCSI boards, the NCR boards were also benchmarked 
  2354. as faster than the Adaptec 2940 and Buslogic BT-946, and demonstrate 
  2355. excellent performance under Linux (up to 4M/sec through the file system )
  2356. inspite of the performance optomizations being disabled in the current
  2357. driver.  The disadvantages of these boards versus the Buslogics are that 
  2358. they aren't Adaptec 1540 compatable, don't come with active termination, 
  2359. and to my knowledge are only supported under DOS+Windows, OS/2, Windows NT, 
  2360. SCO, NeXTstep, and Free BSD.  Currently, the driver is somewhat 
  2361. limited, but appears quite stable (We've moved several gigabytes of data to NCR based 
  2362. devices with no problems), surprisingly fast (I've seen 4M/sec through
  2363. the filesystem) and will rapidly become more featureful.
  2364.     
  2365.     People wanting non-PCI SCSI on a limited budget will probably be 
  2366. happiest finding a surplus or used Adaptec 154x B revision or 174x A 
  2367. revision, or an Adaptec 1520 clone of some sort (about $80) if they want
  2368. new.  These boards offer reasonable throughput and interactive performance at a 
  2369. modest price.
  2370.  
  2371. EOF
  2372.  
  2373.  
  2374.