diff options
-rw-r--r-- | Documentation/kernel-parameters.txt | 4 | ||||
-rw-r--r-- | arch/mips/include/asm/bootinfo.h | 12 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-loongson/machine.h | 2 | ||||
-rw-r--r-- | arch/mips/loongson/common/Makefile | 2 | ||||
-rw-r--r-- | arch/mips/loongson/common/machtype.c | 35 | ||||
-rw-r--r-- | arch/mips/loongson/fuloong-2e/Makefile | 2 |
6 files changed, 53 insertions, 4 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 4c12a290bee5..f45d0d8e71d8 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -1286,6 +1286,10 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1286 | (machvec) in a generic kernel. | 1286 | (machvec) in a generic kernel. |
1287 | Example: machvec=hpzx1_swiotlb | 1287 | Example: machvec=hpzx1_swiotlb |
1288 | 1288 | ||
1289 | machtype= [Loongson] Share the same kernel image file between different | ||
1290 | yeeloong laptop. | ||
1291 | Example: machtype=lemote-yeeloong-2f-7inch | ||
1292 | |||
1289 | max_addr=nn[KMG] [KNL,BOOT,ia64] All physical memory greater | 1293 | max_addr=nn[KMG] [KNL,BOOT,ia64] All physical memory greater |
1290 | than or equal to this physical address is ignored. | 1294 | than or equal to this physical address is ignored. |
1291 | 1295 | ||
diff --git a/arch/mips/include/asm/bootinfo.h b/arch/mips/include/asm/bootinfo.h index 610fe3af7a03..f5dfaf6a1606 100644 --- a/arch/mips/include/asm/bootinfo.h +++ b/arch/mips/include/asm/bootinfo.h | |||
@@ -7,6 +7,7 @@ | |||
7 | * Copyright (C) 1995, 1996 Andreas Busse | 7 | * Copyright (C) 1995, 1996 Andreas Busse |
8 | * Copyright (C) 1995, 1996 Stoned Elipot | 8 | * Copyright (C) 1995, 1996 Stoned Elipot |
9 | * Copyright (C) 1995, 1996 Paul M. Antoine. | 9 | * Copyright (C) 1995, 1996 Paul M. Antoine. |
10 | * Copyright (C) 2009 Zhang Le | ||
10 | */ | 11 | */ |
11 | #ifndef _ASM_BOOTINFO_H | 12 | #ifndef _ASM_BOOTINFO_H |
12 | #define _ASM_BOOTINFO_H | 13 | #define _ASM_BOOTINFO_H |
@@ -57,6 +58,17 @@ | |||
57 | #define MACH_MIKROTIK_RB532 0 /* Mikrotik RouterBoard 532 */ | 58 | #define MACH_MIKROTIK_RB532 0 /* Mikrotik RouterBoard 532 */ |
58 | #define MACH_MIKROTIK_RB532A 1 /* Mikrotik RouterBoard 532A */ | 59 | #define MACH_MIKROTIK_RB532A 1 /* Mikrotik RouterBoard 532A */ |
59 | 60 | ||
61 | /* | ||
62 | * Valid machtype for Loongson family | ||
63 | */ | ||
64 | #define MACH_LOONGSON_UNKNOWN 0 | ||
65 | #define MACH_LEMOTE_FL2E 1 | ||
66 | #define MACH_LEMOTE_FL2F 2 | ||
67 | #define MACH_LEMOTE_ML2F7 3 | ||
68 | #define MACH_LEMOTE_YL2F89 4 | ||
69 | #define MACH_DEXXON_GDIUM2F10 5 | ||
70 | #define MACH_LOONGSON_END 6 | ||
71 | |||
60 | #define CL_SIZE COMMAND_LINE_SIZE | 72 | #define CL_SIZE COMMAND_LINE_SIZE |
61 | 73 | ||
62 | extern char *system_type; | 74 | extern char *system_type; |
diff --git a/arch/mips/include/asm/mach-loongson/machine.h b/arch/mips/include/asm/mach-loongson/machine.h index 8e60d363594e..206ea2067916 100644 --- a/arch/mips/include/asm/mach-loongson/machine.h +++ b/arch/mips/include/asm/mach-loongson/machine.h | |||
@@ -15,7 +15,7 @@ | |||
15 | 15 | ||
16 | #define LOONGSON_UART_BASE (BONITO_PCIIO_BASE + 0x3f8) | 16 | #define LOONGSON_UART_BASE (BONITO_PCIIO_BASE + 0x3f8) |
17 | 17 | ||
18 | #define LOONGSON_MACHNAME "lemote-fuloong-2e-box" | 18 | #define LOONGSON_MACHTYPE MACH_LEMOTE_FL2E |
19 | 19 | ||
20 | #endif | 20 | #endif |
21 | 21 | ||
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); | ||
diff --git a/arch/mips/loongson/fuloong-2e/Makefile b/arch/mips/loongson/fuloong-2e/Makefile index 96e45c13c850..3aba5fcc09dc 100644 --- a/arch/mips/loongson/fuloong-2e/Makefile +++ b/arch/mips/loongson/fuloong-2e/Makefile | |||
@@ -2,6 +2,6 @@ | |||
2 | # Makefile for Lemote Fuloong2e mini-PC board. | 2 | # Makefile for Lemote Fuloong2e mini-PC board. |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y += irq.o reset.o machtype.o | 5 | obj-y += irq.o reset.o |
6 | 6 | ||
7 | EXTRA_CFLAGS += -Werror | 7 | EXTRA_CFLAGS += -Werror |