@@ -26,8 +26,11 @@ static inline void local_flush_tlb_all(void)
static inline void flush_tlb_all(void)
{
- //TODO
- local_flush_tlb_all();
+ dsb(ishst);
+ /* TLBIALLIS */
+ asm volatile("mcr p15, 0, %0, c8, c3, 0" :: "r" (0));
+ dsb(ish);
+ isb();
}
static inline void flush_tlb_page(unsigned long vaddr)
@@ -41,6 +44,7 @@ static inline void flush_tlb_page(unsigned long vaddr)
static inline void flush_dcache_addr(unsigned long vaddr)
{
+ /* DCCIMVAC */
asm volatile("mcr p15, 0, %0, c7, c14, 1" :: "r" (vaddr));
}