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_SH7604 ... CPU_SH7619: 26 *p++ = '2'; 27 break; 28 case CPU_SH7206: 29 *p++ = '2'; 30 *p++ = 'a'; 31 break; 32 case CPU_SH7705 ... CPU_SH7300: 33 *p++ = '3'; 34 break; 35 case CPU_SH7750 ... CPU_SH4_501: 36 *p++ = '4'; 37 break; 38 case CPU_SH7770 ... CPU_SH7785: 39 *p++ = '4'; 40 *p++ = 'a'; 41 break; 42 case CPU_SH73180 ... CPU_SH7722: 43 *p++ = '4'; 44 *p++ = 'a'; 45 *p++ = 'l'; 46 *p++ = '-'; 47 *p++ = 'd'; 48 *p++ = 's'; 49 *p++ = 'p'; 50 break; 51 default: 52 *p++ = '?'; 53 *p++ = '!'; 54 break; 55 } 56 57 printk("CPU: %s\n", get_cpu_subtype(¤t_cpu_data)); 58 59#ifndef __LITTLE_ENDIAN__ 60 /* 'eb' means 'Endian Big' */ 61 *p++ = 'e'; 62 *p++ = 'b'; 63#endif 64 *p = '\0'; 65} 66#endif /* __ASM_SH_BUGS_H */ 67