[PATCH] hw/block: m25p80: Add support for w25q01jvq

Patrick Williams posted 1 patch 2 years, 2 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220304180920.1780992-1-patrick@stwcx.xyz
Maintainers: Alistair Francis <alistair@alistair23.me>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>
hw/block/m25p80.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] hw/block: m25p80: Add support for w25q01jvq
Posted by Patrick Williams 2 years, 2 months ago
The w25q01jvq is a 128MB part.  Support is being added to the kernel[1]
and the two have been tested together.

1. https://lore.kernel.org/lkml/20220222092222.23108-1-potin.lai@quantatw.com/

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Cc: Potin Lai <potin.lai@quantatw.com>
---
 hw/block/m25p80.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index c6bf3c6bfa..7d3d8b12e0 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -340,6 +340,7 @@ static const FlashPartInfo known_devices[] = {
     { INFO("w25q80bl",    0xef4014,      0,  64 << 10,  16, ER_4K) },
     { INFO("w25q256",     0xef4019,      0,  64 << 10, 512, ER_4K) },
     { INFO("w25q512jv",   0xef4020,      0,  64 << 10, 1024, ER_4K) },
+    { INFO("w25q01jvq",   0xef4021,      0,  64 << 10, 2048, ER_4K) },
 };
 
 typedef enum {
-- 
2.34.1
Re: [PATCH] hw/block: m25p80: Add support for w25q01jvq
Posted by Philippe Mathieu-Daudé 2 years, 2 months ago
On 4/3/22 19:09, Patrick Williams wrote:
> The w25q01jvq is a 128MB part.  Support is being added to the kernel[1]
> and the two have been tested together.
> 
> 1. https://lore.kernel.org/lkml/20220222092222.23108-1-potin.lai@quantatw.com/
> 
> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
> Cc: Potin Lai <potin.lai@quantatw.com>
> ---
>   hw/block/m25p80.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
> index c6bf3c6bfa..7d3d8b12e0 100644
> --- a/hw/block/m25p80.c
> +++ b/hw/block/m25p80.c
> @@ -340,6 +340,7 @@ static const FlashPartInfo known_devices[] = {
>       { INFO("w25q80bl",    0xef4014,      0,  64 << 10,  16, ER_4K) },
>       { INFO("w25q256",     0xef4019,      0,  64 << 10, 512, ER_4K) },
>       { INFO("w25q512jv",   0xef4020,      0,  64 << 10, 1024, ER_4K) },
> +    { INFO("w25q01jvq",   0xef4021,      0,  64 << 10, 2048, ER_4K) },
>   };
>   
>   typedef enum {

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Re: [PATCH] hw/block: m25p80: Add support for w25q01jvq
Posted by Michael Walle 2 years, 2 months ago
Am 2022-03-04 20:30, schrieb Philippe Mathieu-Daudé:
> On 4/3/22 19:09, Patrick Williams wrote:
>> The w25q01jvq is a 128MB part.  Support is being added to the 
>> kernel[1]
>> and the two have been tested together.
>> 
>> 1. 
>> https://lore.kernel.org/lkml/20220222092222.23108-1-potin.lai@quantatw.com/
>> 
>> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
>> Cc: Potin Lai <potin.lai@quantatw.com>
>> ---
>>   hw/block/m25p80.c | 1 +
>>   1 file changed, 1 insertion(+)
>> 
>> diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
>> index c6bf3c6bfa..7d3d8b12e0 100644
>> --- a/hw/block/m25p80.c
>> +++ b/hw/block/m25p80.c
>> @@ -340,6 +340,7 @@ static const FlashPartInfo known_devices[] = {
>>       { INFO("w25q80bl",    0xef4014,      0,  64 << 10,  16, ER_4K) 
>> },
>>       { INFO("w25q256",     0xef4019,      0,  64 << 10, 512, ER_4K) 
>> },
>>       { INFO("w25q512jv",   0xef4020,      0,  64 << 10, 1024, ER_4K) 
>> },
>> +    { INFO("w25q01jvq",   0xef4021,      0,  64 << 10, 2048, ER_4K) 
>> },
>>   };
>>     typedef enum {
> 
> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

FWIW, the linux spi nor subsystem will rely more and more on the SFDP
for newer flashes. I had a quick look at qemu's source and command
RDSFDP (0x5a) isn't emulated. Might be worth implementing ;)

-michael

Re: [PATCH] hw/block: m25p80: Add support for w25q01jvq
Posted by Cédric Le Goater 2 years, 2 months ago
On 3/4/22 20:47, Michael Walle wrote:
> Am 2022-03-04 20:30, schrieb Philippe Mathieu-Daudé:
>> On 4/3/22 19:09, Patrick Williams wrote:
>>> The w25q01jvq is a 128MB part.  Support is being added to the kernel[1]
>>> and the two have been tested together.
>>>
>>> 1. https://lore.kernel.org/lkml/20220222092222.23108-1-potin.lai@quantatw.com/
>>>
>>> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
>>> Cc: Potin Lai <potin.lai@quantatw.com>
>>> ---
>>>   hw/block/m25p80.c | 1 +
>>>   1 file changed, 1 insertion(+)
>>>
>>> diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
>>> index c6bf3c6bfa..7d3d8b12e0 100644
>>> --- a/hw/block/m25p80.c
>>> +++ b/hw/block/m25p80.c
>>> @@ -340,6 +340,7 @@ static const FlashPartInfo known_devices[] = {
>>>       { INFO("w25q80bl",    0xef4014,      0,  64 << 10,  16, ER_4K) },
>>>       { INFO("w25q256",     0xef4019,      0,  64 << 10, 512, ER_4K) },
>>>       { INFO("w25q512jv",   0xef4020,      0,  64 << 10, 1024, ER_4K) },
>>> +    { INFO("w25q01jvq",   0xef4021,      0,  64 << 10, 2048, ER_4K) },
>>>   };
>>>     typedef enum {
>>
>> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> 
> FWIW, the linux spi nor subsystem will rely more and more on the SFDP
> for newer flashes. I had a quick look at qemu's source and command
> RDSFDP (0x5a) isn't emulated. Might be worth implementing ;)

Indeed. I really pulled my hair out when mx25l25635_post_bfpt_fixups was
introduced for the MX25L25635F to activate 4B opcodes.

I have sent a patchset adding SFDP support :

   http://patchwork.ozlabs.org/project/qemu-devel/list/?series=199024

but Francisco had comments I didn't have time to address.

Anyhow, the series is still in use in the aspeed branch :

   https://github.com/legoater/qemu/commits/aspeed-7.0

I can respin.

Thanks,

C.

Re: [PATCH] hw/block: m25p80: Add support for w25q01jvq
Posted by Francisco Iglesias 2 years, 2 months ago
On [2022 Mar 04] Fri 12:09:20, Patrick Williams wrote:
> The w25q01jvq is a 128MB part.  Support is being added to the kernel[1]
> and the two have been tested together.
> 
> 1. https://lore.kernel.org/lkml/20220222092222.23108-1-potin.lai@quantatw.com/
> 
> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
> Cc: Potin Lai <potin.lai@quantatw.com>
> ---
>  hw/block/m25p80.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
> index c6bf3c6bfa..7d3d8b12e0 100644
> --- a/hw/block/m25p80.c
> +++ b/hw/block/m25p80.c
> @@ -340,6 +340,7 @@ static const FlashPartInfo known_devices[] = {
>      { INFO("w25q80bl",    0xef4014,      0,  64 << 10,  16, ER_4K) },
>      { INFO("w25q256",     0xef4019,      0,  64 << 10, 512, ER_4K) },
>      { INFO("w25q512jv",   0xef4020,      0,  64 << 10, 1024, ER_4K) },
> +    { INFO("w25q01jvq",   0xef4021,      0,  64 << 10, 2048, ER_4K) },

Reviewed-by: Francisco Iglesias <frasse.iglesias@gmail.com>

>  };
>  
>  typedef enum {
> -- 
> 2.34.1
> 
>
Re: [PATCH] hw/block: m25p80: Add support for w25q01jvq
Posted by Cédric Le Goater 2 years, 2 months ago
On 3/4/22 19:09, Patrick Williams wrote:
> The w25q01jvq is a 128MB part.  Support is being added to the kernel[1]
> and the two have been tested together.
> 
> 1. https://lore.kernel.org/lkml/20220222092222.23108-1-potin.lai@quantatw.com/
> 
> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
> Cc: Potin Lai <potin.lai@quantatw.com>
> ---
>   hw/block/m25p80.c | 1 +
>   1 file changed, 1 insertion(+)

If that's ok with the maintainers, I am going to take this patch through
the aspeed machine queue since the new 'bletchley-bmc' machine depends
on it :

   http://patchwork.ozlabs.org/project/qemu-devel/patch/20220305000656.1944589-2-patrick@stwcx.xyz/

I should send the PR today.

Thanks,

C.

> diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
> index c6bf3c6bfa..7d3d8b12e0 100644
> --- a/hw/block/m25p80.c
> +++ b/hw/block/m25p80.c
> @@ -340,6 +340,7 @@ static const FlashPartInfo known_devices[] = {
>       { INFO("w25q80bl",    0xef4014,      0,  64 << 10,  16, ER_4K) },
>       { INFO("w25q256",     0xef4019,      0,  64 << 10, 512, ER_4K) },
>       { INFO("w25q512jv",   0xef4020,      0,  64 << 10, 1024, ER_4K) },
> +    { INFO("w25q01jvq",   0xef4021,      0,  64 << 10, 2048, ER_4K) },
>   };
>   
>   typedef enum {