<!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>AdvanSys 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="Adaptec AHA-1520/1522 SCSI driver for Linux (aha152x)" href="aha152x.html" />
<link rel="prev" title="AACRAID Driver for Linux (take two)" href="aacraid.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/advansys.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="advansys-driver-notes">
<h1>AdvanSys Driver Notes<a class="headerlink" href="#advansys-driver-notes" title="Link to this heading">¶</a></h1>
<p>AdvanSys (Advanced System Products, Inc.) manufactures the following
RISC-based, Bus-Mastering, Fast (10 Mhz) and Ultra (20 Mhz) Narrow
(8-bit transfer) SCSI Host Adapters for the ISA, EISA, VL, and PCI
buses and RISC-based, Bus-Mastering, Ultra (20 Mhz) Wide (16-bit
transfer) SCSI Host Adapters for the PCI bus.</p>
<p>The CDB counts below indicate the number of SCSI CDB (Command
Descriptor Block) requests that can be stored in the RISC chip
cache and board LRAM. A CDB is a single SCSI command. The driver
detect routine will display the number of CDBs available for each
adapter detected. The number of CDBs used by the driver can be
lowered in the BIOS by changing the ‘Host Queue Size’ adapter setting.</p>
<dl class="simple">
<dt>Laptop Products:</dt><dd><ul class="simple">
<li><p>ABP-480 - Bus-Master CardBus (16 CDB)</p></li>
</ul>
</dd>
<dt>Connectivity Products:</dt><dd><ul class="simple">
<li><p>ABP510/5150 - Bus-Master ISA (240 CDB)</p></li>
<li><p>ABP5140 - Bus-Master ISA PnP (16 CDB)</p></li>
<li><p>ABP5142 - Bus-Master ISA PnP with floppy (16 CDB)</p></li>
<li><p>ABP902/3902 - Bus-Master PCI (16 CDB)</p></li>
<li><p>ABP3905 - Bus-Master PCI (16 CDB)</p></li>
<li><p>ABP915 - Bus-Master PCI (16 CDB)</p></li>
<li><p>ABP920 - Bus-Master PCI (16 CDB)</p></li>
<li><p>ABP3922 - Bus-Master PCI (16 CDB)</p></li>
<li><p>ABP3925 - Bus-Master PCI (16 CDB)</p></li>
<li><p>ABP930 - Bus-Master PCI (16 CDB)</p></li>
<li><p>ABP930U - Bus-Master PCI Ultra (16 CDB)</p></li>
<li><p>ABP930UA - Bus-Master PCI Ultra (16 CDB)</p></li>
<li><p>ABP960 - Bus-Master PCI MAC/PC (16 CDB)</p></li>
<li><p>ABP960U - Bus-Master PCI MAC/PC Ultra (16 CDB)</p></li>
</ul>
</dd>
<dt>Single Channel Products:</dt><dd><ul class="simple">
<li><p>ABP542 - Bus-Master ISA with floppy (240 CDB)</p></li>
<li><p>ABP742 - Bus-Master EISA (240 CDB)</p></li>
<li><p>ABP842 - Bus-Master VL (240 CDB)</p></li>
<li><p>ABP940 - Bus-Master PCI (240 CDB)</p></li>
<li><p>ABP940U - Bus-Master PCI Ultra (240 CDB)</p></li>
<li><p>ABP940UA/3940UA - Bus-Master PCI Ultra (240 CDB)</p></li>
<li><p>ABP970 - Bus-Master PCI MAC/PC (240 CDB)</p></li>
<li><p>ABP970U - Bus-Master PCI MAC/PC Ultra (240 CDB)</p></li>
<li><p>ABP3960UA - Bus-Master PCI MAC/PC Ultra (240 CDB)</p></li>
<li><p>ABP940UW/3940UW - Bus-Master PCI Ultra-Wide (253 CDB)</p></li>
<li><p>ABP970UW - Bus-Master PCI MAC/PC Ultra-Wide (253 CDB)</p></li>
<li><p>ABP3940U2W - Bus-Master PCI LVD/Ultra2-Wide (253 CDB)</p></li>
</ul>
</dd>
<dt>Multi-Channel Products:</dt><dd><ul class="simple">
<li><p>ABP752 - Dual Channel Bus-Master EISA (240 CDB Per Channel)</p></li>
<li><p>ABP852 - Dual Channel Bus-Master VL (240 CDB Per Channel)</p></li>
<li><p>ABP950 - Dual Channel Bus-Master PCI (240 CDB Per Channel)</p></li>
<li><p>ABP950UW - Dual Channel Bus-Master PCI Ultra-Wide (253 CDB Per Channel)</p></li>
<li><p>ABP980 - Four Channel Bus-Master PCI (240 CDB Per Channel)</p></li>
<li><p>ABP980U - Four Channel Bus-Master PCI Ultra (240 CDB Per Channel)</p></li>
<li><p>ABP980UA/3980UA - Four Channel Bus-Master PCI Ultra (16 CDB Per Chan.)</p></li>
<li><p>ABP3950U2W - Bus-Master PCI LVD/Ultra2-Wide and Ultra-Wide (253 CDB)</p></li>
<li><p>ABP3950U3W - Bus-Master PCI Dual LVD2/Ultra3-Wide (253 CDB)</p></li>
</ul>
</dd>
</dl>
<section id="driver-compile-time-options-and-debugging">
<h2>Driver Compile Time Options and Debugging<a class="headerlink" href="#driver-compile-time-options-and-debugging" title="Link to this heading">¶</a></h2>
<p>The following constants can be defined in the source file.</p>
<ol class="arabic">
<li><p>ADVANSYS_ASSERT - Enable driver assertions (Def: Enabled)</p>
<p>Enabling this option adds assertion logic statements to the
driver. If an assertion fails a message will be displayed to
the console, but the system will continue to operate. Any
assertions encountered should be reported to the person
responsible for the driver. Assertion statements may proactively
detect problems with the driver and facilitate fixing these
problems. Enabling assertions will add a small overhead to the
execution of the driver.</p>
</li>
<li><p>ADVANSYS_DEBUG - Enable driver debugging (Def: Disabled)</p>
<p>Enabling this option adds tracing functions to the driver and the
ability to set a driver tracing level at boot time. This option is
very useful for debugging the driver, but it will add to the size
of the driver execution image and add overhead to the execution of
the driver.</p>
<p>The amount of debugging output can be controlled with the global
variable ‘asc_dbglvl’. The higher the number the more output. By
default the debug level is 0.</p>
<p>If the driver is loaded at boot time and the LILO Driver Option
is included in the system, the debug level can be changed by
specifying a 5th (ASC_NUM_IOPORT_PROBE + 1) I/O Port. The
first three hex digits of the pseudo I/O Port must be set to
‘deb’ and the fourth hex digit specifies the debug level: 0 - F.
The following command line will look for an adapter at 0x330
and set the debug level to 2:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>linux advansys=0x330,0,0,0,0xdeb2
</pre></div>
</div>
<p>If the driver is built as a loadable module this variable can be
defined when the driver is loaded. The following insmod command
will set the debug level to one:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>insmod advansys.o asc_dbglvl=1
</pre></div>
</div>
<p>Debugging Message Levels:</p>
<blockquote>
<div><table class="docutils align-default">
<tbody>
<tr class="row-odd"><td><p>0</p></td>
<td><p>Errors Only</p></td>
</tr>
<tr class="row-even"><td><p>1</p></td>
<td><p>High-Level Tracing</p></td>
</tr>
<tr class="row-odd"><td><p>2-N</p></td>
<td><p>Verbose Tracing</p></td>
</tr>
</tbody>
</table>
</div></blockquote>
<p>To enable debug output to console, please make sure that:</p>
<ol class="loweralpha">
<li><p>System and kernel logging is enabled (syslogd, klogd running).</p></li>
<li><p>Kernel messages are routed to console output. Check
/etc/syslog.conf for an entry similar to this:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>kern.* /dev/console
</pre></div>
</div>
</li>
<li><p>klogd is started with the appropriate -c parameter
(e.g. klogd -c 8)</p></li>
</ol>
<p>This will cause <a class="reference internal" href="../core-api/printk-basics.html#c.printk" title="printk"><code class="xref c c-func docutils literal notranslate"><span class="pre">printk()</span></code></a> messages to be displayed on the
current console. Refer to the klogd(8) and syslogd(8) man pages
for details.</p>
<p>Alternatively you can enable <a class="reference internal" href="../core-api/printk-basics.html#c.printk" title="printk"><code class="xref c c-func docutils literal notranslate"><span class="pre">printk()</span></code></a> to console with this
program. However, this is not the ‘official’ way to do this.</p>
<p>Debug output is logged in /var/log/messages.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>main()
{
syscall(103, 7, 0, 0);
}
</pre></div>
</div>
<p>Increasing LOG_BUF_LEN in kernel/printk.c to something like
40960 allows more debug messages to be buffered in the kernel
and written to the console or log file.</p>
</li>
<li><p>ADVANSYS_STATS - Enable statistics (Def: Enabled)</p>
<p>Enabling this option adds statistics collection and display
through /proc to the driver. The information is useful for
monitoring driver and device performance. It will add to the
size of the driver execution image and add minor overhead to
the execution of the driver.</p>
<p>Statistics are maintained on a per adapter basis. Driver entry
point call counts and transfer size counts are maintained.
Statistics are only available for kernels greater than or equal
to v1.3.0 with the CONFIG_PROC_FS (/proc) file system configured.</p>
<p>AdvanSys SCSI adapter files have the following path name format:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>/proc/scsi/advansys/{0,1,2,3,...}
</pre></div>
</div>
<p>This information can be displayed with cat. For example:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>cat /proc/scsi/advansys/0
</pre></div>
</div>
<p>When ADVANSYS_STATS is not defined the AdvanSys /proc files only
contain adapter and device configuration information.</p>
</li>
</ol>
</section>
<section id="driver-lilo-option">
<h2>Driver LILO Option<a class="headerlink" href="#driver-lilo-option" title="Link to this heading">¶</a></h2>
<p>If init/main.c is modified as described in the ‘Directions for Adding
the AdvanSys Driver to Linux’ section (B.4.) above, the driver will
recognize the ‘advansys’ LILO command line and /etc/lilo.conf option.
This option can be used to either disable I/O port scanning or to limit
scanning to 1 - 4 I/O ports. Regardless of the option setting EISA and
PCI boards will still be searched for and detected. This option only
affects searching for ISA and VL boards.</p>
<dl>
<dt>Examples:</dt><dd><ol class="arabic">
<li><p>Eliminate I/O port scanning:</p>
<p>boot:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>linux advansys=
</pre></div>
</div>
<p>or:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>boot: linux advansys=0x0
</pre></div>
</div>
</li>
<li><p>Limit I/O port scanning to one I/O port:</p>
<p>boot:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>linux advansys=0x110
</pre></div>
</div>
</li>
<li><p>Limit I/O port scanning to four I/O ports:</p>
<p>boot:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>linux advansys=0x110,0x210,0x230,0x330
</pre></div>
</div>
</li>
</ol>
</dd>
</dl>
<p>For a loadable module the same effect can be achieved by setting
the ‘asc_iopflag’ variable and ‘asc_ioport’ array when loading
the driver, e.g.:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>insmod advansys.o asc_iopflag=1 asc_ioport=0x110,0x330
</pre></div>
</div>
<p>If ADVANSYS_DEBUG is defined a 5th (ASC_NUM_IOPORT_PROBE + 1)
I/O Port may be added to specify the driver debug level. Refer to
the ‘Driver Compile Time Options and Debugging’ section above for
more information.</p>
</section>
<section id="credits-chronological-order">
<h2>Credits (Chronological Order)<a class="headerlink" href="#credits-chronological-order" title="Link to this heading">¶</a></h2>
<p>Bob Frey <<a class="reference external" href="mailto:bfrey%40turbolinux.com.cn">bfrey<span>@</span>turbolinux<span>.</span>com<span>.</span>cn</a>> wrote the AdvanSys SCSI driver
and maintained it up to 3.3F. He continues to answer questions
and help maintain the driver.</p>
<p>Nathan Hartwell <<a class="reference external" href="mailto:mage%40cdc3.cdc.net">mage<span>@</span>cdc3<span>.</span>cdc<span>.</span>net</a>> provided the directions and
basis for the Linux v1.3.X changes which were included in the
1.2 release.</p>
<p>Thomas E Zerucha <<a class="reference external" href="mailto:zerucha%40shell.portal.com">zerucha<span>@</span>shell<span>.</span>portal<span>.</span>com</a>> pointed out a bug
in <code class="xref c c-func broken_xref docutils literal notranslate"><span class="pre">advansys_biosparam()</span></code> which was fixed in the 1.3 release.</p>
<p>Erik Ratcliffe <<a class="reference external" href="mailto:erik%40caldera.com">erik<span>@</span>caldera<span>.</span>com</a>> has done testing of the
AdvanSys driver in the Caldera releases.</p>
<p>Rik van Riel <<a class="reference external" href="mailto:H.H.vanRiel%40fys.ruu.nl">H<span>.</span>H<span>.</span>vanRiel<span>@</span>fys<span>.</span>ruu<span>.</span>nl</a>> provided a patch to
<code class="xref c c-func broken_xref docutils literal notranslate"><span class="pre">AscWaitTixISRDone()</span></code> which he found necessary to make the
driver work with a SCSI-1 disk.</p>
<p>Mark Moran <<a class="reference external" href="mailto:mmoran%40mmoran.com">mmoran<span>@</span>mmoran<span>.</span>com</a>> has helped test Ultra-Wide
support in the 3.1A driver.</p>
<p>Doug Gilbert <<a class="reference external" href="mailto:dgilbert%40interlog.com">dgilbert<span>@</span>interlog<span>.</span>com</a>> has made changes and
suggestions to improve the driver and done a lot of testing.</p>
<p>Ken Mort <<a class="reference external" href="mailto:ken%40mort.net">ken<span>@</span>mort<span>.</span>net</a>> reported a DEBUG compile bug fixed
in 3.2K.</p>
<p>Tom Rini <<a class="reference external" href="mailto:trini%40kernel.crashing.org">trini<span>@</span>kernel<span>.</span>crashing<span>.</span>org</a>> provided the CONFIG_ISA
patch and helped with PowerPC wide and narrow board support.</p>
<p>Philip Blundell <<a class="reference external" href="mailto:philb%40gnu.org">philb<span>@</span>gnu<span>.</span>org</a>> provided an
advansys_interrupts_enabled patch.</p>
<p>Dave Jones <<a class="reference external" href="mailto:dave%40denial.force9.co.uk">dave<span>@</span>denial<span>.</span>force9<span>.</span>co<span>.</span>uk</a>> reported the compiler
warnings generated when CONFIG_PROC_FS was not defined in
the 3.2M driver.</p>
<p>Jerry Quinn <<a class="reference external" href="mailto:jlquinn%40us.ibm.com">jlquinn<span>@</span>us<span>.</span>ibm<span>.</span>com</a>> fixed PowerPC support (endian
problems) for wide cards.</p>
<p>Bryan Henderson <<a class="reference external" href="mailto:bryanh%40giraffe-data.com">bryanh<span>@</span>giraffe-data<span>.</span>com</a>> helped debug narrow
card error handling.</p>
<p>Manuel Veloso <<a class="reference external" href="mailto:veloso%40pobox.com">veloso<span>@</span>pobox<span>.</span>com</a>> worked hard on PowerPC narrow
board support and fixed a bug in <code class="xref c c-func broken_xref docutils literal notranslate"><span class="pre">AscGetEEPConfig()</span></code>.</p>
<p>Arnaldo Carvalho de Melo <<a class="reference external" href="mailto:acme%40conectiva.com.br">acme<span>@</span>conectiva<span>.</span>com<span>.</span>br</a>> made
save_flags/restore_flags changes.</p>
<p>Andy Kellner <<a class="reference external" href="mailto:AKellner%40connectcom.net">AKellner<span>@</span>connectcom<span>.</span>net</a>> continued the Advansys SCSI
driver development for ConnectCom (Version > 3.3F).</p>
<p>Ken Witherow for extensive testing during the development of version 3.4.</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/advansys.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>