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
281:	dccci	r0,r9
29	addi	r9,r9,0x20
30	bdnz	1b
312:	b	_zimage_start_lib
32