* 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