This source file includes following definitions.
- xtensa_get_kio_paddr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #ifndef _XTENSA_VECTORS_H
19 #define _XTENSA_VECTORS_H
20
21 #include <asm/core.h>
22 #include <asm/kmem_layout.h>
23
24 #if XCHAL_HAVE_PTP_MMU
25 #define XCHAL_KIO_CACHED_VADDR 0xe0000000
26 #define XCHAL_KIO_BYPASS_VADDR 0xf0000000
27 #define XCHAL_KIO_DEFAULT_PADDR 0xf0000000
28 #else
29 #define XCHAL_KIO_BYPASS_VADDR XCHAL_KIO_PADDR
30 #define XCHAL_KIO_DEFAULT_PADDR 0x90000000
31 #endif
32 #define XCHAL_KIO_SIZE 0x10000000
33
34 #if (!XCHAL_HAVE_PTP_MMU || XCHAL_HAVE_SPANNING_WAY) && defined(CONFIG_OF)
35 #define XCHAL_KIO_PADDR xtensa_get_kio_paddr()
36 #ifndef __ASSEMBLY__
37 extern unsigned long xtensa_kio_paddr;
38
39 static inline unsigned long xtensa_get_kio_paddr(void)
40 {
41 return xtensa_kio_paddr;
42 }
43 #endif
44 #else
45 #define XCHAL_KIO_PADDR XCHAL_KIO_DEFAULT_PADDR
46 #endif
47
48 #if defined(CONFIG_MMU)
49
50 #if XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY
51
52 #define KERNELOFFSET (XCHAL_KSEG_CACHED_VADDR + \
53 CONFIG_KERNEL_LOAD_ADDRESS - \
54 XCHAL_KSEG_PADDR)
55 #else
56 #define KERNELOFFSET CONFIG_KERNEL_LOAD_ADDRESS
57 #endif
58
59 #else
60
61
62
63 #define KERNELOFFSET CONFIG_KERNEL_LOAD_ADDRESS
64
65
66 #endif
67
68 #define RESET_VECTOR1_VADDR (XCHAL_RESET_VECTOR1_VADDR)
69 #ifdef CONFIG_VECTORS_OFFSET
70 #define VECBASE_VADDR (KERNELOFFSET - CONFIG_VECTORS_OFFSET)
71 #else
72 #define VECBASE_VADDR _vecbase
73 #endif
74
75 #if defined(XCHAL_HAVE_VECBASE) && XCHAL_HAVE_VECBASE
76
77 #define VECTOR_VADDR(offset) (VECBASE_VADDR + offset)
78
79 #define USER_VECTOR_VADDR VECTOR_VADDR(XCHAL_USER_VECOFS)
80 #define KERNEL_VECTOR_VADDR VECTOR_VADDR(XCHAL_KERNEL_VECOFS)
81 #define DOUBLEEXC_VECTOR_VADDR VECTOR_VADDR(XCHAL_DOUBLEEXC_VECOFS)
82 #define WINDOW_VECTORS_VADDR VECTOR_VADDR(XCHAL_WINDOW_OF4_VECOFS)
83 #define INTLEVEL2_VECTOR_VADDR VECTOR_VADDR(XCHAL_INTLEVEL2_VECOFS)
84 #define INTLEVEL3_VECTOR_VADDR VECTOR_VADDR(XCHAL_INTLEVEL3_VECOFS)
85 #define INTLEVEL4_VECTOR_VADDR VECTOR_VADDR(XCHAL_INTLEVEL4_VECOFS)
86 #define INTLEVEL5_VECTOR_VADDR VECTOR_VADDR(XCHAL_INTLEVEL5_VECOFS)
87 #define INTLEVEL6_VECTOR_VADDR VECTOR_VADDR(XCHAL_INTLEVEL6_VECOFS)
88 #define INTLEVEL7_VECTOR_VADDR VECTOR_VADDR(XCHAL_INTLEVEL7_VECOFS)
89 #define DEBUG_VECTOR_VADDR VECTOR_VADDR(XCHAL_DEBUG_VECOFS)
90
91
92
93
94
95
96 #undef XCHAL_VECBASE_RESET_VADDR
97 #undef XCHAL_USER_VECTOR_VADDR
98 #undef XCHAL_KERNEL_VECTOR_VADDR
99 #undef XCHAL_DOUBLEEXC_VECTOR_VADDR
100 #undef XCHAL_WINDOW_VECTORS_VADDR
101 #undef XCHAL_INTLEVEL2_VECTOR_VADDR
102 #undef XCHAL_INTLEVEL3_VECTOR_VADDR
103 #undef XCHAL_INTLEVEL4_VECTOR_VADDR
104 #undef XCHAL_INTLEVEL5_VECTOR_VADDR
105 #undef XCHAL_INTLEVEL6_VECTOR_VADDR
106 #undef XCHAL_INTLEVEL7_VECTOR_VADDR
107 #undef XCHAL_DEBUG_VECTOR_VADDR
108
109 #else
110
111 #define USER_VECTOR_VADDR XCHAL_USER_VECTOR_VADDR
112 #define KERNEL_VECTOR_VADDR XCHAL_KERNEL_VECTOR_VADDR
113 #define DOUBLEEXC_VECTOR_VADDR XCHAL_DOUBLEEXC_VECTOR_VADDR
114 #define WINDOW_VECTORS_VADDR XCHAL_WINDOW_VECTORS_VADDR
115 #define INTLEVEL2_VECTOR_VADDR XCHAL_INTLEVEL2_VECTOR_VADDR
116 #define INTLEVEL3_VECTOR_VADDR XCHAL_INTLEVEL3_VECTOR_VADDR
117 #define INTLEVEL4_VECTOR_VADDR XCHAL_INTLEVEL4_VECTOR_VADDR
118 #define INTLEVEL5_VECTOR_VADDR XCHAL_INTLEVEL5_VECTOR_VADDR
119 #define INTLEVEL6_VECTOR_VADDR XCHAL_INTLEVEL6_VECTOR_VADDR
120 #define INTLEVEL7_VECTOR_VADDR XCHAL_INTLEVEL6_VECTOR_VADDR
121 #define DEBUG_VECTOR_VADDR XCHAL_DEBUG_VECTOR_VADDR
122
123 #endif
124
125 #endif