From c762e55fc9324299f993be7c4e1dfd56d07b3103 Mon Sep 17 00:00:00 2001 From: Greg Watson Date: Sun, 7 Mar 2004 17:38:43 +0000 Subject: fix caching problem git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1382 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/arch/ppc/boot/boot.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/arch/ppc/boot/boot.c') diff --git a/src/arch/ppc/boot/boot.c b/src/arch/ppc/boot/boot.c index 860576370b..1a1d982fc8 100644 --- a/src/arch/ppc/boot/boot.c +++ b/src/arch/ppc/boot/boot.c @@ -72,6 +72,13 @@ void jmp_to_elf_entry(void *entry, unsigned long buffer) void (*kernel_entry)(void); kernel_entry = entry; + /* + * Kernel will invalidate and disable dcache immediately on + * entry. This is bad if we've been using it, which we + * have. Make sure it is flushed to memory. + */ + flush_dcache(); + /* On ppc we don't currently support loading over LinuxBIOS. * So ignore the buffer. */ @@ -79,5 +86,3 @@ void jmp_to_elf_entry(void *entry, unsigned long buffer) /* Jump to kernel */ kernel_entry(); } - - -- cgit v1.2.3