[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