Merge branch 'for-rmk/samsung6' of git://git.fluff.org/bjdooks/linux into devel-stable
[linux-2.6.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 */