summary refs log tree commit diff
path: root/arch/powerpc/boot/virtex405-head.S
diff options
context:
space:
mode:
authorGrant Likely <grant.likely@secretlab.ca>2008-03-19 04:07:43 +1100
committerJosh Boyer <jwboyer@linux.vnet.ibm.com>2008-04-02 20:36:11 -0500
commitd2477b5cc8ca95b8c15133ffbbebf0bd9783f560 (patch)
treebd0dd171e8614634b97fc3e02d22fe0152d308b4 /arch/powerpc/boot/virtex405-head.S
parent19a74263f49dce2b96e2213f7f4c029cedbbf0ce (diff)
downloadlinux-d2477b5cc8ca95b8c15133ffbbebf0bd9783f560.tar.gz
[POWERPC] bootwrapper: Add a firmware-independent simpleboot target.
This target produces a flat binary rather than an ELF file,
fixes the entry point at the beginning of the image, and takes
a complete device tree with no fixups needed.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Diffstat (limited to 'arch/powerpc/boot/virtex405-head.S')
-rw-r--r--arch/powerpc/boot/virtex405-head.S30
1 files changed, 30 insertions, 0 deletions
diff --git a/arch/powerpc/boot/virtex405-head.S b/arch/powerpc/boot/virtex405-head.S
new file mode 100644
index 000000000000..3edb13f94669
--- /dev/null
+++ b/arch/powerpc/boot/virtex405-head.S
@@ -0,0 +1,30 @@
+#include "ppc_asm.h"
+
+	.text
+	.global _zimage_start
+_zimage_start:
+
+	/* PPC errata 213: needed by Virtex-4 FX */
+	mfccr0  0
+	oris    0,0,0x50000000@h
+	mtccr0  0
+
+	/*
+	 * Invalidate the data cache if the data cache is turned off.
+	 * - The 405 core does not invalidate the data cache on power-up
+	 *   or reset but does turn off the data cache. We cannot assume
+	 *   that the cache contents are valid.
+	 * - If the data cache is turned on this must have been done by
+	 *   a bootloader and we assume that the cache contents are
+	 *   valid.
+	 */
+	mfdccr	r9
+	cmplwi	r9,0
+	bne	2f
+	lis	r9,0
+	li	r8,256
+	mtctr	r8
+1:	dccci	r0,r9
+	addi	r9,r9,0x20
+	bdnz	1b
+2:	b	_zimage_start_lib