]> git.baikalelectronics.ru Git - uboot.git/commit
spl: spl_spi: add spi_nor_remove() to soft reset flash
authorVaishnav Achath <vaishnav.a@ti.com>
Mon, 9 May 2022 08:33:32 +0000 (14:03 +0530)
committerJagan Teki <jagan@edgeble.ai>
Mon, 18 Jul 2022 13:45:19 +0000 (19:15 +0530)
commitb7c2e82e906ce22f780a436f8ccf48007d9cb820
tree4e1768cb0c6374a1ceaea54e34696054e82d71cb
parent87947eac809fee0a2d40936d83cc8b216e7134bf
spl: spl_spi: add spi_nor_remove() to soft reset flash

On probe, the SPI NOR core will put a flash in 8D mode if it
supports it. But Linux as of now expects to get the flash in
1S mode. Handing the flash to Linux in Octal DTR mode means
the kernel will fail to detect the flash.

This commit adds an option to soft reset the flash after
spl_spi_load_image() so that the flash can be reset to 1S mode
and subsequent spi-nor probe in Linux does not fail, since
spl_spi_load_image() performs spi_flash_probe() the remove is
added after completion loading images in spi_flash_probe() itself.

Tested on J721E EVM with 5.10 Linux kernel.

Linux spi-nor probe without the fix:
root@j7-evm:~# dmesg | grep spi-nor
[    4.928023] spi-nor spi0.0: unrecognized JEDEC id bytes: ff ff ff ff ff ff
[    4.934938] spi-nor: probe of spi0.0 failed with error -2

Linux spi-nor probe with the fix:
root@j7-evm:~# dmesg | grep spi-nor
[    4.904484] spi-nor spi0.0: mt35xu512aba (65536 Kbytes)

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
Acked-by: Jagan Teki <jagan@amarulasolutions.com>
common/spl/spl_spi.c