xref: /kvm-unit-tests/lib/arm64/asm/mmu.h (revision c2a95639b4cc7eb7f4f05a92c965e6ce5c39bccb)
1 #ifndef __ASMARM64_MMU_H_
2 #define __ASMARM64_MMU_H_
3 /*
4  * Copyright (C) 2014, Red Hat Inc, Andrew Jones <drjones@redhat.com>
5  *
6  * This work is licensed under the terms of the GNU LGPL, version 2.
7  */
8 #include <asm/barrier.h>
9 
10 #define PMD_SECT_UNCACHED	PMD_ATTRINDX(MT_DEVICE_nGnRE)
11 #define PTE_WBWA		PTE_ATTRINDX(MT_NORMAL)
12 
13 static inline void flush_tlb_all(void)
14 {
15 	dsb(ishst);
16 	asm("tlbi	vmalle1is");
17 	dsb(ish);
18 	isb();
19 }
20 
21 static inline void flush_tlb_page(unsigned long vaddr)
22 {
23 	unsigned long page = vaddr >> 12;
24 	dsb(ishst);
25 	asm("tlbi	vaae1is, %0" :: "r" (page));
26 	dsb(ish);
27 }
28 
29 #include <asm/mmu-api.h>
30 
31 #endif /* __ASMARM64_MMU_H_ */
32