diff mbox series

mtd: spi-nor: winbond: add w25q01jv flash chip

Message ID Z2AOeyPwYWaam_lX@monster.localdomain
State New
Headers show
Series mtd: spi-nor: winbond: add w25q01jv flash chip | expand

Commit Message

Wilken Gottwalt Dec. 16, 2024, 11:26 a.m. UTC
Add Winbond W25Q01JV 128 MiB SPI NOR flash chip, verified working on the
Zynq-7000 platform QSPI controller. The flash chip has quite high read
speeds (about 60+ MiB/s), but erasing is very slow. The slow erasing is
by design.

Signed-off-by: Wilken Gottwalt <wilken.gottwalt@posteo.net>
---
 drivers/mtd/spi-nor/winbond.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Pratyush Yadav Dec. 16, 2024, 1:03 p.m. UTC | #1
Hi Wilken,

On Mon, Dec 16 2024, Wilken Gottwalt wrote:

> Add Winbond W25Q01JV 128 MiB SPI NOR flash chip, verified working on the
> Zynq-7000 platform QSPI controller. The flash chip has quite high read
> speeds (about 60+ MiB/s), but erasing is very slow. The slow erasing is
> by design.

Does the flash have support SFDP? If so, you likely don't need specify
the no_sfdp_flags, name, or size. Try the entry only with ID and flags,
and see if the flash continues to work fine for you.

Also see [0] for additional testing requirements.

[0] https://docs.kernel.org/driver-api/mtd/spi-nor.html

>
> Signed-off-by: Wilken Gottwalt <wilken.gottwalt@posteo.net>
> ---
>  drivers/mtd/spi-nor/winbond.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/drivers/mtd/spi-nor/winbond.c b/drivers/mtd/spi-nor/winbond.c
> index 8d0a00d69e12..e2caf299d19a 100644
> --- a/drivers/mtd/spi-nor/winbond.c
> +++ b/drivers/mtd/spi-nor/winbond.c
> @@ -146,6 +146,12 @@ static const struct flash_info winbond_nor_parts[] = {
>  		.name = "w25q512jvq",
>  		.size = SZ_64M,
>  		.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
> +	}, {
> +		.id = SNOR_ID(0xef, 0x40, 0x21),
> +		.name = "w25q01jv",
> +		.size = SZ_128M,
> +		.flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
> +		.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
>  	}, {
>  		.id = SNOR_ID(0xef, 0x50, 0x12),
>  		.name = "w25q20bw",
David Malcolm Dec. 16, 2024, 1:22 p.m. UTC | #2
On Mon, 2024-12-16 at 11:26 +0000, Wilken Gottwalt wrote:
> Add Winbond W25Q01JV 128 MiB SPI NOR flash chip, verified working on
> the
> Zynq-7000 platform QSPI controller. The flash chip has quite high
> read
> speeds (about 60+ MiB/s), but erasing is very slow. The slow erasing
> is
> by design.
> 
> Signed-off-by: Wilken Gottwalt <wilken.gottwalt@posteo.net>
> ---
>  drivers/mtd/spi-nor/winbond.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
Did you mean to send this to gcc-patches@gcc.gnu.org?  This appears to
be a patch for the kernel.

Dave
Wilken Gottwalt Dec. 16, 2024, 4:24 p.m. UTC | #3
On Mon, 16 Dec 2024 08:22:45 -0500
David Malcolm <dmalcolm@redhat.com> wrote:

> On Mon, 2024-12-16 at 11:26 +0000, Wilken Gottwalt wrote:
> > Add Winbond W25Q01JV 128 MiB SPI NOR flash chip, verified working on
> > the
> > Zynq-7000 platform QSPI controller. The flash chip has quite high
> > read
> > speeds (about 60+ MiB/s), but erasing is very slow. The slow erasing
> > is
> > by design.
> > 
> > Signed-off-by: Wilken Gottwalt <wilken.gottwalt@posteo.net>
> > ---
> >  drivers/mtd/spi-nor/winbond.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> Did you mean to send this to gcc-patches@gcc.gnu.org?  This appears to
> be a patch for the kernel.

Ah well, this is a good example why you should not stick to copy&paste while
being ill. My fault.

greetings,
Wilken
diff mbox series

Patch

diff --git a/drivers/mtd/spi-nor/winbond.c b/drivers/mtd/spi-nor/winbond.c
index 8d0a00d69e12..e2caf299d19a 100644
--- a/drivers/mtd/spi-nor/winbond.c
+++ b/drivers/mtd/spi-nor/winbond.c
@@ -146,6 +146,12 @@  static const struct flash_info winbond_nor_parts[] = {
 		.name = "w25q512jvq",
 		.size = SZ_64M,
 		.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+	}, {
+		.id = SNOR_ID(0xef, 0x40, 0x21),
+		.name = "w25q01jv",
+		.size = SZ_128M,
+		.flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
+		.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
 	}, {
 		.id = SNOR_ID(0xef, 0x50, 0x12),
 		.name = "w25q20bw",