patch-1.3.19 linux/drivers/block/README.ide

Next file: linux/drivers/block/blk.h
Previous file: linux/drivers/block/Makefile
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.18/linux/drivers/block/README.ide linux/drivers/block/README.ide
@@ -7,12 +7,13 @@
 
 Major features of ide.c & ide-cd.c:
 
-	- support for up to two IDE interfaces on one or two IRQs
-	- support for any mix of up to four disk and/or cdrom drives
+NEW!	- support for up to *four* IDE interfaces on one or more IRQs
+NEW!	- support for any mix of up to *eight* disk and/or cdrom drives
 	- support for reading IDE ATAPI cdrom drives (NEC,MITSUMI,VERTOS,SONY)
 	- support for audio functions
 	- auto-detection of interfaces, drives, IRQs, and disk geometries
-	  -- "single" drives should be jumpered as "master", not "slave"
+		- "single" drives should be jumpered as "master", not "slave"
+NEW!		  (both are now probed for)
 	- support for BIOSs which report "more than 16 heads" on disk drives
 	- uses LBA (slightly faster) on disk drives which support it
 	- support for lots of fancy (E)IDE drive functions with hdparm utility
@@ -20,41 +21,58 @@
 	- support for IDE multiple (block) mode (same as hd.c)
 	- support for interrupt unmasking during I/O (better than hd.c)
 	- improved handshaking and error detection/recovery
-	- can co-exist with hd.c to control only the secondary interface
+	- can co-exist with hd.c controlling the first interface
 	- support for reliable operation of buggy CMD-640 interfaces
-		- use kernel command line option:   hda=serialize
+NEW!		- use kernel command line option:   ide1=serialize
 	- experimental support for DTC-2278D interfaces
-		- use kernel command line option:  hda=dtc2278
+NEW!		- use kernel command line option:   ide1=dtc2278
 	- run-time selectable 32bit interface support (using hdparm-2.3)
 
 NEW!	- support for drives with a stuck WRERR_STAT bit
-NEW!	- support for removeable devices
+NEW!	- support for removeable devices, including door lock/unlock
 
 NEW!	- transparent support for DiskManager 6.0x and "Dynamic Disk Overlay"
+NEW!		- should work for for EZ-Drive disks as well (not verified)
 		- works with Linux fdisk, LILO, loadlin, bootln, etc..
+NEW!	- ide-cd.c now compiles separate from ide.c
+
+For a list of work underway, see the comments near the top of ide.c and ide-cd.c
 
 ***
 
 IMPORTANT NOTICE:  "CMD" EIDE Interfaces will not (by default) work *reliably*
 when drives are attached to the second interface.  To "fix" this, supply the
-special kernel "command line" parameter to LILO:    hda=serialize
+special kernel "command line" parameter to LILO:    ide1=serialize
 Failure to do so can cause severe data corruption!
 
 ***
 
-To access devices on the second interface, device entries must first be
+To access devices on the 2nd/3rd/4th interfaces, device entries must first be
 created in /dev for them.  To create such entries, simply run the included
-shell script:   MAKEDEV.ide1
+shell script:   MAKEDEV.ide
 
-Apparently the early releases of Slackware 2.2 have incorrect entries
-in /dev for hdc* and hdd* -- this can also be corrected by running MAKEDEV.ide1
+Apparently many releases of Slackware 2.2/2.3 have incorrect entries
+in /dev for hdc* and hdd* -- this can also be corrected by running MAKEDEV.ide
 
 ide.c automatically probes for the primary and secondary interfaces,
 for the drives/geometries attached to those interfaces, and for the
 IRQ numbers being used by the interfaces (normally IRQ14 & IRQ15).
 
-The primary and secondary interfaces may share a single IRQ if necessary,
-at a slight performance penalty, whether on separate cards or a single VLB card.
+Interfaces beyond the first two are not normally probed for, but may be
+specified using kernel "command line" options.  For example,
+
+	ide3=0x1e8,0x3f0,11	/* ioports 0x1e8-0x1ef,0x3f0, irq 11 */
+
+Normally the irq number need not be specified, as ide.c will probe for it:
+
+	ide3=0x1e8,0x3f0	/* ioports 0x1e8-0x1ef,0x3f0 */
+
+Any number of interfaces may share a single IRQ if necessary, at a slight
+performance penalty, whether on separate cards or a single VLB card.
+The IDE driver automatically detects and handles this.  However, this may
+or may not be harmful to your hardware.. two or more cards driving the same IRQ
+can potentially burn each other's bus driver, though in practice this
+seldom occurs.  Be careful, and if in doubt, don't do it!
 
 Drives are normally found by auto-probing and/or examining the CMOS/BIOS data.
 For really weird situations, the apparent (fdisk) geometry can also be specified
@@ -63,16 +81,14 @@
 	hdx=cyls,heads,sects,wpcom,irq
 or	hdx=cdrom
 
-where hdx can be any of {hda,hdb,hdc,hdd}, or simply hd, for the "next" drive
-in sequence.  Only the first three parameters are required (cyls,heads,sects),
-and wpcom is ignored for IDE drives.  For example:
+where hdx can be any of hda through hdh, Three values are required
+(cyls,heads,sects).  For example:
 
-	hdc=1050,32,64 hdd=cdrom
+	hdc=1050,32,64  hdd=cdrom
 
-If an irq number is given, it will apply to both drives on the same interface,
 either {hda,hdb} or {hdc,hdd}.  The results of successful auto-probing may
 override the physical geometry/irq specified, though the "original" geometry
-is retained as the "logical" geometry for partitioning purposes (fdisk).
+may be retained as the "logical" geometry for partitioning purposes (fdisk).
 
 If the auto-probing during boot time confuses a drive (ie. the drive works
 with hd.c but not with ide.c), then an command line option may be specified
@@ -85,18 +101,22 @@
 	hdc=noprobe
 
 Note that when only one IDE device is attached to an interface,
-it must be jumpered as "single" or "master", *not* "slave".
-Many folks have had "trouble" with cdroms because of this requirement
-of the ATA (IDE) standard.
+it should be jumpered as "single" or "master", *not* "slave".
+Many folks have had "trouble" with cdroms because of this requirement,
+so ide.c now probes for both units, though success is more likely
+when the drive is jumpered correctly.
 
-Courtesy of Scott Snyder, the driver now supports ATAPI cdrom drives
+Courtesy of Scott Snyder, the driver supports ATAPI cdrom drives
 such as the NEC-260 and the new MITSUMI triple/quad speed drives.
-Such drives will be identified at boot time, as hda,hdb,hdc or hdd,
-just like a harddisk.
+Such drives will be identified at boot time, just like a harddisk.
 
 If for some reason your cdrom drive is *not* found at boot time, you can force
 the probe to look harder by supplying a kernel command line parameter
-via LILO, such as:  hdc=cdrom
+via LILO, such as:
+
+	hdc=cdrom	/* hdc = "master" on second interface */
+or
+	hdd=cdrom	/* hdd = "slave" on second interface */
 
 For example, a GW2000 system might have a harddrive on the primary
 interface (/dev/hda) and an IDE cdrom drive on the secondary interface
@@ -106,11 +126,18 @@
 	mkdir /cd
 	mount /dev/cdrom /cd -t iso9660 -o ro
 
+The kernel is able to execute binaries directly off of the cdrom,
+provided it is mounted with the default block size of 1024 (as above).
+
 Please pass on any feedback on the cdrom stuff to the author & maintainer,
 Scott Snyder (snyder@fnald0.fnal.gov).
 
-The kernel is now be able to execute binaries directly off of the cdrom,
-provided it is mounted with the default block size of 1024.
+Note that if BOTH hd.c and ide.c are configured into the kernel,
+hd.c will normally be allowed to control the primary IDE interface.
+This is useful for older hardware that may be incompatible with ide.c,
+and still allows newer hardware to run on the 2nd/3rd/4th IDE ports
+under control of ide.c.   To have ide.c also "take over" the primary
+IDE port in this situation, use the "command line" parameter:  ide0=0x1f0
 
 The hdparm.c program for controlling various IDE features is now packaged
 separately.  Look for it on popular linux FTP sites.
@@ -119,6 +146,34 @@
 snyder@fnald0.fnal.gov
 ================================================================================
 
+Summary of ide driver parameters for kernel "command line":
+----------------------------------------------------------
+
+  "hdx="  is recognized for all "x" from "a" to "h", such as "hdc".
+  "idex=" is recognized for all "x" from "0" to "3", such as "ide1".
+ 
+  "hdx=noprobe"		: drive may be present, but do not probe for it
+  "hdx=nowerr"		: ignore the WRERR_STAT bit on this drive
+  "hdx=cdrom"		: drive is present, and is a cdrom drive
+  "hdx=cyl,head,sect"	: disk drive is present, with specified geometry
+
+  "idex=noprobe"	: do not attempt to access/use this interface
+  "idex=base"		: probe for an interface at the addr specified,
+                                where "base" is usually 0x1f0 or 0x170
+                                and "ctl" is assumed to be "base"+0x206
+				and "irq" will be probed for
+  "idex=base,ctl"	: specify both base and ctl
+  "idex=base,ctl,irq"	: specify base, ctl, and irq number
+
+The following two are valid ONLY on ide0 or ide1:
+
+  "idex=dtc2278"	: look for and try to initialize a dtc2278
+  "idex=serialize"	: do not overlap operations on ide0 and ide1.
+
+Everything else is rejected with a "BAD OPTION" message.
+
+================================================================================
+
 Some Terminology
 ----------------
 IDE = Integrated Drive Electronics, meaning that each drive has a built-in
@@ -262,7 +317,7 @@
 Note that when creating partitions that span beyond cylinder 1024,
 Linux fdisk will complain about "Partition X has different physical/logical
 endings" and emit messages such as "This is larger than 1024, and may cause
-problems with some software".   Ignore them for linux partitions.  The "some
+problems with some software".   Ignore this for linux partitions.  The "some
 software" refers to DOS, the BIOS, and LILO, as described previously.
 
 Western Digital ships a "DiskManager 6.03" diskette with all of their big
@@ -272,3 +327,35 @@
 with Linux 1.3.x in most cases.  Let me know if you still have trouble.
 
 mlord@bnr.ca
+
+================================================================================
+EIDE card compatibility reports:
+================================================================================
+
+comp.os.linux.hardware #18483 (7 + 0 more)                            (1)--[1]
+From: test <a>
+[1] Re: Promise EIDEMAX
+Date: Fri Aug 11 23:17:39 EDT 1995
+Organization: Technical University of Brno, Czech Republic
+Lines: 14
+Mime-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+X-Mailer: Mozilla 1.1N (X11; I; Linux 1.2.11 i486)
+To: rmorton@VNET.IBM.COM
+X-URL: news:19950806.154256.872@almaden.ibm.com
+
+I have a Promise <sth>2300 board with DX2/80 w/ 32Mb ram.
+
+This one is a bit schizophrenic - half (2 drives) at VLBUS and
+the rest 2 on ISA.
+
+Works quite well, Linux works with it (4 HDDs), it
+also supports its dual irq mechanism (14 & 15).
+In the documentation I've found that there are certain things made about this
+controller(in kernel).
+My current kernel is 1.2.11 and Promise should be supported in all 1.2.xx
+kernels I think.
+
+   Vladimir Myslik
+

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this