Add support for distro_bootcmd on MMC and fall back to prior 
behavior if distro_bootcmd fails.

Tested on Beagleboad xM to boot GRUB2 (and then Linux kernel) in EFI mode 
from MMC.

Signed-off-by: Guillaume GARDET <guillaume.gar...@free.fr>
Cc: Tom Rini <tr...@konsulko.com>

---
 include/configs/omap3_beagle.h | 76 ++++++++++++++++++++++++------------------
 1 file changed, 43 insertions(+), 33 deletions(-)

diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
index 8a69a5f..9850aa6 100644
--- a/include/configs/omap3_beagle.h
+++ b/include/configs/omap3_beagle.h
@@ -104,11 +104,52 @@
 #define CONFIG_SYS_MAX_NAND_DEVICE     1               /* Max number of NAND */
                                                        /* devices */
 
+#define BOOT_TARGET_DEVICES(func) \
+       func(MMC, mmc, 0)
+
+#define CONFIG_BOOTCOMMAND \
+       "run findfdt; " \
+       "run distro_bootcmd; " \
+       "mmc dev ${mmcdev}; if mmc rescan; then " \
+               "if run userbutton; then " \
+                       "setenv bootenv uEnv.txt;" \
+               "else " \
+                       "setenv bootenv user.txt;" \
+               "fi;" \
+               "echo SD/MMC found on device ${mmcdev};" \
+               "if run loadbootenv; then " \
+                       "echo Loaded environment from ${bootenv};" \
+                       "run importbootenv;" \
+               "fi;" \
+               "if test -n $uenvcmd; then " \
+                       "echo Running uenvcmd ...;" \
+                       "run uenvcmd;" \
+               "fi;" \
+               "if run loadbootscript; then " \
+                       "run bootscript; " \
+               "else " \
+                       "if run loadimage; then " \
+                               "run mmcboot;" \
+                       "fi;" \
+               "fi; " \
+       "fi;" \
+       "run nandboot;" \
+       "setenv bootfile zImage;" \
+       "if run loadimage; then " \
+               "run loadfdt;" \
+               "run mmcbootz; " \
+       "fi; " \
+
+#include <config_distro_bootcmd.h>
+
 #define CONFIG_EXTRA_ENV_SETTINGS \
        "loadaddr=0x80200000\0" \
+       "kernel_addr_r=0x80200000\0" \
        "rdaddr=0x81000000\0" \
+       "initrd_addr_r=0x81000000\0" \
        "fdt_high=0xffffffff\0" \
        "fdtaddr=0x80f80000\0" \
+       "fdt_addr_r=0x80f80000\0" \
        "usbtty=cdc_acm\0" \
        "bootfile=uImage\0" \
        "ramdisk=ramdisk.gz\0" \
@@ -203,39 +244,8 @@
        "userbutton=if gpio input 173; then run userbutton_xm; " \
                "else run userbutton_nonxm; fi;\0" \
        "userbutton_xm=gpio input 4;\0" \
-       "userbutton_nonxm=gpio input 7;\0"
-/* "run userbutton" will return 1 (false) if pressed and 0 (true) if not */
-#define CONFIG_BOOTCOMMAND \
-       "run findfdt; " \
-       "mmc dev ${mmcdev}; if mmc rescan; then " \
-               "if run userbutton; then " \
-                       "setenv bootenv uEnv.txt;" \
-               "else " \
-                       "setenv bootenv user.txt;" \
-               "fi;" \
-               "echo SD/MMC found on device ${mmcdev};" \
-               "if run loadbootenv; then " \
-                       "echo Loaded environment from ${bootenv};" \
-                       "run importbootenv;" \
-               "fi;" \
-               "if test -n $uenvcmd; then " \
-                       "echo Running uenvcmd ...;" \
-                       "run uenvcmd;" \
-               "fi;" \
-               "if run loadbootscript; then " \
-                       "run bootscript; " \
-               "else " \
-                       "if run loadimage; then " \
-                               "run mmcboot;" \
-                       "fi;" \
-               "fi; " \
-       "fi;" \
-       "run nandboot;" \
-       "setenv bootfile zImage;" \
-       "if run loadimage; then " \
-               "run loadfdt;" \
-               "run mmcbootz; " \
-       "fi; " \
+       "userbutton_nonxm=gpio input 7;\0" \
+       BOOTENV
 
 /*
  * OMAP3 has 12 GP timers, they can be driven by the system clock
-- 
1.8.4.5

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to