summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/ppc/init/ppc_main.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/arch/ppc/init/ppc_main.c b/src/arch/ppc/init/ppc_main.c
index 9853758ce4..268e21436a 100644
--- a/src/arch/ppc/init/ppc_main.c
+++ b/src/arch/ppc/init/ppc_main.c
@@ -21,6 +21,8 @@ void (*payload)(void) = (void (*)(void))_iseg;
* - start hardwaremain() which does remainder of setup
*/
+extern void flush_dcache(void);
+
void ppc_main(void)
{
unsigned *from;
@@ -40,5 +42,13 @@ void ppc_main(void)
*to++ = *from++;
}
+ /*
+ * Flush cache to memory because linux will try and
+ * invalidate it.
+ */
+ flush_dcache();
+
payload();
+
+ /* NOT REACHED */
}