[U-Boot] [PATCH] cmd: mtdparts: Probe MTD devices in mtdparts_init()

Boris Brezillon boris.brezillon at bootlin.com
Tue Oct 30 10:03:54 UTC 2018


On Tue, 30 Oct 2018 10:51:51 +0100
Stefan Roese <sr at denx.de> wrote:

> Calling "mtdparts" currently fails when its called before any other mtd
> command (or ubi command) has been called. The MTD devices are not
> probed at this point and therefore it fails e.g. with this message:
> 
> => mtdparts  
> Device spi-nand0 not found!

IIRC, we decided that mtdparts should not call mtd_probe_devices() to
encourage people to stop using it.

> 
> This patch adds a call to mtd_probe_devices() to mtdparts_init() to
> solve this issue. This also fixes a problem when calling "ubi part"
> as first flash storage related command.

Hm, this one is unexpected. Miquel, any idea why this happens. Do we
need to enable a specific option if we want mtd_probe_devices() to be
called in the ubi part path?

> Here also the warning from
> above is printed without this patch.
> 
> Signed-off-by: Stefan Roese <sr at denx.de>
> Cc: Miquel Raynal <miquel.raynal at bootlin.com>
> Cc: Boris Brezillon <boris.brezillon at bootlin.com>
> Cc: Jagan Teki <jagan at openedev.com>
> ---
>  cmd/mtdparts.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/cmd/mtdparts.c b/cmd/mtdparts.c
> index f7ed1a0779..d90e568143 100644
> --- a/cmd/mtdparts.c
> +++ b/cmd/mtdparts.c
> @@ -73,6 +73,7 @@
>  #include <common.h>
>  #include <command.h>
>  #include <malloc.h>
> +#include <mtd.h>
>  #include <jffs2/load_kernel.h>
>  #include <linux/list.h>
>  #include <linux/ctype.h>
> @@ -1726,6 +1727,9 @@ int mtdparts_init(void)
>  	char tmp_ep[PARTITION_MAXLEN + 1];
>  	char tmp_parts[MTDPARTS_MAXLEN];
>  
> +	/* First probe all MTD devices */
> +	mtd_probe_devices();
> +
>  	debug("\n---mtdparts_init---\n");
>  	if (!initialized) {
>  		INIT_LIST_HEAD(&mtdids);



More information about the U-Boot mailing list