diff options
Diffstat (limited to 'include/asm-sh/bugs.h')
-rw-r--r-- | include/asm-sh/bugs.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/include/asm-sh/bugs.h b/include/asm-sh/bugs.h new file mode 100644 index 00000000000..a6de3d06a3d --- /dev/null +++ b/include/asm-sh/bugs.h @@ -0,0 +1,50 @@ +#ifndef __ASM_SH_BUGS_H +#define __ASM_SH_BUGS_H + +/* + * This is included by init/main.c to check for architecture-dependent bugs. + * + * Needs: + * void check_bugs(void); + */ + +/* + * I don't know of any Super-H bugs yet. + */ + +#include <asm/processor.h> + +static void __init check_bugs(void) +{ + extern char *get_cpu_subtype(void); + extern unsigned long loops_per_jiffy; + char *p= &system_utsname.machine[2]; /* "sh" */ + + cpu_data->loops_per_jiffy = loops_per_jiffy; + + switch (cpu_data->type) { + case CPU_SH7604: + *p++ = '2'; + break; + case CPU_SH7705 ... CPU_SH7300: + *p++ = '3'; + break; + case CPU_SH7750 ... CPU_SH4_501: + *p++ = '4'; + break; + default: + *p++ = '?'; + *p++ = '!'; + break; + } + + printk("CPU: %s\n", get_cpu_subtype()); + +#ifndef __LITTLE_ENDIAN__ + /* 'eb' means 'Endian Big' */ + *p++ = 'e'; + *p++ = 'b'; +#endif + *p = '\0'; +} +#endif /* __ASM_SH_BUGS_H */ |