aboutsummaryrefslogtreecommitdiffstats
path: root/arch/xtensa/include/asm
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2015-09-24 16:20:46 -0400
committerMax Filippov <jcmvbkbc@gmail.com>2015-11-02 10:02:51 -0500
commit01618bded680573163403666d0546be536b22ac0 (patch)
treecb566bdc9514682771e020d6c6b1501f768fee4b /arch/xtensa/include/asm
parent5029615e25dc5040beb065f36743c127a8e51497 (diff)
xtensa: fix build for configs without cache options
- make cache-related assembly macros empty if core doesn't have corresponding cache type; - don't initialize cache attributes in instruction/data TLB entries if there's no corresponding cache type. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'arch/xtensa/include/asm')
-rw-r--r--arch/xtensa/include/asm/cacheasm.h26
-rw-r--r--arch/xtensa/include/asm/initialize_mmu.h13
2 files changed, 35 insertions, 4 deletions
diff --git a/arch/xtensa/include/asm/cacheasm.h b/arch/xtensa/include/asm/cacheasm.h
index 60e18773ecb8..e0f9e1109c83 100644
--- a/arch/xtensa/include/asm/cacheasm.h
+++ b/arch/xtensa/include/asm/cacheasm.h
@@ -73,7 +73,9 @@
73 73
74 .macro ___unlock_dcache_all ar at 74 .macro ___unlock_dcache_all ar at
75 75
76#if XCHAL_DCACHE_SIZE
76 __loop_cache_all \ar \at diu XCHAL_DCACHE_SIZE XCHAL_DCACHE_LINEWIDTH 77 __loop_cache_all \ar \at diu XCHAL_DCACHE_SIZE XCHAL_DCACHE_LINEWIDTH
78#endif
77 79
78 .endm 80 .endm
79 81
@@ -90,30 +92,38 @@
90 92
91 .macro ___flush_invalidate_dcache_all ar at 93 .macro ___flush_invalidate_dcache_all ar at
92 94
95#if XCHAL_DCACHE_SIZE
93 __loop_cache_all \ar \at diwbi XCHAL_DCACHE_SIZE XCHAL_DCACHE_LINEWIDTH 96 __loop_cache_all \ar \at diwbi XCHAL_DCACHE_SIZE XCHAL_DCACHE_LINEWIDTH
97#endif
94 98
95 .endm 99 .endm
96 100
97 101
98 .macro ___flush_dcache_all ar at 102 .macro ___flush_dcache_all ar at
99 103
104#if XCHAL_DCACHE_SIZE
100 __loop_cache_all \ar \at diwb XCHAL_DCACHE_SIZE XCHAL_DCACHE_LINEWIDTH 105 __loop_cache_all \ar \at diwb XCHAL_DCACHE_SIZE XCHAL_DCACHE_LINEWIDTH
106#endif
101 107
102 .endm 108 .endm
103 109
104 110
105 .macro ___invalidate_dcache_all ar at 111 .macro ___invalidate_dcache_all ar at
106 112
113#if XCHAL_DCACHE_SIZE
107 __loop_cache_all \ar \at dii __stringify(DCACHE_WAY_SIZE) \ 114 __loop_cache_all \ar \at dii __stringify(DCACHE_WAY_SIZE) \
108 XCHAL_DCACHE_LINEWIDTH 115 XCHAL_DCACHE_LINEWIDTH
116#endif
109 117
110 .endm 118 .endm
111 119
112 120
113 .macro ___invalidate_icache_all ar at 121 .macro ___invalidate_icache_all ar at
114 122
123#if XCHAL_ICACHE_SIZE
115 __loop_cache_all \ar \at iii __stringify(ICACHE_WAY_SIZE) \ 124 __loop_cache_all \ar \at iii __stringify(ICACHE_WAY_SIZE) \
116 XCHAL_ICACHE_LINEWIDTH 125 XCHAL_ICACHE_LINEWIDTH
126#endif
117 127
118 .endm 128 .endm
119 129
@@ -121,28 +131,36 @@
121 131
122 .macro ___flush_invalidate_dcache_range ar as at 132 .macro ___flush_invalidate_dcache_range ar as at
123 133
134#if XCHAL_DCACHE_SIZE
124 __loop_cache_range \ar \as \at dhwbi XCHAL_DCACHE_LINEWIDTH 135 __loop_cache_range \ar \as \at dhwbi XCHAL_DCACHE_LINEWIDTH
136#endif
125 137
126 .endm 138 .endm
127 139
128 140
129 .macro ___flush_dcache_range ar as at 141 .macro ___flush_dcache_range ar as at
130 142
143#if XCHAL_DCACHE_SIZE
131 __loop_cache_range \ar \as \at dhwb XCHAL_DCACHE_LINEWIDTH 144 __loop_cache_range \ar \as \at dhwb XCHAL_DCACHE_LINEWIDTH
145#endif
132 146
133 .endm 147 .endm
134 148
135 149
136 .macro ___invalidate_dcache_range ar as at 150 .macro ___invalidate_dcache_range ar as at
137 151
152#if XCHAL_DCACHE_SIZE
138 __loop_cache_range \ar \as \at dhi XCHAL_DCACHE_LINEWIDTH 153 __loop_cache_range \ar \as \at dhi XCHAL_DCACHE_LINEWIDTH
154#endif
139 155
140 .endm 156 .endm
141 157
142 158
143 .macro ___invalidate_icache_range ar as at 159 .macro ___invalidate_icache_range ar as at
144 160
161#if XCHAL_ICACHE_SIZE
145 __loop_cache_range \ar \as \at ihi XCHAL_ICACHE_LINEWIDTH 162 __loop_cache_range \ar \as \at ihi XCHAL_ICACHE_LINEWIDTH
163#endif
146 164
147 .endm 165 .endm
148 166
@@ -150,27 +168,35 @@
150 168
151 .macro ___flush_invalidate_dcache_page ar as 169 .macro ___flush_invalidate_dcache_page ar as
152 170
171#if XCHAL_DCACHE_SIZE
153 __loop_cache_page \ar \as dhwbi XCHAL_DCACHE_LINEWIDTH 172 __loop_cache_page \ar \as dhwbi XCHAL_DCACHE_LINEWIDTH
173#endif
154 174
155 .endm 175 .endm
156 176
157 177
158 .macro ___flush_dcache_page ar as 178 .macro ___flush_dcache_page ar as
159 179
180#if XCHAL_DCACHE_SIZE
160 __loop_cache_page \ar \as dhwb XCHAL_DCACHE_LINEWIDTH 181 __loop_cache_page \ar \as dhwb XCHAL_DCACHE_LINEWIDTH
182#endif
161 183
162 .endm 184 .endm
163 185
164 186
165 .macro ___invalidate_dcache_page ar as 187 .macro ___invalidate_dcache_page ar as
166 188
189#if XCHAL_DCACHE_SIZE
167 __loop_cache_page \ar \as dhi XCHAL_DCACHE_LINEWIDTH 190 __loop_cache_page \ar \as dhi XCHAL_DCACHE_LINEWIDTH
191#endif
168 192
169 .endm 193 .endm
170 194
171 195
172 .macro ___invalidate_icache_page ar as 196 .macro ___invalidate_icache_page ar as
173 197
198#if XCHAL_ICACHE_SIZE
174 __loop_cache_page \ar \as ihi XCHAL_ICACHE_LINEWIDTH 199 __loop_cache_page \ar \as ihi XCHAL_ICACHE_LINEWIDTH
200#endif
175 201
176 .endm 202 .endm
diff --git a/arch/xtensa/include/asm/initialize_mmu.h b/arch/xtensa/include/asm/initialize_mmu.h
index e256f2270ec9..7a1e075969a3 100644
--- a/arch/xtensa/include/asm/initialize_mmu.h
+++ b/arch/xtensa/include/asm/initialize_mmu.h
@@ -161,7 +161,8 @@
161#endif /* defined(CONFIG_MMU) && XCHAL_HAVE_PTP_MMU && 161#endif /* defined(CONFIG_MMU) && XCHAL_HAVE_PTP_MMU &&
162 XCHAL_HAVE_SPANNING_WAY */ 162 XCHAL_HAVE_SPANNING_WAY */
163 163
164#if !defined(CONFIG_MMU) && XCHAL_HAVE_TLBS 164#if !defined(CONFIG_MMU) && XCHAL_HAVE_TLBS && \
165 (XCHAL_DCACHE_SIZE || XCHAL_ICACHE_SIZE)
165 /* Enable data and instruction cache in the DEFAULT_MEMORY region 166 /* Enable data and instruction cache in the DEFAULT_MEMORY region
166 * if the processor has DTLB and ITLB. 167 * if the processor has DTLB and ITLB.
167 */ 168 */
@@ -175,14 +176,18 @@
1751: 1761:
176 sub a9, a9, a8 177 sub a9, a9, a8
1772: 1782:
179#if XCHAL_DCACHE_SIZE
178 rdtlb1 a3, a5 180 rdtlb1 a3, a5
179 ritlb1 a4, a5
180 and a3, a3, a6 181 and a3, a3, a6
181 and a4, a4, a6
182 or a3, a3, a7 182 or a3, a3, a7
183 or a4, a4, a7
184 wdtlb a3, a5 183 wdtlb a3, a5
184#endif
185#if XCHAL_ICACHE_SIZE
186 ritlb1 a4, a5
187 and a4, a4, a6
188 or a4, a4, a7
185 witlb a4, a5 189 witlb a4, a5
190#endif
186 add a5, a5, a8 191 add a5, a5, a8
187 bltu a8, a9, 1b 192 bltu a8, a9, 1b
188 193