| From 5795b7ba0fcf17c62c9db215b35c0b49c0ce2647 Mon Sep 17 00:00:00 2001 |
| From: Shaik Sajida Bhanu <quic_c_sbhanu@quicinc.com> |
| Date: Fri, 25 Mar 2022 12:36:15 +0530 |
| Subject: [PATCH] BACKPORT: FROMLIST: mtd: spi-nor: winbond: add support for |
| W25Q512NW-IM |
| |
| Add support for winbond W25Q512NW-IM chip. |
| |
| Below are the tests done: |
| |
| 1. Verified flashing binary image on spi card using flashrom tool. |
| 2. Verified OTP support, below are the test results: |
| |
| localhost / # cat |
| /sys/bus/platform/devices/soc\@0/88dc000.spi/spi_master/spi16/ |
| spi16.0/spi-nor/jedec_id |
| ef8020 |
| |
| localhost / # cat |
| /sys/bus/platform/devices/soc\@0/88dc000.spi/spi_master/spi16/ |
| spi16.0/spi-nor/manufacturer |
| winbond |
| |
| localhost / # cat |
| /sys/bus/platform/devices/soc\@0/88dc000.spi/spi_master/spi16/ |
| spi16.0/spi-nor/partname |
| w25q512nwm |
| |
| localhost / # hexdump |
| /sys/bus/platform/devices/soc\@0/88dc000.spi/spi_master/sp |
| i16/spi16.0/spi-nor/sfdp |
| 0000000 4653 5044 0106 ff01 0600 1001 0080 ff00 |
| 0000010 0084 0201 00d0 ff00 ffff ffff ffff ffff |
| 0000020 6800 6c65 6f6c 7720 726f 646c ffff ffff |
| 0000030 ffff ffff ffff ffff ffff ffff ffff ffff |
| * |
| 0000080 20e5 fffb ffff 1fff eb44 6b08 3b08 bb42 |
| 0000090 fffe ffff ffff 0000 ffff eb40 200c 520f |
| 00000a0 d810 0000 0233 00a6 e781 d914 63e9 3376 |
| 00000b0 757a 757a bdf7 5cd5 f719 ff5d 70e9 a5f9 |
| 00000c0 ffff ffff ffff ffff ffff ffff ffff ffff |
| 00000d0 0aff fff0 ff21 ffdc |
| 00000d8 |
| |
| localhost / # md5sum |
| /sys/bus/platform/devices/soc\@0/88dc000.spi/spi_master/spi |
| 16/spi16.0/spi-nor/sfdp |
| 106d89d6c049110bc94c01517cb4ce24 |
| /sys/bus/platform/devices/soc@0/88dc000.spi/ |
| spi_master/spi16/spi16.0/spi-nor/sfdp |
| |
| 3. Tested flash lock, below are the test results (looks like the lock is |
| not working as expected, so when we do lock the whole card and tried to |
| write, write was successful without any errors.) |
| |
| localhost ~ # flash_lock -i /dev/mtd0 |
| Device: /dev/mtd0 |
| Start: 0 |
| Len: 0x4000000 |
| Lock status: locked |
| Return code: 1 |
| localhost ~ # mtd_debug erase /dev/mtd0 0x400000 4096 |
| Erased 4096 bytes from address 0x00400000 in flash |
| localhost ~ # mtd_debug read /dev/mtd0 0x400000 4096 |
| temp |
| Copied 4096 bytes from address 0x00400000 in flash |
| to temp |
| localhost ~ # mtd_debug write /dev/mtd0 0x400000 |
| 4096 temp |
| Copied 4096 bytes from temp to address 0x00400000 |
| in flash |
| localhost ~ # flash_lock -u /dev/mtd0 |
| localhost ~ # flash_lock -i /dev/mtd0 |
| Device: /dev/mtd0 |
| Start: 0 |
| Len: 0x4000000 |
| Lock status: unlocked |
| Return code: 0 |
| localhost ~ # mtd_debug erase /dev/mtd0 0x400000 4096 |
| Erased 4096 bytes from address 0x00400000 in flash |
| localhost ~ # mtd_debug read /dev/mtd0 0x400000 |
| 4096 tempCopied 4096 bytes from address 0x00400000 in |
| flash to temp |
| localhost ~ # mtd_debug write /dev/mtd0 0x400000 4096 temp |
| Copied 4096 bytes from temp to address 0x00400000 in flash |
| localhost ~ # |
| |
| Signed-off-by: Shaik Sajida Bhanu <quic_c_sbhanu@quicinc.com> |
| Reviewed-by: Doug Anderson <dianders@chromium.org> |
| Reviewed-by: Michael Walle <michael@walle.cc> |
| (am from https://patchwork.ozlabs.org/patch/1609294/) |
| (also found at https://lore.kernel.org/r/1648191975-1366-1-git-send-email-quic_c_sbhanu@quicinc.com) |
| |
| Conflicts: |
| drivers/mtd/spi-nor/winbond.c |
| Upstream has significaly reworked these tables _just_ after 5.15. It |
| would be a lot of patches to backport to get this reorganization. This |
| BACKPORT is more like the v3 version of the patch posted to the lists |
| with the addition of the OTP_INFO. |
| |
| BUG=b:205745448 |
| TEST=flashrom -p host -r /tmp/bios.bin |
| |
| Signed-off-by: Douglas Anderson <dianders@chromium.org> |
| Change-Id: I339124ab5a1d0c1227a76a1681e2e1c84099aecf |
| Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/3562307 |
| Reviewed-by: Matthias Kaehlcke <mka@chromium.org> |
| --- |
| drivers/mtd/spi-nor/winbond.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| diff --git a/drivers/mtd/spi-nor/winbond.c b/drivers/mtd/spi-nor/winbond.c |
| index fe80dffc2e70..87cf846aa0c3 100644 |
| --- a/drivers/mtd/spi-nor/winbond.c |
| +++ b/drivers/mtd/spi-nor/winbond.c |
| @@ -124,6 +124,10 @@ static const struct flash_info winbond_nor_parts[] = { |
| { "w25m512jv", INFO(0xef7119, 0, 64 * 1024, 1024) |
| NO_SFDP_FLAGS(SECT_4K | SPI_NOR_QUAD_READ | |
| SPI_NOR_DUAL_READ) }, |
| + { "w25q512nwm", INFO(0xef8020, 0, 64 * 1024, 1024) |
| + FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) |
| + NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) |
| + OTP_INFO(256, 3, 0x1000, 0x1000) }, |
| { "w25q512jvq", INFO(0xef4020, 0, 64 * 1024, 1024) |
| NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | |
| SPI_NOR_QUAD_READ) }, |
| -- |
| 2.35.0 |
| |