Skip to content

Commit

Permalink
arm64: dts: ls1028a: make the eMMC and SD card controllers use fixed …
Browse files Browse the repository at this point in the history
…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.

The NXP development boards are typically shipped with either
- LSDK, which uses "root=UUID=", or
- OpenIL, which uses "root=/dev/mmcblkNp2"

So for OpenIL, let's preserve that old behavior by adding some aliases
which create naming consistency (for LSDK it doesn't matter):
- the SD card controller uses /dev/mmcblk0
- the eMMC controller uses /dev/mmcblk1

For the Kontron SL28 boards, Michael Walle says that they are shipped
with "root=UUID=" already, so the probing order doesn't matter, but it
is more natural to him for /dev/mmcblk0 to be the eMMC, so let's do it
the other way around there.

The aliases are parsed by mmc_alloc_host() in drivers/mmc/core/host.c.

Cc: Ashish Kumar <Ashish.Kumar@nxp.com>
Cc: Yangbo Lu <yangbo.lu@nxp.com>
Cc: Michael Walle <michael@walle.cc>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Acked-by: Michael Walle <michael@walle.cc>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
  • Loading branch information
Vladimir Oltean authored and Shawn Guo committed Dec 1, 2020
1 parent 64d8111 commit 2e6cde9
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 0 deletions.
2 changes: 2 additions & 0 deletions arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
serial2 = &lpuart1;
spi0 = &fspi;
spi1 = &dspi2;
mmc0 = &esdhc1;
mmc1 = &esdhc;
};

buttons0 {
Expand Down
2 changes: 2 additions & 0 deletions arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
gpio2 = &gpio3;
serial0 = &duart0;
serial1 = &duart1;
mmc0 = &esdhc;
mmc1 = &esdhc1;
};

chosen {
Expand Down
2 changes: 2 additions & 0 deletions arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
crypto = &crypto;
serial0 = &duart0;
serial1 = &duart1;
mmc0 = &esdhc;
mmc1 = &esdhc1;
};

chosen {
Expand Down

0 comments on commit 2e6cde9

Please sign in to comment.