Lines Matching refs:paddr
35 void (*_cache_line_loop_ic_fn)(phys_addr_t paddr, unsigned long vaddr,
188 void __cache_line_loop_v3(phys_addr_t paddr, unsigned long vaddr, in __cache_line_loop_v3() argument
209 sz += paddr & ~CACHE_LINE_MASK; in __cache_line_loop_v3()
210 paddr &= CACHE_LINE_MASK; in __cache_line_loop_v3()
220 write_aux_reg(aux_tag, paddr); in __cache_line_loop_v3()
230 write_aux_reg(ARC_REG_IC_PTAG_HI, (u64)paddr >> 32); in __cache_line_loop_v3()
234 write_aux_reg(aux_tag, paddr); in __cache_line_loop_v3()
235 paddr += L1_CACHE_BYTES; in __cache_line_loop_v3()
248 void __cache_line_loop_v4(phys_addr_t paddr, unsigned long vaddr, in __cache_line_loop_v4() argument
268 sz += paddr & ~CACHE_LINE_MASK; in __cache_line_loop_v4()
269 paddr &= CACHE_LINE_MASK; in __cache_line_loop_v4()
285 write_aux_reg(ARC_REG_IC_PTAG_HI, (u64)paddr >> 32); in __cache_line_loop_v4()
287 write_aux_reg(ARC_REG_DC_PTAG_HI, (u64)paddr >> 32); in __cache_line_loop_v4()
291 write_aux_reg(aux_cmd, paddr); in __cache_line_loop_v4()
292 paddr += L1_CACHE_BYTES; in __cache_line_loop_v4()
302 void __cache_line_loop_v4(phys_addr_t paddr, unsigned long vaddr, in __cache_line_loop_v4() argument
318 sz += paddr & ~CACHE_LINE_MASK; in __cache_line_loop_v4()
319 paddr &= CACHE_LINE_MASK; in __cache_line_loop_v4()
331 write_aux_reg(ARC_REG_IC_PTAG_HI, (u64)paddr >> 32); in __cache_line_loop_v4()
333 write_aux_reg(ARC_REG_DC_PTAG_HI, (u64)paddr >> 32); in __cache_line_loop_v4()
337 write_aux_reg(e, paddr + sz); /* ENDR is exclusive */ in __cache_line_loop_v4()
338 write_aux_reg(s, paddr); in __cache_line_loop_v4()
460 static inline void __dc_line_op(phys_addr_t paddr, unsigned long vaddr, in __dc_line_op() argument
470 __cache_line_loop(paddr, vaddr, sz, op, full_page); in __dc_line_op()
482 #define __dc_line_op(paddr, vaddr, sz, op) argument
483 #define __dc_line_op_k(paddr, sz, op) argument
496 __ic_line_inv_vaddr_local(phys_addr_t paddr, unsigned long vaddr, in __ic_line_inv_vaddr_local() argument
503 (*_cache_line_loop_ic_fn)(paddr, vaddr, sz, OP_INV_IC, full_page); in __ic_line_inv_vaddr_local()
514 phys_addr_t paddr, vaddr; member
522 __ic_line_inv_vaddr_local(ic_inv->paddr, ic_inv->vaddr, ic_inv->sz); in __ic_line_inv_vaddr_helper()
525 static void __ic_line_inv_vaddr(phys_addr_t paddr, unsigned long vaddr, in __ic_line_inv_vaddr() argument
529 .paddr = paddr, in __ic_line_inv_vaddr()
546 static noinline void slc_op_rgn(phys_addr_t paddr, unsigned long sz, const int op) in slc_op_rgn() argument
589 end = paddr + sz + l2_line_sz - 1; in slc_op_rgn()
596 write_aux_reg(ARC_REG_SLC_RGN_START1, upper_32_bits(paddr)); in slc_op_rgn()
598 write_aux_reg(ARC_REG_SLC_RGN_START, lower_32_bits(paddr)); in slc_op_rgn()
609 static __maybe_unused noinline void slc_op_line(phys_addr_t paddr, unsigned long sz, const int op) in slc_op_line() argument
640 sz += paddr & ~SLC_LINE_MASK; in slc_op_line()
641 paddr &= SLC_LINE_MASK; in slc_op_line()
646 write_aux_reg(cmd, paddr); in slc_op_line()
647 paddr += l2_line_sz; in slc_op_line()
659 #define slc_op(paddr, sz, op) slc_op_rgn(paddr, sz, op) argument
848 void __sync_icache_dcache(phys_addr_t paddr, unsigned long vaddr, int len) in __sync_icache_dcache() argument
850 __dc_line_op(paddr, vaddr, len, OP_FLUSH_N_INV); in __sync_icache_dcache()
851 __ic_line_inv_vaddr(paddr, vaddr, len); in __sync_icache_dcache()
855 void __inv_icache_pages(phys_addr_t paddr, unsigned long vaddr, unsigned nr) in __inv_icache_pages() argument
857 __ic_line_inv_vaddr(paddr, vaddr, nr * PAGE_SIZE); in __inv_icache_pages()
864 void __flush_dcache_pages(phys_addr_t paddr, unsigned long vaddr, unsigned nr) in __flush_dcache_pages() argument
866 __dc_line_op(paddr, vaddr & PAGE_MASK, nr * PAGE_SIZE, OP_FLUSH_N_INV); in __flush_dcache_pages()