Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/xtensa/boot/boot-elf/bootstrap.S
26481 views
1
/*
2
* arch/xtensa/boot/boot-elf/bootstrap.S
3
*
4
* Low-level exception handling
5
*
6
* This file is subject to the terms and conditions of the GNU General Public
7
* License. See the file "COPYING" in the main directory of this archive
8
* for more details.
9
*
10
* Copyright (C) 2004 - 2013 by Tensilica Inc.
11
*
12
* Chris Zankel <[email protected]>
13
* Marc Gauthier <[email protected]>
14
* Piet Delaney <[email protected]>
15
*/
16
17
#include <asm/bootparam.h>
18
#include <asm/initialize_mmu.h>
19
#include <asm/vectors.h>
20
#include <linux/linkage.h>
21
22
.section .ResetVector.text, "ax"
23
.global _ResetVector
24
.global reset
25
26
_ResetVector:
27
_j _SetupMMU
28
29
.begin no-absolute-literals
30
.literal_position
31
32
#ifdef CONFIG_PARSE_BOOTPARAM
33
.align 4
34
_bootparam:
35
.short BP_TAG_FIRST
36
.short 4
37
.long BP_VERSION
38
.short BP_TAG_LAST
39
.short 0
40
.long 0
41
#endif
42
43
.align 4
44
_SetupMMU:
45
#if XCHAL_HAVE_WINDOWED
46
movi a0, 0
47
wsr a0, windowbase
48
rsync
49
movi a0, 1
50
wsr a0, windowstart
51
rsync
52
#endif
53
movi a0, 0x1F
54
wsr a0, ps
55
rsync
56
57
#ifndef CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
58
initialize_mmu
59
#endif
60
61
rsil a0, XCHAL_DEBUGLEVEL-1
62
rsync
63
reset:
64
#if defined(CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX) && \
65
XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY
66
movi a0, CONFIG_KERNEL_LOAD_ADDRESS
67
#else
68
movi a0, KERNELOFFSET
69
#endif
70
#ifdef CONFIG_PARSE_BOOTPARAM
71
movi a2, _bootparam
72
#else
73
movi a2, 0
74
#endif
75
movi a3, 0
76
movi a4, 0
77
jx a0
78
79
.end no-absolute-literals
80
81