]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - arch/arm/cpu/arm_intcm/start.S
arm:am33xx: Make dram_init call sdram_init() in some contexts
[karo-tx-uboot.git] / arch / arm / cpu / arm_intcm / start.S
1 /*
2  *  armboot - Startup Code for ARM926EJS CPU-core
3  *
4  *  Copyright (c) 2003  Texas Instruments
5  *
6  *  ----- Adapted for OMAP1610 OMAP730 from ARM925t code ------
7  *
8  *  Copyright (c) 2001  Marius Gröger <mag@sysgo.de>
9  *  Copyright (c) 2002  Alex Züpke <azu@sysgo.de>
10  *  Copyright (c) 2002  Gary Jennejohn <garyj@denx.de>
11  *  Copyright (c) 2003  Richard Woodruff <r-woodruff2@ti.com>
12  *  Copyright (c) 2003  Kshitij <kshitij@ti.com>
13  *
14  * SPDX-License-Identifier:     GPL-2.0+
15  */
16
17 #include <asm-offsets.h>
18 #include <config.h>
19 #include <version.h>
20
21 /*
22  *************************************************************************
23  *
24  * Startup Code (reset vector)
25  *
26  * do important init only if we don't start from memory!
27  * setup memory and board specific bits prior to relocation.
28  * relocate armboot to ram
29  * setup stack
30  *
31  *************************************************************************
32  */
33
34         .globl  reset
35
36 reset:
37         /*
38          * set the cpu to SVC32 mode
39          */
40         mrs     r0,cpsr
41         bic     r0,r0,#0x1f
42         orr     r0,r0,#0xd3
43         msr     cpsr,r0
44
45         /*
46          * we do sys-critical inits only at reboot,
47          * not when booting from ram!
48          */
49 #ifndef CONFIG_SKIP_LOWLEVEL_INIT
50         bl      cpu_init_crit
51 #endif
52
53         bl      _main
54
55 /*------------------------------------------------------------------------------*/
56
57         .globl  c_runtime_cpu_setup
58 c_runtime_cpu_setup:
59
60         mov     pc, lr
61
62 /*
63  *************************************************************************
64  *
65  * CPU_init_critical registers
66  *
67  * setup important registers
68  * setup memory timing
69  *
70  *************************************************************************
71  */
72
73 #ifndef CONFIG_SKIP_LOWLEVEL_INIT
74 cpu_init_crit:
75         /*  arm_int_generic assumes the ARM boot monitor, or user software,
76          * has initialized the platform
77          */
78         mov     pc, lr          /* back to my caller */
79 #endif