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>