diff options
author | Wu Zhangjin <wuzhangjin@gmail.com> | 2009-07-02 11:27:12 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2009-09-17 14:07:47 -0400 |
commit | 3209e70e5ed1821be8d9b87fe9e8bd6cffa4b4c7 (patch) | |
tree | 21eb5afbdd2d1568dfb0a4d117b5267de6786b3d /arch/mips/loongson/common | |
parent | 85749d24bcf90440b10394312e5b1c96d1a62cdb (diff) |
MIPS: Loongson: Add a machtype kernel command line argument
The difference between some loongson-based machines is very small, so, if
there is no necessary to add new kernel config options to cope with this
difference, it will be better to share the same kernel image file between
them, benefit from this, the linux distribution developers only have a need
to compile the kernel one time.
This machtype kernel command line argument will be used later to share the
same kernel image file between two different machines(menglong & yeeloong)
made by lemote.
Thanks very much to Zhang Le for cleaning up the machtype implementation.
Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
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); | ||