xref: /kvm-unit-tests/lib/arm64/asm/mmu.h (revision 867f820d405ea6ce5fe49ee8f75a2f97a08c7adf)
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/pgtable.h>
9 #include <asm/barrier.h>
10 
11 #define PMD_SECT_UNCACHED	PMD_ATTRINDX(MT_DEVICE_nGnRE)
12 #define PTE_WBWA		PTE_ATTRINDX(MT_NORMAL)
13 
14 static inline void flush_tlb_all(void)
15 {
16 	dsb(ishst);
17 	asm("tlbi	vmalle1is");
18 	dsb(ish);
19 	isb();
20 }
21 
22 static inline void flush_tlb_page(unsigned long vaddr)
23 {
24 	unsigned long page = vaddr >> 12;
25 	dsb(ishst);
26 	asm("tlbi	vaae1is, %0" :: "r" (page));
27 	dsb(ish);
28 }
29 
30 #include <asm/mmu-api.h>
31 
32 #endif /* __ASMARM64_MMU_H_ */
33