<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="Keywords" content="SCST Old Unsupported Target Drivers">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="author" content="Daniel Fernandes">
<meta name="Robots" content="index,follow">
<link rel="stylesheet" href="images/Orange.css" type="text/css">
<title>Old Unsupported SCST Target Drivers</title>
</head>

<body>
<!-- wrap starts here -->
<div id="wrap">
	<div id="header">
		<div class="logoimg"></div><h1 id="logo"><span class="orange"></span></h1>
		<h2 id=slogan>Generic SCSI Target Subsystem for Linux</h2>
	</div>

	<div id="menu">
		<ul>
			<li><a href="index.html">Home</a></li>
			<li><a href="http://www.sourceforge.net/projects/scst">Main</a></li>
			<li><a href="http://sourceforge.net/news/?group_id=110471">News</a></li>
			<li id="current"><a href="targets.html">Drivers</a></li>
			<li><a href="downloads.html">Downloads</a></li>
			<li><a href="contributing.html">Contributing</a></li>
			<li><a href="comparison.html">Comparison</a></li>
			<li><a href="users.html">Users</a></li>
		</ul>
	</div>

	<!-- content-wrap starts here -->
	<div id="content-wrap">
			<div id="sidebar">
				<h1>Target Drivers</h1>
				<ul class="sidemenu">
					<li><a href="target_iscsi.html">ISCSI-SCST with iSER</a></li>
					<li><a href="target_qla2x00t.html">QLogic FC qla2x00t</a></li>
					<li><a href="target_srp.html">SCSI RDMA Protocol (SRP)</a></li>
					<li><a href="target_mvsas.html">Marvell SAS adapters</a></li>
					<li><a href="target_emulex.html">Emulex FC/FCoE</a></li>
					<li><a href="target_lsi.html">LSI/MPT adapters</a></li>
					<li><a href="target_fcoe.html">FCoE Target</a></li>
					<li><a href="target_local.html">Local Target Driver</a></li>
					<li><a href="target_ibmvscsi.html">IBM pSeries Virtual SCSI</a></li>
					<li><a href="target_old.html">Old Unsupported</a></li>
				</ul>
				<h1>User utilities</h1>
				<ul class="sidemenu">
					<li><a href="scst_admin.html">SCST Admin Utility</a></li>
					<li><a href="handler_fileio_tgt.html">FILEIO_TGT handler</a></li>
				</ul>
			</div>

	  		<div id="main">
	  			<h1>Target driver for QLogic ISP chipsets</h1>
				<p><img src="images/t_unsupported.gif" width="100" height="120" class="float-left" alt="SCST Unsupported">
				This is an SCST driver for ISP QLogic chipsets commonly used in many SCSI and FC host bus adapters.
				It is based on Matthew Jacob's (<a href="http://www.feral.com">http://www.feral.com</a>)
				multiplatform driver for ISP chipsets. Update for SCST was made by Stanislaw Gruszka for Open-E Inc.</p>

				<p>The latest release is 1.0.2. It supports kernel versions between 2.6.16 and 2.6.32.</p>
				<p>This driver is obsoleted in favor of qla2x00t.</p>
				<br>


				<h1>Old target driver for QLogic qla2x00t adapters for 2.4 kernels</h1>
				<p><img src="images/t_unsupported.gif" width="100" height="120" class="float-left" alt="SCST Unsupported">
				Old target driver for QLogic qla2x00t adapters is capable to work on 2.4 kernels.
				It has all required features and looks to be quite stable. It is designed to work in conjunction with the
				initiator driver, which is intended to perform all the initialization and shutdown tasks. In the current release as
				a base for the initiator driver was taken Red Hat's driver from the stock 2.4.20 kernel. Then it was patched to
				enable the target mode and provide all necessary callbacks, and it's still able to work as initiator only. Mode,
				when a host acts as the initiator and the target simultaneously, is also supported. This driver is obsoleted in
				favor of 2.6-based driver.</p>
				<p>The latest version is 0.9.3.4. Requires Linux kernel versions 2.4.20 or higher and SCST version 0.9.3-pre4 or
				higher. If you are lucky, it works also on 2.6 kernels, see README file for details. Tested on i386 only, but
				should work on any other supported by Linux platform.</p>
				<p>Currently it is <strong>not supported</strong> and listed here for historical reasons only.</p>
				<br>

				<h1>Target drivers for Adaptec 7xxx and QLogic QLA12xx adapters</h1>
				<p><img src="images/t_unsupported.gif" width="100" height="120" class="float-left" alt="SCST Unsupported">
				Target drivers for Adaptec 7xxx and QLogic QLA12xx adapters have been developed by Hu Gang and they available for
				download from <a href="http://bj.soulinfo.com/~hugang/scst/tgt/">http://bj.soulinfo.com/~hugang/scst/tgt/</a>.
				These drivers are not completed, but looks to be a good starting point if you are going to use one of these adapters.
				SCST team don't have the appropriate hardware, therefore have not tested and don't support these drivers.
				Send all questions to <strong>Hu Gang < hugang at soulinfo com ></strong>. If some of these drivers don't compile for
				you, try again with SCST version 0.9.3-pre2.</p><br><br>
				<br>

				<h1>Patches for UNH-iSCSI Target 1.5.03 and 1.6.00 to SCST</h1>
				<p><img src="images/t_unsupported.gif" width="100" height="120" class="float-left" alt="SCST Unsupported">
				SCST is much more advanced, than the internal mid-level of <a href="http://sourceforge.net/projects/unh-iscsi">
				UNH-iSCSI target driver</a>. With SCST the iSCSI target benefits from all its features and gets ability to use all
				its advantages, like high performance and scalability, SMP support, required SCSI functionality emulation, etc.</p>

				<p>Since the interface between SCST and the target drivers is based on work, done by UNH IOL, it was relatively
				simple to update UNH-iSCSI target to work over SCST. Mostly it was "search and replace" job. The built-in
				scsi_target remains available as a compile-time option.</p>

				<p>Requires Linux kernel versions 2.4.20 or higher or 2.6.7 or higher and SCST version 0.9.2 or higher.</p>
				<p>Currently it is <strong>not supported</strong> and listed here for historical reasons only.</p>
	<!-- content-wrap ends here -->
			</div>
	</div>
<!-- wrap ends here -->
</div>
<!-- footer starts here -->
<div id="footer">
	<p>&copy; Copyright 2004 - 2020<b><font class="names"> Vladislav Bolkhovitin &amp others</font></b>&nbsp;&nbsp;
	Design by: <b><font class="names">Daniel Fernandes</font></b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
</div>
<!-- footer ends here -->
<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://apps.sourceforge.net/piwik/scst/" : "http://apps.sourceforge.net/piwik/scst/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
piwik_action_name = '';
piwik_idsite = 1;
piwik_url = pkBaseURL + "piwik.php";
piwik_log(piwik_action_name, piwik_idsite, piwik_url);
</script>
<object><noscript><p><img src="http://apps.sourceforge.net/piwik/scst/piwik.php?idsite=1" alt="piwik"></p></noscript></object>
<!-- End Piwik Tag -->
</body>
</html>
