Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/sh/include/asm/bugs.h
15125 views
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
extern void select_idle_routine(void);
18
19
static void __init check_bugs(void)
20
{
21
extern unsigned long loops_per_jiffy;
22
char *p = &init_utsname()->machine[2]; /* "sh" */
23
24
select_idle_routine();
25
26
current_cpu_data.loops_per_jiffy = loops_per_jiffy;
27
28
switch (current_cpu_data.family) {
29
case CPU_FAMILY_SH2:
30
*p++ = '2';
31
break;
32
case CPU_FAMILY_SH2A:
33
*p++ = '2';
34
*p++ = 'a';
35
break;
36
case CPU_FAMILY_SH3:
37
*p++ = '3';
38
break;
39
case CPU_FAMILY_SH4:
40
*p++ = '4';
41
break;
42
case CPU_FAMILY_SH4A:
43
*p++ = '4';
44
*p++ = 'a';
45
break;
46
case CPU_FAMILY_SH4AL_DSP:
47
*p++ = '4';
48
*p++ = 'a';
49
*p++ = 'l';
50
*p++ = '-';
51
*p++ = 'd';
52
*p++ = 's';
53
*p++ = 'p';
54
break;
55
case CPU_FAMILY_SH5:
56
*p++ = '6';
57
*p++ = '4';
58
break;
59
case CPU_FAMILY_UNKNOWN:
60
/*
61
* Specifically use CPU_FAMILY_UNKNOWN rather than
62
* default:, so we're able to have the compiler whine
63
* about unhandled enumerations.
64
*/
65
break;
66
}
67
68
printk("CPU: %s\n", get_cpu_subtype(&current_cpu_data));
69
70
#ifndef __LITTLE_ENDIAN__
71
/* 'eb' means 'Endian Big' */
72
*p++ = 'e';
73
*p++ = 'b';
74
#endif
75
*p = '\0';
76
}
77
#endif /* __ASM_SH_BUGS_H */
78
79