All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mtd: spi-nor: use 4 bit locking for MX25L12805D
@ 2021-04-16 16:28 David Bauer
  2021-04-20  8:44 ` Michael Walle
  0 siblings, 1 reply; 3+ messages in thread
From: David Bauer @ 2021-04-16 16:28 UTC (permalink / raw)
  To: tudor.ambarus, miquel.raynal, richard, vigneshr, linux-mtd

Macronix MX25L12805D supports locking with 4 block
protection bits in its status register. Add the corresponding
flag in order to clear these bits when unloking the flash.

Otherwise, the flash might not be writable depending on the state
left by the bootloader.

Tested-on: Ubiquiti UniFi AC Lite (ath79)

Fixes commit 62593cf40b23 ("mtd: spi-nor: refactor block protection functions")

Signed-off-by: David Bauer <mail@david-bauer.net>
---
 drivers/mtd/spi-nor/macronix.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/mtd/spi-nor/macronix.c b/drivers/mtd/spi-nor/macronix.c
index 2d39dd32a64e..ed8b56a0102f 100644
--- a/drivers/mtd/spi-nor/macronix.c
+++ b/drivers/mtd/spi-nor/macronix.c
@@ -50,7 +50,8 @@ static const struct flash_info macronix_parts[] = {
 	{ "mx25u4035",   INFO(0xc22533, 0, 64 * 1024,   8, SECT_4K) },
 	{ "mx25u8035",   INFO(0xc22534, 0, 64 * 1024,  16, SECT_4K) },
 	{ "mx25u6435f",  INFO(0xc22537, 0, 64 * 1024, 128, SECT_4K) },
-	{ "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, SECT_4K) },
+	{ "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, SECT_4K |
+			      SPI_NOR_HAS_LOCK | SPI_NOR_4BIT_BP) },
 	{ "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) },
 	{ "mx25r1635f",  INFO(0xc22815, 0, 64 * 1024,  32,
 			      SECT_4K | SPI_NOR_DUAL_READ |
-- 
2.31.1


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] mtd: spi-nor: use 4 bit locking for MX25L12805D
  2021-04-16 16:28 [PATCH] mtd: spi-nor: use 4 bit locking for MX25L12805D David Bauer
@ 2021-04-20  8:44 ` Michael Walle
  2021-04-20 11:09   ` David Bauer
  0 siblings, 1 reply; 3+ messages in thread
From: Michael Walle @ 2021-04-20  8:44 UTC (permalink / raw)
  To: David Bauer; +Cc: tudor.ambarus, miquel.raynal, richard, vigneshr, linux-mtd

Hi David,

Am 2021-04-16 18:28, schrieb David Bauer:
> Macronix MX25L12805D supports locking with 4 block
> protection bits in its status register. Add the corresponding
> flag in order to clear these bits when unloking the flash.
> 
> Otherwise, the flash might not be writable depending on the state
> left by the bootloader.
> 
> Tested-on: Ubiquiti UniFi AC Lite (ath79)
> 
> Fixes commit 62593cf40b23 ("mtd: spi-nor: refactor block protection 
> functions")

Strictly speaking, this is not a fix, because there was never
locking support for macronix flashes.

This should also be in the subject, it should rather be "enable locking
support" or something similar.

Btw. these bits are non-volatile, so if your bootloader will set
them again, depending on the flash and your reboot cycles, they might
wear out.

> Signed-off-by: David Bauer <mail@david-bauer.net>

With that:
Reviewed-by: Michael Walle <michael@walle.cc>

-michael

> ---
>  drivers/mtd/spi-nor/macronix.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/spi-nor/macronix.c 
> b/drivers/mtd/spi-nor/macronix.c
> index 2d39dd32a64e..ed8b56a0102f 100644
> --- a/drivers/mtd/spi-nor/macronix.c
> +++ b/drivers/mtd/spi-nor/macronix.c
> @@ -50,7 +50,8 @@ static const struct flash_info macronix_parts[] = {
>  	{ "mx25u4035",   INFO(0xc22533, 0, 64 * 1024,   8, SECT_4K) },
>  	{ "mx25u8035",   INFO(0xc22534, 0, 64 * 1024,  16, SECT_4K) },
>  	{ "mx25u6435f",  INFO(0xc22537, 0, 64 * 1024, 128, SECT_4K) },
> -	{ "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, SECT_4K) },
> +	{ "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, SECT_4K |
> +			      SPI_NOR_HAS_LOCK | SPI_NOR_4BIT_BP) },
>  	{ "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) },
>  	{ "mx25r1635f",  INFO(0xc22815, 0, 64 * 1024,  32,
>  			      SECT_4K | SPI_NOR_DUAL_READ |

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] mtd: spi-nor: use 4 bit locking for MX25L12805D
  2021-04-20  8:44 ` Michael Walle
@ 2021-04-20 11:09   ` David Bauer
  0 siblings, 0 replies; 3+ messages in thread
From: David Bauer @ 2021-04-20 11:09 UTC (permalink / raw)
  To: Michael Walle; +Cc: tudor.ambarus, miquel.raynal, richard, vigneshr, linux-mtd

Hi,

thanks for your review.

On 4/20/21 10:44 AM, Michael Walle wrote:
> Hi David,
> 
> Am 2021-04-16 18:28, schrieb David Bauer:
>> Macronix MX25L12805D supports locking with 4 block
>> protection bits in its status register. Add the corresponding
>> flag in order to clear these bits when unloking the flash.
>>
>> Otherwise, the flash might not be writable depending on the state
>> left by the bootloader.
>>
>> Tested-on: Ubiquiti UniFi AC Lite (ath79)
>>
>> Fixes commit 62593cf40b23 ("mtd: spi-nor: refactor block protection functions")
> 
> Strictly speaking, this is not a fix, because there was never
> locking support for macronix flashes.

You're right. On a second read, the description is a bit off, part of the reason
being the patch was part of another series from me some moths ago. I'll fix that.

> 
> This should also be in the subject, it should rather be "enable locking
> support" or something similar.
> 
> Btw. these bits are non-volatile, so if your bootloader will set
> them again, depending on the flash and your reboot cycles, they might
> wear out.

I didn't knew that, thanks for this information. Sadly this is the quirk of
the bootloader from Ubiquiti. Some versions of their UniFi and all of their
AirMax series behave like that.

Best
David

> 
>> Signed-off-by: David Bauer <mail@david-bauer.net>
> 
> With that:
> Reviewed-by: Michael Walle <michael@walle.cc>
> 
> -michael
> 
>> ---
>>  drivers/mtd/spi-nor/macronix.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/mtd/spi-nor/macronix.c b/drivers/mtd/spi-nor/macronix.c
>> index 2d39dd32a64e..ed8b56a0102f 100644
>> --- a/drivers/mtd/spi-nor/macronix.c
>> +++ b/drivers/mtd/spi-nor/macronix.c
>> @@ -50,7 +50,8 @@ static const struct flash_info macronix_parts[] = {
>>      { "mx25u4035",   INFO(0xc22533, 0, 64 * 1024,   8, SECT_4K) },
>>      { "mx25u8035",   INFO(0xc22534, 0, 64 * 1024,  16, SECT_4K) },
>>      { "mx25u6435f",  INFO(0xc22537, 0, 64 * 1024, 128, SECT_4K) },
>> -    { "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, SECT_4K) },
>> +    { "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, SECT_4K |
>> +                  SPI_NOR_HAS_LOCK | SPI_NOR_4BIT_BP) },
>>      { "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) },
>>      { "mx25r1635f",  INFO(0xc22815, 0, 64 * 1024,  32,
>>                    SECT_4K | SPI_NOR_DUAL_READ |

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-04-20 11:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-16 16:28 [PATCH] mtd: spi-nor: use 4 bit locking for MX25L12805D David Bauer
2021-04-20  8:44 ` Michael Walle
2021-04-20 11:09   ` David Bauer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.