diff mbox series

[1/2] mtd: spi-nor: macronix: Add support for mx66l2g45g

Message ID 20220522054802.1719443-1-jiaqing.zhao@linux.intel.com
State Changes Requested
Delegated to: Ambarus Tudor
Headers show
Series [1/2] mtd: spi-nor: macronix: Add support for mx66l2g45g | expand

Commit Message

Jiaqing Zhao May 22, 2022, 5:48 a.m. UTC
Macronix mx66l2g45g is a 3V, 2Gbit (256MB) NOR flash that supports
x1, x2, and x4 operation modes.

Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
---
 drivers/mtd/spi-nor/macronix.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Michael Walle May 23, 2022, 7:54 a.m. UTC | #1
Hi,

Am 2022-05-22 07:48, schrieb Jiaqing Zhao:
> Macronix mx66l2g45g is a 3V, 2Gbit (256MB) NOR flash that supports
> x1, x2, and x4 operation modes.

I presume this one supports SFDP? Please provide an SFDP dump, see [1].
If it supports SFDP please try to use the SNOR_ID3() macro [2].

Also please add what was tested in your commit message.

Same goes for your patch 2/2.

-michael

[1] 
https://lore.kernel.org/linux-mtd/4304e19f3399a0a6e856119d01ccabe0@walle.cc/
[2] 
https://lore.kernel.org/linux-mtd/20220510140232.3519184-1-michael@walle.cc/
Jiaqing Zhao May 23, 2022, 8:50 a.m. UTC | #2
Hi,

Yes this one supports SFDP according to its spec.

On my setup, I cannot see the sysfs object. Do I need to enable some specific
kernel config or it's SPI controller related? My setup is running kernel 5.15.

Jiaqing

On 2022-05-23 15:54, Michael Walle wrote:
> Hi,
> 
> Am 2022-05-22 07:48, schrieb Jiaqing Zhao:
>> Macronix mx66l2g45g is a 3V, 2Gbit (256MB) NOR flash that supports
>> x1, x2, and x4 operation modes.
> 
> I presume this one supports SFDP? Please provide an SFDP dump, see [1].
> If it supports SFDP please try to use the SNOR_ID3() macro [2].
> 
> Also please add what was tested in your commit message.
> 
> Same goes for your patch 2/2.
> 
> -michael
> 
> [1] https://lore.kernel.org/linux-mtd/4304e19f3399a0a6e856119d01ccabe0@walle.cc/
> [2] https://lore.kernel.org/linux-mtd/20220510140232.3519184-1-michael@walle.cc/
Michael Walle May 23, 2022, 8:56 a.m. UTC | #3
Am 2022-05-23 10:50, schrieb Jiaqing Zhao:
> Hi,
> 
> Yes this one supports SFDP according to its spec.
> 
> On my setup, I cannot see the sysfs object. Do I need to enable some 
> specific
> kernel config or it's SPI controller related? My setup is running 
> kernel 5.15.

No, it should be there since v5.14. See commit 36ac02286265. And you 
shouldn't
need to enable any special configuration option.

Did you do a "find /sys -name sfdp"?

-michael
Jiaqing Zhao May 23, 2022, 10:12 a.m. UTC | #4
> Am 2022-05-23 10:50, schrieb Jiaqing Zhao:
>> Hi,
>>
>> Yes this one supports SFDP according to its spec.
>>
>> On my setup, I cannot see the sysfs object. Do I need to enable some specific
>> kernel config or it's SPI controller related? My setup is running kernel 5.15.
> 
> No, it should be there since v5.14. See commit 36ac02286265. And you shouldn't
> need to enable any special configuration option.
> 
> Did you do a "find /sys -name sfdp"?
> 
> -michael 

I tried, it give empty result. The system I'm working on disables kernel module,
and the SPI controller driver calls spi_nor_probe() directly, will this be the
issue?

And is it possible to manually load the spi-nor driver via the bind interface?
If it is possible, what should the parameters be?
Michael Walle May 23, 2022, 11:59 a.m. UTC | #5
Hi,

Am 2022-05-23 12:12, schrieb Jiaqing Zhao:
>> Am 2022-05-23 10:50, schrieb Jiaqing Zhao:
>>> Yes this one supports SFDP according to its spec.
>>> 
>>> On my setup, I cannot see the sysfs object. Do I need to enable some 
>>> specific
>>> kernel config or it's SPI controller related? My setup is running 
>>> kernel 5.15.
>> 
>> No, it should be there since v5.14. See commit 36ac02286265. And you 
>> shouldn't
>> need to enable any special configuration option.
>> 
>> Did you do a "find /sys -name sfdp"?
>> 
>> -michael
> 
> I tried, it give empty result. The system I'm working on disables 
> kernel module,
> and the SPI controller driver calls spi_nor_probe() directly, will this 
> be the
> issue?
> 
> And is it possible to manually load the spi-nor driver via the bind 
> interface?
> If it is possible, what should the parameters be?

Is your spi flash probed at all?

-michael
Jiaqing Zhao May 23, 2022, 12:18 p.m. UTC | #6
Okay I've found this was a driver issue. After switching to the new aspeed
spi-mem driver[1], the sysfs interface works.

# xxd -p /sys/bus/spi/devices/spi0.0/spi-nor/sfdp
53464450060102ff00060110300000ffc2000104100100ff84000102c000
00ffffffffffffffffffffffffffffffffffe520fbffffffff7f44eb086b
083b04bbfeffffffffff00ffffff44eb0c200f5210d800ff8749bd0084d2
04e24403673830b030b0f7bdff5c4a9e29fff050f985ffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffff7f8fffff215cdcffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffff003600279df9c06485cbffffffffffff
# md5sum /sys/bus/spi/devices/spi0.0/spi-nor/sfdp
bc3c1443db0c6359432c3cccb6f97943  /sys/bus/spi/devices/spi0.0/spi-nor/sfdp
# cat /sys/bus/spi/devices/spi0.0/spi-nor/jedec_id
c2201c
# cat /sys/bus/spi/devices/spi0.0/spi-nor/partname
mx66l2g45g
# cat /sys/bus/spi/devices/spi0.0/spi-nor/manufacturer
macronix

Since I'm using kernel 5.15, I copied the /drivers/mtd/spi-nor from 5.18-rc7
(I know this it not a clean way, but it works), and applied the SNOR_ID3()
patch. Verified using SNOR_ID3() macro works with this mx66l2g45g and the
values dumped from sysfs are the same.

[    1.696350] spi spi0.0: setup: ignoring unsupported mode bits 200
[    1.703786] spi-nor spi0.0: mx66l2g45g (262144 Kbytes)
[    1.764440] spi-aspeed-smc 1e620000.spi: CE0 read buswidth:2 [0x203c0641]

Due to the lockdown in Shanghai, I am unable to test my 2nd patch at this
time, please temporarily ignore it.

I will perform more tests and update the patch later.

[1] https://lore.kernel.org/linux-mtd/a17b2446-f5a6-d606-8ef4-3931b8bc94da@kaod.org/

Thanks,
Jiaqing

On 2022-05-23 19:59, Michael Walle wrote:
> Hi,
> 
> Am 2022-05-23 12:12, schrieb Jiaqing Zhao:
>>> Am 2022-05-23 10:50, schrieb Jiaqing Zhao:
>>>> Yes this one supports SFDP according to its spec.
>>>>
>>>> On my setup, I cannot see the sysfs object. Do I need to enable some specific
>>>> kernel config or it's SPI controller related? My setup is running kernel 5.15.
>>>
>>> No, it should be there since v5.14. See commit 36ac02286265. And you shouldn't
>>> need to enable any special configuration option.
>>>
>>> Did you do a "find /sys -name sfdp"?
>>>
>>> -michael
>>
>> I tried, it give empty result. The system I'm working on disables kernel module,
>> and the SPI controller driver calls spi_nor_probe() directly, will this be the
>> issue?
>>
>> And is it possible to manually load the spi-nor driver via the bind interface?
>> If it is possible, what should the parameters be?
> 
> Is your spi flash probed at all?
> 
> -michael
diff mbox series

Patch

diff --git a/drivers/mtd/spi-nor/macronix.c b/drivers/mtd/spi-nor/macronix.c
index d81a4cb2812b..1c45829be5ef 100644
--- a/drivers/mtd/spi-nor/macronix.c
+++ b/drivers/mtd/spi-nor/macronix.c
@@ -95,6 +95,9 @@  static const struct flash_info macronix_nor_parts[] = {
 	{ "mx66l1g45g",  INFO(0xc2201b, 0, 64 * 1024, 2048)
 		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
 			      SPI_NOR_QUAD_READ) },
+	{ "mx66l2g45g",  INFO(0xc2201c, 0, 64 * 1024, 4096)
+		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
+			      SPI_NOR_QUAD_READ) },
 	{ "mx66l1g55g",  INFO(0xc2261b, 0, 64 * 1024, 2048)
 		NO_SFDP_FLAGS(SPI_NOR_QUAD_READ) },
 	{ "mx66u2g45g",	 INFO(0xc2253c, 0, 64 * 1024, 4096)