Re: [Yaffs] Yaffs2 erasure issue on MT29 NAND part

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Andrew McKay
Date:  
To: Charles Manning, yaffs
Subject: Re: [Yaffs] Yaffs2 erasure issue on MT29 NAND part
>
> I suppose I could change to using a BBT that is written to the NAND
> device,
> hopefully then the bad blocks would be kept track of. Though I've never
> had an
> issue with marking blocks bad by writing the first two bytes of the first
> two
> pages to 0x00 and have Linux build a BBT on the fly during boot-up.
>

-------------------------------------------------------------------------------

I moved to using a bad block table stored in NAND, and now I'm definitely
keeping
track of bad blocks successfully.

I did have to make a fix to the kernel as well. They allocate an erase
block in
nand_update_bbt using a kmalloc. The block is larger than 128K so it fails

(265K to be exact). I changed to use a vmalloc like they did in
nand_scan_bbt,
and this seemed to resolve all the issues. I'm not sure why they used
vmalloc in
one place but not in the other.

I submitted a patch to the MTD list fix this, but it looks like it's going
to be
rejected because they're wanting to move away from vmalloc completely to
make MTD
DMA safe.

I've beaten up MTD at the byte level, and YAFFS a bit now, and I think
things are
working better, though I have an issue with memory usage now. I'll start a
new thread
for that topic.

Andrew
Iders Inc.