/arch/sh/include/asm/bugs.h
C++ Header | 77 lines | 52 code | 10 blank | 15 comment | 1 complexity | 381b0675e450309acea6e45d0c2e92d7 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, AGPL-1.0
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 17extern void select_idle_routine(void); 18 19static 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(¤t_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 */