am335x_evm: Rework bootcmd to handle two MMC devs
authorJustin Waters <justin.waters@timesys.com>
Thu, 11 Jul 2013 13:55:00 +0000 (09:55 -0400)
committerTom Rini <trini@ti.com>
Tue, 30 Jul 2013 13:21:42 +0000 (09:21 -0400)
The BeagleBone Black can boot from either the MMC card
or eMMC chip on board. We should try both interfaces.

This modification also allows a graceful fallback if
a device exists but boot images are not present on it.

Changes for v2:

* Fix boot partition - it should always show up as mmcblk0p2
* Fix missing FDT load

Signed-off-by: Justin Waters <justin.waters@timesys.com>
include/configs/am335x_evm.h

index b1d7f5f..049a8e4 100644 (file)
        "loadramdisk=load mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \
        "loaduimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
        "loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \
-       "mmcboot=echo Booting from mmc ...; " \
-               "run mmcargs; " \
-               "bootm ${loadaddr} - ${fdtaddr}\0" \
+       "mmcboot=mmc dev ${mmcdev}; " \
+               "if mmc rescan; then " \
+                       "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 loaduimage; then " \
+                               "run loadfdt;" \
+                               "run mmcargs; " \
+                               "bootm ${loadaddr} - ${fdtaddr};" \
+                       "fi;" \
+               "fi;\0" \
        "spiboot=echo Booting from spi ...; " \
                "run spiargs; " \
                "sf probe ${spibusno}:0; " \
 
 #define CONFIG_BOOTCOMMAND \
        "run findfdt; " \
-       "mmc dev ${mmcdev}; if mmc rescan; then " \
-               "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 loaduimage; then " \
-                       "run loadfdt;" \
-                       "run mmcboot;" \
-               "fi;" \
-       "else " \
-               "run nandboot;" \
-       "fi;" \
+       "run mmcboot;" \
+       "setenv mmcdev 1; " \
+       "setenv bootpart 1:2; " \
+       "run mmcboot;" \
+       "run nandboot;"
 
 /* Clock Defines */
 #define V_OSCK                         24000000  /* Clock output from T2 */