mtd: spi-nor: sst: Unlock addition for sst26vf016

Message ID 20230331095549.16393-1-nicolas.ferre@microchip.com
State New
Headers
Series mtd: spi-nor: sst: Unlock addition for sst26vf016 |

Commit Message

Nicolas Ferre March 31, 2023, 9:55 a.m. UTC
  From: Guillaume Socquet <guillaume.socquet@microchip.com>

Modify sst26vf016 flash_info struct so when such device is detected by
the driver it may be unlocked for write operation as sst26vf064.

Signed-off-by: Guillaume Socquet <guillaume.socquet@microchip.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
---
 drivers/mtd/spi-nor/sst.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
  

Comments

Tudor Ambarus March 31, 2023, 10:25 a.m. UTC | #1
Hi, Nicolas,

On 3/31/23 10:55, nicolas.ferre@microchip.com wrote:
> From: Guillaume Socquet <guillaume.socquet@microchip.com>
> 
> Modify sst26vf016 flash_info struct so when such device is detected by
> the driver it may be unlocked for write operation as sst26vf064.
> 
> Signed-off-by: Guillaume Socquet <guillaume.socquet@microchip.com>
> Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
> ---
>  drivers/mtd/spi-nor/sst.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/spi-nor/sst.c b/drivers/mtd/spi-nor/sst.c
> index 63bcc97bf978..99c8a19493f5 100644
> --- a/drivers/mtd/spi-nor/sst.c
> +++ b/drivers/mtd/spi-nor/sst.c
> @@ -110,7 +110,9 @@ static const struct flash_info sst_nor_parts[] = {
>  		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
>  			      SPI_NOR_QUAD_READ) },
>  	{ "sst26vf016b", INFO(0xbf2641, 0, 64 * 1024, 32)
> -		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ) },
> +		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE)
> +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ)

If I remember correctly this flash has SFDP support. If so, we may be
able to get rid of the "NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ)". You
can check whether the flash defines the SFDP tables or not by dumping
the sfdp sysfs entry. Check the link from below on how to do that.

Also the sector size and nsectors should be superfluous if the SFDP
tables are present.

> +		.fixups = &sst26vf_nor_fixups },
So I'd try:

{ "sst26vf016b", INFO(0xbf2641, 0, 0, 0)
		PARSE_SFDP
		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE)
		.fixups = &sst26vf_nor_fixups },

We ask people that update or add new flash entries to do an erase,
verify erase, write, read back and compare test. Also to dump the sysfs
entries. Here's how to do that:

https://lore.kernel.org/lkml/97a3b023-b9bc-c34d-45a4-ddd56f47bd76@microchip.com/T/

Cheers,
ta
  

Patch

diff --git a/drivers/mtd/spi-nor/sst.c b/drivers/mtd/spi-nor/sst.c
index 63bcc97bf978..99c8a19493f5 100644
--- a/drivers/mtd/spi-nor/sst.c
+++ b/drivers/mtd/spi-nor/sst.c
@@ -110,7 +110,9 @@  static const struct flash_info sst_nor_parts[] = {
 		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
 			      SPI_NOR_QUAD_READ) },
 	{ "sst26vf016b", INFO(0xbf2641, 0, 64 * 1024, 32)
-		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ) },
+		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE)
+		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ)
+		.fixups = &sst26vf_nor_fixups },
 	{ "sst26vf064b", INFO(0xbf2643, 0, 64 * 1024, 128)
 		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE)
 		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)