[PATCH 3/3] mtd/nand : workaround for Freescale FCM to support large-page Nand chip
Scott Wood
scottwood at freescale.com
Mon Nov 28 16:49:33 EST 2011
On 11/28/2011 03:48 PM, Scott Wood wrote:
> On 11/23/2011 06:41 PM, b35362 at freescale.com wrote:
>> From: Liu Shuo <b35362 at freescale.com>
>>
>> Freescale FCM controller has a 2K size limitation of buffer RAM. In order
>> to support the Nand flash chip whose page size is larger than 2K bytes,
>> we read/write 2k data repeatedly by issuing FIR_OP_RB/FIR_OP_WB and save
>> them to a large buffer.
>>
>> Signed-off-by: Liu Shuo <b35362 at freescale.com>
>> Signed-off-by: Li Yang <leoli at freescale.com>
>> ---
>> drivers/mtd/nand/fsl_elbc_nand.c | 211 +++++++++++++++++++++++++++++++++++---
>> 1 files changed, 194 insertions(+), 17 deletions(-)
>>
>> diff --git a/drivers/mtd/nand/fsl_elbc_nand.c b/drivers/mtd/nand/fsl_elbc_nand.c
>> index d634c5f..c96e714 100644
>> --- a/drivers/mtd/nand/fsl_elbc_nand.c
>> +++ b/drivers/mtd/nand/fsl_elbc_nand.c
>> @@ -55,7 +55,9 @@ struct fsl_elbc_mtd {
>> struct device *dev;
>> int bank; /* Chip select bank number */
>> u8 __iomem *vbase; /* Chip select base virtual address */
>> - int page_size; /* NAND page size (0=512, 1=2048) */
>> + int page_size; /* NAND page size, the mutiple of 2048.
>> + * (0=512, 1=2048, 2=4096, 4=8192....)
>> + */
>
> Again, please remove this. It was sort-of reasonable when it was a
> boolean that selected between slightly different programming models. It
> doesn't make sense as "mtd->writesize == 512 ? 0 : mtd->writesize / 512".
Sorry, I meant "mtd->writesize == 512 ? 0 : mtd->writesize / 2048".
-Scott
More information about the linux-mtd
mailing list