14 #include <linux/kernel.h>
17 #include <asm/mmu_context.h>
18 #include <asm/processor.h>
19 #include <asm/uaccess.h>
21 #include <asm/cacheflush.h>
22 #include <asm/cache.h>
26 #include <asm/sh_bios.h>
27 #include <asm/setup.h>
45 #define onchip_setup(x) \
46 static int x##_disabled __cpuinitdata = !cpu_has_##x; \
48 static int __cpuinit x##_setup(char *opts) \
53 __setup("no" __stringify(x), x##_setup);
58 #ifdef CONFIG_SPECULATIVE_EXECUTION
59 #define CPUOPM 0xff2f0000
60 #define CPUOPM_RABD (1 << 5)
72 #define speculative_execution_init() do { } while (0)
75 #ifdef CONFIG_CPU_SH4A
76 #define EXPMASK 0xff2f0004
77 #define EXPMASK_RTEDS (1 << 0)
78 #define EXPMASK_BRDSSLP (1 << 1)
79 #define EXPMASK_MMCAW (1 << 4)
92 expmask &= ~(EXPMASK_RTEDS | EXPMASK_BRDSSLP | EXPMASK_MMCAW);
98 #define expmask_init() do { } while (0)
109 #ifdef CONFIG_SUPERH32
129 unsigned long ways, waysize, addrstart;
144 #ifdef CCR_CACHE_EMODE
156 for (addr = addrstart;
157 addr < addrstart + waysize;
171 #ifdef CCR_CACHE_EMODE
176 flags &= ~CCR_CACHE_EMODE;
179 #if defined(CONFIG_CACHE_WRITETHROUGH)
182 #elif defined(CONFIG_CACHE_WRITEBACK)
187 flags &= ~CCR_CACHE_ENABLE;
196 #define cache_init() do { } while (0)
199 #define CSHAPE(totalsize, linesize, assoc) \
200 ((totalsize & ~0xff) | (linesize << 4) | assoc)
202 #define CACHE_DESC_SHAPE(desc) \
203 CSHAPE((desc).way_size * (desc).ways, ilog2((desc).linesz), (desc).ways)
205 static void detect_cache_shape(
void)
279 static inline void __cpuinit dsp_init(
void) { }
306 panic(
"Unknown CPU");
331 detect_cache_shape();