Re: [PATCH v2 1/1] mtd: spi-nor: micron-st: Enable locking for n25q256ax1/mt25qu256a

From: Michael Walle
Date: Wed Oct 19 2022 - 06:55:34 EST


Am 2022-10-19 11:52, schrieb Farber, Eliav:
On 10/19/2022 12:38 PM, Michael Walle wrote:
Am 2022-10-19 11:25, schrieb Farber, Eliav:
On 10/19/2022 11:21 AM, Michael Walle wrote:
Hi,

Am 2022-10-19 09:16, schrieb Eliav Farber:
n25q256ax1 [1] and mt25qu256a [2] (both have same jedec_id -
0x20bb19)
use the 4 bit Block Protection scheme and support Top/Bottom
protection
via the BP and TB bits of the Status Register.
BP3 is located in bit 6 of the Status Register.
Tested on both n25q256ax1 and mt25qu256a.

[1]
https://www.micron.com/-/media/client/global/documents/products/data-sheet/nor-flash/serial-nor/n25q/n25q_256mb_3v.pdf [2]
https://www.micron.com/-/media/client/global/documents/products/data-sheet/nor-flash/serial-nor/mt25q/die-rev-a/mt25q_qljs_u_256_aba_0.pdf

If you respin, you can use a "Link:" tag for the URL above.

Ack.

Signed-off-by: Eliav Farber <farbere@xxxxxxxxxx>
---
xxd -p
/sys/devices/platform/soc/fd882000.spi/spi_master/spi0/spi0.0/spi-nor/sfdp 53464450060101ff00060110300000ff84000102800000ffffffffffffff
ffffffffffffffffffffffffffffffffffffe520fbffffffff0f29eb276b
273b27bbffffffffffff27bbffff29eb0c2010d80f520000244a99008b8e
03d4ac0127387a757a75fbbdd55c4a0f82ff81bd3d36ffffffffffffffff
ffffffffffffffffffe7ffff21dcffff

md5sum
/sys/devices/platform/soc/fd882000.spi/spi_master/spi0/spi0.0/spi-nor/sfdp 5ea738216f68c9f98987bb3725699a32
/sys/devices/platform/soc/fd882000.spi/spi_master/spi0/spi0.0/spi-nor/sfdp cat
/sys/devices/platform/soc/fd882000.spi/spi_master/spi0/spi0.0/spi-nor/jedec_id 20bb19104400

cat
/sys/devices/platform/soc/fd882000.spi/spi_master/spi0/spi0.0/spi-nor/partname mt25qu256a

cat
/sys/devices/platform/soc/fd882000.spi/spi_master/spi0/spi0.0/spi-nor/manufacturer st

That's the mt25qu256a SFDP. What about the n25q256ax1?

On the same card, with same NOR flash memory I'm running two different
kernel versions.
First version is quite old - 4.19.239 which does not support mt25qu256a
and therefore device is detected as n25q256ax1.
Second version is 6.1.0-rc1 and it detects the same device as
mt25qu256a.
So I was able to dump SFDP when running version 6.1.0-rc1, but not when
running 4.19.239 which does not support the sysfs to dump the SFPD
information.
I checked that locking works with my changes when running on both
kernel
versions.

So you've only tested on an mt25qu256a, correct? Then you should only
add the locking to this flash device. (and maybe backport the mt25qu256a
to your older kernel).

I dumped SFDP tables only for mt25qu256a, but as I mentioned I tested
locking functionality for both (on 4.19.239 which detects the device as
n25q256ax1 and on 6.1.0-rc1  which detects the device as mt25qu256a).
This is the flow I used for testing the change on both versions:

You said you've tested on the same board, thus it has the same flash
device. But with the older kernel it was detected as a different part.

So the question is, what is the correct part number? I.e. what is the
_actual_ flash device soldered on your board?

-michael