Promise Ultra100 gives ATA bus errors in openSuSE 11.0

I have a Promise Ultra100 ATA controller with two Seagate drives (ST3320620A) connected to (one per channel). The idea was to build a fault tolerant software Raid 1 system with those two disks. But when booting the system it logs lots of repeated errors of the same kind (in /var/log/boot.msg):

> <3>ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> <3>ata2.00: BMDMA stat 0x4
> <3>ata2.00: cmd ca/00:08:9f:56:a3/00:00:00:00:00/e2 tag 0 dma 4096 out
> <4>         res 51/84:08:9f:56:a3/00:00:00:00:00/e2 Emask 
> 0x10 (ATA bus error)
> <3>ata2.00: status: { DRDY ERR }
> <3>ata2.00: error: { ICRC ABRT }
> <6>ata2: soft resetting link
> <6>ata2.00: configured for UDMA/33
> <6>ata2: EH complete
> <3>ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> <3>ata2.00: BMDMA stat 0x4
> <3>ata2.00: cmd ca/00:08:9f:56:a3/00:00:00:00:00/e2 tag 0 dma 4096 out
> <4>         res 51/84:08:9f:56:a3/00:00:00:00:00/e2 Emask 
> 0x10 (ATA bus error)
> <3>ata2.00: status: { DRDY ERR }
> <3>ata2.00: error: { ICRC ABRT }
> <6>ata2: soft resetting link
> <6>ata2.00: configured for UDMA/33
> <6>ata2: EH complete
> <5>sd 1:0:0:0: [sdb] 625142448 512-byte hardware sectors (320073 MB)
> <3>ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> <3>ata2.00: BMDMA stat 0x4
> <3>ata2.00: cmd ca/00:08:9f:56:a3/00:00:00:00:00/e2 tag 0 dma 4096 out
> <4>         res 51/84:08:9f:56:a3/00:00:00:00:00/e2 Emask 
> 0x10 (ATA bus error)
> <3>ata2.00: status: { DRDY ERR }
> <3>ata2.00: error: { ICRC ABRT }
> <6>ata2: soft resetting link
> <6>ata2.00: configured for UDMA/33
> <6>ata2: EH complete
> <5>sd 1:0:0:0: [sdb] Write Protect is off <7>sd 1:0:0:0: 
> [sdb] Mode Sense: 00 3a 00 00
> <4>ata2.00: limiting speed to UDMA/25:PIO4
> <3>ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> <3>ata2.00: BMDMA stat 0x4
> <3>ata2.00: cmd ca/00:08:9f:56:a3/00:00:00:00:00/e2 tag 0 dma 4096 out
> <4>         res 51/84:08:9f:56:a3/00:00:00:00:00/e2 Emask 
> 0x10 (ATA bus error)
> <3>ata2.00: status: { DRDY ERR }
> <3>ata2.00: error: { ICRC ABRT }
> <6>ata2: soft resetting link
> <6>ata2.00: configured for UDMA/25
> <6>ata2: EH complete
> <3>ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> <3>ata2.00: BMDMA stat 0x4
> <3>ata2.00: cmd ca/00:08:9f:56:a3/00:00:00:00:00/e2 tag 0 dma 4096 out
> <4>         res 51/84:08:9f:56:a3/00:00:00:00:00/e2 Emask 
> 0x10 (ATA bus error)
> <3>ata2.00: status: { DRDY ERR }
> <3>ata2.00: error: { ICRC ABRT }
> <6>ata2: soft resetting link
> <6>ata2.00: configured for UDMA/25
> <6>ata2: EH complete
> <5>sd 1:0:0:0: [sdb] Write cache: enabled, read cache: 
> enabled, doesn't support DPO or FUA
> <4>ata2.00: limiting speed to PIO4
> <3>ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> <3>ata2.00: BMDMA stat 0x4
> <3>ata2.00: cmd ca/00:08:9f:56:a3/00:00:00:00:00/e2 tag 0 dma 4096 out
> <4>         res 51/84:08:9f:56:a3/00:00:00:00:00/e2 Emask 
> 0x10 (ATA bus error)
> <3>ata2.00: status: { DRDY ERR }
> <3>ata2.00: error: { ICRC ABRT }
> <6>ata2: soft resetting link
> <6>ata2.00: configured for PIO4
> <6>sd 1:0:0:0: [sdb] Result: hostbyte=DID_OK 
> driverbyte=DRIVER_SENSE,SUGGEST_OK
> <6>sd 1:0:0:0: [sdb] Sense Key : Aborted Command [current] 
> [descriptor] <4>Descriptor sense data with sense descriptors (in hex):
> <6>        72 0b 47 00 00 00 00 0c 00 0a 80 00 00 00 00 00
> <6>        02 a3 56 9f
> <6>sd 1:0:0:0: [sdb] Add. Sense: Scsi parity error
> <3>end_request: I/O error, dev sdb, sector 44258975
> <6>ata2: EH complete
> <3>end_request: I/O error, dev sdb, sector 44258975

As far as I understand these error messages, the ATA bus detects CRC errors which causes the driver to reset the bus, to retry the transfer and finally to give up and slow down transfer speed spep by step. In consequence the system takes quite some minutes to boot and also delays and slows down later on as well. Not to mention the constantly broken mirrors for my md0 to md2 drives…

With my first tests I did use the appropriate cables (Ultra DMA 80-conductor IDE/ATA with only two connectors) so the ontroller tried to operate in Ultra DMA Mode 5 (100MB/s) which failed with virtually identical error logs.
On a trial base I switched cables and used standard 40-conductor cables in order to restrict transfer speed to max. mode 2, but in vain.
My system is a DELL PowerEdge 1300 with two PIII @ 500MHz and 512MB Ram. Both, the DELL and the Promise have the latest firmware.

Google returned quite a few posts from people with similar problems, but no way to fix tha problem so far. :confused:

Nobody no idea? :confused:

After some more research on that issue I found some advice NOT to enable DMA with an ATA software RAID configuration. I then tried to disable DMA experimentally with my two drives (sda and sdb) but the hdparm tool could not even query the DMA status:

hdparm /dev/sda

/dev/sda:
 IO_support    =  0 (default) 16-bit)
 HDIO_GET_UNMASKINTR failed: Inappropriate ioctl for device  
 HDIO_GET_DMA failed: Inappropriate ioctl for device  
 HDIO_GET_KEEPSETTINGS failed: Inappropriate ioctl for device
 readonly      =  0 (off)
 readahead     = 256 (on)
 geometry      = 38913/255/63, sectors = 625142448, start = 0

Why that?
Is that due to the Seagate drives, or the Promise Ultra100 controller, or this unlucky combination?

I finally gave up on that. The Promise Ultra100 did not work reliably nor performantly with both of my tested DELL systems, a PowerEdge 1300 and a Dimension 2100.