diff options
author | Robin Murphy <robin.murphy@arm.com> | 2017-07-25 06:55:42 -0400 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2017-08-09 07:15:45 -0400 |
commit | d50e071fdaa33c1b399c764c44fa1ce879881185 (patch) | |
tree | c0af7e49c8f4124195159e1d6380d521bea435d3 /arch/arm64/mm/cache.S | |
parent | e1bc5d1b8e0547c258e65dd97a03560f4d69e635 (diff) |
arm64: Implement pmem API support
Add a clean-to-point-of-persistence cache maintenance helper, and wire
up the basic architectural support for the pmem driver based on it.
Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
[catalin.marinas@arm.com: move arch_*_pmem() functions to arch/arm64/mm/flush.c]
[catalin.marinas@arm.com: change dmb(sy) to dmb(osh)]
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/mm/cache.S')
-rw-r--r-- | arch/arm64/mm/cache.S | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm64/mm/cache.S b/arch/arm64/mm/cache.S index ed47fbbb4b05..7f1dbe962cf5 100644 --- a/arch/arm64/mm/cache.S +++ b/arch/arm64/mm/cache.S | |||
@@ -172,6 +172,20 @@ ENDPIPROC(__clean_dcache_area_poc) | |||
172 | ENDPROC(__dma_clean_area) | 172 | ENDPROC(__dma_clean_area) |
173 | 173 | ||
174 | /* | 174 | /* |
175 | * __clean_dcache_area_pop(kaddr, size) | ||
176 | * | ||
177 | * Ensure that any D-cache lines for the interval [kaddr, kaddr+size) | ||
178 | * are cleaned to the PoP. | ||
179 | * | ||
180 | * - kaddr - kernel address | ||
181 | * - size - size in question | ||
182 | */ | ||
183 | ENTRY(__clean_dcache_area_pop) | ||
184 | dcache_by_line_op cvap, sy, x0, x1, x2, x3 | ||
185 | ret | ||
186 | ENDPIPROC(__clean_dcache_area_pop) | ||
187 | |||
188 | /* | ||
175 | * __dma_flush_area(start, size) | 189 | * __dma_flush_area(start, size) |
176 | * | 190 | * |
177 | * clean & invalidate D / U line | 191 | * clean & invalidate D / U line |