2005-04-16 15:20:36 -07:00
# 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 unsigned long loops_per_jiffy ;
2006-12-11 20:28:03 +09:00
char * p = & init_utsname ( ) - > machine [ 2 ] ; /* "sh" */
2005-04-16 15:20:36 -07:00
2006-12-25 10:19:56 +09:00
current_cpu_data . loops_per_jiffy = loops_per_jiffy ;
2005-04-16 15:20:36 -07:00
2006-12-25 10:19:56 +09:00
switch ( current_cpu_data . type ) {
2007-06-11 10:18:45 +09:00
case CPU_SH7619 :
2005-04-16 15:20:36 -07:00
* p + + = ' 2 ' ;
break ;
2008-03-13 12:52:44 +09:00
case CPU_SH7203 . . . CPU_MXG :
2006-11-05 16:18:08 +09:00
* p + + = ' 2 ' ;
* p + + = ' a ' ;
break ;
2007-07-25 11:42:56 +09:00
case CPU_SH7705 . . . CPU_SH7729 :
2005-04-16 15:20:36 -07:00
* p + + = ' 3 ' ;
break ;
case CPU_SH7750 . . . CPU_SH4_501 :
* p + + = ' 4 ' ;
break ;
2008-01-07 14:40:07 +09:00
case CPU_SH7763 . . . CPU_SHX3 :
2006-09-27 14:31:40 +09:00
* p + + = ' 4 ' ;
* p + + = ' a ' ;
break ;
2008-02-12 16:48:16 +09:00
case CPU_SH7343 . . . CPU_SH7366 :
2006-12-11 20:28:03 +09:00
* p + + = ' 4 ' ;
* p + + = ' a ' ;
* p + + = ' l ' ;
* p + + = ' - ' ;
* p + + = ' d ' ;
* p + + = ' s ' ;
* p + + = ' p ' ;
break ;
2007-11-22 13:11:39 +09:00
case CPU_SH5_101 . . . CPU_SH5_103 :
* p + + = ' 6 ' ;
* p + + = ' 4 ' ;
break ;
case CPU_SH_NONE :
/*
* Specifically use CPU_SH_NONE rather than default : ,
* so we ' re able to have the compiler whine about
* unhandled enumerations .
*/
2005-04-16 15:20:36 -07:00
break ;
}
2006-12-25 10:19:56 +09:00
printk ( " CPU: %s \n " , get_cpu_subtype ( & current_cpu_data ) ) ;
2005-04-16 15:20:36 -07:00
# ifndef __LITTLE_ENDIAN__
/* 'eb' means 'Endian Big' */
* p + + = ' e ' ;
* p + + = ' b ' ;
# endif
* p = ' \0 ' ;
}
# endif /* __ASM_SH_BUGS_H */