The Linux BootPrompt-HowTo: Hard Disks

Next Previous Contents

## 7. Hard Disks

This section lists all the boot args associated with standard MFM/RLL, ST-506, XT, and IDE disk drive devices. Note that both the IDE and the generic ST-506 HD driver both accept the `hd=' option.

## 7.1 IDE Disk/CD-ROM Driver Parameters

The IDE driver accepts a number of parameters, which range from disk geometry specifications, to support for advanced or broken controller chips. The following is a summary of some of the more common boot arguments. For full details, you really should consult the file `ide.txt` in the `linux/Documentation` directory, from which this summary was extracted.

     "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=none"             : drive is NOT present, ignore cmos and do not probe
     "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
     "hdx=autotune"         : driver will attempt to tune interface speed
                                    to the fastest PIO mode supported,
                                    if possible for this drive only.
                                    Not fully supported by all chipset types,
                                    and quite likely to cause trouble with
                                    older/odd IDE drives.

     "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
     "idex=base,ctl"        : specify both base and ctl
     "idex=base,ctl,irq"    : specify base, ctl, and irq number
     "idex=autotune"        : driver will attempt to tune interface speed
                                    to the fastest PIO mode supported,
                                    for all drives on this interface.
                                    Not fully supported by all chipset types,
                                    and quite likely to cause trouble with
                                    older/odd IDE drives.
     "idex=noautotune"      : driver will NOT attempt to tune interface speed
                                    This is the default for most chipsets,
                                    except the cmd640.
     "idex=serialize"       : do not overlap operations on idex and ide(x^1)

The following are valid ONLY on ide0, and the defaults for the base,ctl ports must not be altered.

     "ide0=dtc2278"         : probe/support DTC2278 interface
     "ide0=ht6560b"         : probe/support HT6560B interface
     "ide0=cmd640_vlb"      : *REQUIRED* for VLB cards with the CMD640 chip
                              (not for PCI -- automatically detected)
     "ide0=qd6580"          : probe/support qd6580 interface
     "ide0=ali14xx"         : probe/support ali14xx chipsets (ALI M1439/M1445)
     "ide0=umc8672"         : probe/support umc8672 chipsets

During the install of some PCMCIA systems, you may be able to get detection of your CD-ROM by using:

     "ide2=0x180,0x386"     : probe typical PCMCIA IDE interface location

Everything else is rejected with a "BAD OPTION" message. Also note that there is an implied `ide0=0x1f0 ide1=0x170` in the absence of any other ide boot args.

## 7.2 Old MFM/RLL/Standard ST-506 Disk Driver Options (`hd=')

The standard disk driver can accept geometry arguments for the disks similar to the IDE driver. Note however that it only expects three values (C/H/S) -- any more or any less and it will silently ignore you. Also, it only accepts `hd=' as an argument, i.e. `hda=', `hdb=' and so on are not valid here. The format is as follows:

            hd=cyls,heads,sects

If there are two disks installed, the above is repeated with the geometry parameters of the second disk.

## 7.3 XT Disk Driver Options (`xd=', `xd_geo=')

If you are unfortunate enough to be using one of these old 8 bit cards that move data at a whopping 125kB/s then here is the scoop. The probe code for these cards looks for an installed BIOS, and if none is present, the probe will not find your card. Or, if the signature string of your BIOS is not recognized then it will also not be found. In either case, you will then have to use a boot argument of the form:

            xd=type,irq,iobase,dma_chan

The `type` value specifies the particular manufacturer of the card, and are as follows: 0=generic; 1=DTC; 2,3,4=Western Digital, 5,6,7=Seagate; 8=OMTI. The only difference between multiple types from the same manufacturer is the BIOS string used for detection, which is not used if the type is specified.

The `xd_setup()` function does no checking on the values, and assumes that you entered all four values. Don't disappoint it. Here is an example usage for a WD1002 controller with the BIOS disabled/removed, using the `default' XT controller parameters:

            xd=2,5,0x320,3

If the disk geometry that the kernel prints out comes out all wrong to what you know the disk is set up as, you can override that as well, with:

            xd_geo=cyl_xda,head_xda,sec_xda

Add another comma and another three CHS values if you are silly enough to have two disks on the old hunk of scrap...

Next Previous Contents