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
- Lines: 239
- Date:
Sun Aug 13 20:19:11 1995
- Orig file:
v1.3.18/linux/drivers/block/README.ide
- Orig date:
Mon Jul 31 15:58:59 1995
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