Re: [PATCH v3 3/8] m25p80: Add the mx25l25635e SFPD table

2022-10-10 Thread Cédric Le Goater

Hello Francisco

On 10/7/22 15:59, Francisco Iglesias wrote:

Hi Cedric,

On [2022 Jul 22] Fri 08:35:57, Cédric Le Goater wrote:

The SFDP table is 0x80 bytes long. The mandatory table for basic
features is available at byte 0x30 and an extra Macronix specific
table is available at 0x60.

4B opcodes are not supported.

Signed-off-by: Cédric Le Goater 
---
  hw/block/m25p80_sfdp.h |  3 +++
  hw/block/m25p80.c  |  3 ++-
  hw/block/m25p80_sfdp.c | 26 ++
  3 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/hw/block/m25p80_sfdp.h b/hw/block/m25p80_sfdp.h
index d3a0a778ae84..0c46e669b335 100644
--- a/hw/block/m25p80_sfdp.h
+++ b/hw/block/m25p80_sfdp.h
@@ -17,4 +17,7 @@
  
  extern uint8_t m25p80_sfdp_n25q256a(uint32_t addr);
  
+extern uint8_t m25p80_sfdp_mx25l25635e(uint32_t addr);


We could be without 'extern' in above hdr if we like (also the other patches),


Yes. I dropped all of them in v4.

Thanks,

C.


either way:

Reviewed-by: Francisco Iglesias 


+
+
  #endif
diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index 13e7b28fd2b0..028b026d8ba2 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -232,7 +232,8 @@ static const FlashPartInfo known_devices[] = {
  { INFO("mx25l6405d",  0xc22017,  0,  64 << 10, 128, 0) },
  { INFO("mx25l12805d", 0xc22018,  0,  64 << 10, 256, 0) },
  { INFO("mx25l12855e", 0xc22618,  0,  64 << 10, 256, 0) },
-{ INFO6("mx25l25635e", 0xc22019, 0xc22019,  64 << 10, 512, 0) },
+{ INFO6("mx25l25635e", 0xc22019, 0xc22019,  64 << 10, 512, 0),
+  .sfdp_read = m25p80_sfdp_mx25l25635e },
  { INFO("mx25l25655e", 0xc22619,  0,  64 << 10, 512, 0) },
  { INFO("mx66l51235f", 0xc2201a,  0,  64 << 10, 1024, ER_4K | ER_32K) 
},
  { INFO("mx66u51235f", 0xc2253a,  0,  64 << 10, 1024, ER_4K | ER_32K) 
},
diff --git a/hw/block/m25p80_sfdp.c b/hw/block/m25p80_sfdp.c
index 24ec05de79a1..6499c4c39954 100644
--- a/hw/block/m25p80_sfdp.c
+++ b/hw/block/m25p80_sfdp.c
@@ -56,3 +56,29 @@ static const uint8_t sfdp_n25q256a[] = {
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  };
  define_sfdp_read(n25q256a);
+
+
+/*
+ * Matronix
+ */
+
+/* mx25l25635e. No 4B opcodes */
+static const uint8_t sfdp_mx25l25635e[] = {
+0x53, 0x46, 0x44, 0x50, 0x00, 0x01, 0x01, 0xff,
+0x00, 0x00, 0x01, 0x09, 0x30, 0x00, 0x00, 0xff,
+0xc2, 0x00, 0x01, 0x04, 0x60, 0x00, 0x00, 0xff,
+0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+0xe5, 0x20, 0xf3, 0xff, 0xff, 0xff, 0xff, 0x0f,
+0x44, 0xeb, 0x08, 0x6b, 0x08, 0x3b, 0x04, 0xbb,
+0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff,
+0xff, 0xff, 0x00, 0xff, 0x0c, 0x20, 0x0f, 0x52,
+0x10, 0xd8, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
+0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+0x00, 0x36, 0x00, 0x27, 0xf7, 0x4f, 0xff, 0xff,
+0xd9, 0xc8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+};
+define_sfdp_read(mx25l25635e)
--
2.35.3






Re: [PATCH v3 3/8] m25p80: Add the mx25l25635e SFPD table

2022-10-07 Thread Francisco Iglesias
Hi Cedric,

On [2022 Jul 22] Fri 08:35:57, Cédric Le Goater wrote:
> The SFDP table is 0x80 bytes long. The mandatory table for basic
> features is available at byte 0x30 and an extra Macronix specific
> table is available at 0x60.
> 
> 4B opcodes are not supported.
> 
> Signed-off-by: Cédric Le Goater 
> ---
>  hw/block/m25p80_sfdp.h |  3 +++
>  hw/block/m25p80.c  |  3 ++-
>  hw/block/m25p80_sfdp.c | 26 ++
>  3 files changed, 31 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/block/m25p80_sfdp.h b/hw/block/m25p80_sfdp.h
> index d3a0a778ae84..0c46e669b335 100644
> --- a/hw/block/m25p80_sfdp.h
> +++ b/hw/block/m25p80_sfdp.h
> @@ -17,4 +17,7 @@
>  
>  extern uint8_t m25p80_sfdp_n25q256a(uint32_t addr);
>  
> +extern uint8_t m25p80_sfdp_mx25l25635e(uint32_t addr);

We could be without 'extern' in above hdr if we like (also the other patches),
either way:

Reviewed-by: Francisco Iglesias 

> +
> +
>  #endif
> diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
> index 13e7b28fd2b0..028b026d8ba2 100644
> --- a/hw/block/m25p80.c
> +++ b/hw/block/m25p80.c
> @@ -232,7 +232,8 @@ static const FlashPartInfo known_devices[] = {
>  { INFO("mx25l6405d",  0xc22017,  0,  64 << 10, 128, 0) },
>  { INFO("mx25l12805d", 0xc22018,  0,  64 << 10, 256, 0) },
>  { INFO("mx25l12855e", 0xc22618,  0,  64 << 10, 256, 0) },
> -{ INFO6("mx25l25635e", 0xc22019, 0xc22019,  64 << 10, 512, 0) },
> +{ INFO6("mx25l25635e", 0xc22019, 0xc22019,  64 << 10, 512, 0),
> +  .sfdp_read = m25p80_sfdp_mx25l25635e },
>  { INFO("mx25l25655e", 0xc22619,  0,  64 << 10, 512, 0) },
>  { INFO("mx66l51235f", 0xc2201a,  0,  64 << 10, 1024, ER_4K | ER_32K) 
> },
>  { INFO("mx66u51235f", 0xc2253a,  0,  64 << 10, 1024, ER_4K | ER_32K) 
> },
> diff --git a/hw/block/m25p80_sfdp.c b/hw/block/m25p80_sfdp.c
> index 24ec05de79a1..6499c4c39954 100644
> --- a/hw/block/m25p80_sfdp.c
> +++ b/hw/block/m25p80_sfdp.c
> @@ -56,3 +56,29 @@ static const uint8_t sfdp_n25q256a[] = {
>  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
>  };
>  define_sfdp_read(n25q256a);
> +
> +
> +/*
> + * Matronix
> + */
> +
> +/* mx25l25635e. No 4B opcodes */
> +static const uint8_t sfdp_mx25l25635e[] = {
> +0x53, 0x46, 0x44, 0x50, 0x00, 0x01, 0x01, 0xff,
> +0x00, 0x00, 0x01, 0x09, 0x30, 0x00, 0x00, 0xff,
> +0xc2, 0x00, 0x01, 0x04, 0x60, 0x00, 0x00, 0xff,
> +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
> +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
> +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
> +0xe5, 0x20, 0xf3, 0xff, 0xff, 0xff, 0xff, 0x0f,
> +0x44, 0xeb, 0x08, 0x6b, 0x08, 0x3b, 0x04, 0xbb,
> +0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff,
> +0xff, 0xff, 0x00, 0xff, 0x0c, 0x20, 0x0f, 0x52,
> +0x10, 0xd8, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
> +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
> +0x00, 0x36, 0x00, 0x27, 0xf7, 0x4f, 0xff, 0xff,
> +0xd9, 0xc8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
> +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
> +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
> +};
> +define_sfdp_read(mx25l25635e)
> -- 
> 2.35.3
> 



[PATCH v3 3/8] m25p80: Add the mx25l25635e SFPD table

2022-07-22 Thread Cédric Le Goater
The SFDP table is 0x80 bytes long. The mandatory table for basic
features is available at byte 0x30 and an extra Macronix specific
table is available at 0x60.

4B opcodes are not supported.

Signed-off-by: Cédric Le Goater 
---
 hw/block/m25p80_sfdp.h |  3 +++
 hw/block/m25p80.c  |  3 ++-
 hw/block/m25p80_sfdp.c | 26 ++
 3 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/hw/block/m25p80_sfdp.h b/hw/block/m25p80_sfdp.h
index d3a0a778ae84..0c46e669b335 100644
--- a/hw/block/m25p80_sfdp.h
+++ b/hw/block/m25p80_sfdp.h
@@ -17,4 +17,7 @@
 
 extern uint8_t m25p80_sfdp_n25q256a(uint32_t addr);
 
+extern uint8_t m25p80_sfdp_mx25l25635e(uint32_t addr);
+
+
 #endif
diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index 13e7b28fd2b0..028b026d8ba2 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -232,7 +232,8 @@ static const FlashPartInfo known_devices[] = {
 { INFO("mx25l6405d",  0xc22017,  0,  64 << 10, 128, 0) },
 { INFO("mx25l12805d", 0xc22018,  0,  64 << 10, 256, 0) },
 { INFO("mx25l12855e", 0xc22618,  0,  64 << 10, 256, 0) },
-{ INFO6("mx25l25635e", 0xc22019, 0xc22019,  64 << 10, 512, 0) },
+{ INFO6("mx25l25635e", 0xc22019, 0xc22019,  64 << 10, 512, 0),
+  .sfdp_read = m25p80_sfdp_mx25l25635e },
 { INFO("mx25l25655e", 0xc22619,  0,  64 << 10, 512, 0) },
 { INFO("mx66l51235f", 0xc2201a,  0,  64 << 10, 1024, ER_4K | ER_32K) },
 { INFO("mx66u51235f", 0xc2253a,  0,  64 << 10, 1024, ER_4K | ER_32K) },
diff --git a/hw/block/m25p80_sfdp.c b/hw/block/m25p80_sfdp.c
index 24ec05de79a1..6499c4c39954 100644
--- a/hw/block/m25p80_sfdp.c
+++ b/hw/block/m25p80_sfdp.c
@@ -56,3 +56,29 @@ static const uint8_t sfdp_n25q256a[] = {
 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
 };
 define_sfdp_read(n25q256a);
+
+
+/*
+ * Matronix
+ */
+
+/* mx25l25635e. No 4B opcodes */
+static const uint8_t sfdp_mx25l25635e[] = {
+0x53, 0x46, 0x44, 0x50, 0x00, 0x01, 0x01, 0xff,
+0x00, 0x00, 0x01, 0x09, 0x30, 0x00, 0x00, 0xff,
+0xc2, 0x00, 0x01, 0x04, 0x60, 0x00, 0x00, 0xff,
+0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+0xe5, 0x20, 0xf3, 0xff, 0xff, 0xff, 0xff, 0x0f,
+0x44, 0xeb, 0x08, 0x6b, 0x08, 0x3b, 0x04, 0xbb,
+0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff,
+0xff, 0xff, 0x00, 0xff, 0x0c, 0x20, 0x0f, 0x52,
+0x10, 0xd8, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
+0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+0x00, 0x36, 0x00, 0x27, 0xf7, 0x4f, 0xff, 0xff,
+0xd9, 0xc8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+};
+define_sfdp_read(mx25l25635e)
-- 
2.35.3