exynos5250: Clear the framebuffer before making it uncacheable.

If we clear the framebuffer and then flush it back to memory using cache
operations, the writes are going to be full cachelines at a time. If we make
it uncacheable first, the writes will be serialized writes of whatever sized
chunks memset uses, probably 4 bytes or less.

Change-Id: I1b81731cfed00ae091ba6357451ab186d16f559e
Signed-off-by: Gabe Black <gabeblack@chromium.org>
Reviewed-on: http://review.coreboot.org/3655
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/src/cpu/samsung/exynos5250/cpu.c b/src/cpu/samsung/exynos5250/cpu.c
index d2a6df7..3687ea8 100644
--- a/src/cpu/samsung/exynos5250/cpu.c
+++ b/src/cpu/samsung/exynos5250/cpu.c
@@ -97,6 +97,8 @@
 	lcdbase = (uintptr_t)cbmem_add(CBMEM_ID_CONSOLE, fb_size);
 	printk(BIOS_SPEW, "LCD framebuffer base is %p\n", (void *)(lcdbase));
 
+	memset((void *)lcdbase, 0, fb_size);	/* clear the framebuffer */
+
 	/*
 	 * We need to clean and invalidate the framebuffer region and disable
 	 * caching as well. We assume that our dcache <--> memory address
@@ -114,7 +116,6 @@
 	mmio_resource(dev, 1, lcdbase/KiB, (fb_size + KiB - 1)/KiB);
 	printk(BIOS_DEBUG,
 	       "Initializing Exynos VGA, base %p\n", (void *)lcdbase);
-	memset((void *)lcdbase, 0, fb_size);	/* clear the framebuffer */
 	ret = lcd_ctrl_init(fb_size, &panel, (void *)lcdbase);
 }