Changeset bb75646 in mainline
- Timestamp:
- 2013-08-06T23:26:54Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- face0c04
- Parents:
- b3f967c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/arm32/src/mm/tlb.c
rb3f967c rbb75646 40 40 #include <typedefs.h> 41 41 #include <arch/mm/page.h> 42 #include <arch/cache.h> 42 43 43 44 /** Invalidate all entries in TLB. … … 48 49 { 49 50 TLBIALL_write(0); 51 /* 52 * "A TLB maintenance operation is only guaranteed to be complete after 53 * the execution of a DSB instruction." 54 * "An ISB instruction, or a return from an exception, causes the 55 * effect of all completed TLB maintenance operations that appear in 56 * program order before the ISB or return from exception to be visible 57 * to all subsequent instructions, including the instruction fetches 58 * for those instructions." 59 * ARM Architecture reference Manual ch. B3.10.1 p. B3-1374 B3-1375 60 */ 61 read_barrier(); 62 inst_barrier(); 50 63 } 51 64 … … 66 79 static inline void invalidate_page(uintptr_t page) 67 80 { 81 //TODO: What about TLBIMVAA? 68 82 TLBIMVA_write(page); 69 //TODO: What about TLBIMVAA? 83 /* 84 * "A TLB maintenance operation is only guaranteed to be complete after 85 * the execution of a DSB instruction." 86 * "An ISB instruction, or a return from an exception, causes the 87 * effect of all completed TLB maintenance operations that appear in 88 * program order before the ISB or return from exception to be visible 89 * to all subsequent instructions, including the instruction fetches 90 * for those instructions." 91 * ARM Architecture reference Manual ch. B3.10.1 p. B3-1374 B3-1375 92 */ 93 read_barrier(); 94 inst_barrier(); 70 95 } 71 96 … … 79 104 void tlb_invalidate_pages(asid_t asid __attribute__((unused)), uintptr_t page, size_t cnt) 80 105 { 81 unsigned int i; 82 83 for (i = 0; i < cnt; i++) 106 for (unsigned i = 0; i < cnt; i++) 84 107 invalidate_page(page + i * PAGE_SIZE); 85 108 }
Note:
See TracChangeset
for help on using the changeset viewer.