Commit | Line | Data |
---|---|---|
26ef5c09 DG |
1 | #ifndef _ASM_POWERPC_CACHE_H |
2 | #define _ASM_POWERPC_CACHE_H | |
3 | ||
4 | #ifdef __KERNEL__ | |
5 | ||
26ef5c09 DG |
6 | |
7 | /* bytes per L1 cache line */ | |
8 | #if defined(CONFIG_8xx) || defined(CONFIG_403GCX) | |
9 | #define L1_CACHE_SHIFT 4 | |
10 | #define MAX_COPY_PREFETCH 1 | |
3dfa8773 KG |
11 | #elif defined(CONFIG_PPC_E500MC) |
12 | #define L1_CACHE_SHIFT 6 | |
13 | #define MAX_COPY_PREFETCH 4 | |
26ef5c09 DG |
14 | #elif defined(CONFIG_PPC32) |
15 | #define L1_CACHE_SHIFT 5 | |
16 | #define MAX_COPY_PREFETCH 4 | |
17 | #else /* CONFIG_PPC64 */ | |
18 | #define L1_CACHE_SHIFT 7 | |
19 | #endif | |
20 | ||
21 | #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) | |
22 | ||
23 | #define SMP_CACHE_BYTES L1_CACHE_BYTES | |
26ef5c09 DG |
24 | |
25 | #if defined(__powerpc64__) && !defined(__ASSEMBLY__) | |
26 | struct ppc64_caches { | |
27 | u32 dsize; /* L1 d-cache size */ | |
28 | u32 dline_size; /* L1 d-cache line size */ | |
29 | u32 log_dline_size; | |
30 | u32 dlines_per_page; | |
31 | u32 isize; /* L1 i-cache size */ | |
32 | u32 iline_size; /* L1 i-cache line size */ | |
33 | u32 log_iline_size; | |
34 | u32 ilines_per_page; | |
35 | }; | |
36 | ||
37 | extern struct ppc64_caches ppc64_caches; | |
38 | #endif /* __powerpc64__ && ! __ASSEMBLY__ */ | |
39 | ||
bd67fcf9 TB |
40 | #if !defined(__ASSEMBLY__) |
41 | #define __read_mostly __attribute__((__section__(".data.read_mostly"))) | |
42 | #endif | |
43 | ||
26ef5c09 DG |
44 | #endif /* __KERNEL__ */ |
45 | #endif /* _ASM_POWERPC_CACHE_H */ |