]> git.sur5r.net Git - u-boot/commitdiff
omap3: evm: Explicitly use DISTRO_DEFAULTS features at startup
authorDerald D. Woods <woods.technical@gmail.com>
Wed, 29 Nov 2017 03:28:55 +0000 (03:28 +0000)
committerTom Rini <trini@konsulko.com>
Mon, 4 Dec 2017 15:23:53 +0000 (10:23 -0500)
[primary] Check MMC 0:1 for /extlinux/extlinux.conf and boot
[fallback 1] Check MMC 0:1 zImage and run mmcbootz
[fallback 2] Check MMC 0:1 uImage and run mmcboot
[fallback 3] Check NAND partitions and run nandboot

If 'extlinux.conf' is not found on MMC 0, the previous boot behavior is
followed.

Signed-off-by: Derald D. Woods <woods.technical@gmail.com>
configs/omap3_evm_defconfig
include/configs/omap3_evm.h

index f67bcb18953134309df56b2fd8b1238c1e260954..0c513664feaa8c81cd6b4c0ef602a692520fc378 100644 (file)
@@ -6,8 +6,8 @@ CONFIG_SYS_MALLOC_F_LEN=0x2000
 CONFIG_SYS_MPUCLK=720
 CONFIG_TARGET_OMAP3_EVM=y
 CONFIG_DISTRO_DEFAULTS=y
-# CONFIG_USE_BOOTCOMMAND is not set
 CONFIG_BOOTDELAY=3
+CONFIG_USE_BOOTCOMMAND=y
 CONFIG_SYS_CONSOLE_INFO_QUIET=y
 CONFIG_DEFAULT_FDT_FILE="omap3-evm.dtb"
 CONFIG_VERSION_VARIABLE=y
index df50325ab66da93688d95405ee23aae0409a304c..42f21536379b1238b96ac0c24e33b13e7f82fb5e 100644 (file)
 /* Environment */
 #define CONFIG_PREBOOT                  "usb start"
 
+#if !defined(CONFIG_SPL_BUILD)
+
+#include <config_distro_defaults.h>
+
+#define MEM_LAYOUT_ENV_SETTINGS \
+       DEFAULT_LINUX_BOOT_ENV
+
+#if defined(CONFIG_NAND)
+#define BOOTENV_DEV_NAND(devtypeu, devtypel, instance) \
+       "bootcmd_" #devtypel #instance "=" \
+       "run nandboot\0"
+
+#define BOOTENV_DEV_NAME_NAND(devtypeu, devtypel, instance) \
+       #devtypel #instance " "
+#endif /* CONFIG_NAND */
+
+#define BOOTENV_DEV_UIMAGE_MMC(devtypeu, devtypel, instance) \
+       "bootcmd_" #devtypel #instance "=" \
+               "setenv mmcdev " #instance"; " \
+               "run mmcboot\0"
+
+#define BOOTENV_DEV_NAME_UIMAGE_MMC(devtypeu, devtypel, instance) \
+       #devtypel #instance " "
+
+#define BOOTENV_DEV_ZIMAGE_MMC(devtypeu, devtypel, instance) \
+       "bootcmd_" #devtypel #instance "=" \
+               "setenv mmcdev " #instance"; " \
+               "run mmcbootz\0"
+
+#define BOOTENV_DEV_NAME_ZIMAGE_MMC(devtypeu, devtypel, instance) \
+       #devtypel #instance " "
+
+#define BOOT_TARGET_DEVICES(func) \
+       func(MMC, mmc, 0) \
+       func(ZIMAGE_MMC, zimage_mmc, 0) \
+       func(UIMAGE_MMC, uimage_mmc, 0) \
+       func(NAND, nand, 0)
+
+#include <config_distro_bootcmd.h>
+
 #define CONFIG_EXTRA_ENV_SETTINGS \
-       DEFAULT_LINUX_BOOT_ENV \
+       MEM_LAYOUT_ENV_SETTINGS \
+       "fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
        "mtdids=" CONFIG_MTDIDS_DEFAULT "\0" \
        "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
        "bootenv=uEnv.txt\0" \
        "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \
        "importbootenv=echo Importing environment from mmc ...; " \
                "env import -t ${loadaddr} ${filesize}\0" \
-       "bootscript=echo Running bootscript from mmc ...; " \
-               "source ${loadaddr}\0" \
+       "mmcbootenv=" \
+               "mmc dev ${mmcdev}; " \
+               "if mmc rescan && run loadbootenv; then " \
+                       "run importbootenv; " \
+                       "if test -n $uenvcmd; then " \
+                               "echo Running uenvcmd ...; " \
+                               "run uenvcmd; " \
+                       "fi; " \
+               "fi\0" \
        "loaduimage=setenv bootfile uImage; " \
                "fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
        "loadzimage=setenv bootfile zImage; " \
                "fatload mmc ${mmcdev} ${loadaddr} zImage\0" \
-       "loaddtb=fatload mmc ${mmcdev} ${fdtaddr} " CONFIG_DEFAULT_FDT_FILE "\0" \
-       "mmcboot=echo Booting ${bootfile} from mmc ...; " \
-               "run mmcargs; " \
-               "bootm ${loadaddr} - ${fdtaddr}\0" \
-       "mmcbootz=echo Booting ${bootfile} from mmc ...; " \
-               "run mmcargs; " \
-               "bootz ${loadaddr} - ${fdtaddr}\0" \
+       "loaddtb=fatload mmc ${mmcdev} ${fdtaddr} ${fdtfile}\0" \
+       "mmcboot=run mmcbootenv; " \
+               "if run loaduimage && run loaddtb; then " \
+                       "echo Booting ${bootfile} from mmc ...; " \
+                       "run mmcargs; " \
+                       "bootm ${loadaddr} - ${fdtaddr}; " \
+               "fi\0" \
+       "mmcbootz=run mmcbootenv; " \
+               "if run loadzimage && run loaddtb; then " \
+                       "echo Booting ${bootfile} from mmc ...; " \
+                       "run mmcargs; " \
+                       "bootz ${loadaddr} - ${fdtaddr};" \
+               "fi\0" \
        "nandboot=echo Booting uImage from nand ...; " \
                "run nandargs; " \
                "nand read ${loadaddr} kernel; " \
                "nand read ${fdtaddr} dtb; " \
-               "bootm ${loadaddr} - ${fdtaddr}\0"
+               "bootm ${loadaddr} - ${fdtaddr}\0" \
+       BOOTENV
 
-#define CONFIG_BOOTCOMMAND \
-       "mmc dev ${mmcdev}; if mmc rescan; then " \
-               "if run loadbootenv; then " \
-                       "run importbootenv; " \
-                       "if test -n $uenvcmd; then " \
-                               "echo Running uenvcmd ...; " \
-                               "run uenvcmd; " \
-                       "fi; " \
-               "else " \
-                       "if run loadzimage && run loaddtb; then " \
-                               "run mmcbootz; fi; " \
-                       "if run loaduimage && run loaddtb; then " \
-                               "run mmcboot; fi; " \
-                       "run nandboot; " \
-               "fi; " \
-       "else run nandboot; fi"
+#endif /* !CONFIG_SPL_BUILD */
 
 #endif /* __CONFIG_H */