Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Dec 2003 00:35:33 -0800 (PST)
From:      Dan Strick <strick@covad.net>
To:        freebsd-hackers@FreeBSD.ORG, freebsd-hardware@FreeBSD.ORG
Cc:        dan@mist.nodomain
Subject:   Incorrect identification of ultra dma ATA cables
Message-ID:  <200312040835.hB48ZX0F009505@mist.nodomain>

next in thread | raw e-mail | index | archive | help
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@covad.net



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200312040835.hB48ZX0F009505>