diff options
-rw-r--r-- | arch/powerpc/lib/bootm.c | 20 | ||||
-rw-r--r-- | common/cmd_bootm.c | 3 |
2 files changed, 9 insertions, 14 deletions
diff --git a/arch/powerpc/lib/bootm.c b/arch/powerpc/lib/bootm.c index 1375474..8233f1f 100644 --- a/arch/powerpc/lib/bootm.c +++ b/arch/powerpc/lib/bootm.c @@ -174,16 +174,6 @@ void arch_lmb_reserve(struct lmb *lmb) return ; } -static void boot_prep_linux(void) -{ -#ifdef CONFIG_MP - /* if we are MP make sure to flush the dcache() to any changes are made - * visibile to all other cores */ - flush_dcache(); -#endif - return ; -} - static int boot_cmdline_linux(bootm_headers_t *images) { ulong of_size = images->ft_len; @@ -339,17 +329,19 @@ int do_bootm_linux(int flag, int argc, char * const argv[], bootm_headers_t *ima return 0; } - if (flag & BOOTM_STATE_OS_PREP) { - boot_prep_linux(); + /* + * We do nothing & report success to retain compatiablity with older + * versions of u-boot in which this use to flush the dcache on MP + * systems + */ + if (flag & BOOTM_STATE_OS_PREP) return 0; - } if (flag & BOOTM_STATE_OS_GO) { boot_jump_linux(images); return 0; } - boot_prep_linux(); ret = boot_body_linux(images); if (ret) return ret; diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 272d879..8909ee7 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -432,6 +432,9 @@ static int bootm_load_os(image_info_t os, ulong *load_end, int boot_progress) printf ("Unimplemented compression type %d\n", comp); return BOOTM_ERR_UNIMPLEMENTED; } + + flush_cache(load, (*load_end - load) * sizeof(ulong)); + puts ("OK\n"); debug (" kernel loaded at 0x%08lx, end = 0x%08lx\n", load, *load_end); if (boot_progress) |