bugs.h (1349B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __ASM_SH_BUGS_H 3#define __ASM_SH_BUGS_H 4 5/* 6 * This is included by init/main.c to check for architecture-dependent bugs. 7 * 8 * Needs: 9 * void check_bugs(void); 10 */ 11 12/* 13 * I don't know of any Super-H bugs yet. 14 */ 15 16#include <asm/processor.h> 17 18extern void select_idle_routine(void); 19 20static void __init check_bugs(void) 21{ 22 extern unsigned long loops_per_jiffy; 23 char *p = &init_utsname()->machine[2]; /* "sh" */ 24 25 select_idle_routine(); 26 27 current_cpu_data.loops_per_jiffy = loops_per_jiffy; 28 29 switch (current_cpu_data.family) { 30 case CPU_FAMILY_SH2: 31 *p++ = '2'; 32 break; 33 case CPU_FAMILY_SH2A: 34 *p++ = '2'; 35 *p++ = 'a'; 36 break; 37 case CPU_FAMILY_SH3: 38 *p++ = '3'; 39 break; 40 case CPU_FAMILY_SH4: 41 *p++ = '4'; 42 break; 43 case CPU_FAMILY_SH4A: 44 *p++ = '4'; 45 *p++ = 'a'; 46 break; 47 case CPU_FAMILY_SH4AL_DSP: 48 *p++ = '4'; 49 *p++ = 'a'; 50 *p++ = 'l'; 51 *p++ = '-'; 52 *p++ = 'd'; 53 *p++ = 's'; 54 *p++ = 'p'; 55 break; 56 case CPU_FAMILY_UNKNOWN: 57 /* 58 * Specifically use CPU_FAMILY_UNKNOWN rather than 59 * default:, so we're able to have the compiler whine 60 * about unhandled enumerations. 61 */ 62 break; 63 } 64 65 printk("CPU: %s\n", get_cpu_subtype(¤t_cpu_data)); 66 67#ifndef __LITTLE_ENDIAN__ 68 /* 'eb' means 'Endian Big' */ 69 *p++ = 'e'; 70 *p++ = 'b'; 71#endif 72 *p = '\0'; 73} 74#endif /* __ASM_SH_BUGS_H */