linux/arch/sh/include/asm/bugs.h
<<
>>
Prefs
   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_SH5:
  57                *p++ = '6';
  58                *p++ = '4';
  59                break;
  60        case CPU_FAMILY_UNKNOWN:
  61                /*
  62                 * Specifically use CPU_FAMILY_UNKNOWN rather than
  63                 * default:, so we're able to have the compiler whine
  64                 * about unhandled enumerations.
  65                 */
  66                break;
  67        }
  68
  69        printk("CPU: %s\n", get_cpu_subtype(&current_cpu_data));
  70
  71#ifndef __LITTLE_ENDIAN__
  72        /* 'eb' means 'Endian Big' */
  73        *p++ = 'e';
  74        *p++ = 'b';
  75#endif
  76        *p = '\0';
  77}
  78#endif /* __ASM_SH_BUGS_H */
  79