Re: DMA timing issues with promise controllers

2 messages, 2 authors, 2004-01-12 · open the first message on its own page

Re: DMA timing issues with promise controllers

From: <hidden>
Date: 2004-01-12 15:14:39


If it helps any I've seen exactly the same thing on a Motorola VME board
with a Ramix (now GE Fanuc) card running over PCI.  It also uses
a PROMIS chip.   The error seem to be just a nuisance, but does cause
an extra delay during boot.  You're right that it does appear to be a DMA
timing
issue, as the system sees the drive fine and it works great after the
reset.

Anything I saw on lists said to check cables, etc. which was not the issue
here.     For me, the bigger problem is to get the firmware on the board to
talk to the controller and recognize the drive so I can boot from it.
This was booted from flash.


Snip from boot output ************

Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PDC20269: IDE controller at PCI slot 00:11.0
PDC20269: chipset revision 2
PDC20269: not 100% native mode: will probe irqs later
    ide2: BM-DMA at 0x77ef90-0x77ef97, BIOS settings: hde:pio, hdf:pio
    ide3: BM-DMA at 0x77ef98-0x77ef9f, BIOS settings: hdg:pio, hdh:pio
Probing IDE interface ide2...
hde: IC25N040ATCS04-0, ATA DISK drive
blk: queue c0224b60, I/O limit 4095Mb (mask 0xffffffff)
Probing IDE interface ide3...
ide2 at 0x77efb8-0x77efbf,0x77efb6 on irq 28
hde: attached ide-disk driver.
hde: host protected area => 1
hde: 78140160 sectors (40008 MB) w/1768KiB Cache, CHS=77520/16/63,
UDMA(100)
Partition check:
 hde:<4>hde: dma_timer_expiry: dma status == 0x21
hde: error waiting for DMA
hde: dma timeout retry: status=0x51 { DriveReady SeekComplete Error }
hde: dma timeout retry: error=0x84 { DriveStatusError BadCRC }
 hde1 hde2 hde3 hde4 <hde: dma_intr: status=0x51 { DriveReady SeekComplete
Error }
hde: dma_intr: error=0x84 { DriveStatusError BadCRC }
hde: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hde: dma_intr: error=0x84 { DriveStatusError BadCRC }
hde: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hde: dma_intr: error=0x84 { DriveStatusError BadCRC }
hde: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hde: dma_intr: error=0x84 { DriveStatusError BadCRC }
PDC202XX: Primary channel reset.
ide2: reset: success
 hde5 >
SCSI subsystem driver Revision: 1.00
scsi0 : SCSI host adapter emulation for IDE ATAPI devices

end snip ************************

If you find a fix and would like me to test it on this platform, I'd be
glad to.
I'm running at 2.4.23-pre5 from the linuxppc_2_4_devel tree.
The errors happen on every reset.

Gary






mutex [off-list ref] on 01/12/2004 01:54:47 AM

Please respond to mutex [off-list ref]

To:   linuxppc-dev@lists.linuxppc.org
cc:    (bcc: Gary Hannon/CSP)
Subject:  DMA timing issues with promise controllers




Hello all ;-)
I spoke with benh briefly on irc about a problem I was having with
some promise controllers on my quicksilver G4(867).
During boot I get a slew of 'DriveReady SeekComplete Error' and
'DriveStatusError BadCRC' during what looks like some dma timing
tests.
I attached my dmesg.  I did a few tests and this problem manifests
itself irregardless of harddrive(multiple size/version of maxtor
harddrives) and with multiple versions of the promise
chipset(PDC20267, PDC20268)
The drives work fine after a ide reset, but the reset sequence happens
again when I attempt to use fdisk or mount a partition.

I'm willing to do some of the debugging myself, just not sure where to
start.
clues anyone ?

Re: DMA timing issues with promise controllers

From: mutex <hidden>
Date: 2004-01-12 20:09:42

On Mon, Jan 12, 2004 at 10:14:39AM -0500 or thereabouts, ghannon@cspi.com wrote:
If it helps any I've seen exactly the same thing on a Motorola VME board
with a Ramix (now GE Fanuc) card running over PCI.  It also uses
a PROMIS chip.   The error seem to be just a nuisance, but does cause
an extra delay during boot.  You're right that it does appear to be a DMA
timing
issue, as the system sees the drive fine and it works great after the
reset.
It would be nice if my machine didn't have a 5 min booting time ;-)
Anything I saw on lists said to check cables, etc. which was not the issue
here.     For me, the bigger problem is to get the firmware on the board to
talk to the controller and recognize the drive so I can boot from it.
This was booted from flash.
I checked cables and what not as well.  Are you able to boot from
it ?  I haven't tried yet, so far I've just been messing with the
drives on a gentoo livecd.

I would like to test 2.6, see if it has the same problems.
Snip from boot output ************

Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PDC20269: IDE controller at PCI slot 00:11.0
PDC20269: chipset revision 2
PDC20269: not 100% native mode: will probe irqs later
    ide2: BM-DMA at 0x77ef90-0x77ef97, BIOS settings: hde:pio, hdf:pio
    ide3: BM-DMA at 0x77ef98-0x77ef9f, BIOS settings: hdg:pio, hdh:pio
Probing IDE interface ide2...
hde: IC25N040ATCS04-0, ATA DISK drive
blk: queue c0224b60, I/O limit 4095Mb (mask 0xffffffff)
Probing IDE interface ide3...
ide2 at 0x77efb8-0x77efbf,0x77efb6 on irq 28
hde: attached ide-disk driver.
hde: host protected area => 1
hde: 78140160 sectors (40008 MB) w/1768KiB Cache, CHS=77520/16/63,
UDMA(100)
Partition check:
 hde:<4>hde: dma_timer_expiry: dma status == 0x21
hde: error waiting for DMA
hde: dma timeout retry: status=0x51 { DriveReady SeekComplete Error }
hde: dma timeout retry: error=0x84 { DriveStatusError BadCRC }
 hde1 hde2 hde3 hde4 <hde: dma_intr: status=0x51 { DriveReady SeekComplete
Error }
hde: dma_intr: error=0x84 { DriveStatusError BadCRC }
hde: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hde: dma_intr: error=0x84 { DriveStatusError BadCRC }
hde: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hde: dma_intr: error=0x84 { DriveStatusError BadCRC }
hde: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hde: dma_intr: error=0x84 { DriveStatusError BadCRC }
PDC202XX: Primary channel reset.
ide2: reset: success
 hde5 >
SCSI subsystem driver Revision: 1.00
scsi0 : SCSI host adapter emulation for IDE ATAPI devices

end snip ************************

If you find a fix and would like me to test it on this platform, I'd be
glad to.
I'm running at 2.4.23-pre5 from the linuxppc_2_4_devel tree.
The errors happen on every reset.
yeah sucks.  I think i'm running 2.4.22-something... I'll check when
I'm back at home in front of the box.  Benh said that it may be the
controller is expecting a PC bios to set some timing register, and OF
isn't doing that.  I'll take a look at the driver when I have a few
minutes.. see if it insipres anything, however I must admit my
experince with IDE drivers is definatly 'less-than-expert' status.

Are you using the pdc202xx_new or pdc202xx_old driver ?  It looks like
andre hedrick is the maintainer, I'll email him with a pointer to this
thread, maybe he will have something insipring to add.

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help