<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Qlogic FASXXX Family Driver Notes — The Linux Kernel documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=3918102e" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="SCSI media changer driver" href="scsi-changer.html" />
<link rel="prev" title="Terse where to get ZIP Drive help info" href="ppa.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/logo.svg" alt="Logo of The Linux Kernel"/>
</a></p>
<h1 class="logo"><a href="../index.html">The Linux Kernel</a></h1>
<p class="blurb">6.18.50</p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<p>
<h3 class="kernel-toc-contents">Contents</h3>
<input type="checkbox" class="kernel-toc-toggle" id = "kernel-toc-toggle" checked>
<label class="kernel-toc-title" for="kernel-toc-toggle"></label>
<div class="kerneltoc" id="kerneltoc">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/development-process.html">Development process</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/submitting-patches.html">Submitting patches</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/code-of-conduct.html">Code of conduct</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintainer/index.html">Maintainer handbook</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/index.html">All development-process docs</a></li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../core-api/index.html">Core API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../driver-api/index.html">Driver APIs</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../subsystem-apis.html">Subsystems</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#core-subsystems">Core subsystems</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#human-interfaces">Human interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#networking-interfaces">Networking interfaces</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../subsystem-apis.html#storage-interfaces">Storage interfaces</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="../filesystems/index.html">Filesystems in the Linux kernel</a></li>
<li class="toctree-l3"><a class="reference internal" href="../block/index.html">Block</a></li>
<li class="toctree-l3"><a class="reference internal" href="../cdrom/index.html">CD-ROM</a></li>
<li class="toctree-l3 current"><a class="reference internal" href="index.html">SCSI Subsystem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../target/index.html">TCM Virtual Device</a></li>
<li class="toctree-l3"><a class="reference internal" href="../nvme/index.html">NVMe Subsystem</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#other-subsystems">Other subsystems</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../locking/index.html">Locking</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/license-rules.html">Licensing rules</a></li>
<li class="toctree-l1"><a class="reference internal" href="../doc-guide/index.html">Writing documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/index.html">Development tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/testing-overview.html">Testing guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kernel-hacking/index.html">Hacking guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../trace/index.html">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fault-injection/index.html">Fault injection</a></li>
<li class="toctree-l1"><a class="reference internal" href="../livepatch/index.html">Livepatching</a></li>
<li class="toctree-l1"><a class="reference internal" href="../rust/index.html">Rust</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/index.html">Administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kbuild/index.html">Build system</a></li>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/reporting-issues.html">Reporting issues</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tools/index.html">Userspace tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../userspace-api/index.html">Userspace API</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../firmware-guide/index.html">Firmware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../devicetree/index.html">Firmware and Devicetree</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../arch/index.html">CPU architectures</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../staging/index.html">Unsorted documentation</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../translations/index.html">Translations</a></li>
</ul>
</div>
<script type="text/javascript"> <!--
var sbar = document.getElementsByClassName("sphinxsidebar")[0];
let currents = document.getElementsByClassName("current")
if (currents.length) {
sbar.scrollTop = currents[currents.length - 1].offsetTop;
}
--> </script>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/scsi/qlogicfas.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="qlogic-fasxxx-family-driver-notes">
<h1>Qlogic FASXXX Family Driver Notes<a class="headerlink" href="#qlogic-fasxxx-family-driver-notes" title="Link to this heading">¶</a></h1>
<p>This driver supports the Qlogic FASXXX family of chips. This driver
only works with the ISA, VLB, and PCMCIA versions of the Qlogic
FastSCSI! cards as well as any other card based on the FASXX chip
(including the Control Concepts SCSI/IDE/SIO/PIO/FDC cards).</p>
<p>This driver does NOT support the PCI version. Support for these PCI
Qlogic boards:</p>
<blockquote>
<div><ul class="simple">
<li><p>IQ-PCI</p></li>
<li><p>IQ-PCI-10</p></li>
<li><p>IQ-PCI-D</p></li>
</ul>
</div></blockquote>
<p>is provided by the qla1280 driver.</p>
<p>Nor does it support the PCI-Basic, which is supported by the
‘am53c974’ driver.</p>
<section id="pcmcia-support">
<h2>PCMCIA Support<a class="headerlink" href="#pcmcia-support" title="Link to this heading">¶</a></h2>
<p>This currently only works if the card is enabled first from DOS. This
means you will have to load your socket and card services, and
QL41DOS.SYS and QL40ENBL.SYS. These are a minimum, but loading the
rest of the modules won’t interfere with the operation. The next
thing to do is load the kernel without resetting the hardware, which
can be a simple ctrl-alt-delete with a boot floppy, or by using
loadlin with the kernel image accessible from DOS. If you are using
the Linux PCMCIA driver, you will have to adjust it or otherwise stop
it from configuring the card.</p>
<p>I am working with the PCMCIA group to make it more flexible, but that
may take a while.</p>
</section>
<section id="all-cards">
<h2>All Cards<a class="headerlink" href="#all-cards" title="Link to this heading">¶</a></h2>
<p>The top of the qlogic.c file has a number of defines that controls
configuration. As shipped, it provides a balance between speed and
function. If there are any problems, try setting SLOW_CABLE to 1, and
then try changing USE_IRQ and TURBO_PDMA to zero. If you are familiar
with SCSI, there are other settings which can tune the bus.</p>
<p>It may be a good idea to enable RESET_AT_START, especially if the
devices may not have been just powered up, or if you are restarting
after a crash, since they may be busy trying to complete the last
command or something. It comes up faster if this is set to zero, and
if you have reliable hardware and connections it may be more useful to
not reset things.</p>
</section>
<section id="some-troubleshooting-tips">
<h2>Some Troubleshooting Tips<a class="headerlink" href="#some-troubleshooting-tips" title="Link to this heading">¶</a></h2>
<p>Make sure it works properly under DOS. You should also do an initial FDISK
on a new drive if you want partitions.</p>
<p>Don’t enable all the speedups first. If anything is wrong, they will make
any problem worse.</p>
</section>
<section id="important">
<h2>Important<a class="headerlink" href="#important" title="Link to this heading">¶</a></h2>
<p>The best way to test if your cables, termination, etc. are good is to
copy a very big file (e.g. a doublespace container file, or a very
large executable or archive). It should be at least 5 megabytes, but
you can do multiple tests on smaller files. Then do a COMP to verify
that the file copied properly. (Turn off all caching when doing these
tests, otherwise you will test your RAM and not the files). Then do
10 COMPs, comparing the same file on the SCSI hard drive, i.e. “COMP
realbig.doc realbig.doc”. Then do it after the computer gets warm.</p>
<p>I noticed my system which seems to work 100% would fail this test if
the computer was left on for a few hours. It was worse with longer
cables, and more devices on the SCSI bus. What seems to happen is
that it gets a false ACK causing an extra byte to be inserted into the
stream (and this is not detected). This can be caused by bad
termination (the ACK can be reflected), or by noise when the chips
work less well because of the heat, or when cables get too long for
the speed.</p>
<p>Remember, if it doesn’t work under DOS, it probably won’t work under
Linux.</p>
</section>
</section>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
©The kernel development community.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
& <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../_sources/scsi/qlogicfas.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>