[PATCH 2/3] mtd: rawnand: arasan: Ensure program page operations are successful

Miquel Raynal miquel.raynal at bootlin.com
Mon Sep 11 08:52:47 PDT 2023


Hi Michal,

miquel.raynal at bootlin.com wrote on Mon, 17 Jul 2023 21:42:20 +0200:

> The NAND core complies with the ONFI specification, which itself
> mentions that after any program or erase operation, a status check
> should be performed to see whether the operation was finished *and*
> successful.
> 
> The NAND core offers helpers to finish a page write (sending the
> "PAGE PROG" command, waiting for the NAND chip to be ready again, and
> checking the operation status). But in some cases, advanced controller
> drivers might want to optimize this and craft their own page write
> helper to leverage additional hardware capabilities, thus not always
> using the core facilities.
> 
> Some drivers, like this one, do not use the core helper to finish a page
> write because the final cycles are automatically managed by the
> hardware. In this case, the additional care must be taken to manually
> perform the final status check.
> 
> Let's read the NAND chip status at the end of the page write helper and
> return -EIO upon error.
>
> Cc: Michal Simek <michal.simek at amd.com>
> Cc: stable at vger.kernel.org
> Fixes: 88ffef1b65cf ("mtd: rawnand: arasan: Support the hardware BCH ECC engine")
> Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>
> 
> ---
> 
> Hello Michal,
> 
> I have not tested this, but based on a report on another driver, I
> believe the status check is also missing here and could sometimes
> lead to unnoticed partial writes.
> 
> Please test on your side that everything still works and let me
> know how it goes.

Any news from the testing team about patches 2/3 and 3/3?

Thanks,
Miquèl



More information about the linux-mtd mailing list