diff options
Diffstat (limited to 'arch/powerpc/lib')
-rw-r--r-- | arch/powerpc/lib/Makefile | 4 | ||||
-rw-r--r-- | arch/powerpc/lib/board.c | 13 |
2 files changed, 14 insertions, 3 deletions
diff --git a/arch/powerpc/lib/Makefile b/arch/powerpc/lib/Makefile index cec7666b44..724d8ee7f7 100644 --- a/arch/powerpc/lib/Makefile +++ b/arch/powerpc/lib/Makefile @@ -23,7 +23,7 @@ include $(TOPDIR)/config.mk -LIB = $(obj)lib$(ARCH).a +LIB = $(obj)lib$(ARCH).o SOBJS-y += ppccache.o SOBJS-y += ppcstring.o @@ -63,7 +63,7 @@ $(LIB): $(obj).depend $(OBJS) echo " Upgrade to a recent toolchain."; \ exit 1; \ fi; - $(AR) $(ARFLAGS) $@ $(OBJS) + $(call cmd_link_o_target, $(OBJS)) ######################################################################### diff --git a/arch/powerpc/lib/board.c b/arch/powerpc/lib/board.c index 2e0749da0a..9759e23a53 100644 --- a/arch/powerpc/lib/board.c +++ b/arch/powerpc/lib/board.c @@ -645,6 +645,17 @@ void board_init_r (gd_t *id, ulong dest_addr) gd->cpu += dest_addr - CONFIG_SYS_MONITOR_BASE; #endif +#ifdef CONFIG_SYS_EXTRA_ENV_RELOC + /* + * Some systems need to relocate the env_addr pointer early because the + * location it points to will get invalidated before env_relocate is + * called. One example is on systems that might use a L2 or L3 cache + * in SRAM mode and initialize that cache from SRAM mode back to being + * a cache in cpu_init_r. + */ + gd->env_addr += dest_addr - CONFIG_SYS_MONITOR_BASE; +#endif + #ifdef CONFIG_SERIAL_MULTI serial_initialize(); #endif @@ -694,7 +705,7 @@ void board_init_r (gd_t *id, ulong dest_addr) */ pci_init (); #endif -#if defined(CONFIG_BAB7xx) +#if defined(CONFIG_WINBOND_83C553) /* * Initialise the ISA bridge */ |