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