[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