at v2.6.26-rc2 73 lines 1.3 kB view raw
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 17static 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(&current_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 */