ppc: Unlock cache-as-ram in a consistent manner

Previously, non-e500 architectures only unlocked their data cache which
was used as early RAM when booting to Linux using the "bootm" command.
This change causes all PPC boards with CONFIG_SYS_INIT_RAM_LOCK defined
to unlock their data cache during U-Boot's initialization.  This
improves U-Boot performance and provides a common cache state when
booting to different OSes.

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
master
Peter Tyser 15 years ago committed by Wolfgang Denk
parent 4fb799aeaf
commit 982adfc610
  1. 6
      lib_ppc/board.c
  2. 9
      lib_ppc/bootm.c

@ -68,7 +68,7 @@
#if defined(CONFIG_LOGBUFFER)
#include <logbuff.h>
#endif
#if defined(CONFIG_SYS_INIT_RAM_LOCK) && defined(CONFIG_E500)
#if defined(CONFIG_SYS_INIT_RAM_LOCK)
#include <asm/cache.h>
#endif
#ifdef CONFIG_PS2KBD
@ -754,8 +754,8 @@ void board_init_r (gd_t *id, ulong dest_addr)
icache_enable (); /* it's time to enable the instruction cache */
#endif
#if defined(CONFIG_SYS_INIT_RAM_LOCK) && defined(CONFIG_E500)
unlock_ram_in_cache(); /* it's time to unlock D-cache in e500 */
#if defined(CONFIG_SYS_INIT_RAM_LOCK)
unlock_ram_in_cache(); /* it's time to unlock D-cache */
#endif
#if defined(CONFIG_BAB7xx) || defined(CONFIG_CPC45)

@ -38,11 +38,6 @@
#include <fdt.h>
#include <libfdt.h>
#include <fdt_support.h>
#endif
#ifdef CONFIG_SYS_INIT_RAM_LOCK
#include <asm/cache.h>
#endif
DECLARE_GLOBAL_DATA_PTR;
@ -71,10 +66,6 @@ static void boot_jump_linux(bootm_headers_t *images)
show_boot_progress (15);
#if defined(CONFIG_SYS_INIT_RAM_LOCK) && !defined(CONFIG_E500)
unlock_ram_in_cache();
#endif
#if defined(CONFIG_OF_LIBFDT)
if (of_flat_tree) { /* device tree; boot new style */
/*

Loading…
Cancel
Save