WD(4)

NAME
wd - Generic WD100x/IDE diskcontroller driver

SYNOPSIS
controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
disk wd0 at wdc0 drive 0
disk wd1 at wdc0 drive 1

For the CMD640b IDE controller:
options "CMD640"

DESCRIPTION
This driver provides access to disks connected to controllers that emulate the Western Digital WD100x series. This range of controllers includes WD1003 type ST412 controllers, WD1007 ESDI controllers and also the generic IDE controllers found on most motherboards.

Your controller documentation is usually quick to point out any WD100x compatibility.

You can convey a number of hints and instructions to the driver using the flags parameter.

For each drive there are four bit-fields encoded in a 16 bit integer:

0x8000
    Test and use the 32bit transfer capability of the drive.

0x4000
    If drive looks like it's coming out of sleep mode, assume it's confused and reinitialize it.

0x0f00
    Force number of heads to ((flags & 0xf00)>>8), recalculate number of cylinders to match.

0x00ff
    Test and use multi-sector transfer mode of this drive, max number of sectors attempted is (flags & 0x00ff).

The flags can be specified on the line for the drive as a 16 bit int, or on the controller line as a 32 bit int, where the top 16 bit is relevant to the highest numbered drive.

The “CMD640” configuration option enables a workaround for a deficiency of the CMD640b IDE controller. If this option is enabled and the chip is detected by the PCI subsystem, the primary and secondary controller will not be used simultaneously.

FILES
/dev/wd*
    disk block device nodes
/dev/rwd*
    disk character device nodes
/sys/i386/conf/GENERIC
    sample generic kernel config file for (a.o.) wd based systems
/sys/i386/isa/wd.c
    driver source

SEE ALSO
bad144(8)

NOTES
This controller/disk combo has no provisions for automatic bad block handling. You need to run bad144(8) to check for bad blocks.