Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
1da177e4 LT |
2 | #ifndef __ASM_SH_BUGS_H |
3 | #define __ASM_SH_BUGS_H | |
4 | ||
5 | /* | |
6 | * This is included by init/main.c to check for architecture-dependent bugs. | |
7 | * | |
8 | * Needs: | |
9 | * void check_bugs(void); | |
10 | */ | |
11 | ||
12 | /* | |
13 | * I don't know of any Super-H bugs yet. | |
14 | */ | |
15 | ||
16 | #include <asm/processor.h> | |
17 | ||
f533c3d3 PM |
18 | extern void select_idle_routine(void); |
19 | ||
1da177e4 LT |
20 | static void __init check_bugs(void) |
21 | { | |
1da177e4 | 22 | extern unsigned long loops_per_jiffy; |
41504c39 | 23 | char *p = &init_utsname()->machine[2]; /* "sh" */ |
1da177e4 | 24 | |
f533c3d3 PM |
25 | select_idle_routine(); |
26 | ||
11c19656 | 27 | current_cpu_data.loops_per_jiffy = loops_per_jiffy; |
1da177e4 | 28 | |
e82da214 PM |
29 | switch (current_cpu_data.family) { |
30 | case CPU_FAMILY_SH2: | |
1da177e4 LT |
31 | *p++ = '2'; |
32 | break; | |
e82da214 | 33 | case CPU_FAMILY_SH2A: |
b229632a YS |
34 | *p++ = '2'; |
35 | *p++ = 'a'; | |
36 | break; | |
e82da214 | 37 | case CPU_FAMILY_SH3: |
1da177e4 LT |
38 | *p++ = '3'; |
39 | break; | |
e82da214 | 40 | case CPU_FAMILY_SH4: |
1da177e4 LT |
41 | *p++ = '4'; |
42 | break; | |
e82da214 | 43 | case CPU_FAMILY_SH4A: |
5b19c908 PM |
44 | *p++ = '4'; |
45 | *p++ = 'a'; | |
46 | break; | |
e82da214 | 47 | case CPU_FAMILY_SH4AL_DSP: |
41504c39 PM |
48 | *p++ = '4'; |
49 | *p++ = 'a'; | |
50 | *p++ = 'l'; | |
51 | *p++ = '-'; | |
52 | *p++ = 'd'; | |
53 | *p++ = 's'; | |
54 | *p++ = 'p'; | |
55 | break; | |
e82da214 | 56 | case CPU_FAMILY_SH5: |
29e0d209 PM |
57 | *p++ = '6'; |
58 | *p++ = '4'; | |
59 | break; | |
e82da214 | 60 | case CPU_FAMILY_UNKNOWN: |
29e0d209 | 61 | /* |
e82da214 PM |
62 | * Specifically use CPU_FAMILY_UNKNOWN rather than |
63 | * default:, so we're able to have the compiler whine | |
64 | * about unhandled enumerations. | |
29e0d209 | 65 | */ |
1da177e4 LT |
66 | break; |
67 | } | |
68 | ||
11c19656 | 69 | printk("CPU: %s\n", get_cpu_subtype(¤t_cpu_data)); |
1da177e4 LT |
70 | |
71 | #ifndef __LITTLE_ENDIAN__ | |
72 | /* 'eb' means 'Endian Big' */ | |
73 | *p++ = 'e'; | |
74 | *p++ = 'b'; | |
75 | #endif | |
76 | *p = '\0'; | |
77 | } | |
78 | #endif /* __ASM_SH_BUGS_H */ |