[PATCH v2 0/4] Patches to allow consistent mmc / mmcblk numbering w/ device tree

Russell King - ARM Linux admin linux at armlinux.org.uk
Sun Mar 17 09:59:57 PDT 2019


On Sun, Mar 17, 2019 at 04:48:24PM +0000, Måns Rullgård wrote:
> Stefan Agner <stefan at agner.ch> writes:
> 
> > On 16.03.2019 16:39, Russell King - ARM Linux admin wrote:
> >> On Sat, Mar 16, 2019 at 01:33:58PM +0100, Marek Vasut wrote:
> >>> If you have a FS or partition table there, it does.
> >>> If you don't, I agree ... that's a problem.
> >> 
> >> eMMC boot partitions are called mmcblkXbootY, and unless you have more
> >> than one eMMC device on the system, they can be found either by looking
> >> for /dev/mmcblk*boot* or by querying udev.  The advantage of using udev
> >> is you can discover the physical device behind it by looking at DEVPATH,
> >> ID_PATH, etc, but you may not have that installed on an embedded device.
> >> 
> >> However, as I say, just looking for /dev/mmcblk*boot* is sufficient to
> >> find the eMMC boot partitions where there is just one eMMC device
> >> present (which seems to be the standard setup.)
> >> 
> >>> > I don't care the slightest what the numbering is, as long as it is
> >>> > stable.  On some hardware, with an unpatched kernel, the mmc device
> >>> > numbering changes depending on whether or not an SD card is inserted on
> >>> > boot.  Getting rid of that behaviour is really all I want.
> >>>
> >>> Agreed, that would be an improvement.
> >> 
> >> The mmc device numbering was tied to the mmc host numbering a while back
> >> and the order that the hosts are probed should be completely independent
> >> of whether a card is inserted or not:
> >> 
> >>         snprintf(md->disk->disk_name, sizeof(md->disk->disk_name),
> >>                  "mmcblk%u%s", card->host->index, subname ? subname : "");
> >> 
> >>         snprintf(rpmb_name, sizeof(rpmb_name),
> >>                  "mmcblk%u%s", card->host->index, subname ? subname : "");
> >> 
> >> I suspect that Mans is quoting something from the dim and distant past
> >> to confuse the issue - as shown above, it is now dependent on the host
> >> numbering order not the order in which cards are inserted.
> >
> > Commit 9aaf3437aa72 ("mmc: block: Use the mmc host device index as the
> > mmcblk device index") which came in with v4.6 enables constant mmc block
> > device numbering. I can confirm that it works nicely, and it improved
> > the situation a lot.
> 
> That's the answer I was looking for.  I guess we can drop these patches
> from our kernels then.
> 
> > That being said, we still use a patch downstream which allows
> > renumbering using an alias. We deal with a bunch of different boards
> > with different SoC's. I have a couple of SD cards with various rootfs
> > and use internal eMMC boot quite often as well. Remembering which board
> > uses which numbering is a pain. Maintaining a patch is just easier...
> > Furthermore, U-Boot allows reordering and all boards I deal with use mmc
> > 0 for the internal eMMC. The aliases allow consistency.
> 
> Since pretty much every other device type supports renumbering with DT
> aliases, it would make sense to do this for mmc as well.

SATA does not.  SCSI devices, whether they are disks, cdroms, tape
drives or whatever have always been allocated dynamically in the
order that they are discovered.

Ethernet also does not, and davem remains opposed the idea of fixed
allocation in the kernel.

It's only a minority that demand fixed enumeration of devices.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up



More information about the linux-arm-kernel mailing list