Rogier has written below what might be causing this and I would like to try
fixing it...gulp! Can anyone spare a minute to point out the function I need
to change to test the suggested "fix"? I've looked around a bit and the
closest I got was to finding an "outsl" function but can't find where the
actual data is written to the device...
On Wed, 8 Jan 2003 11:55 pm, Rogier Wolff wrote:
> On Wed, Jan 08, 2003 at 02:15:06PM +0000, Alan Cox wrote:
> > On Wed, 2003-01-08 at 11:35, Paul wrote:
> > > What I have found is that just after the start of a sector, usually 43
> > > to 45 bytes, 6 bytes are skipped and the sequence starts again. This
> > > continues until the next sector starts, where the sequence corrects.
> > > This appears to happen every 65536 bytes or some multiple of 65536. It
> > > may skip three blocks of 65536 and then corrupt on the next block of
> > > 65536 bytes.
> >
> > Ok that I'm afraid bears no resemblance to anything the software side
> > does (we write in chunks but we do single PIO block transfers of each
> > sector).
>
> After examining the resulting image, Paul has a "clock" line to his
> flash device that is a bit noisy. This occasionally causes one
> 16-bit entity to be clocked into the device twice.
>
> To detect this going wrong, we could (but only as a configurable
> option), write 255 16-bit words to the device (remember this is PIO!),
> check that DRQ is still active and only then write the last word.
> (at which point DRQ should go inactive).
>
> Roger.
-
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/