home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / sh / include / asm / bugs.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.3 KB  |  74 lines

  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.  
  17. static 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_SH7619:
  26.         *p++ = '2';
  27.         break;
  28.     case CPU_SH7203 ... CPU_MXG:
  29.         *p++ = '2';
  30.         *p++ = 'a';
  31.         break;
  32.     case CPU_SH7705 ... CPU_SH7729:
  33.         *p++ = '3';
  34.         break;
  35.     case CPU_SH7750 ... CPU_SH4_501:
  36.         *p++ = '4';
  37.         break;
  38.     case CPU_SH7763 ... CPU_SHX3:
  39.         *p++ = '4';
  40.         *p++ = 'a';
  41.         break;
  42.     case CPU_SH7343 ... CPU_SH7366:
  43.         *p++ = '4';
  44.         *p++ = 'a';
  45.         *p++ = 'l';
  46.         *p++ = '-';
  47.         *p++ = 'd';
  48.         *p++ = 's';
  49.         *p++ = 'p';
  50.         break;
  51.     case CPU_SH5_101 ... CPU_SH5_103:
  52.         *p++ = '6';
  53.         *p++ = '4';
  54.         break;
  55.     case CPU_SH_NONE:
  56.         /*
  57.          * Specifically use CPU_SH_NONE rather than default:,
  58.          * so we're able to have the compiler whine about
  59.          * unhandled enumerations.
  60.          */
  61.         break;
  62.     }
  63.  
  64.     printk("CPU: %s\n", get_cpu_subtype(¤t_cpu_data));
  65.  
  66. #ifndef __LITTLE_ENDIAN__
  67.     /* 'eb' means 'Endian Big' */
  68.     *p++ = 'e';
  69.     *p++ = 'b';
  70. #endif
  71.     *p = '\0';
  72. }
  73. #endif /* __ASM_SH_BUGS_H */
  74.