[PATCH] sf: Querying write-protect status before operating the flash

chaochao2021666 chaochao2021666 at 163.com
Tue Nov 9 02:52:57 CET 2021




HI jagan and ta



I might have a different view, the caller can not get the correct response even though we can not
operate the device sucessfully.


I think it is necessary to return a valid value.

if return 0, the device cannot actually be operated but the correct results are not possible



BRs
Chao


At 2021-11-06 02:08:04, "Jagan Teki" <jagan at amarulasolutions.com> wrote:
>On Fri, Nov 5, 2021 at 10:47 PM <Tudor.Ambarus at microchip.com> wrote:
>>
>> 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.
>
>Agreed this point, Chao are you fine to do this change while applying it?
>
>Jagan.


More information about the U-Boot mailing list