[U-Boot] [PATCH 1/3] config_distro_bootcmd.h: Use a private variable for bootpart

Sjoerd Simons sjoerd.simons at collabora.co.uk
Fri Aug 28 15:01:54 CEST 2015


Hush has an oddity where using ${var} causes var to resolved in the the global
address space (iotw the environment) first and only afterwards will the local
variable space be searched.

This causes odd side-effects when iterating over the boot partitions
using ${bootpart} if the environment also has a bootpart variable (e.g. for
the various TI boards). Fix this by using the hopefully more unique
${distro_bootpart} instead of ${bootpart}.

Signed-off-by: Sjoerd Simons <sjoerd.simons at collabora.co.uk>
---

 include/config_distro_bootcmd.h | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h
index 3a360ca4..d2f49a1 100644
--- a/include/config_distro_bootcmd.h
+++ b/include/config_distro_bootcmd.h
@@ -191,11 +191,12 @@
 	BOOTENV_BOOT_TARGETS \
 	\
 	"boot_extlinux="                                                  \
-		"sysboot ${devtype} ${devnum}:${bootpart} any "           \
+		"sysboot ${devtype} ${devnum}:${distro_bootpart} any "    \
 			"${scriptaddr} ${prefix}extlinux/extlinux.conf\0" \
 	\
 	"scan_dev_for_extlinux="                                          \
-		"if test -e ${devtype} ${devnum}:${bootpart} "            \
+		"if test -e ${devtype} "                                  \
+				"${devnum}:${distro_bootpart} "           \
 				"${prefix}extlinux/extlinux.conf; then "  \
 			"echo Found ${prefix}extlinux/extlinux.conf; "    \
 			"run boot_extlinux; "                             \
@@ -203,13 +204,14 @@
 		"fi\0"                                                    \
 	\
 	"boot_a_script="                                                  \
-		"load ${devtype} ${devnum}:${bootpart} "                  \
+		"load ${devtype} ${devnum}:${distro_bootpart} "           \
 			"${scriptaddr} ${prefix}${script}; "              \
 		"source ${scriptaddr}\0"                                  \
 	\
 	"scan_dev_for_scripts="                                           \
 		"for script in ${boot_scripts}; do "                      \
-			"if test -e ${devtype} ${devnum}:${bootpart} "    \
+			"if test -e ${devtype} "                          \
+					"${devnum}:${distro_bootpart} "   \
 					"${prefix}${script}; then "       \
 				"echo Found U-Boot script "               \
 					"${prefix}${script}; "            \
@@ -219,7 +221,8 @@
 		"done\0"                                                  \
 	\
 	"scan_dev_for_boot="                                              \
-		"echo Scanning ${devtype} ${devnum}:${bootpart}...; "     \
+		"echo Scanning ${devtype} "                               \
+				"${devnum}:${distro_bootpart}...; "       \
 		"for prefix in ${boot_prefixes}; do "                     \
 			"run scan_dev_for_extlinux; "                     \
 			"run scan_dev_for_scripts; "                      \
@@ -228,8 +231,9 @@
 	"scan_dev_for_boot_part="                                         \
 		"part list ${devtype} ${devnum} -bootable devplist; "     \
 		"env exists devplist || setenv devplist 1; "              \
-		"for bootpart in ${devplist}; do "                        \
-			"if fstype ${devtype} ${devnum}:${bootpart} "     \
+		"for distro_bootpart in ${devplist}; do "                 \
+			"if fstype ${devtype} "                           \
+					"${devnum}:${distro_bootpart} "   \
 					"bootfstype; then "               \
 				"run scan_dev_for_boot; "                 \
 			"fi; "                                            \
-- 
2.5.0



More information about the U-Boot mailing list