// __inval_dcache_area(kaddr, size) - 无效化 dcache
.global __inval_dcache_area; .align 2; __inval_dcache_area: __dma_inv_area:
add x1, x1, x0
dcache_line_size x2, x3
sub x3, x2, #1
tst x1, x3
bic x1, x1, x3
b.eq 1f
dc civac, x1
1: tst x0, x3
bic x0, x0, x3
b.eq 2f
dc civac, x0
b 3f
2: dc ivac, x0
3: add x0, x0, x2
cmp x0, x1
b.lo 2b
dsb sy
ret
.type __inval_dcache_area, @function; .size __inval_dcache_area, .-__inval_dcache_area
.type __dma_inv_area, @function; .size __dma_inv_area, .-__dma_inv_area