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