]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blob - arch/sh/include/asm/bugs.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/joern/logfs
[mirror_ubuntu-focal-kernel.git] / arch / sh / include / asm / bugs.h
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 extern void select_idle_routine(void);
18
19 static void __init check_bugs(void)
20 {
21 extern unsigned long loops_per_jiffy;
22 char *p = &init_utsname()->machine[2]; /* "sh" */
23
24 select_idle_routine();
25
26 current_cpu_data.loops_per_jiffy = loops_per_jiffy;
27
28 switch (current_cpu_data.family) {
29 case CPU_FAMILY_SH2:
30 *p++ = '2';
31 break;
32 case CPU_FAMILY_SH2A:
33 *p++ = '2';
34 *p++ = 'a';
35 break;
36 case CPU_FAMILY_SH3:
37 *p++ = '3';
38 break;
39 case CPU_FAMILY_SH4:
40 *p++ = '4';
41 break;
42 case CPU_FAMILY_SH4A:
43 *p++ = '4';
44 *p++ = 'a';
45 break;
46 case CPU_FAMILY_SH4AL_DSP:
47 *p++ = '4';
48 *p++ = 'a';
49 *p++ = 'l';
50 *p++ = '-';
51 *p++ = 'd';
52 *p++ = 's';
53 *p++ = 'p';
54 break;
55 case CPU_FAMILY_SH5:
56 *p++ = '6';
57 *p++ = '4';
58 break;
59 case CPU_FAMILY_UNKNOWN:
60 /*
61 * Specifically use CPU_FAMILY_UNKNOWN rather than
62 * default:, so we're able to have the compiler whine
63 * about unhandled enumerations.
64 */
65 break;
66 }
67
68 printk("CPU: %s\n", get_cpu_subtype(&current_cpu_data));
69
70 #ifndef __LITTLE_ENDIAN__
71 /* 'eb' means 'Endian Big' */
72 *p++ = 'e';
73 *p++ = 'b';
74 #endif
75 *p = '\0';
76 }
77 #endif /* __ASM_SH_BUGS_H */