Re: [reiserfs-dev] Re: IDE problem: linux-2.5.17

Martin Dalecki (dalecki@evision-ventures.com)
Thu, 23 May 2002 16:44:26 +0200


Uz.ytkownik Oleg Drokin napisa?:
> Hello!
>
> On Thu, May 23, 2002 at 04:27:39PM +0200, Martin Dalecki wrote:
>
>>>hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
>>>hda: dma_intr: error=0x84 { DriveStatusError BadCRC }
>>
>>Since this error can be expected to be quite common.
>>Its an installation error. I will just make the corresponding
>>error message more intelliglible to the average user:
>>hda: checksum error on data transfer occurred!
>
>
> BTW, I have a particular setup that spits out such errors,
> and I somehow thinks the cable is good.
>
> I have IBM DTLA-307030 drive and Seagate Barracuda IV drive (last one purchased
> only recently).
> IBM drive is connected to far end of 80-wires IDE cable and Barracuda is
> connected to the middle of this same wire.
> Before I bought IBM drive, everything was ok.
> But now I see BadCRC errors on hdb (only on hdb, which is barracuda drive)
> usually when both drives are active.
> If I disable DMA on IBM drive (or if kernel disables it by itself for some
> reason, and it actually does it sometimes), these errors seems to go away.
>
> This is all on 2.4.18, but actually I think this is irrelevant.
>
> If that's a bad cable, why it is only happens when both drives are working
> in DMA mode?

It's most likely the cable. The error comes directly from the
status register of the drive. The drive is reporting that it got
corrupted data from the wire. This will be only checked in the
80 cable requiring DMA transfer modes. So if the drive resorts to
slower operation all will be fine. If it does not - well
you see the above...

Having two drives on a single cable canges the termination
of the cable as well as other electrical properties significantly
and apparently you are just out of luck with the above system.

What should really help is simple resort to slower operations
int he case of the driver.

It can of course be as well that the host chip driver is simply
programming the channel for too aggressive values.

Hmm thinking again about it... It occurrs to me
that actually there should be a mechanism which tells the
host chip drivers whatever there are only just one or
two drivers connected. I will have to look in to it.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/