PageRenderTime 16ms CodeModel.GetById 7ms app.highlight 6ms RepoModel.GetById 1ms app.codeStats 0ms

/arch/sh/include/asm/bugs.h

http://github.com/mirrors/linux
C Header | 78 lines | 52 code | 10 blank | 16 comment | 1 complexity | 83c2ebc9ca4e56958a51d35a936b3cbc MD5 | raw file
 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 */