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.
 |