* 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