summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG3
-rw-r--r--cpu/mpc85xx/start.S5
-rw-r--r--lib_ppc/board.c4
3 files changed, 12 insertions, 0 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 1aec75d..2b44601 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,9 @@
Changes for U-Boot 1.1.4:
======================================================================
+* E500 update: repoint IVPR to RAM when code is relocated
+ Patch by Kylo Ginsberg, 13 Apr 2005
+
* Fix loop end test in lib_generic/string.c:strswab()
Patch by Andrew Dyer, October 10, 2005
Signed-off-by: Andrew Dyer <amdyer@gmail.com>
diff --git a/cpu/mpc85xx/start.S b/cpu/mpc85xx/start.S
index 5f75bc1..2f2bd3a 100644
--- a/cpu/mpc85xx/start.S
+++ b/cpu/mpc85xx/start.S
@@ -995,6 +995,11 @@ relocate_code:
7: sync /* Wait for all icbi to complete on bus */
isync
+ /*
+ * Re-point the IVPR at RAM
+ */
+ mtspr IVPR,r10
+
/*
* We are done. Do not return, instead branch to second part of board
* initialization, now running from RAM.
diff --git a/lib_ppc/board.c b/lib_ppc/board.c
index d1e294f..b1c6ab0 100644
--- a/lib_ppc/board.c
+++ b/lib_ppc/board.c
@@ -429,6 +429,10 @@ void board_init_f (ulong bootflag)
*/
addr -= len;
addr &= ~(4096 - 1);
+#ifdef CONFIG_E500
+ /* round down to next 64 kB limit so that IVPR stays aligned */
+ addr &= ~(65536 - 1);
+#endif
debug ("Reserving %ldk for U-Boot at: %08lx\n", len >> 10, addr);