[U-Boot] [PATCH 3/4] x86: theadorable-x86: Generate and pass root=PARTUUID instead of /dev/sdaX

Stefan Roese sr at denx.de
Mon Oct 22 12:07:55 UTC 2018


To enable the root device selection (kernel cmd-line) via PARTUUID, this
patch enables CMD_PART on all missing theadorable-x86 boards and
changes the default environment to generate the root=PARTUUID string
automatically.

This fixes problems that have been noticed on systems with multiple
SATA/AHCI controller connected via PCIe, where the device name for the
root device / partition (/dev/sdaX) was incorrect.

Signed-off-by: Stefan Roese <sr at denx.de>
---
 ...able-x86-conga-qa3-e3845-pcie-x4_defconfig |  1 +
 .../theadorable-x86-conga-qa3-e3845_defconfig |  1 +
 include/configs/theadorable-x86-common.h      | 35 +++++++++++--------
 3 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/configs/theadorable-x86-conga-qa3-e3845-pcie-x4_defconfig b/configs/theadorable-x86-conga-qa3-e3845-pcie-x4_defconfig
index a3865024e8..e9febb465b 100644
--- a/configs/theadorable-x86-conga-qa3-e3845-pcie-x4_defconfig
+++ b/configs/theadorable-x86-conga-qa3-e3845-pcie-x4_defconfig
@@ -26,6 +26,7 @@ CONFIG_CMD_CPU=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
+CONFIG_CMD_PART=y
 CONFIG_CMD_SF=y
 CONFIG_CMD_SPI=y
 CONFIG_CMD_USB=y
diff --git a/configs/theadorable-x86-conga-qa3-e3845_defconfig b/configs/theadorable-x86-conga-qa3-e3845_defconfig
index 8cd170feb7..ee3d7f01ab 100644
--- a/configs/theadorable-x86-conga-qa3-e3845_defconfig
+++ b/configs/theadorable-x86-conga-qa3-e3845_defconfig
@@ -25,6 +25,7 @@ CONFIG_CMD_CPU=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
+CONFIG_CMD_PART=y
 CONFIG_CMD_SF=y
 CONFIG_CMD_SPI=y
 CONFIG_CMD_USB=y
diff --git a/include/configs/theadorable-x86-common.h b/include/configs/theadorable-x86-common.h
index dd2bfb0a10..e0a033bec1 100644
--- a/include/configs/theadorable-x86-common.h
+++ b/include/configs/theadorable-x86-common.h
@@ -62,33 +62,40 @@
 		"then run swupdate;"				\
 		"else run yocto_boot;run swupdate;"		\
 		"fi\0"						\
+	"setroot=part uuid scsi 0:${partnr} uuid;"		\
+		"setenv root PARTUUID=${uuid}\0"		\
+	"setroot_ubuntu=setenv partnr ${ubuntu_part};run setroot\0" \
+	"setroot_yocto=setenv partnr ${yocto_part};run setroot\0" \
 	"ubuntu_args=setenv bootargs "				\
-		"root=/dev/sda${ubuntu_part} ro\0"		\
+		"root=${root} ro\0"				\
 	"ubuntu_args_quiet=setenv bootargs "			\
-		"root=/dev/sda${ubuntu_part} ro quiet\0"	\
+		"root=${root} ro quiet\0"			\
 	"ubuntu_load=load scsi 0:${ubuntu_part} 03000000 "	\
 		"/boot/vmlinuz-${kernel-ver};"			\
 		"load scsi 0:${ubuntu_part} 04000000 "		\
 		"/boot/initrd.img-${kernel-ver}\0"		\
-	"ubuntu_boot=run ubuntu_args_quiet addmtd addmisc "	\
-		"ubuntu_load boot\0"				\
-	"ubuntu_boot_console=run ubuntu_args addtty_ubuntu "	\
+	"ubuntu_boot=run setroot_ubuntu ubuntu_args_quiet "	\
 		"addmtd addmisc ubuntu_load boot\0"		\
-	"net_args=setenv bootargs root=/dev/sda${ubuntu_part} ro\0" \
-	"net_boot=run start_eth net_args addtty_yocto addmtd addmisc;" \
+	"ubuntu_boot_console=run setroot_ubuntu ubuntu_args "	\
+		"addtty_ubuntu addmtd addmisc ubuntu_load boot\0" \
+	"net_args=setenv bootargs root=${root} ro\0"		\
+	"net_boot=run start_eth setroot_ubuntu net_args "	\
+		"addtty_ubuntu addmtd addmisc;"			\
 		"tftp 03000000 ${tftpdir}/bzImage;"		\
 		"load scsi 0:${ubuntu_part} 04000000 "		\
 		"/boot/initrd.img-${kernel-ver};"		\
 		"run boot\0"					\
-	"yocto_args=setenv bootargs root=/dev/sda${yocto_part} " \
-		"panic=1\0"				\
-	"yocto_args_fast=setenv bootargs root=/dev/sda${yocto_part} " \
+	"yocto_args=setenv bootargs root=${root} "		\
+		"panic=1\0"					\
+	"yocto_args_fast=setenv bootargs root=${root} "		\
 		"quiet panic=1\0"				\
-	"yocto_boot=run yocto_args addmtd addmisc addtty_yocto;" \
+	"yocto_boot=run setroot_yocto yocto_args addmtd addmisc " \
+		"addtty_yocto;"	\
 		"if run yocto_load;then zboot 03000000;fi\0"	\
-	"yocto_boot_fast=run yocto_args_fast addmtd addmisc "	\
-		"addtty_yocto yocto_load;zboot 03000000\0"	\
-	"yocto_boot_tftp=run yocto_args addmtd addmisc addtty_yocto " \
+	"yocto_boot_fast=run setroot_yocto yocto_args_fast addmtd " \
+		"addmisc addtty_yocto yocto_load;zboot 03000000\0" \
+	"yocto_boot_tftp=run setroot_yocto yocto_args addmtd "	\
+		"addmisc addtty_yocto "				\
 		"start_eth yocto_load_tftp;zboot 03000000\0"	\
 	"yocto_kernel=bzImage\0"				\
 	"yocto_load=load scsi 0:${yocto_part} 03000000 "	\
-- 
2.19.1



More information about the U-Boot mailing list