[PATCH] mtd: spi-nor: use 4 bit locking for MX25L12805D

Michael Walle michael at walle.cc
Tue Apr 20 09:44:46 BST 2021


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 at david-bauer.net>

With that:
Reviewed-by: Michael Walle <michael at 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 |



More information about the linux-mtd mailing list