u-boot/drivers/mtd
Marek Behún dcb9a80359 mtd: compare also with OF path and device name in get_mtd_device_nm()
The get_mtd_device_nm() function (code imported from Linux) simply
iterates all registered MTD devices and compares the given name with
all MTDs' names.

With SPI_FLASH_MTD enabled U-Boot registers a SPI-NOR as a MTD device
with name identical to the SPI flash chip name (from SPI ID table). Thus
for a board with multiple same SPI-NORs it registers multiple MTDs, but
all with the same name (such as "s25fl164k"). We do not want to change
this behaviour, since such a change could break existing boot scripts,
which can rely on a hardcoded name.

In order to allow somehow to uniqely select a MTD device, change
get_mtd_device_nm() function as such:
- if first character of name is '/', try interpreting it as OF path
- otherwise compare the name with MTDs name and MTDs device name.

In the following example a board has two "s25fl164k" SPI-NORs. They both
have name "s25fl164k", thus cannot be uniquely selected via this name.
With this change, the user can select the second SPI-NOR either with
"spi-nor@1" or "/soc/spi@10600/spi-nor@1".

Example:
  => mtd list
  List of MTD devices:
  * s25fl164k
    - device: spi-nor@0
    - parent: spi@10600
    - driver: jedec_spi_nor
    - path: /soc/spi@10600/spi-nor@0
    - type: NOR flash
    - block size: 0x1000 bytes
    - min I/O: 0x1 bytes
    - 0x000000000000-0x000000800000 : "s25fl164k"
  * s25fl164k
    - device: spi-nor@1
    - parent: spi@10600
    - driver: jedec_spi_nor
    - path: /soc/spi@10600/spi-nor@1
    - type: NOR flash
    - block size: 0x1000 bytes
    - min I/O: 0x1 bytes
    - 0x000000000000-0x000000800000 : "s25fl164k"

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Tested-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
Cc: Priyanka Jain <priyanka.jain@nxp.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Heiko Schocher <hs@denx.de>
Cc: Patrick Delaunay <patrick.delaunay@st.com>
2021-06-24 11:54:57 +05:30
..
nand mtd: spinand: macronix: Add support for serial NAND flash 2021-06-24 11:42:52 +05:30
onenand mtd: OneNAND: Set MTD type 2020-11-15 15:29:40 +05:30
spi mtd: spi-nor: fill-in mtd->dev member 2021-06-24 11:53:50 +05:30
ubi common: Drop linux/bug.h from common header 2020-05-18 21:19:23 -04:00
ubispl common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
altera_qspi.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
cfi_flash.c mtd: cfi: Fix PPB lock status readout 2021-04-28 10:29:36 +02:00
cfi_mtd.c mtd: cfi_mtd: Use DMA for reads 2020-10-08 09:04:41 +02:00
hbmc-am654.c dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
jedec_flash.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
Kconfig mtd: fix typos in drivers/mtd/Kconfig, drivers/mtd/renesas_rpc_hf.c 2020-09-29 13:18:31 -04:00
Makefile mtd: remove drivers/mtd/mw_eeprom.c 2021-01-18 15:23:06 -05:00
mtd-uclass.c mtd: remove mtd_probe() function 2021-06-24 11:54:07 +05:30
mtd_uboot.c mtd: probe SPI NOR devices in mtd_probe_devices() 2021-06-24 11:54:32 +05:30
mtdconcat.c common: Drop linux/bug.h from common header 2020-05-18 21:19:23 -04:00
mtdcore.c mtd: compare also with OF path and device name in get_mtd_device_nm() 2021-06-24 11:54:57 +05:30
mtdcore.h mtd: move definitions to enlarge their range 2018-09-20 20:10:49 +05:30
mtdpart.c mtd: add support for parsing partitions defined in OF 2021-06-24 11:53:15 +05:30
pic32_flash.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
renesas_rpc_hf.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
st_smi.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
stm32_flash.c common: Drop flash.h from common header 2020-05-18 14:53:28 -04:00
stm32_flash.h stm32: stm32f4: move flash driver to mtd driver location 2016-03-26 18:49:28 -04:00