km: update the boot script to check for a DTB
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>
This commit is contained in:
parent
7f70460eec
commit
c6d32dfd99
4 changed files with 11 additions and 2 deletions
|
@ -141,8 +141,9 @@
|
|||
* - '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} && " \
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
" ${filesize} && " \
|
||||
"protect on " __stringify(BOOTFLASH_START) " +${filesize}\0"\
|
||||
"set_fdthigh=true\0" \
|
||||
"checkfdt=true\0" \
|
||||
""
|
||||
|
||||
#endif /* __CONFIG_KEYMILE_POWERPC_H */
|
||||
|
|
|
@ -82,6 +82,12 @@
|
|||
"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 */
|
||||
|
|
|
@ -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 \
|
||||
|
|
Loading…
Reference in a new issue