]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - arch/arm/cpu/arm720t/start.S
remove unnecessary version.h includes
[karo-tx-uboot.git] / arch / arm / cpu / arm720t / start.S
1 /*
2  *  armboot - Startup Code for ARM720 CPU-core
3  *
4  *  Copyright (c) 2001  Marius Gröger <mag@sysgo.de>
5  *  Copyright (c) 2002  Alex Züpke <azu@sysgo.de>
6  *
7  * SPDX-License-Identifier:     GPL-2.0+
8  */
9
10 #include <asm-offsets.h>
11 #include <config.h>
12 #include <asm/hardware.h>
13
14 /*
15  *************************************************************************
16  *
17  * Startup Code (reset vector)
18  *
19  * do important init only if we don't start from RAM!
20  * relocate armboot to ram
21  * setup stack
22  * jump to second stage
23  *
24  *************************************************************************
25  */
26
27         .globl  reset
28
29 reset:
30         /*
31          * set the cpu to SVC32 mode
32          */
33         mrs     r0,cpsr
34         bic     r0,r0,#0x1f
35         orr     r0,r0,#0xd3
36         msr     cpsr,r0
37
38         /*
39          * we do sys-critical inits only at reboot,
40          * not when booting from ram!
41          */
42 #ifndef CONFIG_SKIP_LOWLEVEL_INIT
43         bl      cpu_init_crit
44 #endif
45
46         bl      _main
47
48 /*------------------------------------------------------------------------------*/
49
50         .globl  c_runtime_cpu_setup
51 c_runtime_cpu_setup:
52
53         mov     pc, lr
54
55 /*
56  *************************************************************************
57  *
58  * CPU_init_critical registers
59  *
60  * setup important registers
61  * setup memory timing
62  *
63  *************************************************************************
64  */
65
66 #ifndef CONFIG_SKIP_LOWLEVEL_INIT
67 cpu_init_crit:
68
69         mov     ip, lr
70         /*
71          * before relocating, we have to setup RAM timing
72          * because memory timing is board-dependent, you will
73          * find a lowlevel_init.S in your board directory.
74          */
75         bl      lowlevel_init
76         mov     lr, ip
77
78         mov     pc, lr
79 #endif /* CONFIG_SKIP_LOWLEVEL_INIT */