summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/README.ppa
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1997-01-07 02:33:00 +0000
committer <ralf@linux-mips.org>1997-01-07 02:33:00 +0000
commitbeb116954b9b7f3bb56412b2494b562f02b864b1 (patch)
tree120e997879884e1b9d93b265221b939d2ef1ade1 /drivers/scsi/README.ppa
parent908d4681a1dc3792ecafbe64265783a86c4cccb6 (diff)
Import of Linux/MIPS 2.1.14
Diffstat (limited to 'drivers/scsi/README.ppa')
-rw-r--r--drivers/scsi/README.ppa119
1 files changed, 119 insertions, 0 deletions
diff --git a/drivers/scsi/README.ppa b/drivers/scsi/README.ppa
new file mode 100644
index 000000000..509541d7a
--- /dev/null
+++ b/drivers/scsi/README.ppa
@@ -0,0 +1,119 @@
+README.ppa (c) 1996 Grant R. Guenther, grant@torque.net
+
+
+ The IOMEGA PPA3 parallel port SCSI Host Bus Adapter
+
+ as embedded in the ZIP drive
+
+
+This README documents the Linux support for the parallel port version of
+IOMEGA's ZIP100. The ZIP100 is an inexpensive and popular, but relatively
+low performance, removable medium disk device. The drive is also available
+as a regular SCSI device, but the driver documented here is for the
+parallel port version. IOMEGA implemented the parallel port version by
+integrating (or emulating ?) their PPA3 parallel to SCSI converter into
+the ZIP drive.
+
+I have implemented a low-level driver, ppa.c, for this parallel port
+host bus adapter, thereby supporting the parallel port ZIP drive as a
+regular SCSI device under Linux.
+
+It is possible that this driver will also work with the original PPA3
+device (to access a CDrom, for instance). But, the PPA3 is hard to find
+and costs as much as the ZIP drive itself, so no-one has actually tried
+this, to the best of my knowledge.
+
+The driver was developed without the benefit of any technical specifications
+for the interface. Instead, a modified version of DOSemu was used to
+monitor the protocol used by the DOS driver, 'guest.exe', for this adapter.
+I have no idea how my programming model relates to IOMEGA's design.
+(One technical consequence of this method: I have never observed a
+SCSI message byte in the protocol transactions between guest.exe and
+the ZIP drive, so I do not know how they are delivered. My working
+hypothesis is that we don't have to worry about them if we don't
+send linked commands to the drive.)
+
+I'd like to thank Byron Jeff (byron@cc.gatech.edu) for publishing his
+observation that the 'guest' driver loads under DOSemu. His remark was
+the stimulus that began this project.
+
+The ppa driver can detect and adapt to 4- and 8-bit parallel ports, but
+there is currently no support for EPP or ECP ports, as I have been unable
+to make the DOS drivers work in these modes on my test rig.
+
+The driver may be built in to the kernel, or loaded as a module. It
+may be configured on the command line in both cases, although the syntax
+is different. It may also be configured by editing the source file.
+
+Built-in drivers accept parameters using this LILO/LOADLIN command line
+syntax (omitted parameters retain their default values):
+
+ ppa=base[,speed_high[,speed_low[,nybble]]]
+
+For example: ppa=0x378,0,3
+
+If a driver is loaded as a module the parameters may be set on the
+insmod command line, but each one must be specified by name:
+
+For example: insmod ppa.o ppa_base=0x378 ppa_nybble=1
+
+(Notice the ppa_ prefix on each of the parameters in the insmod form.)
+
+Here are the parameters and their functions:
+
+Variable Default Description
+
+ppa_base 0x378 The base address of PPA's parallel port.
+ppa_speed_high 1 Microsecond i/o delay used in data transfers
+ppa_speed_low 6 Microsecond delay used in other operations
+ppa_nybble 0 1 to force the driver to use 4-bit mode.
+
+A word about the timing parameters: the ppa_speed_low parameter controls
+the widths of a large number of pulses that are sent over the parallel bus,
+the narrower the pulses, the faster things go, but the greater the risk of
+distortion by noise damping circuits in the parallel ports. The
+ppa_speed_high parameter controls the same delays, but during the data
+transfer phase only. In this phase, there is a lot of handshaking going
+on and the pulse shaping should not be so much of an issue, but if you
+see data corruption, you can increase this parameter as well.
+
+You might also want to reduce the timing values to attempt to increase
+the transfer rates on your system. Please be careful to watch for
+SCSI timeout errors in your log files. If you are getting timeouts, you
+have set these parameters too low. The default values appear to be
+safe on most machines.
+
+If you have both the lp and ppa drivers in your kernel, you must ensure
+that they access different parallel ports. By default, the lp driver is
+initialised early in the booting process, and it claims all parallel
+ports that it can find. You may control this behaviour with a LILO or
+LOADLIN command line argument of the form:
+
+ lp=base0[,irq0[,base1[,irq1[,base2[,irq2]]]]]
+
+For example: lp=0x278,7
+
+If you use this method, only the ports named will be adopted by the lp
+driver. You can disable them all with lp=0 .
+
+So, if you have a printer on 0x3bc and a ZIP drive on 0x278 you would
+give the following options on your boot command:
+
+ lp=0x3bc ppa=0x278
+
+In this case lp would use the polling driver, since an interrupt was not
+specified.
+
+If you want to share the same parallel port between a ZIP drive and a
+printer, you should build both the lp and ppa drivers as modules and
+load and unload one or the other as required. This is clumsy but we
+currently have no protocol for synchronising access to shared parallel
+ports.
+
+For information about using the ZIP drive, please read the generic
+instructions in the SCSI-HOWTO and the man pages for the normal disk
+management tools, fdisk, mkfs, mount, umount, etc. There is a mini-HOWTO
+circulating concerning the use of the normal SCSI version of the ZIP
+drive, most of its comments will apply to disks connected through the
+ppa driver as well.
+