aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/mm/cache.S
diff options
context:
space:
mode:
authorCatalin Marinas <catalin.marinas@arm.com>2014-03-26 14:25:55 -0400
committerCatalin Marinas <catalin.marinas@arm.com>2014-04-05 05:06:18 -0400
commitc218bca74eeafa2f8528b6bbb34d112075fcf40a (patch)
tree29b3e350efca77e073436df3cf78b818bf57cc34 /arch/arm64/mm/cache.S
parent35a86976924a9eda7775b5b02ad47268dca1a5b4 (diff)
arm64: Relax the kernel cache requirements for boot
With system caches for the host OS or architected caches for guest OS we cannot easily guarantee that there are no dirty or stale cache lines for the areas of memory written by the kernel during boot with the MMU off (therefore non-cacheable accesses). This patch adds the necessary cache maintenance during boot and relaxes the booting requirements. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/mm/cache.S')
-rw-r--r--arch/arm64/mm/cache.S9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm64/mm/cache.S b/arch/arm64/mm/cache.S
index c46f48b33c14..e803a62e0e45 100644
--- a/arch/arm64/mm/cache.S
+++ b/arch/arm64/mm/cache.S
@@ -168,6 +168,14 @@ ENTRY(__flush_dcache_area)
168ENDPROC(__flush_dcache_area) 168ENDPROC(__flush_dcache_area)
169 169
170/* 170/*
171 * __inval_cache_range(start, end)
172 * - start - start address of region
173 * - end - end address of region
174 */
175ENTRY(__inval_cache_range)
176 /* FALLTHROUGH */
177
178/*
171 * __dma_inv_range(start, end) 179 * __dma_inv_range(start, end)
172 * - start - virtual start address of region 180 * - start - virtual start address of region
173 * - end - virtual end address of region 181 * - end - virtual end address of region
@@ -183,6 +191,7 @@ __dma_inv_range:
183 b.lo 1b 191 b.lo 1b
184 dsb sy 192 dsb sy
185 ret 193 ret
194ENDPROC(__inval_cache_range)
186ENDPROC(__dma_inv_range) 195ENDPROC(__dma_inv_range)
187 196
188/* 197/*