diff --git a/lib_ppc/board.c b/lib_ppc/board.c
index 8def520556973868ffe7abeb3b2a9782dff40ed5..6dd4d56ff32f9813e2a087a3d0c8ee43acd8917f 100644
--- a/lib_ppc/board.c
+++ b/lib_ppc/board.c
@@ -68,7 +68,7 @@
 #if defined(CONFIG_LOGBUFFER)
 #include <logbuff.h>
 #endif
-#if defined(CONFIG_SYS_INIT_RAM_LOCK)
+#if defined(CONFIG_SYS_INIT_RAM_LOCK) && defined(CONFIG_E500)
 #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)
-	unlock_ram_in_cache();	/* it's time to unlock D-cache */
+#if defined(CONFIG_SYS_INIT_RAM_LOCK) && defined(CONFIG_E500)
+	unlock_ram_in_cache();	/* it's time to unlock D-cache in e500 */
 #endif
 
 #if defined(CONFIG_BAB7xx) || defined(CONFIG_CPC45)
diff --git a/lib_ppc/bootm.c b/lib_ppc/bootm.c
index e7d2c983537dbb63b456a0db3a53bb198821dbd8..0d702bf25178670c2689006d17083c6fa2452ee3 100644
--- a/lib_ppc/bootm.c
+++ b/lib_ppc/bootm.c
@@ -38,6 +38,11 @@
 #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;
@@ -66,6 +71,10 @@ 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 */
 		/*