aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/ide/ide.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/ide/ide.txt')
-rw-r--r--Documentation/ide/ide.txt146
1 files changed, 40 insertions, 106 deletions
diff --git a/Documentation/ide/ide.txt b/Documentation/ide/ide.txt
index 818676aad45a..0c78f4b1d9d9 100644
--- a/Documentation/ide/ide.txt
+++ b/Documentation/ide/ide.txt
@@ -71,29 +71,6 @@ This driver automatically probes for most IDE interfaces (including all PCI
71ones), for the drives/geometries attached to those interfaces, and for the IRQ 71ones), for the drives/geometries attached to those interfaces, and for the IRQ
72lines being used by the interfaces (normally 14, 15 for ide0/ide1). 72lines being used by the interfaces (normally 14, 15 for ide0/ide1).
73 73
74For special cases, interfaces may be specified using kernel "command line"
75options. For example,
76
77 ide3=0x168,0x36e,10 /* ioports 0x168-0x16f,0x36e, irq 10 */
78
79Normally the irq number need not be specified, as ide.c will probe for it:
80
81 ide3=0x168,0x36e /* ioports 0x168-0x16f,0x36e */
82
83The standard port, and irq values are these:
84
85 ide0=0x1f0,0x3f6,14
86 ide1=0x170,0x376,15
87 ide2=0x1e8,0x3ee,11
88 ide3=0x168,0x36e,10
89
90Note that the first parameter reserves 8 contiguous ioports, whereas the
91second value denotes a single ioport. If in doubt, do a 'cat /proc/ioports'.
92
93In all probability the device uses these ports and IRQs if it is attached
94to the appropriate ide channel. Pass the parameter for the correct ide
95channel to the kernel, as explained above.
96
97Any number of interfaces may share a single IRQ if necessary, at a slight 74Any number of interfaces may share a single IRQ if necessary, at a slight
98performance penalty, whether on separate cards or a single VLB card. 75performance penalty, whether on separate cards or a single VLB card.
99The IDE driver automatically detects and handles this. However, this may 76The IDE driver automatically detects and handles this. However, this may
@@ -105,27 +82,26 @@ Drives are normally found by auto-probing and/or examining the CMOS/BIOS data.
105For really weird situations, the apparent (fdisk) geometry can also be specified 82For really weird situations, the apparent (fdisk) geometry can also be specified
106on the kernel "command line" using LILO. The format of such lines is: 83on the kernel "command line" using LILO. The format of such lines is:
107 84
108 hdx=cyls,heads,sects 85 ide_core.chs=[interface_number.device_number]:cyls,heads,sects
109or hdx=cdrom 86or ide_core.cdrom=[interface_number.device_number]
110 87
111where hdx can be any of hda through hdh, Three values are required 88For example:
112(cyls,heads,sects). For example:
113 89
114 hdc=1050,32,64 hdd=cdrom 90 ide_core.chs=1.0:1050,32,64 ide_core.cdrom=1.1
115 91
116either {hda,hdb} or {hdc,hdd}. The results of successful auto-probing may 92The results of successful auto-probing may override the physical geometry/irq
117override the physical geometry/irq specified, though the "original" geometry 93specified, though the "original" geometry may be retained as the "logical"
118may be retained as the "logical" geometry for partitioning purposes (fdisk). 94geometry for partitioning purposes (fdisk).
119 95
120If the auto-probing during boot time confuses a drive (ie. the drive works 96If the auto-probing during boot time confuses a drive (ie. the drive works
121with hd.c but not with ide.c), then an command line option may be specified 97with hd.c but not with ide.c), then an command line option may be specified
122for each drive for which you'd like the drive to skip the hardware 98for each drive for which you'd like the drive to skip the hardware
123probe/identification sequence. For example: 99probe/identification sequence. For example:
124 100
125 hdb=noprobe 101 ide_core.noprobe=0.1
126or 102or
127 hdc=768,16,32 103 ide_core.chs=1.0:768,16,32
128 hdc=noprobe 104 ide_core.noprobe=1.0
129 105
130Note that when only one IDE device is attached to an interface, it should be 106Note that when only one IDE device is attached to an interface, it should be
131jumpered as "single" or "master", *not* "slave". Many folks have had 107jumpered as "single" or "master", *not* "slave". Many folks have had
@@ -141,9 +117,9 @@ If for some reason your cdrom drive is *not* found at boot time, you can force
141the probe to look harder by supplying a kernel command line parameter 117the probe to look harder by supplying a kernel command line parameter
142via LILO, such as: 118via LILO, such as:
143 119
144 hdc=cdrom /* hdc = "master" on second interface */ 120 ide_core.cdrom=1.0 /* "master" on second interface (hdc) */
145or 121or
146 hdd=cdrom /* hdd = "slave" on second interface */ 122 ide_core.cdrom=1.1 /* "slave" on second interface (hdd) */
147 123
148For example, a GW2000 system might have a hard drive on the primary 124For example, a GW2000 system might have a hard drive on the primary
149interface (/dev/hda) and an IDE cdrom drive on the secondary interface 125interface (/dev/hda) and an IDE cdrom drive on the secondary interface
@@ -184,13 +160,6 @@ provided it is mounted with the default block size of 1024 (as above).
184Please pass on any feedback on any of this stuff to the maintainer, 160Please pass on any feedback on any of this stuff to the maintainer,
185whose address can be found in linux/MAINTAINERS. 161whose address can be found in linux/MAINTAINERS.
186 162
187Note that if BOTH hd.c and ide.c are configured into the kernel,
188hd.c will normally be allowed to control the primary IDE interface.
189This is useful for older hardware that may be incompatible with ide.c,
190and still allows newer hardware to run on the 2nd/3rd/4th IDE ports
191under control of ide.c. To have ide.c also "take over" the primary
192IDE port in this situation, use the "command line" parameter: ide0=0x1f0
193
194The IDE driver is modularized. The high level disk/CD-ROM/tape/floppy 163The IDE driver is modularized. The high level disk/CD-ROM/tape/floppy
195drivers can always be compiled as loadable modules, the chipset drivers 164drivers can always be compiled as loadable modules, the chipset drivers
196can only be compiled into the kernel, and the core code (ide.c) can be 165can only be compiled into the kernel, and the core code (ide.c) can be
@@ -204,9 +173,7 @@ to /etc/modprobe.conf.
204 173
205When ide.c is used as a module, you can pass command line parameters to the 174When ide.c is used as a module, you can pass command line parameters to the
206driver using the "options=" keyword to insmod, while replacing any ',' with 175driver using the "options=" keyword to insmod, while replacing any ',' with
207';'. For example: 176';'.
208
209 insmod ide.o options="ide0=serialize ide1=serialize ide2=0x1e8;0x3ee;11"
210 177
211 178
212================================================================================ 179================================================================================
@@ -214,81 +181,48 @@ driver using the "options=" keyword to insmod, while replacing any ',' with
214Summary of ide driver parameters for kernel command line 181Summary of ide driver parameters for kernel command line
215-------------------------------------------------------- 182--------------------------------------------------------
216 183
217 "hdx=" is recognized for all "x" from "a" to "u", such as "hdc". 184For legacy IDE VLB host drivers (ali14xx/dtc2278/ht6560b/qd65xx/umc8672)
218 185you need to explicitly enable probing by using "probe" kernel parameter,
219 "idex=" is recognized for all "x" from "0" to "9", such as "ide1". 186i.e. to enable probing for ALI M14xx chipsets (ali14xx host driver) use:
220
221 "hdx=noprobe" : drive may be present, but do not probe for it
222
223 "hdx=none" : drive is NOT present, ignore cmos and do not probe
224
225 "hdx=nowerr" : ignore the WRERR_STAT bit on this drive
226
227 "hdx=cdrom" : drive is present, and is a cdrom drive
228
229 "hdx=cyl,head,sect" : disk drive is present, with specified geometry
230
231 "hdx=autotune" : driver will attempt to tune interface speed
232 to the fastest PIO mode supported,
233 if possible for this drive only.
234 Not fully supported by all chipset types,
235 and quite likely to cause trouble with
236 older/odd IDE drives.
237
238 "hdx=nodma" : disallow DMA
239
240 "idebus=xx" : inform IDE driver of VESA/PCI bus speed in MHz,
241 where "xx" is between 20 and 66 inclusive,
242 used when tuning chipset PIO modes.
243 For PCI bus, 25 is correct for a P75 system,
244 30 is correct for P90,P120,P180 systems,
245 and 33 is used for P100,P133,P166 systems.
246 If in doubt, use idebus=33 for PCI.
247 As for VLB, it is safest to not specify it.
248 Bigger values are safer than smaller ones.
249 187
250 "idex=base" : probe for an interface at the addr specified, 188* "ali14xx.probe" boot option when ali14xx driver is built-in the kernel
251 where "base" is usually 0x1f0 or 0x170
252 and "ctl" is assumed to be "base"+0x206
253 189
254 "idex=base,ctl" : specify both base and ctl 190* "probe" module parameter when ali14xx driver is compiled as module
191 ("modprobe ali14xx probe")
255 192
256 "idex=base,ctl,irq" : specify base, ctl, and irq number 193Also for legacy CMD640 host driver (cmd640) you need to use "probe_vlb"
194kernel paremeter to enable probing for VLB version of the chipset (PCI ones
195are detected automatically).
257 196
258 "idex=serialize" : do not overlap operations on idex. Please note 197You also need to use "probe" kernel parameter for ide-4drives driver
259 that you will have to specify this option for 198(support for IDE generic chipset with four drives on one port).
260 both the respective primary and secondary channel
261 to take effect.
262 199
263 "idex=four" : four drives on idex and ide(x^1) share same ports 200To enable support for IDE doublers on Amiga use "doubler" kernel parameter
201for gayle host driver (i.e. "gayle.doubler" if the driver is built-in).
264 202
265 "idex=reset" : reset interface after probe 203To force ignoring cable detection (this should be needed only if you're using
204short 40-wires cable which cannot be automatically detected - if this is not
205a case please report it as a bug instead) use "ignore_cable" kernel parameter:
266 206
267 "idex=ata66" : informs the interface that it has an 80c cable 207* "ide_core.ignore_cable=[interface_number]" boot option if IDE is built-in
268 for chipsets that are ATA-66 capable, but the 208 (i.e. "ide_core.ignore_cable=1" to force ignoring cable for "ide1")
269 ability to bit test for detection is currently
270 unknown.
271 209
272 "ide=reverse" : formerly called to pci sub-system, but now local. 210* "ignore_cable=[interface_number]" module parameter (for ide_core module)
211 if IDE is compiled as module
273 212
274 "ide=doubler" : probe/support IDE doublers on Amiga 213Other kernel parameters for ide_core are:
275 214
276There may be more options than shown -- use the source, Luke! 215* "nodma=[interface_number.device_number]" to disallow DMA for a device
277 216
278Everything else is rejected with a "BAD OPTION" message. 217* "noflush=[interface_number.device_number]" to disable flush requests
279 218
280For legacy IDE VLB host drivers (ali14xx/dtc2278/ht6560b/qd65xx/umc8672) 219* "noprobe=[interface_number.device_number]" to skip probing
281you need to explicitly enable probing by using "probe" kernel parameter,
282i.e. to enable probing for ALI M14xx chipsets (ali14xx host driver) use:
283 220
284* "ali14xx.probe" boot option when ali14xx driver is built-in the kernel 221* "nowerr=[interface_number.device_number]" to ignore the WRERR_STAT bit
285 222
286* "probe" module parameter when ali14xx driver is compiled as module 223* "cdrom=[interface_number.device_number]" to force device as a CD-ROM
287 ("modprobe ali14xx probe")
288 224
289Also for legacy CMD640 host driver (cmd640) you need to use "probe_vlb" 225* "chs=[interface_number.device_number]" to force device as a disk (using CHS)
290kernel paremeter to enable probing for VLB version of the chipset (PCI ones
291are detected automatically).
292 226
293================================================================================ 227================================================================================
294 228