summaryrefslogtreecommitdiff
path: root/arch/powerpc/boot/virtex405-head.S
blob: 00bab7d7c48ce9800dd0b277d9b1e7c29a7c4eb3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/* 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