kern/55299: Promise ATA controller can't handle UDMA device properly

Soonmyung Hong sonnet at teatime.org
Tue Aug 5 20:10:21 PDT 2003


>Number:         55299
>Category:       kern
>Synopsis:       Promise ATA controller can't handle UDMA device properly
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Aug 05 20:10:17 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Soonmyung Hong
>Release:        FreeBSD 4.8-STABLE i386 / FreeBSD 5.1-CURRENT i386
>Organization:
ubAgent Inc.
>Environment:
System: FreeBSD hel.ubagent.com 4.8-STABLE FreeBSD 4.8-STABLE #0: Thu
Jul 31 21:01:57 KST 2003 root at hel.ubagent.com:/usr/obj/usr/src/sys/HEL i386

FreeBSD fs0.ubagent.com 5.1-CURRENT FreeBSD 5.1-CURRENT #0: Mon Aug 4
03:42:13 KST 2003 root at fs0.ubagent.com:/usr/obj/usr/src/sys/FS i386

MB: Intel SE7500CW2
HDD: Western Digital WD2500JB(250GB IDE) * 4

>Description:
Intel mainboard has on-board IDE-RAID controller PDC-20267, I used it as
just additional IDE controller.

When I connected HDD to Promise controller, driver doesn't work properly.
(4-Stable and 5-Current show different behaviors.)

1) 4.8R and 4-Stable Case
When I connect HDD to any(primary master/slave, secondary master/slave)
channel of promise controller, system hang(fatal trap 12) after message
> ad6: READ command timeout tag=0 serv=0 - resetting

workaround:
Set hw.ata.ata_dma="0" at loader command line(for CD install),
or /boot/loader.conf(for installed one).

But it shows very unpleasant perfomance.

2) 5.1R and 5-Current Case
When I connected HDD to primary master(alone) or primary master/slave,
it works properly.

# atacontrol list
ATA channel 0:
Master: ad0 <WDC WD2500JB-00EVA0/15.05R15> ATA/ATAPI rev 6
Slave: no device present
ATA channel 1:
Master: acd0 <HL-DT-ST CD-ROM GCR-8522B/1.00> ATA/ATAPI rev 0
Slave: ad3 <WDC WD2500JB-00EVA0/15.05R15> ATA/ATAPI rev 6
ATA channel 2:
Master: ad4 <WDC WD2500JB-00EVA0/15.05R15> ATA/ATAPI rev 6
Slave: ad5 <WDC WD2500JB-00EVA0/15.05R15> ATA/ATAPI rev 6
ATA channel 3:
Master: no device present
Slave: no device present
# atacontrol mode 2
Master = UDMA100
Slave = UDMA100

But when I connect HDD to secondary master(alone) or secondary master/slave,
It doesn't work UDMA100.

At boot time, driver report below message.
> ad6: READ command timeout tag=0 serv=0 - resetting
> ata3: resetting device ..
> ata3-slave: ATA identify retries exceeded.
> done
repeated 3 times and fail back to PIO4 mode.
In this case, fatal trap 12 doesn't happened.

# atacontrol list
ATA channel 0:
Master: ad0 <WDC WD2500JB-00EVA0/15.05R15> ATA/ATAPI rev 6
Slave: no device present
ATA channel 1:
Master: acd0 <HL-DT-ST CD-ROM GCR-8522B/1.00> ATA/ATAPI rev 0
Slave: ad3 <WDC WD2500JB-00EVA0/15.05R15> ATA/ATAPI rev 6
ATA channel 2:
Master: ad4 <WDC WD2500JB-00EVA0/15.05R15> ATA/ATAPI rev 6
Slave: ad5 <WDC WD2500JB-00EVA0/15.05R15> ATA/ATAPI rev 6
ATA channel 3:
Master: ad6 <WDC WD2500JB-00EVA0/15.05R15> ATA/ATAPI rev 6
Slave: no device present
# atacontrol mode 3
Master = PIO4
Slave = ???

It is odd that secondary master(alone) configuration also show
message "ata3-slave: ATA identify retries exceeded.".

I convinced it is not hardware/connection/cable problem.
(I carefully tested on 4 different machine(4Motherboard/16HDD)).

I think kern/50559 is similar problem.


>How-To-Repeat:
everytime (I test it with 4 different machine with same configuration)

>Fix:





>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list