[U-Boot] [PATCH V4 2/3] ARM: tegra: rework boot scripts

Dennis Gilmore dennis at ausil.us
Thu Feb 13 12:13:22 CET 2014


Hi Stephen,

I noticed one issue

On Wed,  5 Feb 2014 09:24:58 -0700
Stephen Warren <swarren at wwwdotorg.org> wrote:

> From: Stephen Warren <swarren at nvidia.com>
> 
> Update the common Tegra boot scripts in the default environment to
> 
> a) Make use of the new "test -e" shell command to avoid some error
>    messages.
> 
> b) Allow booting using the sysboot command and extlinux.conf. This
>    allows easy creation of boot menus, and provides a simple interface
>    for distros to parameterize/configure the boot process.
> 
> Signed-off-by: Stephen Warren <swarren at nvidia.com>
> ---
> v4:
> * Prioritize extlinux.conf over boot.scr.uimg when searching; it makes
>   sense to use the cross-distro/-bootloader (hopeful) standard first.
> * Replace ; in the middle of echo'd text in boot scripts.
> * Add missing space between commands in boot scripts.
> * s/exists/test -e/ in commmit description.
> v3: s/exists/test -e/ in shell commands.
> v2: No change.
> ---
>  include/configs/tegra-common-post.h | 39
> ++++++++++++++++++++++++++++--------- 1 file changed, 30
> insertions(+), 9 deletions(-)
> 
> diff --git a/include/configs/tegra-common-post.h
> b/include/configs/tegra-common-post.h index
> e1a3bbc62636..3bf55ce428f2 100644 ---
> a/include/configs/tegra-common-post.h +++
> b/include/configs/tegra-common-post.h @@ -69,20 +69,41 @@
>  #define BOOTCMDS_COMMON \
>  	"rootpart=1\0" \
>  	\
> +	"do_script_boot="
> \
> +		"load ${devtype} ${devnum}:${rootpart}
> "                  \
> +			"${scriptaddr} ${prefix}${script};
> "              \
> +		"source
> ${scriptaddr}\0"                                  \
> +	\
>  	"script_boot="
> \
> -		"if load ${devtype} ${devnum}:${rootpart}
> "               \
> -				"${scriptaddr} ${prefix}${script};
> then " \
> -			"echo ${script} found!
> Executing ...;"            \
> -			"source
> ${scriptaddr};"                           \
> -		"fi;\0"
> \
> +		"for script in ${boot_scripts}; do
> "                      \
> +			"if test -e ${devtype} ${devnum}:${rootpart}
> "    \
> +					"${prefix}${script}; then
> "       \
> +				"echo Found U-Boot script
> "               \
> +					"${prefix}${script};
> "            \
> +				"run do_script_boot;
> "                    \
> +				"echo SCRIPT FAILED: continuing...;
> "     \
> +			"fi;
> "                                            \
> +		"done\0"
> \
> +	\
> +	"do_sysboot_boot="
> \
> +		"sysboot ${devtype} ${devnum}:${rootpart} any
> "           \
> +			"${scriptaddr}
> ${prefix}extlinux.conf\0"          \

extlinux config files are placed into an extlinux directory
you will need to use ${prefix}extlinux/extlinux.conf

> +	\
> +	"sysboot_boot="
> \
> +		"if test -e ${devtype} ${devnum}:${rootpart}
> "            \
> +				"${prefix}extlinux.conf; then
> "           \
> +			"echo Found extlinux config
> "                     \
> +				"${prefix}extlinux.conf;
> "                \
> +			"run do_sysboot_boot;
> "                           \
> +			"echo SCRIPT FAILED: continuing...;
> "             \
> +		"fi\0"
> \ \
>  	"scan_boot="
> \ "echo Scanning ${devtype} ${devnum}...; "                 \
>  		"for prefix in ${boot_prefixes}; do
> "                     \
> -			"for script in ${boot_scripts}; do
> "              \
> -				"run script_boot;
> "                       \
> -			"done;
> "                                          \
> -		"done;\0"
> \
> +			"run sysboot_boot;
> "                              \
> +			"run script_boot;
> "                               \
> +		"done\0"
> \ \
>  	"boot_targets=" \
>  		BOOT_TARGETS_MMC " " \

Dennis


More information about the U-Boot mailing list