#ifndef _ASMARM64_MMU_H_ #define _ASMARM64_MMU_H_ /* * Copyright (C) 2014, Red Hat Inc, Andrew Jones * * This work is licensed under the terms of the GNU LGPL, version 2. */ #include #define PMD_SECT_UNCACHED PMD_ATTRINDX(MT_DEVICE_nGnRE) #define PTE_UNCACHED PTE_ATTRINDX(MT_DEVICE_nGnRE) #define PTE_WBWA PTE_ATTRINDX(MT_NORMAL) #define PTE_TAGGED PTE_ATTRINDX(MT_NORMAL_TAGGED) static inline void flush_tlb_all(void) { dsb(ishst); asm("tlbi vmalle1is"); dsb(ish); isb(); } static inline void flush_tlb_page(unsigned long vaddr) { unsigned long page = vaddr >> 12; dsb(ishst); asm("tlbi vaae1is, %0" :: "r" (page)); dsb(ish); isb(); } static inline void flush_dcache_addr(unsigned long vaddr) { asm volatile("dc civac, %0" :: "r" (vaddr)); } #include #endif /* _ASMARM64_MMU_H_ */