Skip to content
  • Vladimir Oltean's avatar
    2e6cde96
    arm64: dts: ls1028a: make the eMMC and SD card controllers use fixed indices · 2e6cde96
    Vladimir Oltean authored
    
    
    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: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Acked-by: default avatarMichael Walle <michael@walle.cc>
    Signed-off-by: default avatarShawn Guo <shawnguo@kernel.org>
    2e6cde96
    arm64: dts: ls1028a: make the eMMC and SD card controllers use fixed indices
    Vladimir Oltean authored
    
    
    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: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Acked-by: default avatarMichael Walle <michael@walle.cc>
    Signed-off-by: default avatarShawn Guo <shawnguo@kernel.org>
Loading