From: Tom Rini <trini@kernel.crashing.org>
When I was updating ppc/boot/simple/relocate.S to work on PPC_PREP systems, I
in advertantly broke 4xx systems. On classic PPC, the first three
instructions are nops, of which the first two can be overwritten. This is
not true of 4xx (or 8xx, but that's not working right now anyhow). The
following is needed to fix this.
/*
* Start at the begining.
*/
+#ifdef CONFIG_PPC_MULTIPLATFORM
li r9,0xc
mtlr r9
-#ifdef CONFIG_PPC_MULTIPLATFORM
/* tell kernel we're prep, by putting 0xdeadc0de at KERNELLOAD,
* and tell the kernel to start on the 4th instruction since we
* overwrite the first 3 sometimes (which are 'nop').
ori r10,r10,0xdeadc0de@l
li r9,0
stw r10,0(r9)
+#else
+ li r9,0
+ mtlr r9
#endif
blr