ARM: tegra: rework boot scripts
authorStephen Warren <swarren@nvidia.com>
Wed, 5 Feb 2014 16:24:58 +0000 (09:24 -0700)
committerTom Warren <twarren@nvidia.com>
Wed, 5 Mar 2014 23:59:08 +0000 (16:59 -0700)
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@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
include/configs/tegra-common-post.h

index e1a3bbc6263662f87e3b34ee8f5fd85baced9ab9..3bf55ce428f204a6699a50798e5c5436fb44b8a1 100644 (file)
 #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"          \
+       \
+       "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 " " \