diff mbox series

[v2,2/2] mtd: spi-nor: Add Renesas AT25QL128A serial nor flash

Message ID 20220715105716.2415068-3-biju.das.jz@bp.renesas.com
State Changes Requested
Delegated to: Ambarus Tudor
Headers show
Series Add Renesas AT25QL128A serial nor flash | expand

Commit Message

Biju Das July 15, 2022, 10:57 a.m. UTC
Add support for Renesas AT25QL128A serial nor flash.
Details of flash chip can be found here [1]

[1] https://www.dialog-semiconductor.com/sites/default/files/2022-04/DS-AT25QL128A-129F-022022.pdf

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
$ xxd -p sfdp 
53464450060101ff00060110300000ff1f00010280000001ffffffffffff
ffffffffffffffffffffffffffffffffffffe520f1ffffffff0744eb086b
083b80bbfeffffffffff00ffffff42eb0c200f5210d800ff3362d5008429
01ceeca1073d7a757a75f7a2d55c19f61cffe810c080ffffffffffffffff
ffffffffffffffff501650190000ffff

$ md5sum /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/sfdp
23e3ec56b5b8f986d0488ba4727239dd  /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/sfdp
$ cat /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/jedec_id
1f4218
$ cat /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/partname
at25ql128a
$ cat /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/manufacturer
atmel
v2->v1:
 * Added flash definitions into Atmel table.
RFC->v1:
 * Moved the flash definitions to atmel.c
 * Remove macro related to locking as it is untested.
 * Replaced INFO macro with SNOR_ID3
 
RFC:
 * https://patchwork.kernel.org/project/linux-renesas-soc/patch/20220501185512.51158-1-biju.das.jz@bp.renesas.com/
---
 drivers/mtd/spi-nor/atmel.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Michael Walle July 15, 2022, 11:55 a.m. UTC | #1
Am 2022-07-15 12:57, schrieb Biju Das:
> Add support for Renesas AT25QL128A serial nor flash.
> Details of flash chip can be found here [1]
> 
> [1] 
> https://www.dialog-semiconductor.com/sites/default/files/2022-04/DS-AT25QL128A-129F-022022.pdf
> 
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>

Thanks!

Reviewed-by: Michael Walle <michael@walle.cc>
Pratyush Yadav July 19, 2022, 8:53 a.m. UTC | #2
On 15/07/22 01:55PM, Michael Walle wrote:
> Am 2022-07-15 12:57, schrieb Biju Das:
> > Add support for Renesas AT25QL128A serial nor flash.
> > Details of flash chip can be found here [1]
> > 
> > [1] https://www.dialog-semiconductor.com/sites/default/files/2022-04/DS-AT25QL128A-129F-022022.pdf
> > 
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> 
> Thanks!
> 
> Reviewed-by: Michael Walle <michael@walle.cc>

Our purely SFDP based parser seems to be working well.

Acked-by: Pratyush Yadav <p.yadav@ti.com>
Tudor Ambarus July 21, 2022, 8:28 a.m. UTC | #3
On 7/15/22 13:57, Biju Das wrote:

Hi, Biju!

> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> Add support for Renesas AT25QL128A serial nor flash.
> Details of flash chip can be found here [1]
> 
> [1] https://www.dialog-semiconductor.com/sites/default/files/2022-04/DS-AT25QL128A-129F-022022.pdf
> 
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
> $ xxd -p sfdp
> 53464450060101ff00060110300000ff1f00010280000001ffffffffffff
> ffffffffffffffffffffffffffffffffffffe520f1ffffffff0744eb086b
> 083b80bbfeffffffffff00ffffff42eb0c200f5210d800ff3362d5008429
> 01ceeca1073d7a757a75f7a2d55c19f61cffe810c080ffffffffffffffff
> ffffffffffffffff501650190000ffff
> 
> $ md5sum /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/sfdp
> 23e3ec56b5b8f986d0488ba4727239dd  /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/sfdp
> $ cat /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/jedec_id
> 1f4218
> $ cat /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/partname
> at25ql128a
> $ cat /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/manufacturer
> atmel
> v2->v1:
>  * Added flash definitions into Atmel table.
> RFC->v1:
>  * Moved the flash definitions to atmel.c
>  * Remove macro related to locking as it is untested.
>  * Replaced INFO macro with SNOR_ID3
> 
> RFC:
>  * https://patchwork.kernel.org/project/linux-renesas-soc/patch/20220501185512.51158-1-biju.das.jz@bp.renesas.com/
> ---
>  drivers/mtd/spi-nor/atmel.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/mtd/spi-nor/atmel.c b/drivers/mtd/spi-nor/atmel.c
> index 656dd80a0be7..80c24d138b27 100644
> --- a/drivers/mtd/spi-nor/atmel.c
> +++ b/drivers/mtd/spi-nor/atmel.c
> @@ -186,6 +186,7 @@ static const struct flash_info atmel_nor_parts[] = {
>                 .fixups = &atmel_nor_global_protection_fixups },
>         { "at25sl321",  INFO(0x1f4216, 0, 64 * 1024, 64)
>                 NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
> +       { "at25ql128a", SNOR_ID3(0x1f4218) },

As the flash is defined now, all its characteristics can be discovered by
parsing SFDP. So instead of adding a new flash_info entry in the already
big array that we have, I would like us to focus more on a generic flash
driver which acts as a backup when the flash is not found in the flash_info
array. We can discover the flash particularities by parsing SFDP and we can
probe the flash based on that. Michael has already suggested this, would you
please help review it?

https://lore.kernel.org/lkml/20220513133520.3945820-1-michael@walle.cc/
 
>         { "at26f004",   INFO(0x1f0400, 0, 64 * 1024,  8)
>                 NO_SFDP_FLAGS(SECT_4K) },
>         { "at26df081a", INFO(0x1f4501, 0, 64 * 1024, 16)
> --
> 2.25.1
>
Biju Das July 21, 2022, 8:48 a.m. UTC | #4
Hi Tudor.Ambarus,

> Subject: Re: [PATCH v2 2/2] mtd: spi-nor: Add Renesas AT25QL128A serial nor
> flash
> 
> On 7/15/22 13:57, Biju Das wrote:
> 
> Hi, Biju!
> 
> > EXTERNAL EMAIL: Do not click links or open attachments unless you know
> > the content is safe
> >
> > Add support for Renesas AT25QL128A serial nor flash.
> > Details of flash chip can be found here [1]
> >
> > [1]
> >
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > ---
> > $ xxd -p sfdp
> > 53464450060101ff00060110300000ff1f00010280000001ffffffffffff
> > ffffffffffffffffffffffffffffffffffffe520f1ffffffff0744eb086b
> > 083b80bbfeffffffffff00ffffff42eb0c200f5210d800ff3362d5008429
> > 01ceeca1073d7a757a75f7a2d55c19f61cffe810c080ffffffffffffffff
> > ffffffffffffffff501650190000ffff
> >
> > $ md5sum
> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
> > .0/spi-nor/sfdp 23e3ec56b5b8f986d0488ba4727239dd
> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
> > .0/spi-nor/sfdp $ cat
> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
> > .0/spi-nor/jedec_id
> > 1f4218
> > $ cat
> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
> > .0/spi-nor/partname
> > at25ql128a
> > $ cat
> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
> > .0/spi-nor/manufacturer
> > atmel
> > v2->v1:
> >  * Added flash definitions into Atmel table.
> > RFC->v1:
> >  * Moved the flash definitions to atmel.c
> >  * Remove macro related to locking as it is untested.
> >  * Replaced INFO macro with SNOR_ID3
> >
> > RFC:
> >  *
> > ---
> >  drivers/mtd/spi-nor/atmel.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/mtd/spi-nor/atmel.c b/drivers/mtd/spi-nor/atmel.c
> > index 656dd80a0be7..80c24d138b27 100644
> > --- a/drivers/mtd/spi-nor/atmel.c
> > +++ b/drivers/mtd/spi-nor/atmel.c
> > @@ -186,6 +186,7 @@ static const struct flash_info atmel_nor_parts[] = {
> >                 .fixups = &atmel_nor_global_protection_fixups },
> >         { "at25sl321",  INFO(0x1f4216, 0, 64 * 1024, 64)
> >                 NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
> > SPI_NOR_QUAD_READ) },
> > +       { "at25ql128a", SNOR_ID3(0x1f4218) },
> 
> As the flash is defined now, all its characteristics can be discovered by
> parsing SFDP. So instead of adding a new flash_info entry in the already big
> array that we have, I would like us to focus more on a generic flash driver
> which acts as a backup when the flash is not found in the flash_info array.
> We can discover the flash particularities by parsing SFDP and we can probe
> the flash based on that. Michael has already suggested this, would you
> please help review it?
> 

Sure, will review and test this patch series.

Cheers,
Biju

> 
> >         { "at26f004",   INFO(0x1f0400, 0, 64 * 1024,  8)
> >                 NO_SFDP_FLAGS(SECT_4K) },
> >         { "at26df081a", INFO(0x1f4501, 0, 64 * 1024, 16)
> > --
> > 2.25.1
> >
Biju Das July 21, 2022, 9:23 a.m. UTC | #5
Hi Tudor Ambarus,

I have done quick test with these generic patches. Please find my observation
below.

> Subject: Re: [PATCH v2 2/2] mtd: spi-nor: Add Renesas AT25QL128A serial nor
> flash
> 
> On 7/15/22 13:57, Biju Das wrote:
> 
> Hi, Biju!
> 
> > EXTERNAL EMAIL: Do not click links or open attachments unless you know
> > the content is safe
> >
> > Add support for Renesas AT25QL128A serial nor flash.
> > Details of flash chip can be found here [1]
> >
> > [1]
> >
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > ---
> > $ xxd -p sfdp
> > 53464450060101ff00060110300000ff1f00010280000001ffffffffffff
> > ffffffffffffffffffffffffffffffffffffe520f1ffffffff0744eb086b
> > 083b80bbfeffffffffff00ffffff42eb0c200f5210d800ff3362d5008429
> > 01ceeca1073d7a757a75f7a2d55c19f61cffe810c080ffffffffffffffff
> > ffffffffffffffff501650190000ffff
> >
> > $ md5sum
> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
> > .0/spi-nor/sfdp 23e3ec56b5b8f986d0488ba4727239dd
> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
> > .0/spi-nor/sfdp $ cat
> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
> > .0/spi-nor/jedec_id
> > 1f4218
> > $ cat
> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
> > .0/spi-nor/partname
> > at25ql128a
> > $ cat
> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
> > .0/spi-nor/manufacturer
> > atmel

With generic flash driver patches I get below results
----------------------------------------------------

xxd -p sfdp
53464450060101ff00060110300000ff1f00010280000001ffffffffffff
ffffffffffffffffffffffffffffffffffffe520f1ffffffff0744eb086b
083b80bbfeffffffffff00ffffff42eb0c200f5210d800ff3362d5008429
01ceeca1073d7a757a75f7a2d55c19f61cffe810c080ffffffffffffffff
ffffffffffffffff501650190000ffff

This result is same as above.

cat /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/jedec_id
1f42181f4218

This result is not matching 1f4218->1f42181f4218

root@smarc-rzg2ul:~# cat /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/partname
spi-nor-generic

This result is not matching at25ql128a-> spi-nor-generic

root@smarc-rzg2ul:~# cat /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/manufacturer
cat: /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/manufacturer: No such file or directory

This result is not matching atmel-> cat: /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/manufacturer: No such file or directory

How do we get proper partname/manufacturer details with generic flash driver?

Cheers,
Biju


> > v2->v1:
> >  * Added flash definitions into Atmel table.
> > RFC->v1:
> >  * Moved the flash definitions to atmel.c
> >  * Remove macro related to locking as it is untested.
> >  * Replaced INFO macro with SNOR_ID3
> >
> > RFC:
> >  *
> > ---
> >  drivers/mtd/spi-nor/atmel.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/mtd/spi-nor/atmel.c b/drivers/mtd/spi-nor/atmel.c
> > index 656dd80a0be7..80c24d138b27 100644
> > --- a/drivers/mtd/spi-nor/atmel.c
> > +++ b/drivers/mtd/spi-nor/atmel.c
> > @@ -186,6 +186,7 @@ static const struct flash_info atmel_nor_parts[] = {
> >                 .fixups = &atmel_nor_global_protection_fixups },
> >         { "at25sl321",  INFO(0x1f4216, 0, 64 * 1024, 64)
> >                 NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
> > SPI_NOR_QUAD_READ) },
> > +       { "at25ql128a", SNOR_ID3(0x1f4218) },
> 
> As the flash is defined now, all its characteristics can be discovered by
> parsing SFDP. So instead of adding a new flash_info entry in the already big
> array that we have, I would like us to focus more on a generic flash driver
> which acts as a backup when the flash is not found in the flash_info array.
> We can discover the flash particularities by parsing SFDP and we can probe
> the flash based on that. Michael has already suggested this, would you
> please help review it?
> 
> 
> >         { "at26f004",   INFO(0x1f0400, 0, 64 * 1024,  8)
> >                 NO_SFDP_FLAGS(SECT_4K) },
> >         { "at26df081a", INFO(0x1f4501, 0, 64 * 1024, 16)
> > --
> > 2.25.1
> >
Tudor Ambarus July 21, 2022, 9:39 a.m. UTC | #6
On 7/21/22 12:23, Biju Das wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> Hi Tudor Ambarus,
> 
> I have done quick test with these generic patches. Please find my observation
> below.

Thanks!

> 
>> Subject: Re: [PATCH v2 2/2] mtd: spi-nor: Add Renesas AT25QL128A serial nor
>> flash
>>
>> On 7/15/22 13:57, Biju Das wrote:
>>
>> Hi, Biju!
>>
>>> EXTERNAL EMAIL: Do not click links or open attachments unless you know
>>> the content is safe
>>>
>>> Add support for Renesas AT25QL128A serial nor flash.
>>> Details of flash chip can be found here [1]
>>>
>>> [1]
>>>
>>> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
>>> ---
>>> $ xxd -p sfdp
>>> 53464450060101ff00060110300000ff1f00010280000001ffffffffffff
>>> ffffffffffffffffffffffffffffffffffffe520f1ffffffff0744eb086b
>>> 083b80bbfeffffffffff00ffffff42eb0c200f5210d800ff3362d5008429
>>> 01ceeca1073d7a757a75f7a2d55c19f61cffe810c080ffffffffffffffff
>>> ffffffffffffffff501650190000ffff
>>>
>>> $ md5sum
>>> /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
>>> .0/spi-nor/sfdp 23e3ec56b5b8f986d0488ba4727239dd
>>> /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
>>> .0/spi-nor/sfdp $ cat
>>> /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
>>> .0/spi-nor/jedec_id
>>> 1f4218
>>> $ cat
>>> /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
>>> .0/spi-nor/partname
>>> at25ql128a
>>> $ cat
>>> /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
>>> .0/spi-nor/manufacturer
>>> atmel
> 
> With generic flash driver patches I get below results
> ----------------------------------------------------
> 
> xxd -p sfdp
> 53464450060101ff00060110300000ff1f00010280000001ffffffffffff
> ffffffffffffffffffffffffffffffffffffe520f1ffffffff0744eb086b
> 083b80bbfeffffffffff00ffffff42eb0c200f5210d800ff3362d5008429
> 01ceeca1073d7a757a75f7a2d55c19f61cffe810c080ffffffffffffffff
> ffffffffffffffff501650190000ffff
> 
> This result is same as above.

ok, as expected.

> 
> cat /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/jedec_id
> 1f42181f4218
> 
> This result is not matching 1f4218->1f42181f4218

here it looks like the ID is sent twice.

> 
> root@smarc-rzg2ul:~# cat /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/partname
> spi-nor-generic
> 
> This result is not matching at25ql128a-> spi-nor-generic

right, as expected

> 
> root@smarc-rzg2ul:~# cat /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/manufacturer
> cat: /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/manufacturer: No such file or directory
> 
> This result is not matching atmel-> cat: /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/manufacturer: No such file or directory

here we could introduce a generic name as well.

> 
> How do we get proper partname/manufacturer details with generic flash driver?

You don't, as it is you get just generic names like generic-spi-nor
and generic-manufacturer. Why do you find the flash/manufacturer
names important?

ta
Michael Walle July 21, 2022, 9:43 a.m. UTC | #7
Am 2022-07-21 11:39, schrieb Tudor.Ambarus@microchip.com:
>> cat 
>> /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1.0/spi-nor/jedec_id
>> 1f42181f4218
>> 
>> This result is not matching 1f4218->1f42181f4218
> 
> here it looks like the ID is sent twice.

That is expected. We don't know how long the id is so
SPI_NOR_MAX_ID_LEN bytes are read for now.
Some flashes will send additional information, some don't and
just repeat the pattern.

It's up to the userspace to interpret that.

-michael
Biju Das July 21, 2022, 9:46 a.m. UTC | #8
Hi Tudor Ambarus,

Thanks for the feedback.

> Subject: Re: [PATCH v2 2/2] mtd: spi-nor: Add Renesas AT25QL128A serial nor
> flash
> 
> On 7/21/22 12:23, Biju Das wrote:
> > EXTERNAL EMAIL: Do not click links or open attachments unless you know
> > the content is safe
> >
> > Hi Tudor Ambarus,
> >
> > I have done quick test with these generic patches. Please find my
> > observation below.
> 
> Thanks!
> 
> >
> >> Subject: Re: [PATCH v2 2/2] mtd: spi-nor: Add Renesas AT25QL128A
> >> serial nor flash
> >>
> >> On 7/15/22 13:57, Biju Das wrote:
> >>
> >> Hi, Biju!
> >>
> >>> EXTERNAL EMAIL: Do not click links or open attachments unless you
> >>> know the content is safe
> >>>
> >>> Add support for Renesas AT25QL128A serial nor flash.
> >>> Details of flash chip can be found here [1]
> >>>
> >>> [1]
> >>>
> >>> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> >>> ---
> >>> $ xxd -p sfdp
> >>> 53464450060101ff00060110300000ff1f00010280000001ffffffffffff
> >>> ffffffffffffffffffffffffffffffffffffe520f1ffffffff0744eb086b
> >>> 083b80bbfeffffffffff00ffffff42eb0c200f5210d800ff3362d5008429
> >>> 01ceeca1073d7a757a75f7a2d55c19f61cffe810c080ffffffffffffffff
> >>> ffffffffffffffff501650190000ffff
> >>>
> >>> $ md5sum
> >>> /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/sp
> >>> i1 .0/spi-nor/sfdp 23e3ec56b5b8f986d0488ba4727239dd
> >>> /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/sp
> >>> i1
> >>> .0/spi-nor/sfdp $ cat
> >>> /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/sp
> >>> i1
> >>> .0/spi-nor/jedec_id
> >>> 1f4218
> >>> $ cat
> >>> /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/sp
> >>> i1
> >>> .0/spi-nor/partname
> >>> at25ql128a
> >>> $ cat
> >>> /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/sp
> >>> i1
> >>> .0/spi-nor/manufacturer
> >>> atmel
> >
> > With generic flash driver patches I get below results
> > ----------------------------------------------------
> >
> > xxd -p sfdp
> > 53464450060101ff00060110300000ff1f00010280000001ffffffffffff
> > ffffffffffffffffffffffffffffffffffffe520f1ffffffff0744eb086b
> > 083b80bbfeffffffffff00ffffff42eb0c200f5210d800ff3362d5008429
> > 01ceeca1073d7a757a75f7a2d55c19f61cffe810c080ffffffffffffffff
> > ffffffffffffffff501650190000ffff
> >
> > This result is same as above.
> 
> ok, as expected.
> 
> >
> > cat
> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
> > .0/spi-nor/jedec_id
> > 1f42181f4218
> >
> > This result is not matching 1f4218->1f42181f4218
> 
> here it looks like the ID is sent twice.

OK.

> 
> >
> > root@smarc-rzg2ul:~# cat
> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
> > .0/spi-nor/partname
> > spi-nor-generic
> >
> > This result is not matching at25ql128a-> spi-nor-generic
> 
> right, as expected
> 
> >
> > root@smarc-rzg2ul:~# cat
> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
> > .0/spi-nor/manufacturer
> > cat:
> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
> > .0/spi-nor/manufacturer: No such file or directory
> >
> > This result is not matching atmel-> cat:
> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
> > .0/spi-nor/manufacturer: No such file or directory
> 
> here we could introduce a generic name as well.

OK.

Michael: Do you have any plan to add generic name for manufacturer
as completeness?

> 
> >
> > How do we get proper partname/manufacturer details with generic flash
> driver?
> 
> You don't, as it is you get just generic names like generic-spi-nor and
> generic-manufacturer. Why do you find the flash/manufacturer names
> important?

Ok, currently my test script expects proper partname/manufacturer.
Will change it to generic one.

Cheers,
Biju
Michael Walle July 21, 2022, 10 a.m. UTC | #9
Am 2022-07-21 11:46, schrieb Biju Das:

>> > root@smarc-rzg2ul:~#

nice a smarc board :)


>> >
>> > root@smarc-rzg2ul:~# cat
>> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
>> > .0/spi-nor/manufacturer
>> > cat:
>> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
>> > .0/spi-nor/manufacturer: No such file or directory
>> >
>> > This result is not matching atmel-> cat:
>> > /sys/devices/platform/soc/10060000.spi/rpc-if-spi/spi_master/spi1/spi1
>> > .0/spi-nor/manufacturer: No such file or directory
>> 
>> here we could introduce a generic name as well.
> 
> OK.
> 
> Michael: Do you have any plan to add generic name for manufacturer
> as completeness?

Why would we need that one? There is no manufacturer. So I don't
see why we should add a fake one. The partname is debatable, too.
IMHO if we really want to get rid of the "dummy" tables in the kernel,
the userspace (mtdutils for example) could parse the jedec id and
sfdp and find the manufacturer and partnumer. But TBH, I don't know
if that is really an important information.

Implementation wise, right now, it's quite a hack how the
manufacturer is set. It gets already set early in
spi_nor_match_name(), while the actual flash info will get set
later in the call chain.

-michael
diff mbox series

Patch

diff --git a/drivers/mtd/spi-nor/atmel.c b/drivers/mtd/spi-nor/atmel.c
index 656dd80a0be7..80c24d138b27 100644
--- a/drivers/mtd/spi-nor/atmel.c
+++ b/drivers/mtd/spi-nor/atmel.c
@@ -186,6 +186,7 @@  static const struct flash_info atmel_nor_parts[] = {
 		.fixups = &atmel_nor_global_protection_fixups },
 	{ "at25sl321",	INFO(0x1f4216, 0, 64 * 1024, 64)
 		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
+	{ "at25ql128a", SNOR_ID3(0x1f4218) },
 	{ "at26f004",   INFO(0x1f0400, 0, 64 * 1024,  8)
 		NO_SFDP_FLAGS(SECT_4K) },
 	{ "at26df081a", INFO(0x1f4501, 0, 64 * 1024, 16)