1db866895SAndrew Jones #ifndef __ASMARM_MMU_H_ 2db866895SAndrew Jones #define __ASMARM_MMU_H_ 3db866895SAndrew Jones /* 4db866895SAndrew Jones * Copyright (C) 2014, Red Hat Inc, Andrew Jones <drjones@redhat.com> 5db866895SAndrew Jones * 6db866895SAndrew Jones * This work is licensed under the terms of the GNU LGPL, version 2. 7db866895SAndrew Jones */ 8*a796123fSAndrew Jones #include <asm/pgtable.h> 98cca5668SAndrew Jones #include <asm/barrier.h> 10153d1936SAndrew Jones 11153d1936SAndrew Jones static inline void local_flush_tlb_all(void) 12153d1936SAndrew Jones { 13153d1936SAndrew Jones asm volatile("mcr p15, 0, %0, c8, c7, 0" :: "r" (0)); 14153d1936SAndrew Jones dsb(); 15153d1936SAndrew Jones isb(); 16153d1936SAndrew Jones } 17153d1936SAndrew Jones 18153d1936SAndrew Jones static inline void flush_tlb_all(void) 19153d1936SAndrew Jones { 20153d1936SAndrew Jones //TODO 21153d1936SAndrew Jones local_flush_tlb_all(); 22153d1936SAndrew Jones } 23153d1936SAndrew Jones 24153d1936SAndrew Jones extern bool mmu_enabled(void); 25153d1936SAndrew Jones extern void mmu_enable(pgd_t *pgtable); 26153d1936SAndrew Jones extern void mmu_enable_idmap(void); 27153d1936SAndrew Jones extern void mmu_init_io_sect(pgd_t *pgtable); 28db866895SAndrew Jones 29db866895SAndrew Jones #endif /* __ASMARM_MMU_H_ */ 30