summaryrefslogtreecommitdiffstats
path: root/arch/mips/boot/start.S
blob: c1cd2d9dd50801015df26ac601a85120dfb6f08a (plain)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Startup Code for MIPS CPU
 *
 * Copyright (C) 2011, 2015 Antony Pavlov <antonynpavlov@gmail.com>
 */

#include <asm/pbl_macros.h>

	.set noreorder
	.section ".text_entry"
	.align 4

EXPORT(_start)

	mips_barebox_10h

	/* save dtb pointer */
	move	s0, a0
	move	s1, a1
	move	s2, a2

	/* disable watchpoints */
	mtc0	zero, CP0_WATCHLO
	mtc0	zero, CP0_WATCHHI

	mips_disable_interrupts

	copy_to_link_location _start

	stack_setup

	/* restore dtb pointer */
	move	a0, s0
	move	a1, s1
	move	a2, s2
	la	v0, relocate_code
	jal	v0
	 nop

	/* No return */
__error:
	b __error
	 nop