u-boot/drivers
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
..
adc adc: meson-saradc: add support for getting reference voltage value 2021-02-18 11:37:26 +01:00
ata ata: ahci: fix ahci_link_up() type mismatch for LTO 2021-05-24 14:21:30 -04:00
axi dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
bios_emulator treewide: Convert macro and uses of __section(foo) to __section("foo") 2021-05-24 14:21:30 -04:00
block Fix IDE commands issued, fix endian issues, fix non MMIO 2021-04-20 07:31:12 -04:00
bootcount common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
bus bus: ti-sysc: change in a normal driver 2021-03-22 19:23:27 +13:00
button button: adc: fix treshold typo 2021-03-08 10:32:34 +01:00
cache common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
clk Merge tag 'u-boot-rockchip-20210618' of https://source.denx.de/u-boot/custodians/u-boot-rockchip into next 2021-06-19 08:20:12 -04:00
core dm: core: add ofnode_get_path() 2021-06-24 11:53:00 +05:30
cpu common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
crypto crypto: fsl: refactor for 32 bit version CAAM support on ARM64 2021-04-08 20:29:53 +02:00
ddr ppc: Remove Cyrus_P5020 and P5040 boards 2021-04-10 08:05:07 -04:00
demo common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
dfu dfu: add error callback 2021-06-18 10:09:41 +02:00
dma dma: ti: k3-udma: Add support for native configuration of chan/flow 2021-06-11 19:18:52 +05:30
fastboot fastboot: Fix possible buffer overrun 2021-04-12 17:44:55 -04:00
firmware firmware: ti_sci: Add support for Resoure Management at R5 SPL stage. 2021-06-11 19:18:52 +05:30
fpga arm: socfpga: Move Stratix10 and Agilex to use TARGET_SOCFPGA_SOC64 2021-03-08 10:59:10 +08:00
gpio gpio: renesas: Pass struct udevice to rcar_gpio_set_direction() 2021-05-21 15:00:17 +02:00
hwspinlock common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
i2c gpio: i2c-gpio: Drop use of dm_gpio_set_dir() 2021-04-12 17:45:40 -04:00
input common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
led dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
mailbox mailbox: k3-sec-proxy: Add DM to DMSC communication thread 2021-06-11 19:18:52 +05:30
memory memory: stm32-fmc2: migrate trace to dev and log macro 2021-01-13 09:52:58 +01:00
misc misc: make CONFIG_IRQ selectable for all platforms 2021-04-20 07:31:12 -04:00
mmc Merge tag 'ti-v2021.07-rc3' of https://source.denx.de/u-boot/custodians/u-boot-ti 2021-05-12 10:07:21 -04:00
mtd mtd: compare also with OF path and device name in get_mtd_device_nm() 2021-06-24 11:54:57 +05:30
mux dm: Use access methods for dev/uclass private data 2021-01-05 12:24:40 -07:00
net clk: Allow force setting clock defaults before relocation 2021-06-17 09:40:57 +08:00
nvme nvme: Elaborate on cache maintenance operation in get/set_features 2021-03-19 10:36:55 -04:00
pch dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
pci pci: pcie_dw_rockchip: Replace msleep occurences by udelay 2021-06-18 14:36:54 +08:00
pci_endpoint common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
phy phy: marvell: utmi: update utmi config which fixes usb2.0 instability 2021-04-29 07:45:24 +02:00
pinctrl pinctrl: single: Fix probe failure getting register area size 2021-05-26 17:26:07 -04:00
power cmd: ti: pd: Add debug command for K3 power domains 2021-06-11 16:34:52 +05:30
pwm pwm: cros_ec: Rename "priv_auto_alloc_size" to "priv_auto" 2021-06-05 07:35:47 -06:00
qe ppc: Remove TARGET_T1040QDS references 2021-04-10 08:04:42 -04:00
ram rockchip: rk3568: Add sdram driver 2021-06-18 14:36:24 +08:00
remoteproc remoteproc: k3-r5: remove sysfw PM calls if not supported 2021-06-11 16:34:52 +05:30
reset board: sifive: add HiFive Unmatched board support 2021-05-31 16:35:55 +08:00
rng rng: iproc_rng200: Enable support for RPi4 armv7 2021-03-02 13:53:48 +01:00
rtc rtc: davinci: fix date loaded on reset 2021-06-09 22:23:45 +05:30
scsi scsi: Add ata_swap_buf_le16() to support big-endian platforms 2021-04-28 10:05:12 +02:00
serial treewide: Convert macro and uses of __section(foo) to __section("foo") 2021-05-24 14:21:30 -04:00
smem Merge branch '2021-02-02-drop-asm_global_data-when-unused' 2021-02-15 10:16:45 -05:00
soc soc: ti: k3-navss-ringacc: Add support for native configuration of rings 2021-06-11 19:18:52 +05:30
sound tegra: i2c: Drop LOG_DEBUG 2021-03-27 13:59:36 +13:00
spi spi: stm32_qspi: Fix short data write operation 2021-06-18 08:39:45 +02:00
spmi common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
sysinfo sysinfo: Add gpio-sysinfo driver 2021-05-04 07:57:18 -04:00
sysreset sysreset: provide type of reset in do_reset cmd 2021-04-20 07:31:12 -04:00
tee tee: optee: Change printing during optee_probe 2021-04-12 17:44:55 -04:00
thermal thermal: imx_tmu: enable monitoring and default alert/critical 2021-03-01 10:21:36 +01:00
timer riscv: Split SiFive CLINT support between SPL and U-Boot proper 2021-05-17 16:42:24 +08:00
tpm tpm: Correct warning on 32-bit build 2021-03-13 13:14:52 -05:00
ufs dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
usb usb: dwc3-generic: Disable host driver definition if gadget only 2021-05-16 19:01:45 +02:00
video video: sunxi: de2: switch to public uclass functions 2021-04-24 13:45:03 +02:00
virtio virtio: Fix VirtIO BLK driver dependency 2021-03-05 10:25:43 +05:30
w1 w1: replace dt detection by automatic detection 2021-05-13 13:09:09 -04:00
w1-eeprom w1: replace dt detection by automatic detection 2021-05-13 13:09:09 -04:00
watchdog watchdog: use time_after_eq() in watchdog_reset() 2021-04-28 10:05:13 +02:00
xen common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
Kconfig board: Rename uclass to sysinfo 2020-11-06 10:18:20 +08:00
Makefile cpu: Rename SPL_CPU_SUPPORT to SPL_CPU 2021-03-27 15:04:31 +13:00