diff options
author | Pratyush Yadav <p.yadav@ti.com> | 2020-12-01 11:27:09 +0100 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2020-12-13 21:57:21 +0100 |
commit | f669e74be820386244290d5824938969d397b8fb (patch) | |
tree | 791a212ff9c265e305e1a4bb93ba3ea14ea1fc9e /drivers/mtd/ubi/build.c | |
parent | jffs2: remove trailing semicolon in macro definition (diff) | |
download | linux-f669e74be820386244290d5824938969d397b8fb.tar.xz linux-f669e74be820386244290d5824938969d397b8fb.zip |
ubi: Do not zero out EC and VID on ECC-ed NOR flashes
For NOR flashes EC and VID are zeroed out before an erase is issued to
make sure UBI does not mistakenly treat the PEB as used and associate it
with an LEB.
But on some flashes, like the Cypress Semper S28 SPI NOR flash family,
multi-pass page programming is not allowed on the default ECC scheme.
This means zeroing out these magic numbers will result in the flash
throwing a page programming error.
Do not zero out EC and VID for such flashes. A writesize > 1 is an
indication of an ECC-ed flash.
Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
Reviewed-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'drivers/mtd/ubi/build.c')
-rw-r--r-- | drivers/mtd/ubi/build.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c index 46a6dd75e533..04e3e48aab45 100644 --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c @@ -628,10 +628,8 @@ static int io_init(struct ubi_device *ubi, int max_beb_per1024) ubi->bad_peb_limit = get_bad_peb_limit(ubi, max_beb_per1024); } - if (ubi->mtd->type == MTD_NORFLASH) { - ubi_assert(ubi->mtd->writesize == 1); + if (ubi->mtd->type == MTD_NORFLASH) ubi->nor_flash = 1; - } ubi->min_io_size = ubi->mtd->writesize; ubi->hdrs_min_io_size = ubi->mtd->writesize >> ubi->mtd->subpage_sft; |