Re: [RESEND][2.6.15] New ATA error messages on upgrade to 2.6.15

From: Kyle Moffett
Date: Mon Apr 03 2006 - 08:34:51 EST


On Apr 3, 2006, at 07:35:01, Mikael Pettersson wrote:
PDC20269: IDE controller at PCI slot 0000:00:0e.0
PDC20269: chipset revision 2
PDC20269: ROM enabled at 0x81804000
PDC20269: 100% native mode on irq 24
ide2: BM-DMA at 0x0880-0x0887, BIOS settings: hde:pio, hdf:pio
ide3: BM-DMA at 0x0888-0x088f, BIOS settings: hdg:pio, hdh:pio

Looks like the controller ends up in the same initial state as mine. After playing with hdparm a bit, I've determined that my /dev/hdg (Maxtor disk on the PDC20268) comes up in udma4 and falls back to udma3 after a few CRC errors. It appears that the /dev/hdi (Samsung disk on the PDC20268) comes up in an indeterminate udma state and falls back to a lower DMA state after a few CRC errors. At some point later the MULTWRITE_EXT problem triggers DMA timeouts and the kernel falls back to PIO. I can reenable DMA with "hdparm -d1 /dev/ hdi" and it will come back in udma2 mode, but it refuses to go higher, giving these errors:
hdi: dma_timer_expiry: dma status == 0x21
hdi: DMA timeout error
hdi: dma timeout error: status=0xd0 { Busy }
ide: failed opcode was: unknown
hdi: DMA disabled
PDC202XX: Secondary channel reset.
ide4: reset: success
And at this point it falls back to udma2 again. Both card and drive should support UDMA4 (ATA100?)

hde: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hde: dma_intr: error=0x84 { DriveStatusError BadCRC }
ide: failed opcode was: unknown
PDC202XX: Primary channel reset.
ide2: reset: success

You get the exact same reset I do on the bad CRCs. When this happens the udma level is lowered by 1 on my system.

/dev/hde:

Model=IBM-DTLA-307030, FwRev=TX4OA6AA, SerialNo=YKEYKTTY645
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=40
BuffType=DualPortCache, BuffSize=1916kB, MaxMultSect=16, MultSect=off
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=60036480
IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 *udma4 udma5

My card and Maxtor drive refuse to run in udma4 mode, although I know the card and drive support it. The CRC errors on the Maxtor always trigger a fallback to udma3.

00:0e.0 Unknown mass storage controller: Promise Technology, Inc. 20269 (rev 02) (prog-if 85)
Subsystem: Promise Technology, Inc. Ultra133TX2
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (1000ns min, 4500ns max), Cache Line Size 08
Interrupt: pin A routed to IRQ 24
Region 0: I/O ports at fe0008c0 [size=8]
Region 1: I/O ports at fe0008b0 [size=4]
Region 2: I/O ports at fe0008a0 [size=8]
Region 3: I/O ports at fe000890 [size=4]
Region 4: I/O ports at fe000880 [size=16]
Region 5: Memory at 0000000081808000 (32-bit, non-prefetchable) [size=16K]
Expansion ROM at 0000000081804000 [size=16K]
Capabilities: [60] Power Management version 1
Flags: PMEClk- DSI+ D1+ D2- AuxCurrent=0mA PME (D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
00: 5a 10 69 4d 07 00 30 04 02 85 80 01 08 20 00 00
10: c1 08 00 00 b1 08 00 00 a1 08 00 00 91 08 00 00
20: 81 08 00 00 00 80 80 81 00 00 00 00 5a 10 68 4d
30: 01 40 80 81 60 00 00 00 00 00 00 00 18 01 04 12

My controller looks like this:
0001:11:02.0 Mass storage controller: Promise Technology, Inc. PDC20268 (Ultra100 TX2) (rev 02) (prog-if 85)
Subsystem: Promise Technology, Inc.: Unknown device ad68
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 16 (1000ns min, 4500ns max), Cache Line Size: 0x08 (32 bytes)
Interrupt: pin A routed to IRQ 52
Region 0: I/O ports at f2001440 [size=8]
Region 1: I/O ports at f2001430 [size=4]
Region 2: I/O ports at f2001420 [size=8]
Region 3: I/O ports at f2001410 [size=4]
Region 4: I/O ports at f2001400 [size=16]
Region 5: Memory at 800a0000 (32-bit, non-prefetchable) [size=64K]
Expansion ROM at 80090000 [disabled] [size=64K]
Capabilities: [60] Power Management version 1
Flags: PMEClk- DSI+ D1+ D2- AuxCurrent=0mA PME (D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
00: 5a 10 68 4d 07 00 30 04 02 85 80 01 08 10 00 00
10: 41 14 00 00 31 14 00 00 21 14 00 00 11 14 00 00
20: 01 14 00 00 00 00 0a 80 00 00 00 00 5a 10 68 ad
30: 01 00 09 80 60 00 00 00 00 00 00 00 34 01 04 12

Thanks for the help!

Cheers,
Kyle Moffett

-
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/