208 lines
8.4 KiB
ReStructuredText
208 lines
8.4 KiB
ReStructuredText
|
===================================
|
||
|
Linux and parallel port IDE devices
|
||
|
===================================
|
||
|
|
||
|
PARIDE v1.03 (c) 1997-8 Grant Guenther <grant@torque.net>
|
||
|
PATA_PARPORT (c) 2023 Ondrej Zary
|
||
|
|
||
|
1. Introduction
|
||
|
===============
|
||
|
|
||
|
Owing to the simplicity and near universality of the parallel port interface
|
||
|
to personal computers, many external devices such as portable hard-disk,
|
||
|
CD-ROM, LS-120 and tape drives use the parallel port to connect to their
|
||
|
host computer. While some devices (notably scanners) use ad-hoc methods
|
||
|
to pass commands and data through the parallel port interface, most
|
||
|
external devices are actually identical to an internal model, but with
|
||
|
a parallel-port adapter chip added in. Some of the original parallel port
|
||
|
adapters were little more than mechanisms for multiplexing a SCSI bus.
|
||
|
(The Iomega PPA-3 adapter used in the ZIP drives is an example of this
|
||
|
approach). Most current designs, however, take a different approach.
|
||
|
The adapter chip reproduces a small ISA or IDE bus in the external device
|
||
|
and the communication protocol provides operations for reading and writing
|
||
|
device registers, as well as data block transfer functions. Sometimes,
|
||
|
the device being addressed via the parallel cable is a standard SCSI
|
||
|
controller like an NCR 5380. The "ditto" family of external tape
|
||
|
drives use the ISA replicator to interface a floppy disk controller,
|
||
|
which is then connected to a floppy-tape mechanism. The vast majority
|
||
|
of external parallel port devices, however, are now based on standard
|
||
|
IDE type devices, which require no intermediate controller. If one
|
||
|
were to open up a parallel port CD-ROM drive, for instance, one would
|
||
|
find a standard ATAPI CD-ROM drive, a power supply, and a single adapter
|
||
|
that interconnected a standard PC parallel port cable and a standard
|
||
|
IDE cable. It is usually possible to exchange the CD-ROM device with
|
||
|
any other device using the IDE interface.
|
||
|
|
||
|
The document describes the support in Linux for parallel port IDE
|
||
|
devices. It does not cover parallel port SCSI devices, "ditto" tape
|
||
|
drives or scanners. Many different devices are supported by the
|
||
|
parallel port IDE subsystem, including:
|
||
|
|
||
|
- MicroSolutions backpack CD-ROM
|
||
|
- MicroSolutions backpack PD/CD
|
||
|
- MicroSolutions backpack hard-drives
|
||
|
- MicroSolutions backpack 8000t tape drive
|
||
|
- SyQuest EZ-135, EZ-230 & SparQ drives
|
||
|
- Avatar Shark
|
||
|
- Imation Superdisk LS-120
|
||
|
- Maxell Superdisk LS-120
|
||
|
- FreeCom Power CD
|
||
|
- Hewlett-Packard 5GB and 8GB tape drives
|
||
|
- Hewlett-Packard 7100 and 7200 CD-RW drives
|
||
|
|
||
|
as well as most of the clone and no-name products on the market.
|
||
|
|
||
|
To support such a wide range of devices, pata_parport is actually structured
|
||
|
in two parts. There is a base pata_parport module which provides an interface
|
||
|
to kernel libata subsystem, registry and some common methods for accessing
|
||
|
the parallel ports.
|
||
|
|
||
|
The second component is a set of low-level protocol drivers for each of the
|
||
|
parallel port IDE adapter chips. Thanks to the interest and encouragement of
|
||
|
Linux users from many parts of the world, support is available for almost all
|
||
|
known adapter protocols:
|
||
|
|
||
|
==== ====================================== ====
|
||
|
aten ATEN EH-100 (HK)
|
||
|
bpck Microsolutions backpack (US)
|
||
|
comm DataStor (old-type) "commuter" adapter (TW)
|
||
|
dstr DataStor EP-2000 (TW)
|
||
|
epat Shuttle EPAT (UK)
|
||
|
epia Shuttle EPIA (UK)
|
||
|
fit2 FIT TD-2000 (US)
|
||
|
fit3 FIT TD-3000 (US)
|
||
|
friq Freecom IQ cable (DE)
|
||
|
frpw Freecom Power (DE)
|
||
|
kbic KingByte KBIC-951A and KBIC-971A (TW)
|
||
|
ktti KT Technology PHd adapter (SG)
|
||
|
on20 OnSpec 90c20 (US)
|
||
|
on26 OnSpec 90c26 (US)
|
||
|
==== ====================================== ====
|
||
|
|
||
|
|
||
|
2. Using pata_parport subsystem
|
||
|
===============================
|
||
|
|
||
|
While configuring the Linux kernel, you may choose either to build
|
||
|
the pata_parport drivers into your kernel, or to build them as modules.
|
||
|
|
||
|
In either case, you will need to select "Parallel port IDE device support"
|
||
|
and at least one of the parallel port communication protocols.
|
||
|
If you do not know what kind of parallel port adapter is used in your drive,
|
||
|
you could begin by checking the file names and any text files on your DOS
|
||
|
installation floppy. Alternatively, you can look at the markings on
|
||
|
the adapter chip itself. That's usually sufficient to identify the
|
||
|
correct device.
|
||
|
|
||
|
You can actually select all the protocol modules, and allow the pata_parport
|
||
|
subsystem to try them all for you.
|
||
|
|
||
|
For the "brand-name" products listed above, here are the protocol
|
||
|
and high-level drivers that you would use:
|
||
|
|
||
|
================ ============ ========
|
||
|
Manufacturer Model Protocol
|
||
|
================ ============ ========
|
||
|
MicroSolutions CD-ROM bpck
|
||
|
MicroSolutions PD drive bpck
|
||
|
MicroSolutions hard-drive bpck
|
||
|
MicroSolutions 8000t tape bpck
|
||
|
SyQuest EZ, SparQ epat
|
||
|
Imation Superdisk epat
|
||
|
Maxell Superdisk friq
|
||
|
Avatar Shark epat
|
||
|
FreeCom CD-ROM frpw
|
||
|
Hewlett-Packard 5GB Tape epat
|
||
|
Hewlett-Packard 7200e (CD) epat
|
||
|
Hewlett-Packard 7200e (CD-R) epat
|
||
|
================ ============ ========
|
||
|
|
||
|
All parports and all protocol drivers are probed automatically unless probe=0
|
||
|
parameter is used. So just "modprobe epat" is enough for a Imation SuperDisk
|
||
|
drive to work.
|
||
|
|
||
|
Manual device creation::
|
||
|
|
||
|
# echo "port protocol mode unit delay" >/sys/bus/pata_parport/new_device
|
||
|
|
||
|
where:
|
||
|
|
||
|
======== ================================================
|
||
|
port parport name (or "auto" for all parports)
|
||
|
protocol protocol name (or "auto" for all protocols)
|
||
|
mode mode number (protocol-specific) or -1 for probe
|
||
|
unit unit number (for backpack only, see below)
|
||
|
delay I/O delay (see troubleshooting section below)
|
||
|
======== ================================================
|
||
|
|
||
|
If you happen to be using a MicroSolutions backpack device, you will
|
||
|
also need to know the unit ID number for each drive. This is usually
|
||
|
the last two digits of the drive's serial number (but read MicroSolutions'
|
||
|
documentation about this).
|
||
|
|
||
|
If you omit the parameters from the end, defaults will be used, e.g.:
|
||
|
|
||
|
Probe all parports with all protocols::
|
||
|
|
||
|
# echo auto >/sys/bus/pata_parport/new_device
|
||
|
|
||
|
Probe parport0 using protocol epat and mode 4 (EPP-16)::
|
||
|
|
||
|
# echo "parport0 epat 4" >/sys/bus/pata_parport/new_device
|
||
|
|
||
|
Probe parport0 using all protocols::
|
||
|
|
||
|
# echo "parport0 auto" >/sys/bus/pata_parport/new_device
|
||
|
|
||
|
Probe all parports using protoocol epat::
|
||
|
|
||
|
# echo "auto epat" >/sys/bus/pata_parport/new_device
|
||
|
|
||
|
Deleting devices::
|
||
|
|
||
|
# echo pata_parport.0 >/sys/bus/pata_parport/delete_device
|
||
|
|
||
|
|
||
|
3. Troubleshooting
|
||
|
==================
|
||
|
|
||
|
3.1 Use EPP mode if you can
|
||
|
----------------------------
|
||
|
|
||
|
The most common problems that people report with the pata_parport drivers
|
||
|
concern the parallel port CMOS settings. At this time, none of the
|
||
|
protocol modules support ECP mode, or any ECP combination modes.
|
||
|
If you are able to do so, please set your parallel port into EPP mode
|
||
|
using your CMOS setup procedure.
|
||
|
|
||
|
3.2 Check the port delay
|
||
|
-------------------------
|
||
|
|
||
|
Some parallel ports cannot reliably transfer data at full speed. To
|
||
|
offset the errors, the protocol modules introduce a "port
|
||
|
delay" between each access to the i/o ports. Each protocol sets
|
||
|
a default value for this delay. In most cases, the user can override
|
||
|
the default and set it to 0 - resulting in somewhat higher transfer
|
||
|
rates. In some rare cases (especially with older 486 systems) the
|
||
|
default delays are not long enough. if you experience corrupt data
|
||
|
transfers, or unexpected failures, you may wish to increase the
|
||
|
port delay.
|
||
|
|
||
|
3.3 Some drives need a printer reset
|
||
|
-------------------------------------
|
||
|
|
||
|
There appear to be a number of "noname" external drives on the market
|
||
|
that do not always power up correctly. We have noticed this with some
|
||
|
drives based on OnSpec and older Freecom adapters. In these rare cases,
|
||
|
the adapter can often be reinitialised by issuing a "printer reset" on
|
||
|
the parallel port. As the reset operation is potentially disruptive in
|
||
|
multiple device environments, the pata_parport drivers will not do it
|
||
|
automatically. You can however, force a printer reset by doing::
|
||
|
|
||
|
insmod lp reset=1
|
||
|
rmmod lp
|
||
|
|
||
|
If you have one of these marginal cases, you should probably build
|
||
|
your pata_parport drivers as modules, and arrange to do the printer reset
|
||
|
before loading the pata_parport drivers.
|