Merge remote-tracking branch 'moduleh/module.h-split'
[linux-2.6/next.git] / arch / powerpc / boot / virtex405-head.S
blob3edb13f946690a21cb1168d982ea7ad359c84bc1
1 #include "ppc_asm.h"
3         .text
4         .global _zimage_start
5 _zimage_start:
7         /* PPC errata 213: needed by Virtex-4 FX */
8         mfccr0  0
9         oris    0,0,0x50000000@h
10         mtccr0  0
12         /*
13          * Invalidate the data cache if the data cache is turned off.
14          * - The 405 core does not invalidate the data cache on power-up
15          *   or reset but does turn off the data cache. We cannot assume
16          *   that the cache contents are valid.
17          * - If the data cache is turned on this must have been done by
18          *   a bootloader and we assume that the cache contents are
19          *   valid.
20          */
21         mfdccr  r9
22         cmplwi  r9,0
23         bne     2f
24         lis     r9,0
25         li      r8,256
26         mtctr   r8
27 1:      dccci   r0,r9
28         addi    r9,r9,0x20
29         bdnz    1b
30 2:      b       _zimage_start_lib