* 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