Bug in MTD NAND ONFI chipsize detection

Andrew Morton akpm at linux-foundation.org
Wed May 11 21:33:22 EDT 2011


On Wed, 11 May 2011 11:25:22 -0500 Nitin Garg <nitingarg98 at gmail.com> wrote:

> Hi All,
> 
> The nand_flash_detect_onfi function in mtd/nand detects the NAND flash
> device size using the ONFI parameters:
> 	chip->chipsize = (uint64_t)le32_to_cpu(p->blocks_per_lun) * mtd->erasesize;
> 
> The lun_count is not taken into consideration due to which we detect
> wrong size for Micron MT29F8G08ADADAH4 as it has 2 logical units.
> 
> We should change the chipsize calculation to:
> 	chip->chipsize = (uint64_t)le32_to_cpu(p->blocks_per_lun) *
> (uint64_t)le32_to_cpu(p->lun_count) * mtd->erasesize;
> 
> Pls suggest.
> 

Please send a tested, changelogged patch to fix it.  Be sure to cc the
relevant maintainer and mailing list.

Thanks.



More information about the linux-mtd mailing list