diff options
Diffstat (limited to 'arch/sh/include/asm/bugs.h')
-rw-r--r-- | arch/sh/include/asm/bugs.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/arch/sh/include/asm/bugs.h b/arch/sh/include/asm/bugs.h new file mode 100644 index 000000000000..121b2ecddfc3 --- /dev/null +++ b/arch/sh/include/asm/bugs.h | |||
@@ -0,0 +1,73 @@ | |||
1 | #ifndef __ASM_SH_BUGS_H | ||
2 | #define __ASM_SH_BUGS_H | ||
3 | |||
4 | /* | ||
5 | * This is included by init/main.c to check for architecture-dependent bugs. | ||
6 | * | ||
7 | * Needs: | ||
8 | * void check_bugs(void); | ||
9 | */ | ||
10 | |||
11 | /* | ||
12 | * I don't know of any Super-H bugs yet. | ||
13 | */ | ||
14 | |||
15 | #include <asm/processor.h> | ||
16 | |||
17 | static void __init check_bugs(void) | ||
18 | { | ||
19 | extern unsigned long loops_per_jiffy; | ||
20 | char *p = &init_utsname()->machine[2]; /* "sh" */ | ||
21 | |||
22 | current_cpu_data.loops_per_jiffy = loops_per_jiffy; | ||
23 | |||
24 | switch (current_cpu_data.type) { | ||
25 | case CPU_SH7619: | ||
26 | *p++ = '2'; | ||
27 | break; | ||
28 | case CPU_SH7203 ... CPU_MXG: | ||
29 | *p++ = '2'; | ||
30 | *p++ = 'a'; | ||
31 | break; | ||
32 | case CPU_SH7705 ... CPU_SH7729: | ||
33 | *p++ = '3'; | ||
34 | break; | ||
35 | case CPU_SH7750 ... CPU_SH4_501: | ||
36 | *p++ = '4'; | ||
37 | break; | ||
38 | case CPU_SH7763 ... CPU_SHX3: | ||
39 | *p++ = '4'; | ||
40 | *p++ = 'a'; | ||
41 | break; | ||
42 | case CPU_SH7343 ... CPU_SH7366: | ||
43 | *p++ = '4'; | ||
44 | *p++ = 'a'; | ||
45 | *p++ = 'l'; | ||
46 | *p++ = '-'; | ||
47 | *p++ = 'd'; | ||
48 | *p++ = 's'; | ||
49 | *p++ = 'p'; | ||
50 | break; | ||
51 | case CPU_SH5_101 ... CPU_SH5_103: | ||
52 | *p++ = '6'; | ||
53 | *p++ = '4'; | ||
54 | break; | ||
55 | case CPU_SH_NONE: | ||
56 | /* | ||
57 | * Specifically use CPU_SH_NONE rather than default:, | ||
58 | * so we're able to have the compiler whine about | ||
59 | * unhandled enumerations. | ||
60 | */ | ||
61 | break; | ||
62 | } | ||
63 | |||
64 | printk("CPU: %s\n", get_cpu_subtype(¤t_cpu_data)); | ||
65 | |||
66 | #ifndef __LITTLE_ENDIAN__ | ||
67 | /* 'eb' means 'Endian Big' */ | ||
68 | *p++ = 'e'; | ||
69 | *p++ = 'b'; | ||
70 | #endif | ||
71 | *p = '\0'; | ||
72 | } | ||
73 | #endif /* __ASM_SH_BUGS_H */ | ||