public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* PDC202XX_OLD broken
@ 2004-12-06 22:05 Alan Pope
  2004-12-07 13:21 ` Alan Cox
  0 siblings, 1 reply; 6+ messages in thread
From: Alan Pope @ 2004-12-06 22:05 UTC (permalink / raw)
  To: linux-kernel, bugs, andre

Added a "Seagate ST3200822A Barracuda 7200.7 Plus 200GB" disk to my
main PC which uses a with "Promise PDC20265 (FastTrak100
Lite/Ultra100) (rev 02)" controller.

I get these when placing the disk under any load (DMA enabled)

hde: dma_intr: status=0xff { Busy }

ide: failed opcode was: unknown
hde: DMA disabled
PDC202XX: Primary channel reset.
PDC202XX: Secondary channel reset.

(a number of times)

ide2: reset timed-out, status=0xff
end_request: I/O error, dev hde, sector 11776
Buffer I/O error on device hde, logical block 1472

(many times)

Any clues, greatfully received.

I've tried under 2.6.8 through 2.6.9-ac9 & 2.6.10-rc2 with the same effect.

Thanks,
Al.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: PDC202XX_OLD broken
  2004-12-06 22:05 PDC202XX_OLD broken Alan Pope
@ 2004-12-07 13:21 ` Alan Cox
  2004-12-07 20:13   ` Alan Pope
  2004-12-07 20:58   ` Bartlomiej Zolnierkiewicz
  0 siblings, 2 replies; 6+ messages in thread
From: Alan Cox @ 2004-12-07 13:21 UTC (permalink / raw)
  To: Alan Pope; +Cc: Linux Kernel Mailing List, bugs, Andre Hedrick

On Llu, 2004-12-06 at 22:05, Alan Pope wrote:
> Added a "Seagate ST3200822A Barracuda 7200.7 Plus 200GB" disk to my
> main PC which uses a with "Promise PDC20265 (FastTrak100
> Lite/Ultra100) (rev 02)" controller.

Does it behave attached to a different disk controller ?


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: PDC202XX_OLD broken
  2004-12-07 13:21 ` Alan Cox
@ 2004-12-07 20:13   ` Alan Pope
  2004-12-07 20:58   ` Bartlomiej Zolnierkiewicz
  1 sibling, 0 replies; 6+ messages in thread
From: Alan Pope @ 2004-12-07 20:13 UTC (permalink / raw)
  To: Alan Cox; +Cc: Linux Kernel Mailing List, bugs, Andre Hedrick

On Tue, 07 Dec 2004 13:21:02 +0000, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> On Llu, 2004-12-06 at 22:05, Alan Pope wrote:
> > Added a "Seagate ST3200822A Barracuda 7200.7 Plus 200GB" disk to my
> > main PC which uses a with "Promise PDC20265 (FastTrak100
> > Lite/Ultra100) (rev 02)" controller.
> 
> Does it behave attached to a different disk controller ?
> 
> 

Thanks for the reply Alan, much appreciated.

No. I can confirm that when booted to Linux 2.6.7, plugged into a VIA
(onboard) VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev
06) it's does NOT exhibit the same problem. It's in DMA ATA33 mode on
that controller.

I have thrashed it with many dds of /dev/zero to the disk whilst
copying files around, and it's fine.

I've got some details at http://www.popey.com/promise if that helps.

Cheers,
Al.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: PDC202XX_OLD broken
  2004-12-07 13:21 ` Alan Cox
  2004-12-07 20:13   ` Alan Pope
@ 2004-12-07 20:58   ` Bartlomiej Zolnierkiewicz
  2004-12-08 21:25     ` Alan Pope
  1 sibling, 1 reply; 6+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2004-12-07 20:58 UTC (permalink / raw)
  To: Alan Pope; +Cc: Alan Cox, Linux Kernel Mailing List, bugs, Andre Hedrick

last mail and http://www.popey.com/promise helped a lot

You are using 40c cable instead of 80c one.
Thus transfer rate is limited to UDMA33.

Moreover pdc202xx_old has a bug in cable detection code.
pdc202xx_old_cable_detect() always returns '0' (which means
80c cable) due to a sloppy coding - result of CIS & mask is
truncated to 8 bits although CIS holds cable info in bits 10-11.

Does this fix work for you?

--- pdc202xx_old.c.orig	2004-11-07 03:14:09.000000000 +0100
+++ pdc202xx_old.c	2004-12-07 15:38:13.644921160 +0100
@@ -230,7 +230,7 @@
 {
 	u16 CIS = 0, mask = (hwif->channel) ? (1<<11) : (1<<10);
 	pci_read_config_word(hwif->pci_dev, 0x50, &CIS);
-	return ((u8)(CIS & mask));
+	return (CIS & mask) ? 1 : 0;
 }
 
 /*

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: PDC202XX_OLD broken
  2004-12-07 20:58   ` Bartlomiej Zolnierkiewicz
@ 2004-12-08 21:25     ` Alan Pope
  2004-12-08 21:46       ` Bartlomiej Zolnierkiewicz
  0 siblings, 1 reply; 6+ messages in thread
From: Alan Pope @ 2004-12-08 21:25 UTC (permalink / raw)
  To: Bartlomiej Zolnierkiewicz
  Cc: Alan Cox, Linux Kernel Mailing List, Andre Hedrick

On Tue, 7 Dec 2004 21:58:52 +0100, Bartlomiej Zolnierkiewicz
<bzolnier@gmail.com> wrote:
> You are using 40c cable instead of 80c one.
> Thus transfer rate is limited to UDMA33.
> 

No, I'm using an 80c cable. I have even gone out and bought a new 80c
one just to make sure the cable isn't broken. I have also got two
identical disks, and experience exactly the same problem on both.

I booted with "ide2=dma" because it was booting with the disk in pio mode.

> Moreover pdc202xx_old has a bug in cable detection code.
> pdc202xx_old_cable_detect() always returns '0' (which means
> 80c cable) due to a sloppy coding - result of CIS & mask is
> truncated to 8 bits although CIS holds cable info in bits 10-11.
> 
> Does this fix work for you?
> 

Not tried it, but it wouldn't help me would it? I *do* have an 80c
cable, and the disk does show up in dmesg as a UDMA100 disk..

This is what happens when I thrash it, note my /home/alan is on
another non-UDMA100 disk on a separate controller.

# time cp -Rvp /home/alan/* temp

ide: failed opcode was: unknown
hde: DMA disabled
PDC202XX: Primary channel reset.
PDC202XX: Secondary channel reset.

(then lots of these)
 
end_request: I/O error, dev hde, sector 145225487
end_request: I/O error, dev hde, sector 145225495
end_request: I/O error, dev hde, sector 145225503
end_request: I/O error, dev hde, sector 145225511
end_request: I/O error, dev hde, sector 145225519
end_request: I/O error, dev hde, sector 145225527
end_request: I/O error, dev hde, sector 145225535

EXT3-fs error (device hde1) in ext3_prepare_write: IO failure
EXT3-fs error (device hde1) in start_transaction: Journal has aborted

printk: 2018 messages suppressed.
Buffer I/O error on device hde1, logical block 5
lost page write due to I/O error on hde1
end_request: I/O error, dev hde, sector 183


Any ideas?
Cheers,
Al.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: PDC202XX_OLD broken
  2004-12-08 21:25     ` Alan Pope
@ 2004-12-08 21:46       ` Bartlomiej Zolnierkiewicz
  0 siblings, 0 replies; 6+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2004-12-08 21:46 UTC (permalink / raw)
  To: Alan Pope; +Cc: Alan Cox, Linux Kernel Mailing List, Andre Hedrick

On Wed, 8 Dec 2004 21:25:56 +0000, Alan Pope <alan.pope@gmail.com> wrote:
> On Tue, 7 Dec 2004 21:58:52 +0100, Bartlomiej Zolnierkiewicz
> <bzolnier@gmail.com> wrote:
> > You are using 40c cable instead of 80c one.
> > Thus transfer rate is limited to UDMA33.
> >
> 
> No, I'm using an 80c cable. I have even gone out and bought a new 80c
> one just to make sure the cable isn't broken. I have also got two
> identical disks, and experience exactly the same problem on both.

Ah, my mistake, you have 40c cable connected to VIA not Promise...

> I booted with "ide2=dma" because it was booting with the disk in pio mode.

If you are talking about:

ide3: BM-DMA at 0xd008-0xd00f, BIOS settings: hdg:pio, hdh:pio

it reports BIOS settings not the ones used by driver, no need for
"ide=dma2" if you have CONFIG_IDEDMA_PCI_AUTO=y.

> > Moreover pdc202xx_old has a bug in cable detection code.
> > pdc202xx_old_cable_detect() always returns '0' (which means
> > 80c cable) due to a sloppy coding - result of CIS & mask is
> > truncated to 8 bits although CIS holds cable info in bits 10-11.
> >
> > Does this fix work for you?
> >
> 
> Not tried it, but it wouldn't help me would it? I *do* have an 80c
> cable, and the disk does show up in dmesg as a UDMA100 disk..

It wouldn't, it must be another bug.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2004-12-08 21:46 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-12-06 22:05 PDC202XX_OLD broken Alan Pope
2004-12-07 13:21 ` Alan Cox
2004-12-07 20:13   ` Alan Pope
2004-12-07 20:58   ` Bartlomiej Zolnierkiewicz
2004-12-08 21:25     ` Alan Pope
2004-12-08 21:46       ` Bartlomiej Zolnierkiewicz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox