1
2
3
4
5
6
7
8
9
10
11
12
13
14
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 movi a0, 0
46 wsr a0, windowbase
47 rsync
48 movi a0, 1
49 wsr a0, windowstart
50 rsync
51 movi a0, 0x1F
52 wsr a0, ps
53 rsync
54
55 #ifndef CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
56 initialize_mmu
57 #endif
58
59 rsil a0, XCHAL_DEBUGLEVEL-1
60 rsync
61 reset:
62 #if defined(CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX) && \
63 XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY
64 movi a0, CONFIG_KERNEL_LOAD_ADDRESS
65 #else
66 movi a0, KERNELOFFSET
67 #endif
68 #ifdef CONFIG_PARSE_BOOTPARAM
69 movi a2, _bootparam
70 #else
71 movi a2, 0
72 #endif
73 movi a3, 0
74 movi a4, 0
75 jx a0
76
77 .end no-absolute-literals