blob: 121b2ecddfc35d46042677e1304913461937b71d [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#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
17static void __init check_bugs(void)
18{
Linus Torvalds1da177e2005-04-16 15:20:36 -070019 extern unsigned long loops_per_jiffy;
Paul Mundt41504c32006-12-11 20:28:03 +090020 char *p = &init_utsname()->machine[2]; /* "sh" */
Linus Torvalds1da177e2005-04-16 15:20:36 -070021
Paul Mundt11c19652006-12-25 10:19:56 +090022 current_cpu_data.loops_per_jiffy = loops_per_jiffy;
Linus Torvalds1da177e2005-04-16 15:20:36 -070023
Paul Mundt11c19652006-12-25 10:19:56 +090024 switch (current_cpu_data.type) {
Paul Mundt14bea952007-06-11 10:18:45 +090025 case CPU_SH7619:
Linus Torvalds1da177e2005-04-16 15:20:36 -070026 *p++ = '2';
27 break;
Paul Mundt2ad69902008-03-13 12:52:44 +090028 case CPU_SH7203 ... CPU_MXG:
Yoshinori Satob2296322006-11-05 16:18:08 +090029 *p++ = '2';
30 *p++ = 'a';
31 break;
Magnus Dammd89ddd12007-07-25 11:42:56 +090032 case CPU_SH7705 ... CPU_SH7729:
Linus Torvalds1da177e2005-04-16 15:20:36 -070033 *p++ = '3';
34 break;
35 case CPU_SH7750 ... CPU_SH4_501:
36 *p++ = '4';
37 break;
Yoshihiro Shimoda7d740a02008-01-07 14:40:07 +090038 case CPU_SH7763 ... CPU_SHX3:
Paul Mundt5b19c902006-09-27 14:31:40 +090039 *p++ = '4';
40 *p++ = 'a';
41 break;
Paul Mundt829c7732008-02-12 16:48:16 +090042 case CPU_SH7343 ... CPU_SH7366:
Paul Mundt41504c32006-12-11 20:28:03 +090043 *p++ = '4';
44 *p++ = 'a';
45 *p++ = 'l';
46 *p++ = '-';
47 *p++ = 'd';
48 *p++ = 's';
49 *p++ = 'p';
50 break;
Paul Mundt29e0d202007-11-22 13:11:39 +090051 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 */
Linus Torvalds1da177e2005-04-16 15:20:36 -070061 break;
62 }
63
Paul Mundt11c19652006-12-25 10:19:56 +090064 printk("CPU: %s\n", get_cpu_subtype(&current_cpu_data));
Linus Torvalds1da177e2005-04-16 15:20:36 -070065
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 */