Raj,
On Thursday 16 August 2007 08:16, Raj Kumar Yadav wrote:
> On Tuesday 14 August 2007 12:32, ian@brightstareng.com wrote:
> > Tuesday 14 August 2007 11:45, Raj Kumar Yadav wrote:
> > > 2) It is found that
> > > the block on which NAND verify failed, is
> > > actually bad, as I am unable to erase/write on that block
> > > using nand-utils or the custom bootloader commands.
> > >
> > > NAND Controller shows status as success after erase/write.
> > >
> > > But after the erase, all bytes on the 1st, 3rd, 5th, ...
> > > page are 0xFF. and all bytes on the 2nd, 4th, 6th,... page
> > > are 0x00.
> > >
> > > Similarily, writing data pattern on any of the pages in
> > > that block have no effect on the page data.
So this looks like a problem with the NAND, the nand driver, or
MTD. Have you found anyone using the your NAND controller
successfully? I've not seen this kind of failure with raw
NAND.
> > >
> > > This also means that, I cannot mark the block bad, as the
> > > first page is all 0xff and nand write on the page has no
> > > effect on page data.
Can you use a different device for testing, or replace the NAND
chip?
> > >
> > > So, it is ending up in a situation, where the block will
> > > never be marked bad, and the write will always fail (due
> > > to MTD NAND verify) on the block pages.
> >
> > Perhaps you could try posting this question to the
> > linux-mtd. The ARM Linux list is also a good place to ask
> > for platform specific (NAND controller) help.
>
> I have asked about it in the linux-mtd mailing list, David
> Woodhouse suggested to use the 'bad block table' policy
> provided in MTD layer to keep the track of such
> blocks. Addition to the 'bbt' can be made on every nand verify
> failure (even after the applied ECC correction).
This sounds like a suggestion to use an alternative (table based)
bad-block implementation -- if this is just to cope with a single
broken NAND chip I think you're better of getting a new chip.
If the problem is caused by a s/w or h/w controller issue,
changing the bad-block marking scheme won't fix the problem,
because the problem isn't really a bad-block.
-imcd