Re: [PATCH 0/3] mtd: Make sure UBIFS does not do multi-pass page programming on flashes that don't support it
From: Pratyush Yadav
Date: Tue Oct 27 2020 - 07:18:28 EST
On 12/10/20 11:34PM, Pratyush Yadav wrote:
> Hi,
>
> The Cypress Semper S28 flash family uses 2-bit ECC by default. Under
> this ECC scheme, multi-pass page programs result in a program error.
> This means that unlike many other SPI NOR flashes, bit-walking cannot be
> done. In other words, once a page is programmed, its bits cannot then be
> flipped to 0 without an erase in between.
>
> This causes problems with UBIFS because it uses bit-walking to clear EC
> and VID magic numbers from a PEB before issuing an erase to preserve the
> file system correctness in case of power cuts.
>
> This series fixes that problem by introducing a flag
> MTD_NO_MULTI_PASS_WRITE that tells the file system layer that it can't
> do multi-pass writes. It also sets the writesize to the page size for
> such flashes to make sure file systems know that they should write the
> entire page in one go.
>
> It is based on the xSPI/8D series that adds support for Cypress S28
> flash [0]. The patches themselves are independent of that series in the
> sense that they don't rely on 8D support. But since S28 flash is not
> supported without that series, these patches don't make much sense
> without it.
>
> Tested on Cypress S28HS512T and MT35XU512ABA on J7200 and J721E
> respectively.
>
> [0] https://lore.kernel.org/linux-mtd/20201005153138.6437-1-p.yadav@xxxxxx/
Ping. Any comments on the series?
> Pratyush Yadav (3):
> mtd: abi: Introduce MTD_NO_MULTI_PASS_WRITE
> UBI: Do not zero out EC and VID when multi-pass writes are not
> supported
> mtd: spi-nor: core: Introduce SPI_NOR_NO_MULTI_PASS_PP
>
> drivers/mtd/spi-nor/core.c | 5 +++++
> drivers/mtd/spi-nor/core.h | 6 ++++++
> drivers/mtd/spi-nor/spansion.c | 2 +-
> drivers/mtd/ubi/io.c | 2 +-
> include/uapi/mtd/mtd-abi.h | 1 +
> 5 files changed, 14 insertions(+), 2 deletions(-)
>
--
Regards,
Pratyush Yadav
Texas Instruments India