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