[PATCH] mtd: spi-nor: Fix SF MTDIDS when registering multiple MTDs with DM enabled

Marek Vasut marex at denx.de
Wed Sep 15 01:06:22 CEST 2021


The flash->mtd.name used to be nor%d before, now it is the type of the
SPI NOR like e.g. mt25ql02g. It is possible to find plenty of examples
of the former in U-Boot configs by searching for MTDIDS.*nor.*spi, while
the later is ambiguous if there are multiple flashes of the same type in
the system and breaks existing environments.

This does no longer get recognized when running 'mtdparts' for example:
CONFIG_MTDIDS_DEFAULT="nor0=47040000.spi.0"

Fix this by setting the correct mtd.name to nor%d.

Fixes: b7f060565e3 ("mtd: spi-nor: allow registering multiple MTDs when DM is enabled")
Signed-off-by: Marek Vasut <marex at denx.de>
Cc: Heiko Schocher <hs at denx.de>
Cc: Jagan Teki <jagan at amarulasolutions.com>
Cc: Marek Behún <marek.behun at nic.cz>
Cc: Miquel Raynal <miquel.raynal at bootlin.com>
Cc: Pali Rohár <pali at kernel.org>
Cc: Patrice Chotard <patrice.chotard at foss.st.com>
Cc: Patrick Delaunay <patrick.delaunay at st.com>
Cc: Priyanka Jain <priyanka.jain at nxp.com>
Cc: Simon Glass <sjg at chromium.org>
---
 drivers/mtd/spi/sf_mtd.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/mtd/spi/sf_mtd.c b/drivers/mtd/spi/sf_mtd.c
index 04de8680809..1a81689fe4a 100644
--- a/drivers/mtd/spi/sf_mtd.c
+++ b/drivers/mtd/spi/sf_mtd.c
@@ -14,7 +14,10 @@
 
 int spi_flash_mtd_register(struct spi_flash *flash)
 {
-	return add_mtd_device(&flash->mtd);
+	int ret = add_mtd_device(&flash->mtd);
+	if (!ret)
+		sprintf(flash->mtd.name, "nor%d", flash->mtd.index);
+	return ret;
 }
 
 void spi_flash_mtd_unregister(struct spi_flash *flash)
-- 
2.33.0



More information about the U-Boot mailing list