File Index
Files and directories
Sign in
FILE

machtype.c

File preview with syntax highlighting.

linux-6.19.14/arch/mips/loongson2ef/common/machtype.c C
 1// SPDX-License-Identifier: GPL-2.0-or-later
 2/*
 3 * Copyright (C) 2009 Lemote Inc.
 4 * Author: Wu Zhangjin, wuzhangjin@gmail.com
 5 *
 6 * Copyright (c) 2009 Zhang Le <r0bertz@gentoo.org>
 7 */
 8#include <linux/errno.h>
 9#include <asm/bootinfo.h>
10
11#include <loongson.h>
12#include <machine.h>
13
14/* please ensure the length of the machtype string is less than 50 */
15#define MACHTYPE_LEN 50
16
17static const char *system_types[] = {
18	[MACH_LOONGSON_UNKNOWN]	= "unknown loongson machine",
19	[MACH_LEMOTE_FL2E]	= "lemote-fuloong-2e-box",
20	[MACH_LEMOTE_FL2F]	= "lemote-fuloong-2f-box",
21	[MACH_LEMOTE_ML2F7]	= "lemote-mengloong-2f-7inches",
22	[MACH_LEMOTE_YL2F89]	= "lemote-yeeloong-2f-8.9inches",
23	[MACH_DEXXON_GDIUM2F10]	= "dexxon-gdium-2f",
24	[MACH_LEMOTE_NAS]	= "lemote-nas-2f",
25	[MACH_LEMOTE_LL2F]	= "lemote-lynloong-2f",
26	[MACH_LOONGSON_END]	= NULL,
27};
28
29const char *get_system_type(void)
30{
31	return system_types[mips_machtype];
32}
33
34void __weak __init mach_prom_init_machtype(void)
35{
36}
37
38void __init prom_init_machtype(void)
39{
40	char *p, str[MACHTYPE_LEN + 1];
41	int machtype = MACH_LEMOTE_FL2E;
42
43	mips_machtype = LOONGSON_MACHTYPE;
44
45	p = strstr(arcs_cmdline, "machtype=");
46	if (!p) {
47		mach_prom_init_machtype();
48		return;
49	}
50	p += strlen("machtype=");
51	strscpy(str, p);
52	p = strstr(str, " ");
53	if (p)
54		*p = '\0';
55
56	for (; system_types[machtype]; machtype++)
57		if (strstr(system_types[machtype], str)) {
58			mips_machtype = machtype;
59			break;
60		}
61}
~/ Read-only file preview.