diff options
Diffstat (limited to 'Documentation/ide/ide.txt')
-rw-r--r-- | Documentation/ide/ide.txt | 146 |
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 | |||
71 | ones), for the drives/geometries attached to those interfaces, and for the IRQ | 71 | ones), for the drives/geometries attached to those interfaces, and for the IRQ |
72 | lines being used by the interfaces (normally 14, 15 for ide0/ide1). | 72 | lines being used by the interfaces (normally 14, 15 for ide0/ide1). |
73 | 73 | ||
74 | For special cases, interfaces may be specified using kernel "command line" | ||
75 | options. For example, | ||
76 | |||
77 | ide3=0x168,0x36e,10 /* ioports 0x168-0x16f,0x36e, irq 10 */ | ||
78 | |||
79 | Normally the irq number need not be specified, as ide.c will probe for it: | ||
80 | |||
81 | ide3=0x168,0x36e /* ioports 0x168-0x16f,0x36e */ | ||
82 | |||
83 | The 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 | |||
90 | Note that the first parameter reserves 8 contiguous ioports, whereas the | ||
91 | second value denotes a single ioport. If in doubt, do a 'cat /proc/ioports'. | ||
92 | |||
93 | In all probability the device uses these ports and IRQs if it is attached | ||
94 | to the appropriate ide channel. Pass the parameter for the correct ide | ||
95 | channel to the kernel, as explained above. | ||
96 | |||
97 | Any number of interfaces may share a single IRQ if necessary, at a slight | 74 | Any number of interfaces may share a single IRQ if necessary, at a slight |
98 | performance penalty, whether on separate cards or a single VLB card. | 75 | performance penalty, whether on separate cards or a single VLB card. |
99 | The IDE driver automatically detects and handles this. However, this may | 76 | The 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. | |||
105 | For really weird situations, the apparent (fdisk) geometry can also be specified | 82 | For really weird situations, the apparent (fdisk) geometry can also be specified |
106 | on the kernel "command line" using LILO. The format of such lines is: | 83 | on 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 |
109 | or hdx=cdrom | 86 | or ide_core.cdrom=[interface_number.device_number] |
110 | 87 | ||
111 | where hdx can be any of hda through hdh, Three values are required | 88 | For 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 | ||
116 | either {hda,hdb} or {hdc,hdd}. The results of successful auto-probing may | 92 | The results of successful auto-probing may override the physical geometry/irq |
117 | override the physical geometry/irq specified, though the "original" geometry | 93 | specified, though the "original" geometry may be retained as the "logical" |
118 | may be retained as the "logical" geometry for partitioning purposes (fdisk). | 94 | geometry for partitioning purposes (fdisk). |
119 | 95 | ||
120 | If the auto-probing during boot time confuses a drive (ie. the drive works | 96 | If the auto-probing during boot time confuses a drive (ie. the drive works |
121 | with hd.c but not with ide.c), then an command line option may be specified | 97 | with hd.c but not with ide.c), then an command line option may be specified |
122 | for each drive for which you'd like the drive to skip the hardware | 98 | for each drive for which you'd like the drive to skip the hardware |
123 | probe/identification sequence. For example: | 99 | probe/identification sequence. For example: |
124 | 100 | ||
125 | hdb=noprobe | 101 | ide_core.noprobe=0.1 |
126 | or | 102 | or |
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 | ||
130 | Note that when only one IDE device is attached to an interface, it should be | 106 | Note that when only one IDE device is attached to an interface, it should be |
131 | jumpered as "single" or "master", *not* "slave". Many folks have had | 107 | jumpered 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 | |||
141 | the probe to look harder by supplying a kernel command line parameter | 117 | the probe to look harder by supplying a kernel command line parameter |
142 | via LILO, such as: | 118 | via LILO, such as: |
143 | 119 | ||
144 | hdc=cdrom /* hdc = "master" on second interface */ | 120 | ide_core.cdrom=1.0 /* "master" on second interface (hdc) */ |
145 | or | 121 | or |
146 | hdd=cdrom /* hdd = "slave" on second interface */ | 122 | ide_core.cdrom=1.1 /* "slave" on second interface (hdd) */ |
147 | 123 | ||
148 | For example, a GW2000 system might have a hard drive on the primary | 124 | For example, a GW2000 system might have a hard drive on the primary |
149 | interface (/dev/hda) and an IDE cdrom drive on the secondary interface | 125 | interface (/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). | |||
184 | Please pass on any feedback on any of this stuff to the maintainer, | 160 | Please pass on any feedback on any of this stuff to the maintainer, |
185 | whose address can be found in linux/MAINTAINERS. | 161 | whose address can be found in linux/MAINTAINERS. |
186 | 162 | ||
187 | Note that if BOTH hd.c and ide.c are configured into the kernel, | ||
188 | hd.c will normally be allowed to control the primary IDE interface. | ||
189 | This is useful for older hardware that may be incompatible with ide.c, | ||
190 | and still allows newer hardware to run on the 2nd/3rd/4th IDE ports | ||
191 | under control of ide.c. To have ide.c also "take over" the primary | ||
192 | IDE port in this situation, use the "command line" parameter: ide0=0x1f0 | ||
193 | |||
194 | The IDE driver is modularized. The high level disk/CD-ROM/tape/floppy | 163 | The IDE driver is modularized. The high level disk/CD-ROM/tape/floppy |
195 | drivers can always be compiled as loadable modules, the chipset drivers | 164 | drivers can always be compiled as loadable modules, the chipset drivers |
196 | can only be compiled into the kernel, and the core code (ide.c) can be | 165 | can only be compiled into the kernel, and the core code (ide.c) can be |
@@ -204,9 +173,7 @@ to /etc/modprobe.conf. | |||
204 | 173 | ||
205 | When ide.c is used as a module, you can pass command line parameters to the | 174 | When ide.c is used as a module, you can pass command line parameters to the |
206 | driver using the "options=" keyword to insmod, while replacing any ',' with | 175 | driver 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 | |||
214 | Summary of ide driver parameters for kernel command line | 181 | Summary 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". | 184 | For legacy IDE VLB host drivers (ali14xx/dtc2278/ht6560b/qd65xx/umc8672) |
218 | 185 | you need to explicitly enable probing by using "probe" kernel parameter, | |
219 | "idex=" is recognized for all "x" from "0" to "9", such as "ide1". | 186 | i.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 | 193 | Also for legacy CMD640 host driver (cmd640) you need to use "probe_vlb" |
194 | kernel paremeter to enable probing for VLB version of the chipset (PCI ones | ||
195 | are detected automatically). | ||
257 | 196 | ||
258 | "idex=serialize" : do not overlap operations on idex. Please note | 197 | You 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 | 200 | To enable support for IDE doublers on Amiga use "doubler" kernel parameter |
201 | for gayle host driver (i.e. "gayle.doubler" if the driver is built-in). | ||
264 | 202 | ||
265 | "idex=reset" : reset interface after probe | 203 | To force ignoring cable detection (this should be needed only if you're using |
204 | short 40-wires cable which cannot be automatically detected - if this is not | ||
205 | a 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 | 213 | Other kernel parameters for ide_core are: |
275 | 214 | ||
276 | There may be more options than shown -- use the source, Luke! | 215 | * "nodma=[interface_number.device_number]" to disallow DMA for a device |
277 | 216 | ||
278 | Everything else is rejected with a "BAD OPTION" message. | 217 | * "noflush=[interface_number.device_number]" to disable flush requests |
279 | 218 | ||
280 | For legacy IDE VLB host drivers (ali14xx/dtc2278/ht6560b/qd65xx/umc8672) | 219 | * "noprobe=[interface_number.device_number]" to skip probing |
281 | you need to explicitly enable probing by using "probe" kernel parameter, | ||
282 | i.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 | ||
289 | Also 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) |
290 | kernel paremeter to enable probing for VLB version of the chipset (PCI ones | ||
291 | are detected automatically). | ||
292 | 226 | ||
293 | ================================================================================ | 227 | ================================================================================ |
294 | 228 | ||