diff options
Diffstat (limited to 'arch/mips/loongson/common')
-rw-r--r-- | arch/mips/loongson/common/Makefile | 2 | ||||
-rw-r--r-- | arch/mips/loongson/common/machtype.c | 35 |
2 files changed, 35 insertions, 2 deletions
diff --git a/arch/mips/loongson/common/Makefile b/arch/mips/loongson/common/Makefile index 4e3889dec39e..656b3cc0a2a6 100644 --- a/arch/mips/loongson/common/Makefile +++ b/arch/mips/loongson/common/Makefile | |||
@@ -3,7 +3,7 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y += setup.o init.o cmdline.o env.o time.o reset.o irq.o \ | 5 | obj-y += setup.o init.o cmdline.o env.o time.o reset.o irq.o \ |
6 | pci.o bonito-irq.o mem.o | 6 | pci.o bonito-irq.o mem.o machtype.o |
7 | 7 | ||
8 | # | 8 | # |
9 | # Early printk support | 9 | # Early printk support |
diff --git a/arch/mips/loongson/common/machtype.c b/arch/mips/loongson/common/machtype.c index 845b3fb47e0f..7b348248de7d 100644 --- a/arch/mips/loongson/common/machtype.c +++ b/arch/mips/loongson/common/machtype.c | |||
@@ -2,16 +2,49 @@ | |||
2 | * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology | 2 | * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology |
3 | * Author: Wu Zhangjin, wuzj@lemote.com | 3 | * Author: Wu Zhangjin, wuzj@lemote.com |
4 | * | 4 | * |
5 | * Copyright (c) 2009 Zhang Le <r0bertz@gentoo.org> | ||
6 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it | 7 | * This program is free software; you can redistribute it and/or modify it |
6 | * under the terms of the GNU General Public License as published by the | 8 | * under the terms of the GNU General Public License as published by the |
7 | * Free Software Foundation; either version 2 of the License, or (at your | 9 | * Free Software Foundation; either version 2 of the License, or (at your |
8 | * option) any later version. | 10 | * option) any later version. |
9 | */ | 11 | */ |
12 | #include <linux/errno.h> | ||
13 | #include <asm/bootinfo.h> | ||
10 | 14 | ||
15 | #include <loongson.h> | ||
11 | #include <machine.h> | 16 | #include <machine.h> |
12 | 17 | ||
18 | static const char *system_types[] = { | ||
19 | [MACH_LOONGSON_UNKNOWN] "unknown loongson machine", | ||
20 | [MACH_LEMOTE_FL2E] "lemote-fuloong-2e-box", | ||
21 | [MACH_LEMOTE_FL2F] "lemote-fuloong-2f-box", | ||
22 | [MACH_LEMOTE_ML2F7] "lemote-mengloong-2f-7inches", | ||
23 | [MACH_LEMOTE_YL2F89] "lemote-yeeloong-2f-8.9inches", | ||
24 | [MACH_DEXXON_GDIUM2F10] "dexxon-gidum-2f-10inches", | ||
25 | [MACH_LOONGSON_END] NULL, | ||
26 | }; | ||
27 | |||
13 | const char *get_system_type(void) | 28 | const char *get_system_type(void) |
14 | { | 29 | { |
15 | return LOONGSON_MACHNAME; | 30 | if (mips_machtype == MACH_UNKNOWN) |
31 | mips_machtype = LOONGSON_MACHTYPE; | ||
32 | |||
33 | return system_types[mips_machtype]; | ||
16 | } | 34 | } |
17 | 35 | ||
36 | static __init int machtype_setup(char *str) | ||
37 | { | ||
38 | int machtype = MACH_LEMOTE_FL2E; | ||
39 | |||
40 | if (!str) | ||
41 | return -EINVAL; | ||
42 | |||
43 | for (; system_types[machtype]; machtype++) | ||
44 | if (strstr(system_types[machtype], str)) { | ||
45 | mips_machtype = machtype; | ||
46 | break; | ||
47 | } | ||
48 | return 0; | ||
49 | } | ||
50 | __setup("machtype=", machtype_setup); | ||