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

Heinrich Schuchardt xypron.glpk at gmx.de
Thu May 20 20:17:14 CEST 2021


On 20.05.21 18:55, Andre Przywara wrote:
> 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

I applied the patch in
https://lists.denx.de/pipermail/u-boot/2021-April/447472.html
and Debian boots like a charm.

Either using my pre-existing boot option

/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(2)/SD(0)/HD(1,MBR,0xb6b4facb,0x800,0x200000)/EFI\debian\grubarm.efi

Or using Debian's flash-kernel package.

As long as you don't have two mmc devices installed (SD-card + eMMC) I
would not expect any hickup due to the additional alias when using
distroboot.

Best regards

Heinrich

>
>
>>
>> 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