[U-Boot-Users] [PATCH 2/3] [new uImage] ppc: Determine if we are booting an OF style

If we are bootin OF style than we can skip setting up some things that are used for the old boot method.
Signed-off-by: Kumar Gala galak@kernel.crashing.org ---
patch against u-boot-testing new-image branch
lib_ppc/bootm.c | 25 ++++++++++++++++++++----- 1 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/lib_ppc/bootm.c b/lib_ppc/bootm.c index 1f1be69..5158ccc 100644 --- a/lib_ppc/bootm.c +++ b/lib_ppc/bootm.c @@ -71,8 +71,21 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag, bd_t *kbd; void (*kernel)(bd_t *, ulong, ulong, ulong, ulong);
+ int has_of = 0; + #if defined(CONFIG_OF_LIBFDT) char *of_flat_tree; + + /* determine if we are booting w/of */ + if (argc > 3) + has_of = 1; + if (image_check_type (hdr, IH_TYPE_MULTI)) { + ulong fdt_data, fdt_len; + image_multi_getimg (hdr, 2, &fdt_data, &fdt_len); + + if (fdt_len) + has_of = 1; + } #endif
/* @@ -90,12 +103,14 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag, alloc_current = sp_limit = get_boot_sp_limit(sp); debug ("=> set upper limit to 0x%08lx\n", sp_limit);
- /* allocate space and init command line */ - alloc_current = get_boot_cmdline (alloc_current, &cmd_start, &cmd_end); + if (!has_of) { + /* allocate space and init command line */ + alloc_current = get_boot_cmdline (alloc_current, &cmd_start, &cmd_end);
- /* allocate space for kernel copy of board info */ - alloc_current = get_boot_kbd (alloc_current, &kbd); - set_clocks_in_mhz(kbd); + /* allocate space for kernel copy of board info */ + alloc_current = get_boot_kbd (alloc_current, &kbd); + set_clocks_in_mhz(kbd); + }
/* find kernel */ kernel = (void (*)(bd_t *, ulong, ulong, ulong, ulong))image_get_ep (hdr);
participants (1)
-
Kumar Gala