[PATCH] mtd: apply tPROG delay for ONFI nand's page program

Huang Shijie b32955 at freescale.com
Tue Jan 15 03:53:33 EST 2013


于 2013年01月14日 20:28, Matthieu CASTET 写道:
> Huang Shijie a écrit :
>> With some latest Micron's onfi nand(such as MT29F64G08CBABAWP),
>> I find that if we do not apply the tPROG delay as the datasheet tells us,
>> the page program may fails. You will read out the all 0xff from this page
>> in this case.
>>
>> This patch adds the tPROG delay for page program when it is an onfi nand.
>>
>> Signed-off-by: Huang Shijie<b32955 at freescale.com>
>> ---
>>   drivers/mtd/nand/nand_base.c |    4 ++++
>>   1 files changed, 4 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
>> index 8323ac9..b628dd5 100644
>> --- a/drivers/mtd/nand/nand_base.c
>> +++ b/drivers/mtd/nand/nand_base.c
>> @@ -841,6 +841,10 @@ static int nand_wait(struct mtd_info *mtd, struct nand_chip *chip)
>>   	 */
>>   	ndelay(100);
>>
>> +	/* Apply the tPROG delay for ONFI nand program. */
>> +	if (chip->onfi_version&&  state == FL_WRITING)
>> +		udelay(le16_to_cpu(chip->onfi_params.t_prog));
>> +
>>   	if ((state == FL_ERASING)&&  (chip->options&  NAND_IS_AND))
>>   		chip->cmdfunc(mtd, NAND_CMD_STATUS_MULTI, -1, -1);
>>   	else
> It looks wrong : why should be wait tPROG before using status command to monitor
> program end ?
>
> tPROG is the Page program time (Measured from the falling edge of SR[6] to the
> rising edge of SR[6]), but because we monitor SR[6] with status command, we
> already wait for that time.
>
thanks. you are right. Please ignore this patch.
> Are you sure that it is not a bug in your nand driver with status command ?
>
>
I will try to find the bug in the driver.

thanks
Huang Shijie
> Matthieu
>





More information about the linux-mtd mailing list