Changeset e25eca80 in mainline
- Timestamp:
- 2008-06-13T20:36:38Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- d5087aa
- Parents:
- 80dabb8d
- Location:
- kernel/arch
- Files:
-
- 1 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/arm32/include/barrier.h
r80dabb8d re25eca80 47 47 #define write_barrier() asm volatile ("" ::: "memory") 48 48 49 #define smc_coherence(a) 50 49 51 #endif 50 52 -
kernel/arch/ia32/include/barrier.h
r80dabb8d re25eca80 85 85 #endif 86 86 87 /* 88 * On ia32, the hardware takes care about instruction and data cache coherence, 89 * even on SMP systems. We issue a write barrier to be sure that writes 90 * queueing in the store buffer drain to the memory (even though it would be 91 * sufficient for them to drain to the D-cache). 92 */ 93 #define smc_coherence(a) write_barrier() 94 87 95 #endif 88 96 -
kernel/arch/ia64/include/barrier.h
r80dabb8d re25eca80 46 46 #define write_barrier() memory_barrier() 47 47 48 #define srlz_i() asm volatile (";; srlz.i ;;\n" ::: "memory") 49 #define srlz_d() asm volatile (";; srlz.d\n" ::: "memory") 48 #define srlz_i() \ 49 asm volatile (";; srlz.i ;;\n" ::: "memory") 50 #define srlz_d() \ 51 asm volatile (";; srlz.d\n" ::: "memory") 52 53 #define fc_i(a) \ 54 asm volatile ("fc.i %0\n" : "r" ((a)) :: "memory") 55 #define sync_i() \ 56 asm volatile (";; sync.i\n" ::: "memory") 57 58 #define smc_coherence(a) \ 59 { \ 60 fc_i((a)); \ 61 sync_i(); \ 62 srlz_i(); \ 63 } 50 64 51 65 #endif -
kernel/arch/mips32/include/barrier.h
r80dabb8d re25eca80 46 46 #define write_barrier() asm volatile ("" ::: "memory") 47 47 48 #define smc_coherence(a) 49 48 50 #endif 49 51 -
kernel/arch/ppc32/include/barrier.h
r80dabb8d re25eca80 43 43 #define write_barrier() asm volatile ("eieio" ::: "memory") 44 44 45 #define smc_coherence(a) 46 45 47 #endif 46 48 -
kernel/arch/ppc64/include/barrier.h
r80dabb8d re25eca80 39 39 #define CS_LEAVE_BARRIER() asm volatile ("" ::: "memory") 40 40 41 #define memory_barrier() asm volatile ("sync" ::: "memory") 42 #define read_barrier() asm volatile ("sync" ::: "memory") 43 #define write_barrier() asm volatile ("eieio" ::: "memory") 41 #define memory_barrier() asm volatile ("sync" ::: "memory") 42 #define read_barrier() asm volatile ("sync" ::: "memory") 43 #define write_barrier() asm volatile ("eieio" ::: "memory") 44 45 #define smc_coherence(a) 44 46 45 47 #endif -
kernel/arch/sparc64/include/barrier.h
r80dabb8d re25eca80 58 58 asm volatile ("membar #StoreStore\n" ::: "memory") 59 59 60 static inline void flush(uintptr_t addr) 61 { 62 asm volatile ("flush %0\n" :: "r" (addr) : "memory"); 63 } 64 60 65 /** Flush Instruction Memory instruction. */ 61 static inline void flush (void)66 static inline void flush_blind(void) 62 67 { 63 68 /* … … 80 85 } 81 86 87 #define smc_coherence(a) \ 88 { \ 89 write_barrier(); \ 90 flush((a)); \ 91 } 92 82 93 #endif 83 94 -
kernel/arch/sparc64/include/mm/tlb.h
r80dabb8d re25eca80 161 161 { 162 162 asi_u64_write(ASI_DMMU, VA_PRIMARY_CONTEXT_REG, v); 163 flush ();163 flush_blind(); 164 164 } 165 165 … … 180 180 { 181 181 asi_u64_write(ASI_DMMU, VA_SECONDARY_CONTEXT_REG, v); 182 flush ();182 flush_blind(); 183 183 } 184 184 … … 210 210 reg.tlb_entry = entry; 211 211 asi_u64_write(ASI_ITLB_DATA_ACCESS_REG, reg.value, value); 212 flush ();212 flush_blind(); 213 213 } 214 214 … … 280 280 { 281 281 asi_u64_write(ASI_IMMU, VA_IMMU_TAG_ACCESS, v); 282 flush ();282 flush_blind(); 283 283 } 284 284 … … 319 319 { 320 320 asi_u64_write(ASI_ITLB_DATA_IN_REG, 0, v); 321 flush ();321 flush_blind(); 322 322 } 323 323 … … 348 348 { 349 349 asi_u64_write(ASI_IMMU, VA_IMMU_SFSR, v); 350 flush ();350 flush_blind(); 351 351 } 352 352 … … 401 401 * address within the 402 402 * ASI */ 403 flush ();403 flush_blind(); 404 404 } 405 405 -
kernel/arch/sparc64/src/mm/cache.S
r80dabb8d re25eca80 28 28 29 29 #include <arch/arch.h> 30 31 #define DCACHE_SIZE (16 * 1024) 32 #define DCACHE_LINE_SIZE 32 30 #include <arch/mm/cache_spec.h> 33 31 34 32 #define DCACHE_TAG_SHIFT 2
Note:
See TracChangeset
for help on using the changeset viewer.