|
@@ -474,15 +474,15 @@ __after_prom_start:
|
|
*/
|
|
*/
|
|
li r3,0 /* target addr */
|
|
li r3,0 /* target addr */
|
|
#ifdef CONFIG_PPC_BOOK3E
|
|
#ifdef CONFIG_PPC_BOOK3E
|
|
- tovirt(r3,r3) /* on booke, we already run at PAGE_OFFSET */
|
|
|
|
|
|
+ tovirt(r3,r3) /* on booke, we already run at PAGE_OFFSET */
|
|
#endif
|
|
#endif
|
|
mr. r4,r26 /* In some cases the loader may */
|
|
mr. r4,r26 /* In some cases the loader may */
|
|
|
|
+#if defined(CONFIG_PPC_BOOK3E)
|
|
|
|
+ tovirt(r4,r4)
|
|
|
|
+#endif
|
|
beq 9f /* have already put us at zero */
|
|
beq 9f /* have already put us at zero */
|
|
li r6,0x100 /* Start offset, the first 0x100 */
|
|
li r6,0x100 /* Start offset, the first 0x100 */
|
|
/* bytes were copied earlier. */
|
|
/* bytes were copied earlier. */
|
|
-#ifdef CONFIG_PPC_BOOK3E
|
|
|
|
- tovirt(r6,r6) /* on booke, we already run at PAGE_OFFSET */
|
|
|
|
-#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_RELOCATABLE
|
|
#ifdef CONFIG_RELOCATABLE
|
|
/*
|
|
/*
|
|
@@ -514,6 +514,9 @@ __after_prom_start:
|
|
p_end: .llong _end - _stext
|
|
p_end: .llong _end - _stext
|
|
|
|
|
|
4: /* Now copy the rest of the kernel up to _end */
|
|
4: /* Now copy the rest of the kernel up to _end */
|
|
|
|
+#if defined(CONFIG_PPC_BOOK3E)
|
|
|
|
+ tovirt(r26,r26)
|
|
|
|
+#endif
|
|
addis r5,r26,(p_end - _stext)@ha
|
|
addis r5,r26,(p_end - _stext)@ha
|
|
ld r5,(p_end - _stext)@l(r5) /* get _end */
|
|
ld r5,(p_end - _stext)@l(r5) /* get _end */
|
|
5: bl copy_and_flush /* copy the rest */
|
|
5: bl copy_and_flush /* copy the rest */
|