[PATCH] sf: Querying write-protect status before operating the flash
Tudor.Ambarus at microchip.com
Tudor.Ambarus at microchip.com
Fri Nov 5 18:17:34 CET 2021
Hi,
On 6/22/21 8:21 AM, chao zeng wrote:
> From: Chao Zeng <chao.zeng at siemens.com>
>
> When operating the write-protection flash,spi_flash_std_write() and
> spi_flash_std_erase() would return wrong result.The flash is protected,
> but write or erase the flash would show "OK".
>
> Check the flash write protection state if the write-protection has enbale
> before operating the flash.
>
> Signed-off-by: Chao Zeng <chao.zeng at siemens.com>
> ---
>
> drivers/mtd/spi/sf_probe.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c
> index 3befbe91ca..f06e6b88bd 100644
> --- a/drivers/mtd/spi/sf_probe.c
> +++ b/drivers/mtd/spi/sf_probe.c
> @@ -109,6 +109,11 @@ static int spi_flash_std_write(struct udevice *dev, u32 offset, size_t len,
> struct mtd_info *mtd = &flash->mtd;
> size_t retlen;
>
> + if (flash->flash_is_locked && flash->flash_is_locked(flash, offset, len)) {
> + debug("SF: Flash is locked\n");
> + return -ENOPROTOOPT;
Keep a debug message, but return 0 please. Writes or erases on protected areas
are ignored by the flash, we should reflect that in the code.
Cheers,
ta
More information about the U-Boot
mailing list