Bad blocks in MLC NAND

Nishanth Menon menon.nishanth at gmail.com
Tue Feb 3 20:55:31 EST 2009


On Tue, Feb 3, 2009 at 6:15 PM, Reuben Dowle <Reuben.Dowle at navico.com> wrote:
>> I thought we can override the defaults by using nand_bbt_descr and
> passing it to  nand->badblock_pattern ?
>> I had a similar question based on
>>
> http://lists.infradead.org/pipermail/linux-mtd/2009-January/024138.html
>
> This is not related to the 8x/16x interface differences, rather it is
> the difference between BB handling of SLC and (most) MLC nand devices.
>
> The nand_bbt_descr struction contains information on the location of the
> bad block marker within a given page, not which page inside a block
> contains the bad block marker.
>
> Also, this structure is not used by the nand_block_bad function in
> nand_base.c anyway. It would be possible for a driver to override the
> nand_chip -> block_bad function to re-impliment nand_block_bad, however
> I don't think this should happen at the nand driver level.
>
> Supporting the majority of MLC nand should be something that the nand
> layer should do as standard.

True.. Hmm..
create_bbt: (bd->options & NAND_BBT_SCANALLPAGES) might help as a work
around, since we ignore the bb marker on every page anyways.. but,
that is not too good performance wise..

just random thought if  nand_bbt_descr could encompass the bbt page
offset and num pages to check? We could handle all kind of devices in
such a case..

Regards,
Nishanth Menon



More information about the linux-mtd mailing list