* Write back D-cache to PoC * * Caches are written back from innermost to outermost as dirty cachelines * flow in this direction. In given range, no dirty cacheline should remain * in any cache after this operation finishes. */
| 583 | * in any cache after this operation finishes. |
| 584 | */ |
| 585 | static __inline void |
| 586 | dcache_wb_poc(vm_offset_t va, vm_paddr_t pa, vm_size_t size) |
| 587 | { |
| 588 | vm_offset_t eva = va + size; |
| 589 | |
| 590 | dsb(); |
| 591 | va &= ~cpuinfo.dcache_line_mask; |
| 592 | for ( ; va < eva; va += cpuinfo.dcache_line_size) { |
| 593 | _CP15_DCCMVAC(va); |
| 594 | } |
| 595 | dsb(); |
| 596 | |
| 597 | cpu_l2cache_wb_range(pa, size); |
| 598 | } |
| 599 | |
| 600 | /* Write back and invalidate D-cache to PoC */ |
| 601 | static __inline void |
no outgoing calls
no test coverage detected