diff mbox series

[U-Boot,1/5] colibri_imx7: use UUID for rootfs

Message ID 20190513091555.14037-1-igor.opaniuk@toradex.com
State Superseded
Delegated to: Stefano Babic
Headers show
Series [U-Boot,1/5] colibri_imx7: use UUID for rootfs | expand

Commit Message

Igor Opaniuk May 13, 2019, 9:15 a.m. UTC
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.

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

Comments

Marcel Ziswiler May 24, 2019, 7:46 a.m. UTC | #1
On Mon, 2019-05-13 at 12:15 +0300, Igor Opaniuk wrote:
> 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.
> 
> Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Acked-by: Marcel Ziswiler <marcel.ziswiler@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 \
diff mbox series

Patch

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 \