public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
* ECC Reset problems
@ 2002-03-13  7:50 Justin Ipsen
  2002-03-13  9:17 ` David Woodhouse
  0 siblings, 1 reply; 3+ messages in thread
From: Justin Ipsen @ 2002-03-13  7:50 UTC (permalink / raw)
  To: linux-mtd

Hi,

I'm running linux 2.4.1-pre11 on a powerPC platform.
I have been using a 32M doc2000 with no problems.
I've just started to use a 48M doc2000 but the On-Chip
ECC engine seems to work just once after reset and
not again.   It looks like the "ECC Config" Resets function
has stopped working?

Any ideas?

Thanks.

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

* Re: ECC Reset problems
  2002-03-13  7:50 ECC Reset problems Justin Ipsen
@ 2002-03-13  9:17 ` David Woodhouse
  2002-03-13 23:50   ` Justin Ipsen
  0 siblings, 1 reply; 3+ messages in thread
From: David Woodhouse @ 2002-03-13  9:17 UTC (permalink / raw)
  To: justin.ipsen; +Cc: linux-mtd

justin.ipsen@ctam.com.au said:
>  I'm running linux 2.4.1-pre11 on a powerPC platform. I have been
> using a 32M doc2000 with no problems. I've just started to use a 48M
> doc2000 but the On-Chip ECC engine seems to work just once after reset
> and not again.   It looks like the "ECC Config" Resets function has
> stopped working?

Hmmm. I can't see any documented timing constraints on the ECC Reset. But 
try adding a delay between...

		/* Prime the ECC engine */
		WriteDOC(DOC_ECC_RESET, docptr, ECCConf);
		WriteDOC(DOC_ECC_EN, docptr, ECCConf);

Might also be worth looking in include/linux/mtd/doc2000.h and changing the 
definition of DOC_ECC_RESET to DOC_ECC_RESV instead of zero.


--
dwmw2

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

* Re: ECC Reset problems
  2002-03-13  9:17 ` David Woodhouse
@ 2002-03-13 23:50   ` Justin Ipsen
  0 siblings, 0 replies; 3+ messages in thread
From: Justin Ipsen @ 2002-03-13 23:50 UTC (permalink / raw)
  To: David Woodhouse; +Cc: linux-mtd

Thanks David.

Its seems to be a timing issue, although not with ECC resets.
We had to make the following changes to affect all delays used in doc2000.c
I had forgotten that I multiplied "cycles" by 6 to make the 32M DOC work.
I increased this to 9 and the 48M DOC now works fine.

Would this just be a specific board architecture thing?

Thanks again.

Justin.

    /* Perform the required delay cycles by reading from the appropriate
register */
    static void DoC_Delay(struct DiskOnChip *doc, unsigned short cycles)
    {
        volatile char dummy;
        int i;

        for (i = 0; i < cycles*12; i++) {
            if (DoC_is_Millennium(doc))
                dummy = ReadDOC(doc->virtadr, NOP);
            else
                dummy = ReadDOC(doc->virtadr, DOCStatus);
        }
    }



David Woodhouse wrote:

> justin.ipsen@ctam.com.au said:
> >  I'm running linux 2.4.1-pre11 on a powerPC platform. I have been
> > using a 32M doc2000 with no problems. I've just started to use a 48M
> > doc2000 but the On-Chip ECC engine seems to work just once after reset
> > and not again.   It looks like the "ECC Config" Resets function has
> > stopped working?
>
> Hmmm. I can't see any documented timing constraints on the ECC Reset. But
> try adding a delay between...
>
>                 /* Prime the ECC engine */
>                 WriteDOC(DOC_ECC_RESET, docptr, ECCConf);
>                 WriteDOC(DOC_ECC_EN, docptr, ECCConf);
>
> Might also be worth looking in include/linux/mtd/doc2000.h and changing the
> definition of DOC_ECC_RESET to DOC_ECC_RESV instead of zero.
>
> --
> dwmw2

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

end of thread, other threads:[~2002-03-13 23:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-03-13  7:50 ECC Reset problems Justin Ipsen
2002-03-13  9:17 ` David Woodhouse
2002-03-13 23:50   ` Justin Ipsen

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