Incorrect identification of ultra dma ATA cables

Dan Strick strick at covad.net
Thu Dec 4 00:35:46 PST 2003


I have a couple of ATA133 (UDMA6) disk drives connected to an Intel
ICH5 IDE (parallel ATA) controller.  My FreeBSD 4.9-release ATA driver
limits them to ATA33 (UDMA2) without comment.  (I.E. There are no
warning messages.)  The reason is that when the ata_dmainit() routine
reads the PCI config space "IDE I/O Configuration Register" for the
IDE controller (offset 0x54, known in the driver as "word54"), it gets
nothing but zero bits.  In the Intel ICH5 datasheet, bits 4-7 (one
for each possible IDE device) are described as:

	xxx xxx Channel Cable Reporting - R/W.  BIOS should program
	this bit to tell the IDE driver which cable is plugged into
	the channel.

	0 = 40 conductor cable is present
	1 = 80 conductor cable is present

I tried three different 80 conductor UDMA cables.  I examined them
carefully.  I even checked for correct wiring of the PDIAG/CBLID
signal lines with an ohmmeter.

My question is this: is the problem likely to be the BIOS failing to
correctly set the bits or could something in FreeBSD somehow be
incorrectly clearing the bits before the ata_dmainit() routine runs?
(I grepped the driver sources for occurrences of 0x54 and found no
culprit.)

My motherboard is a Gigabyte 8KNXP and the BIOS is an AWARD BIOS,
version F8.

Dan Strick
strick at covad.net


More information about the freebsd-hardware mailing list