/* SPDX-License-Identifier: GPL-2.0 */
#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
