[BUG] Re: [PATCH v2 2/2] mmc: mmc-uclass: Use dev_seq() to read aliases node's index

Andre Przywara andre.przywara at arm.com
Thu May 20 18:55:42 CEST 2021


On Thu, 20 May 2021 18:32:38 +0200
Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:

Hi Heinrich,

> On 25.03.21 08:18, Aswath Govindraju wrote:
> > Use dev_seq() to read aliases node's index and pass it as device number
> > for creating bulk device.
> >
> > Suggested-by: Grygorii Strashko <grygorii.strashko at ti.com>
> > Signed-off-by: Aswath Govindraju <a-govindraju at ti.com>
> > Reviewed-by: Jaehoon Chung <jh80.chung at samsung.com>  
> 
> Since this patch merged as commit 2243d19e5618122 SD cards on
> orangepi_pc_defconfig are not detected anymore.
> 
> => mmc rescan  
> MMC Device 0 not found
> no mmc device at slot 0
> =>  

Thanks for the report! This is a known issue, please join the
discussion here:
https://lists.denx.de/pipermail/u-boot/2021-April/447472.html

I am in the middle of some patch to make fastboot detect the
eMMC, which would render the need for this "mmc1 = &mmc2;" alias in
our sunxi-u-boot.dtsi obsolete. Removing this line should restore the
old probe order. However this is probably a bigger change (and affects
other platforms), so this is not 2021.07 material anymore.

I will push for this original patch of mine again (adding an mmc0
alias), once I have a proof of concept for the proper fastboot fix.

As you figured, this is a serious user-visible regression, so we need
to fix this.

Cheers,
Andre


> 
> Best regards
> 
> Heinrich
> 
> > ---
> >  drivers/mmc/mmc-uclass.c | 12 +++++-------
> >  1 file changed, 5 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/mmc/mmc-uclass.c b/drivers/mmc/mmc-uclass.c
> > index 53eabc9e612d..d36aae367e7c 100644
> > --- a/drivers/mmc/mmc-uclass.c
> > +++ b/drivers/mmc/mmc-uclass.c
> > @@ -383,18 +383,16 @@ int mmc_bind(struct udevice *dev, struct mmc *mmc, const struct mmc_config *cfg)
> >  {
> >  	struct blk_desc *bdesc;
> >  	struct udevice *bdev;
> > -	int ret, devnum = -1;
> > +	int ret;
> >
> >  	if (!mmc_get_ops(dev))
> >  		return -ENOSYS;
> > -#ifndef CONFIG_SPL_BUILD
> > -	/* Use the fixed index with aliase node's index */
> > -	ret = dev_read_alias_seq(dev, &devnum);
> > -	debug("%s: alias ret=%d, devnum=%d\n", __func__, ret, devnum);
> > -#endif
> > +
> > +	/* Use the fixed index with aliases node's index */
> > +	debug("%s: alias devnum=%d\n", __func__, dev_seq(dev));
> >
> >  	ret = blk_create_devicef(dev, "mmc_blk", "blk", IF_TYPE_MMC,
> > -			devnum, 512, 0, &bdev);
> > +			dev_seq(dev), 512, 0, &bdev);
> >  	if (ret) {
> >  		debug("Cannot create block device\n");
> >  		return ret;
> >  
> 



More information about the U-Boot mailing list