tlbflush.h (bba7d0b9ba0f04d25145de8170a17a3a07bbfdde) | tlbflush.h (28853ac8fe5221de74a14f1182d7b2b383dfd85c) |
---|---|
1/* 2 * arch/arm/include/asm/tlbflush.h 3 * 4 * Copyright (C) 1999-2003 Russell King 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. --- 40 unchanged lines hidden (view full) --- 49 * ============= 50 * 51 * We have the following to choose from: 52 * v3 - ARMv3 53 * v4 - ARMv4 without write buffer 54 * v4wb - ARMv4 with write buffer without I TLB flush entry instruction 55 * v4wbi - ARMv4 with write buffer with I TLB flush entry instruction 56 * fr - Feroceon (v4wbi with non-outer-cacheable page table walks) | 1/* 2 * arch/arm/include/asm/tlbflush.h 3 * 4 * Copyright (C) 1999-2003 Russell King 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. --- 40 unchanged lines hidden (view full) --- 49 * ============= 50 * 51 * We have the following to choose from: 52 * v3 - ARMv3 53 * v4 - ARMv4 without write buffer 54 * v4wb - ARMv4 with write buffer without I TLB flush entry instruction 55 * v4wbi - ARMv4 with write buffer with I TLB flush entry instruction 56 * fr - Feroceon (v4wbi with non-outer-cacheable page table walks) |
57 * fa - Faraday (v4 with write buffer with UTLB and branch target buffer (BTB)) |
|
57 * v6wbi - ARMv6 with write buffer with I TLB flush entry instruction 58 * v7wbi - identical to v6wbi 59 */ 60#undef _TLB 61#undef MULTI_TLB 62 63#define v3_tlb_flags (TLB_V3_FULL | TLB_V3_PAGE) 64 --- 20 unchanged lines hidden (view full) --- 85# else 86# define _TLB v4 87# endif 88#else 89# define v4_possible_flags 0 90# define v4_always_flags (-1UL) 91#endif 92 | 58 * v6wbi - ARMv6 with write buffer with I TLB flush entry instruction 59 * v7wbi - identical to v6wbi 60 */ 61#undef _TLB 62#undef MULTI_TLB 63 64#define v3_tlb_flags (TLB_V3_FULL | TLB_V3_PAGE) 65 --- 20 unchanged lines hidden (view full) --- 86# else 87# define _TLB v4 88# endif 89#else 90# define v4_possible_flags 0 91# define v4_always_flags (-1UL) 92#endif 93 |
94#define fa_tlb_flags (TLB_WB | TLB_BTB | TLB_DCLEAN | \ 95 TLB_V4_U_FULL | TLB_V4_U_PAGE) 96 97#ifdef CONFIG_CPU_TLB_FA 98# define fa_possible_flags fa_tlb_flags 99# define fa_always_flags fa_tlb_flags 100# ifdef _TLB 101# define MULTI_TLB 1 102# else 103# define _TLB fa 104# endif 105#else 106# define fa_possible_flags 0 107# define fa_always_flags (-1UL) 108#endif 109 |
|
93#define v4wbi_tlb_flags (TLB_WB | TLB_DCLEAN | \ 94 TLB_V4_I_FULL | TLB_V4_D_FULL | \ 95 TLB_V4_I_PAGE | TLB_V4_D_PAGE) 96 97#ifdef CONFIG_CPU_TLB_V4WBI 98# define v4wbi_possible_flags v4wbi_tlb_flags 99# define v4wbi_always_flags v4wbi_tlb_flags 100# ifdef _TLB --- 162 unchanged lines hidden (view full) --- 263 * implemented the "%?" method, but this has been discontinued due to too 264 * many people getting it wrong. 265 */ 266#define possible_tlb_flags (v3_possible_flags | \ 267 v4_possible_flags | \ 268 v4wbi_possible_flags | \ 269 fr_possible_flags | \ 270 v4wb_possible_flags | \ | 110#define v4wbi_tlb_flags (TLB_WB | TLB_DCLEAN | \ 111 TLB_V4_I_FULL | TLB_V4_D_FULL | \ 112 TLB_V4_I_PAGE | TLB_V4_D_PAGE) 113 114#ifdef CONFIG_CPU_TLB_V4WBI 115# define v4wbi_possible_flags v4wbi_tlb_flags 116# define v4wbi_always_flags v4wbi_tlb_flags 117# ifdef _TLB --- 162 unchanged lines hidden (view full) --- 280 * implemented the "%?" method, but this has been discontinued due to too 281 * many people getting it wrong. 282 */ 283#define possible_tlb_flags (v3_possible_flags | \ 284 v4_possible_flags | \ 285 v4wbi_possible_flags | \ 286 fr_possible_flags | \ 287 v4wb_possible_flags | \ |
288 fa_possible_flags | \ |
|
271 v6wbi_possible_flags | \ 272 v7wbi_possible_flags) 273 274#define always_tlb_flags (v3_always_flags & \ 275 v4_always_flags & \ 276 v4wbi_always_flags & \ 277 fr_always_flags & \ 278 v4wb_always_flags & \ | 289 v6wbi_possible_flags | \ 290 v7wbi_possible_flags) 291 292#define always_tlb_flags (v3_always_flags & \ 293 v4_always_flags & \ 294 v4wbi_always_flags & \ 295 fr_always_flags & \ 296 v4wb_always_flags & \ |
297 fa_always_flags & \ |
|
279 v6wbi_always_flags & \ 280 v7wbi_always_flags) 281 282#define tlb_flag(f) ((always_tlb_flags & (f)) || (__tlb_flag & possible_tlb_flags & (f))) 283 284static inline void local_flush_tlb_all(void) 285{ 286 const int zero = 0; --- 210 unchanged lines hidden --- | 298 v6wbi_always_flags & \ 299 v7wbi_always_flags) 300 301#define tlb_flag(f) ((always_tlb_flags & (f)) || (__tlb_flag & possible_tlb_flags & (f))) 302 303static inline void local_flush_tlb_all(void) 304{ 305 const int zero = 0; --- 210 unchanged lines hidden --- |