2.4.20 AMD 74xx IDE cable detection problem

From: William Gallafent (william.gallafent@virgin.net)
Date: Tue May 27 2003 - 12:47:24 EST



Hi,

I've found mention of similar problems (80w cables being incorrectly
detected as 40w under various circumstances) in the list archives, but
not of exactly this. I'm using stock SuSE 8.2 kernel 2.4.20-64GB-SMP
at the moment.

M/B: Tyan S2460 Tiger MP, with AMD 760MP chipset.

Each IDE channel has an ATA-133 capable HDD as master, and an ATA-33
capable CD/DVD drive as slave. Both channels have 80 wire cables.

If I only connect the master devices to each IDE channel, the cable
detect works fine, detecting an 80 wire cable on each channel, and
enabling ATA-100 for both drives. If I connect the slave on either
channel, though, the detection reports a 40w cable, and therefore
limits all drives on that channel to ATA-33.

Here's the contents of /proc/ide/amd74xx with all the drives
connected, and the cable detection wrong:

----------AMD BusMastering IDE Configuration----------------
Driver Version: 2.10
South Bridge: Advanced Micro Devices [AMD] AMD-766 [ViperPlus] IDE
Revision: IDE 0x1
Highest DMA rate: UDMA100
BM-DMA base: 0xf000
PCI clock: 33.3MHz
-----------------------Primary IDE-------Secondary IDE------
Prefetch Buffer: no no
Post Write Buffer: no no
Enabled: yes yes
Simplex only: no no
Cable Type: 40w 40w
-------------------drive0----drive1----drive2----drive3-----
Transfer Mode: UDMA UDMA UDMA UDMA
Address Setup: 30ns 30ns 30ns 30ns
Cmd Active: 90ns 90ns 90ns 90ns
Cmd Recovery: 30ns 30ns 30ns 30ns
Data Active: 90ns 90ns 90ns 90ns
Data Recovery: 30ns 30ns 30ns 30ns
Cycle Time: 60ns 60ns 60ns 60ns
Transfer Rate: 33.3MB/s 33.3MB/s 33.3MB/s 33.3MB/s

If I disconnect the slave device from channel 1, though, the cable on
that channel is correctly detected, so that drive runs at ATA-100. The
same is true for the other channel:

----------AMD BusMastering IDE Configuration----------------
Driver Version: 2.10
South Bridge: Advanced Micro Devices [AMD] AMD-766 [ViperPlus] IDE
Revision: IDE 0x1
Highest DMA rate: UDMA100
BM-DMA base: 0xf000
PCI clock: 33.3MHz
-----------------------Primary IDE-------Secondary IDE------
Prefetch Buffer: no no
Post Write Buffer: no no
Enabled: yes yes
Simplex only: no no
Cable Type: 80w 40w
-------------------drive0----drive1----drive2----drive3-----
Transfer Mode: UDMA PIO UDMA UDMA
Address Setup: 30ns 90ns 30ns 30ns
Cmd Active: 90ns 90ns 90ns 90ns
Cmd Recovery: 30ns 30ns 30ns 30ns
Data Active: 90ns 180ns 90ns 90ns
Data Recovery: 30ns 450ns 30ns 30ns
Cycle Time: 20ns 630ns 60ns 60ns
Transfer Rate: 99.9MB/s 3.1MB/s 33.3MB/s 33.3MB/s

Can anyone tell me what's wrong here, and where I should look to fix
it?

--
Bill Gallafent.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/