hc
2023-10-25 6c2073b7aa40e29d0eca7d571dd7bc590c7ecaa7
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/*
 * arch/xtensa/boot/boot-elf/bootstrap.S
 *
 * Low-level exception handling
 *
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file "COPYING" in the main directory of this archive
 * for more details.
 *
 * Copyright (C) 2004 - 2013 by Tensilica Inc.
 *
 * Chris Zankel <chris@zankel.net>
 * Marc Gauthier <marc@tensilica.com>
 * Piet Delaney <piet@tensilica.com>
 */
 
#include <asm/bootparam.h>
#include <asm/initialize_mmu.h>
#include <asm/vectors.h>
#include <linux/linkage.h>
 
   .section    .ResetVector.text, "ax"
   .global         _ResetVector
   .global         reset
 
_ResetVector:
   _j _SetupMMU
 
   .begin  no-absolute-literals
   .literal_position
 
#if defined(CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX) && \
   XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY
   .literal RomInitAddr, CONFIG_KERNEL_LOAD_ADDRESS
#else
   .literal RomInitAddr, KERNELOFFSET
#endif
#ifndef CONFIG_PARSE_BOOTPARAM
   .literal RomBootParam, 0
#else
   .literal RomBootParam, _bootparam
 
   .align 4
_bootparam:
   .short    BP_TAG_FIRST
   .short    4
   .long    BP_VERSION
   .short    BP_TAG_LAST
   .short    0
   .long    0
#endif
 
   .align  4
_SetupMMU:
   movi    a0, 0
   wsr    a0, windowbase
   rsync
   movi    a0, 1
   wsr    a0, windowstart
   rsync
   movi    a0, 0x1F
   wsr    a0, ps
   rsync
 
#ifndef CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
   initialize_mmu
#endif
 
   .end    no-absolute-literals
 
   rsil    a0, XCHAL_DEBUGLEVEL-1
   rsync
reset:
   l32r    a0, RomInitAddr
   l32r    a2, RomBootParam
   movi    a3, 0
   movi    a4, 0
   jx      a0