Bug 11247 - pata_pdc202xx_old, bug?
Summary: pata_pdc202xx_old, bug?
Status: RESOLVED OBSOLETE
Alias: None
Product: IO/Storage
Classification: Unclassified
Component: Serial ATA (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Alan
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-08-04 02:06 UTC by n
Modified: 2013-12-19 15:03 UTC (History)
2 users (show)

See Also:
Kernel Version: 2.6.32.3
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description n 2008-08-04 02:06:11 UTC
Latest working kernel version: 2.6.26
Earliest failing kernel version: 2.6.6~?
Distribution: slackware
Hardware Environment:
01:09.0 Mass storage controller: Promise Technology, Inc. PDC20267 (FastTrak100/Ultra100) (rev 02)
        Kernel driver in use: pata_pdc202xx_old
        Kernel modules: pata_pdc202xx_old
hard drive WDC WD800BB-55JKC0 
Software Environment: pata_pdc202xx_old,xfs
Problem Description:
i wasnt sure where to put this bug since its a ide drive but a sata developed driver
when i go to mount the drive i get this error in my syslog, i have tried the other port / jumper settings etc but this driver doesnt like the wdc drive (it agrees ok with the maxtor drive), also the wdc drive never had a problem with the old "ide" driver, so it must be a bug right?.


/var/log/syslog
Aug  4 01:42:11 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
Aug  4 01:42:11 flame kernel: ata3.00: BMDMA stat 0x4
Aug  4 01:42:11 flame kernel: ata3.00: cmd ca/00:01:3f:00:00/00:00:00:00:00/e0 tag 0 dma 512 out
Aug  4 01:42:11 flame kernel:          res 51/84:00:3f:00:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error)
Aug  4 01:42:11 flame kernel: ata3.00: status: { DRDY ERR }
Aug  4 01:42:11 flame kernel: ata3.00: error: { ICRC ABRT }
Aug  4 01:42:11 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
Aug  4 01:42:11 flame kernel: ata3.00: BMDMA stat 0x4
Aug  4 01:42:11 flame kernel: ata3.00: cmd ca/00:01:3f:00:00/00:00:00:00:00/e0 tag 0 dma 512 out
Aug  4 01:42:11 flame kernel:          res 51/84:00:3f:00:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error)
Aug  4 01:42:11 flame kernel: ata3.00: status: { DRDY ERR }
Aug  4 01:42:11 flame kernel: ata3.00: error: { ICRC ABRT }
Aug  4 01:42:12 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
Aug  4 01:42:12 flame kernel: ata3.00: BMDMA stat 0x4
Aug  4 01:42:12 flame kernel: ata3.00: cmd ca/00:01:3f:00:00/00:00:00:00:00/e0 tag 0 dma 512 out
Aug  4 01:42:12 flame kernel:          res 51/84:00:3f:00:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error)
Aug  4 01:42:12 flame kernel: ata3.00: status: { DRDY ERR }
Aug  4 01:42:12 flame kernel: ata3.00: error: { ICRC ABRT }
Aug  4 01:42:12 flame kernel: ata3.00: limiting speed to UDMA/66:PIO4
Aug  4 01:42:12 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
Aug  4 01:42:12 flame kernel: ata3.00: BMDMA stat 0x4
Aug  4 01:42:12 flame kernel: ata3.00: cmd ca/00:01:3f:00:00/00:00:00:00:00/e0 tag 0 dma 512 out
Aug  4 01:42:12 flame kernel:          res 51/84:00:3f:00:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error)
Aug  4 01:42:12 flame kernel: ata3.00: status: { DRDY ERR }
Aug  4 01:42:12 flame kernel: ata3.00: error: { ICRC ABRT }
Aug  4 01:42:12 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
Aug  4 01:42:12 flame kernel: ata3.00: BMDMA stat 0x4
Aug  4 01:42:12 flame kernel: ata3.00: cmd ca/00:01:3f:00:00/00:00:00:00:00/e0 tag 0 dma 512 out
Aug  4 01:42:12 flame kernel:          res 51/84:00:3f:00:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error)
Aug  4 01:42:12 flame kernel: ata3.00: status: { DRDY ERR }
Aug  4 01:42:12 flame kernel: ata3.00: error: { ICRC ABRT }
Aug  4 01:42:13 flame noip[2651]: Can't get status for ppp0. (19)  
Aug  4 01:42:13 flame kernel: ata3.00: limiting speed to UDMA/33:PIO4
Aug  4 01:42:13 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
Aug  4 01:42:13 flame kernel: ata3.00: BMDMA stat 0x4
Aug  4 01:42:13 flame kernel: ata3.00: cmd ca/00:01:3f:00:00/00:00:00:00:00/e0 tag 0 dma 512 out
Aug  4 01:42:13 flame kernel:          res 51/84:00:3f:00:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error)
Aug  4 01:42:13 flame kernel: ata3.00: status: { DRDY ERR }
Aug  4 01:42:13 flame kernel: ata3.00: error: { ICRC ABRT }
Aug  4 01:42:13 flame kernel: Descriptor sense data with sense descriptors (in hex):
Aug  4 01:42:13 flame kernel: end_request: I/O error, dev sde, sector 63
Aug  4 01:42:13 flame kernel: end_request: I/O error, dev sde, sector 63
Aug  4 01:42:13 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
Aug  4 01:42:13 flame kernel: ata3.00: BMDMA stat 0x4
Aug  4 01:42:13 flame kernel: ata3.00: cmd ca/00:00:a2:ba:fd/00:00:00:00:00/e6 tag 0 dma 131072 out
Aug  4 01:42:13 flame kernel:          res 51/84:00:a2:ba:fd/00:00:00:00:00/e6 Emask 0x10 (ATA bus error)
Aug  4 01:42:13 flame kernel: ata3.00: status: { DRDY ERR }
Aug  4 01:42:13 flame kernel: ata3.00: error: { ICRC ABRT }
Aug  4 01:42:14 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
Aug  4 01:42:14 flame kernel: ata3.00: BMDMA stat 0x4
Aug  4 01:42:14 flame kernel: ata3.00: cmd ca/00:00:a2:ba:fd/00:00:00:00:00/e6 tag 0 dma 131072 out
Aug  4 01:42:14 flame kernel:          res 51/84:00:a2:ba:fd/00:00:00:00:00/e6 Emask 0x10 (ATA bus error)
Aug  4 01:42:14 flame kernel: ata3.00: status: { DRDY ERR }
Aug  4 01:42:14 flame kernel: ata3.00: error: { ICRC ABRT }
Aug  4 01:42:14 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
Aug  4 01:42:14 flame kernel: ata3.00: BMDMA stat 0x4
Aug  4 01:42:14 flame kernel: ata3.00: cmd ca/00:00:a2:ba:fd/00:00:00:00:00/e6 tag 0 dma 131072 out
Aug  4 01:42:14 flame kernel:          res 51/84:00:a2:ba:fd/00:00:00:00:00/e6 Emask 0x10 (ATA bus error)
Aug  4 01:42:14 flame kernel: ata3.00: status: { DRDY ERR }
Aug  4 01:42:14 flame kernel: ata3.00: error: { ICRC ABRT }
Aug  4 01:42:14 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
Aug  4 01:42:14 flame kernel: ata3.00: BMDMA stat 0x4
Aug  4 01:42:14 flame kernel: ata3.00: cmd ca/00:00:a2:ba:fd/00:00:00:00:00/e6 tag 0 dma 131072 out
Aug  4 01:42:14 flame kernel:          res 51/84:00:a2:ba:fd/00:00:00:00:00/e6 Emask 0x10 (ATA bus error)
Aug  4 01:42:14 flame kernel: ata3.00: status: { DRDY ERR }
Aug  4 01:42:14 flame kernel: ata3.00: error: { ICRC ABRT }
Aug  4 01:42:15 flame kernel: ata3.00: limiting speed to PIO4
Aug  4 01:42:15 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
Aug  4 01:42:15 flame kernel: ata3.00: BMDMA stat 0x4
Aug  4 01:42:15 flame kernel: ata3.00: cmd ca/00:00:a2:ba:fd/00:00:00:00:00/e6 tag 0 dma 131072 out
Aug  4 01:42:15 flame kernel:          res 51/84:00:a2:ba:fd/00:00:00:00:00/e6 Emask 0x10 (ATA bus error)
Aug  4 01:42:15 flame kernel: ata3.00: status: { DRDY ERR }
Aug  4 01:42:15 flame kernel: ata3.00: error: { ICRC ABRT }


/var/log/messages 
Aug  4 01:42:11 flame kernel: ata3: soft resetting link
Aug  4 01:42:11 flame kernel: ata3.00: configured for UDMA/100
Aug  4 01:42:11 flame kernel: ata3: EH complete
Aug  4 01:42:11 flame kernel: ata3: soft resetting link
Aug  4 01:42:12 flame kernel: ata3.00: configured for UDMA/100
Aug  4 01:42:12 flame kernel: ata3: EH complete
Aug  4 01:42:12 flame kernel: sd 2:0:0:0: [sde] 234441648 512-byte hardware sectors (120034 MB)
Aug  4 01:42:12 flame kernel: ata3: soft resetting link
Aug  4 01:42:12 flame kernel: ata3.00: configured for UDMA/100
Aug  4 01:42:12 flame kernel: ata3: EH complete
Aug  4 01:42:12 flame kernel: sd 2:0:0:0: [sde] Write Protect is off
Aug  4 01:42:12 flame kernel: ata3: soft resetting link
Aug  4 01:42:12 flame kernel: ata3.00: configured for UDMA/66
Aug  4 01:42:12 flame kernel: ata3: EH complete
Aug  4 01:42:12 flame kernel: ata3: soft resetting link
Aug  4 01:42:13 flame kernel: ata3.00: configured for UDMA/66
Aug  4 01:42:13 flame kernel: ata3: EH complete
Aug  4 01:42:13 flame kernel: sd 2:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Aug  4 01:42:13 flame kernel: ata3: soft resetting link
Aug  4 01:42:13 flame kernel: ata3.00: configured for UDMA/33
Aug  4 01:42:13 flame kernel: sd 2:0:0:0: [sde] Result: hostbyte=0x00 driverbyte=0x08
Aug  4 01:42:13 flame kernel: sd 2:0:0:0: [sde] Sense Key : 0xb [current] [descriptor]
Aug  4 01:42:13 flame kernel:         72 0b 47 00 00 00 00 0c 00 0a 80 00 00 00 00 00 
Aug  4 01:42:13 flame kernel:         00 00 00 3f 
Aug  4 01:42:13 flame kernel: sd 2:0:0:0: [sde] ASC=0x47 ASCQ=0x0
Aug  4 01:42:13 flame kernel: ata3: EH complete
Aug  4 01:42:13 flame kernel: sd 2:0:0:0: [sde] 234441648 512-byte hardware sectors (120034 MB)
Aug  4 01:42:13 flame kernel: sd 2:0:0:0: [sde] Write Protect is off
Aug  4 01:42:13 flame kernel: sd 2:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Aug  4 01:42:13 flame kernel: sd 2:0:0:0: [sde] 234441648 512-byte hardware sectors (120034 MB)
Aug  4 01:42:13 flame kernel: sd 2:0:0:0: [sde] Write Protect is off
Aug  4 01:42:13 flame kernel: sd 2:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Aug  4 01:42:13 flame kernel: Filesystem "sde1": Disabling barriers, trial barrier write failed
Aug  4 01:42:13 flame kernel: XFS mounting filesystem sde1
Aug  4 01:42:13 flame kernel: ata3: soft resetting link
Aug  4 01:42:14 flame kernel: ata3.00: configured for UDMA/33
Aug  4 01:42:14 flame kernel: ata3: EH complete
Aug  4 01:42:14 flame kernel: ata3: soft resetting link
Aug  4 01:42:14 flame kernel: ata3.00: configured for UDMA/33
Aug  4 01:42:14 flame kernel: ata3: EH complete
Aug  4 01:42:14 flame kernel: ata3: soft resetting link
Aug  4 01:42:14 flame kernel: ata3.00: configured for UDMA/33
Aug  4 01:42:14 flame kernel: ata3: EH complete
Aug  4 01:42:14 flame kernel: ata3: soft resetting link
Aug  4 01:42:15 flame kernel: ata3.00: configured for UDMA/33
Aug  4 01:42:15 flame kernel: ata3: EH complete
Aug  4 01:42:15 flame kernel: ata3: soft resetting link
Aug  4 01:42:15 flame kernel: ata3.00: configured for PIO4
Aug  4 01:42:15 flame kernel: ata3: EH complete
Aug  4 01:42:15 flame kernel: sd 2:0:0:0: [sde] 234441648 512-byte hardware sectors (120034 MB)
Aug  4 01:42:15 flame kernel: sd 2:0:0:0: [sde] Write Protect is off
Aug  4 01:42:15 flame kernel: sd 2:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Aug  4 01:42:15 flame kernel: sd 2:0:0:0: [sde] 234441648 512-byte hardware sectors (120034 MB)
Aug  4 01:42:15 flame kernel: sd 2:0:0:0: [sde] Write Protect is off
Aug  4 01:42:15 flame kernel: sd 2:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA

Steps to reproduce:
Comment 1 Alan 2008-08-04 11:16:45 UTC
ICRC is a cable error. In theory that means a hardware problem but in practice that can be caused by mode timing config problems or other funnies. I'll take a look over the code and see if I can make any of my WDC drives break with this controller
Comment 2 Jim Faulkner 2010-01-17 18:30:22 UTC
This bug still exists in 2.6.32.3.  I just dug my promise ultra66 out of the closet so I don't know when the driver stopped working.

Here's my lspci:
05:04.0 Mass storage controller: Promise Technology, Inc. PDC20262 (FastTrak66/Ultra66) (rev 01)
        Subsystem: Promise Technology, Inc. Ultra66
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 22
        Region 0: I/O ports at cc00 [size=8]
        Region 1: I/O ports at cb00 [size=4]
        Region 2: I/O ports at ca00 [size=8]
        Region 3: I/O ports at c900 [size=4]
        Region 4: I/O ports at c800 [size=64]
        Region 5: Memory at fd9c0000 (32-bit, non-prefetchable) [size=128K]
        [virtual] Expansion ROM at fd800000 [disabled] [size=64K]

Here's my dmesg output when trying writes on the disk (reads did not seem to cause problems):
[  222.907641] ata12.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
[  222.907645] ata12.00: BMDMA stat 0x4
[  222.907648] ata12.00: failed command: WRITE DMA
[  222.907654] ata12.00: cmd ca/00:00:00:5d:00/00:00:00:00:00/e0 tag 0 dma 131072 out
[  222.907656]          res 51/84:00:00:5d:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error)
[  222.907659] ata12.00: status: { DRDY ERR }
[  222.907661] ata12.00: error: { ICRC ABRT }
[  222.907682] ata12: soft resetting link
[  223.080451] ata12.00: configured for UDMA/66
[  223.080463] ata12: EH complete
[  243.058243] ata12.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
[  243.058247] ata12.00: BMDMA stat 0x4
[  243.058251] ata12.00: failed command: WRITE DMA
[  243.058257] ata12.00: cmd ca/00:00:00:87:16/00:00:00:00:00/e0 tag 0 dma 131072 out
[  243.058258]          res 51/84:00:00:87:16/00:00:00:00:00/e0 Emask 0x10 (ATA bus error)
[  243.058261] ata12.00: status: { DRDY ERR }
[  243.058263] ata12.00: error: { ICRC ABRT }
[  243.058283] ata12: soft resetting link
[  243.230451] ata12.00: configured for UDMA/66
[  243.230465] ata12: EH complete

I think that this bug may be the same as discussed here:
http://patchwork.ozlabs.org/patch/41790/

I tried the patch at the very bottom of the above URL.  It seemed to delay the failure, but eventually I would see errors, as well as possible data corruption.  I was testing out btrfs on the disk, and started seeing "btrfs csum failed" errors.

The drive works just fine when I use drivers/ide/pdc202xx_old.c.  I've done some pretty heavy I/O tests, both read and write, with the drivers/ide/pdc202xx_old.c driver, and have seen no problems.

It would be nice to see the libata driver fixed so that I don't have to enable the old IDE layer.

Note You need to log in before you can comment on or make changes to this bug.