]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
km: update the boot script to check for a DTB
authorValentin Longchamp <valentin.longchamp@keymile.com>
Fri, 13 Nov 2015 15:15:20 +0000 (16:15 +0100)
committerTom Rini <trini@konsulko.com>
Wed, 18 Nov 2015 20:28:50 +0000 (15:28 -0500)
If a DTB is found with cramfsls, the bootscript continues as expected.
If none is found, the cramfsloadfdt and boot subbootcmds are updated to
not load the DTB from cramfs and not pass it to the kernel. The kernel
thus must have an appended DTB otherwise the boot will fail.

This is required for the km_kirkwood boards that must support .esw where
the DTB sometimes is appended (for backwards compatibility) and sometimes
is passed correctly (as we do now for all newer boards).

Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
include/configs/km/keymile-common.h
include/configs/km/km-powerpc.h
include/configs/km/km_arm.h
include/configs/km/kmp204x-common.h

index 2fc1ea8328cbd917a9ee069dabb66b1cae554597..91b29b35baeb1abdd0c9695f872e09b61d238a8c 100644 (file)
  * - 'release': for a standalone system                kernel/rootfs from flash
  */
 #define CONFIG_KM_DEF_ENV_BOOTTARGETS                                  \
-       "subbootcmds=ubiattach ubicopy cramfsloadfdt set_fdthigh "      \
-               "cramfsloadkernel flashargs add_default addpanic boot\0"\
+       "subbootcmds=ubiattach ubicopy checkfdt cramfsloadfdt "         \
+               "set_fdthigh cramfsloadkernel flashargs add_default "   \
+               "addpanic boot\0"                                       \
        "develop="                                                      \
                "tftp 200000 scripts/develop-${arch}.txt && "           \
                "env import -t 200000 ${filesize} && "                  \
index eb85a7491910b1038f941839ea2099974b0a9e9f..20ef03602760187d2741add0bbbe127335ff0ffc 100644 (file)
@@ -79,6 +79,7 @@
                "  ${filesize} && "                                     \
                "protect on " __stringify(BOOTFLASH_START) "  +${filesize}\0"\
        "set_fdthigh=true\0"                                            \
+       "checkfdt=true\0"                                               \
        ""
 
 #endif /* __CONFIG_KEYMILE_POWERPC_H */
index 77487ead5a61310b4144bc7758d1d64909820131..54aa6fb3b6c2a7465fb77a4cf2bb8464c26d5e3d 100644 (file)
        "u-boot="__stringify(CONFIG_HOSTNAME) "/u-boot.kwb\0"           \
        CONFIG_KM_UPDATE_UBOOT                                          \
        "set_fdthigh=setenv fdt_high ${kernelmem}\0"                    \
+       "checkfdt="                                                     \
+               "if cramfsls fdt_0x${IVM_BoardId}_0x${IVM_HWKey}.dtb; " \
+               "then true; else setenv cramfsloadfdt true; "           \
+               "setenv boot bootm ${load_addr_r}; "                    \
+               "echo No FDT found, booting with the kernel "           \
+               "appended one; fi\0"                                    \
        ""
 
 #define CONFIG_SKIP_LOWLEVEL_INIT      /* disable board lowlevel_init */
index 8a3c74e1dbcdb134649050d82d1b6472917b5fb3..e163edb1e862bba3c773d5311432513c0dcc8818 100644 (file)
@@ -457,6 +457,7 @@ int get_scl(void);
                "sf probe 0;sf erase 0 +${filesize};"                   \
                "sf write ${load_addr_r} 0 ${filesize};\0"              \
        "set_fdthigh=true\0"                                            \
+       "checkfdt=true\0"                                               \
        ""
 
 #define CONFIG_HW_ENV_SETTINGS                                         \