From: Igor Opaniuk <igor.opan...@toradex.com>

Replace usage of "/dev/mmcblk*p*" with a proper UUID of rootfs
partition. This fixes the issue, when MMC controllers are probed in
a different order in U-boot and Linux kernel.

Acked-by: Marcel Ziswiler <marcel.ziswi...@toradex.com>
Signed-off-by: Igor Opaniuk <igor.opan...@toradex.com>
---
 include/configs/colibri_imx7.h | 47 ++++++++++++++++++++--------------
 1 file changed, 28 insertions(+), 19 deletions(-)

diff --git a/include/configs/colibri_imx7.h b/include/configs/colibri_imx7.h
index 5a4b9801cb..8bc75aba59 100644
--- a/include/configs/colibri_imx7.h
+++ b/include/configs/colibri_imx7.h
@@ -51,14 +51,22 @@
 #define CONFIG_SERVERIP                        192.168.10.1
 
 #define EMMC_BOOTCMD \
-       "emmcargs=ip=off root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait\0" \
-       "emmcboot=run setup; " \
+       "set_emmcargs=setenv emmcargs ip=off root=PARTUUID=${uuid} ro " \
+               "rootfstype=ext4 rootwait\0" \
+       "emmcboot=run setup; run emmcfinduuid; run set_emmcargs; " \
                "setenv bootargs ${defargs} ${emmcargs} ${setupargs} " \
                "${vidargs}; echo Booting from internal eMMC chip...; " \
                "run m4boot && " \
-               "load mmc 0:1 ${fdt_addr_r} 
${soc}-colibri-emmc-${fdt_board}.dtb && " \
-               "load mmc 0:1 ${kernel_addr_r} ${boot_file} && " \
-               "run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0"
+               "load mmc ${emmcdev}:${emmcbootpart} ${fdt_addr_r} " \
+               "${soc}-colibri-emmc-${fdt_board}.dtb && " \
+               "load mmc ${emmcdev}:${emmcbootpart} ${kernel_addr_r} " \
+               "${boot_file} && run fdt_fixup && " \
+               "bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
+       "emmcbootpart=1\0" \
+       "emmcdev=0\0" \
+       "emmcfinduuid=part uuid mmc ${emmcdev}:${emmcrootpart} uuid\0" \
+       "emmcrootpart=2\0"
+
 
 #define MEM_LAYOUT_ENV_SETTINGS \
        "bootm_size=0x10000000\0" \
@@ -69,24 +77,25 @@
        "ramdisk_addr_r=0x82100000\0"
 
 #if defined(CONFIG_TARGET_COLIBRI_IMX7_NAND)
-#define SD_BOOTCMD \
-       "sdargs=root=/dev/mmcblk0p2 ro rootwait\0" \
-       "sdboot=run setup; setenv bootargs ${defargs} ${sdargs} " \
-       "${setupargs} ${vidargs}; echo Booting from MMC/SD card...; " \
-       "run m4boot && " \
-       "load mmc 0:1 ${kernel_addr_r} ${kernel_file} && " \
-       "load mmc 0:1 ${fdt_addr_r} ${soc}-colibri-${fdt_board}.dtb && " \
-       "run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0"
+#define SD_BOOTDEV 0
 #elif defined(CONFIG_TARGET_COLIBRI_IMX7_EMMC)
+#define SD_BOOTDEV 1
+#endif
+
 #define SD_BOOTCMD \
-       "sdargs=root=/dev/mmcblk1p2 ro rootwait\0" \
-       "sdboot=run setup; setenv bootargs ${defargs} ${sdargs} " \
+       "set_sdargs=setenv sdargs root=PARTUUID=${uuid} ro rootwait\0" \
+       "sdboot=run setup; run sdfinduuid; run set_sdargs; " \
+       "setenv bootargs ${defargs} ${sdargs} " \
        "${setupargs} ${vidargs}; echo Booting from MMC/SD card...; " \
        "run m4boot && " \
-       "load mmc 1:1 ${kernel_addr_r} ${kernel_file} && " \
-       "load mmc 1:1 ${fdt_addr_r} ${soc}-colibri-${fdt_board}.dtb && " \
-       "run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0"
-#endif
+       "load mmc ${sddev}:${sdbootpart} ${kernel_addr_r} ${kernel_file} && " \
+       "load mmc ${sddev}:${sdbootpart} ${fdt_addr_r} " \
+       "${soc}-colibri-${fdt_board}.dtb && " \
+       "run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
+       "sdbootpart=1\0" \
+       "sddev=" __stringify(SD_BOOTDEV) "\0" \
+       "sdfinduuid=part uuid mmc ${sddev}:${sdrootpart} uuid\0" \
+       "sdrootpart=2\0"
 
 
 #define NFS_BOOTCMD \
-- 
2.17.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to