From 6cfea33477b04b63ed47386ed1629529484c33ba Mon Sep 17 00:00:00 2001
From: Haiying Wang <Haiying.Wang@freescale.com>
Date: Wed, 10 May 2006 09:38:06 -0500
Subject: [PATCH] Remove unneeded INIT_RAM_LOCK cache twiddling. Correctly
 tracks r29 as global data pointer now.

Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com>
---
 board/mpc8641hpcn/mpc8641hpcn.c | 11 -----------
 common/cmd_bootm.c              |  4 ++--
 cpu/mpc86xx/start.S             |  5 +++--
 lib_ppc/board.c                 |  2 +-
 4 files changed, 6 insertions(+), 16 deletions(-)

diff --git a/board/mpc8641hpcn/mpc8641hpcn.c b/board/mpc8641hpcn/mpc8641hpcn.c
index ace6d47fde..d02a7eff3c 100644
--- a/board/mpc8641hpcn/mpc8641hpcn.c
+++ b/board/mpc8641hpcn/mpc8641hpcn.c
@@ -291,16 +291,5 @@ ft_board_setup(void *blob, bd_t *bd)
 }
 #endif
 
-void
-after_reloc(ulong dest_addr)
-{
-	DECLARE_GLOBAL_DATA_PTR;
-
-	/* now, jump to the main U-Boot board init code */
-	board_init_r ((gd_t *)gd, dest_addr);
-
-	/* NOTREACHED */
-}
-
 
 
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index fdf7180a19..e5d70fa202 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -809,7 +809,7 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
 
 #ifndef CONFIG_OF_FLAT_TREE
 
-#if defined(CFG_INIT_RAM_LOCK) && !defined(CONFIG_E500)
+#if defined(CFG_INIT_RAM_LOCK) && (!defined(CONFIG_E500) || !defined(CONFIG_MPC86xx))
 	unlock_ram_in_cache();
 #endif
 
@@ -827,7 +827,7 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
 	ft_setup(of_flat_tree, OF_FLAT_TREE_MAX_SIZE, kbd, initrd_start, initrd_end);
 	/* ft_dump_blob(of_flat_tree); */
 
-#if defined(CFG_INIT_RAM_LOCK) && !defined(CONFIG_E500)
+#if defined(CFG_INIT_RAM_LOCK) && (!defined(CONFIG_E500)||!defined(CONFIG_MPC86xx))
 	unlock_ram_in_cache();
 #endif
 	/*
diff --git a/cpu/mpc86xx/start.S b/cpu/mpc86xx/start.S
index 0a447a76b7..b96363151d 100644
--- a/cpu/mpc86xx/start.S
+++ b/cpu/mpc86xx/start.S
@@ -955,8 +955,9 @@ in_ram:
 	cmplw	0, r3, r4
 	bne	5b
 6:
-	mr	r3, r10		/* Destination Address		*/
-	bl	after_reloc
+	mr	r3, r9		/* Init Date pointer		*/
+	mr	r4, r10		/* Destination Address		*/
+	bl	board_init_r
 
 	/* not reached - end relocate_code */
 /*-----------------------------------------------------------------------*/
diff --git a/lib_ppc/board.c b/lib_ppc/board.c
index 126102bf96..c367b3ef9f 100644
--- a/lib_ppc/board.c
+++ b/lib_ppc/board.c
@@ -676,7 +676,7 @@ void board_init_r (gd_t *id, ulong dest_addr)
 	icache_enable ();	/* it's time to enable the instruction cache */
 #endif
 
-#if defined(CFG_INIT_RAM_LOCK) && defined(CONFIG_E500)
+#if defined(CFG_INIT_RAM_LOCK) && (defined(CONFIG_E500) || defined(CONFIG_MPC86xx))
 	unlock_ram_in_cache();	/* it's time to unlock D-cache in e500 */
 #endif
 
-- 
2.39.5