Hi Vladimir, I have already upstreamed a patch for all affected layerscape boards. https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git/commit/?h=imx/dt64&id=342ab37ecaf8c1b10dd3ca9a1271db29a6af0705 Please check whether it works for you. Thanks. Best regards, Yangbo Lu > -----Original Message----- > From: Vladimir Oltean <vladimir.oltean@xxxxxxx> > Sent: Thursday, November 19, 2020 11:50 PM > To: Shawn Guo <shawnguo@xxxxxxxxxx>; Leo Li <leoyang.li@xxxxxxx>; Rob > Herring <robh+dt@xxxxxxxxxx>; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; > devicetree@xxxxxxxxxxxxxxx > Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>; Ulf Hansson > <ulf.hansson@xxxxxxxxxx>; linux-mmc@xxxxxxxxxxxxxxx; > linux-kernel@xxxxxxxxxxxxxxx; Ashish Kumar <ashish.kumar@xxxxxxx>; Y.b. Lu > <yangbo.lu@xxxxxxx>; Michael Walle <michael@xxxxxxxx> > Subject: [PATCH] arm64: dts: ls1028a: make the eMMC and SD card > controllers use fixed indices > > As the boot order in the kernel continues to change, sometimes it may > happen that the eSDHC controller mmc@2150000 (the one for eMMC) gets > probed before the one at mmc@2140000 (for external SD cards). The effect > is that the eMMC controller gets the /dev/mmcblk0 name, and the SD card > gets /dev/mmcblk1. > > Since the introduction of this SoC, that has never happened in practice, > even though it was never guaranteed in theory. Setting > "root=/dev/mmcblk0p2" in /proc/cmdline has always caused the kernel to > use the second partition from the SD card as the rootfs. > > Preserve that old behavior by adding some aliases which create naming > consistency: > - the SD card controller uses /dev/mmcblk0 > - the eMMC controller uses /dev/mmcblk1 > > The aliases are parsed by mmc_alloc_host() in drivers/mmc/core/host.c. > > Cc: Ashish Kumar <Ashish.Kumar@xxxxxxx> > Cc: Yangbo Lu <yangbo.lu@xxxxxxx> > Cc: Michael Walle <michael@xxxxxxxx> > Signed-off-by: Vladimir Oltean <vladimir.oltean@xxxxxxx> > --- > arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts | 2 ++ > arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 2 ++ > arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts | 2 ++ > 3 files changed, 6 insertions(+) > > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts > b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts > index 8161dd237971..7d292999f8da 100644 > --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts > +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts > @@ -23,6 +23,8 @@ aliases { > serial2 = &lpuart1; > spi0 = &fspi; > spi1 = &dspi2; > + mmc0 = &esdhc; > + mmc1 = &esdhc1; > }; > > buttons0 { > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts > b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts > index 13cdc958ba3e..c0786b713791 100644 > --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts > +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts > @@ -23,6 +23,8 @@ aliases { > gpio2 = &gpio3; > serial0 = &duart0; > serial1 = &duart1; > + mmc0 = &esdhc; > + mmc1 = &esdhc1; > }; > > chosen { > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts > b/arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts > index 1efb61cff454..c1d1ba459307 100644 > --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts > +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts > @@ -19,6 +19,8 @@ aliases { > crypto = &crypto; > serial0 = &duart0; > serial1 = &duart1; > + mmc0 = &esdhc; > + mmc1 = &esdhc1; > }; > > chosen { > -- > 2.25.1