diff options
author | Paul Mundt <lethal@linux-sh.org> | 2007-05-15 02:38:30 -0400 |
---|---|---|
committer | Paul Mundt <lethal@hera.kernel.org> | 2007-06-07 22:43:40 -0400 |
commit | fd8f20e8e2f8f1d9201086bff444c8d35f0a6a45 (patch) | |
tree | 0823660fdd2ec53c6dede452d0802f54119bbde6 | |
parent | 82f81f4784479df17a80caff4a7156da0a2f7dea (diff) |
sh: Rip out special unknown machvec.
This kills off the BareCPU board as a "special" machvec, rather,
we leave this as a default for when no other vector is available,
or when we want to use it in combination with other vectors for
testing with generic ops. As sh_mv is copied out anyways (or
overloaded when an alternate vector is explicitly selected), this
doesn't consume any additional memory.
The generic machvec can be forcibly selected with sh_mv=generic,
or by not having any other boards enabled.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r-- | arch/sh/Kconfig | 14 | ||||
-rw-r--r-- | arch/sh/Makefile | 1 | ||||
-rw-r--r-- | arch/sh/boards/unknown/Makefile | 6 | ||||
-rw-r--r-- | arch/sh/boards/unknown/setup.c | 20 | ||||
-rw-r--r-- | arch/sh/kernel/cf-enabler.c | 6 | ||||
-rw-r--r-- | arch/sh/kernel/machvec.c | 12 | ||||
-rw-r--r-- | arch/sh/kernel/setup.c | 2 |
7 files changed, 13 insertions, 48 deletions
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 4c9d8fc59fe2..6c42c8ed9781 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -381,18 +381,6 @@ config SH_LBOX_RE2 | |||
381 | help | 381 | help |
382 | Select L-BOX RE2 if configuring for the NTT COMWARE L-BOX RE2. | 382 | Select L-BOX RE2 if configuring for the NTT COMWARE L-BOX RE2. |
383 | 383 | ||
384 | config SH_UNKNOWN | ||
385 | bool "BareCPU" | ||
386 | help | ||
387 | "Bare CPU" aka "unknown" means an SH-based system which is not one | ||
388 | of the specific ones mentioned above, which means you need to enter | ||
389 | all sorts of stuff like CONFIG_MEMORY_START because the config | ||
390 | system doesn't already know what it is. You get a machine vector | ||
391 | without any platform-specific code in it, so things like the RTC may | ||
392 | not work. | ||
393 | |||
394 | This option is for the early stages of porting to a new machine. | ||
395 | |||
396 | endmenu | 384 | endmenu |
397 | 385 | ||
398 | source "arch/sh/boards/renesas/hs7751rvoip/Kconfig" | 386 | source "arch/sh/boards/renesas/hs7751rvoip/Kconfig" |
@@ -401,7 +389,7 @@ source "arch/sh/boards/renesas/r7780rp/Kconfig" | |||
401 | 389 | ||
402 | config CF_ENABLER | 390 | config CF_ENABLER |
403 | bool "Compact Flash Enabler support" | 391 | bool "Compact Flash Enabler support" |
404 | depends on SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_SH03 | 392 | depends on SH_SOLUTION_ENGINE || SH_SH03 |
405 | ---help--- | 393 | ---help--- |
406 | Compact Flash is a small, removable mass storage device introduced | 394 | Compact Flash is a small, removable mass storage device introduced |
407 | in 1994 originally as a PCMCIA device. If you say `Y' here, you | 395 | in 1994 originally as a PCMCIA device. If you say `Y' here, you |
diff --git a/arch/sh/Makefile b/arch/sh/Makefile index c7323e7dce67..ec2d82eda90d 100644 --- a/arch/sh/Makefile +++ b/arch/sh/Makefile | |||
@@ -113,7 +113,6 @@ machdir-$(CONFIG_SH_SHMIN) += shmin | |||
113 | machdir-$(CONFIG_SH_7206_SOLUTION_ENGINE) += se/7206 | 113 | machdir-$(CONFIG_SH_7206_SOLUTION_ENGINE) += se/7206 |
114 | machdir-$(CONFIG_SH_7619_SOLUTION_ENGINE) += se/7619 | 114 | machdir-$(CONFIG_SH_7619_SOLUTION_ENGINE) += se/7619 |
115 | machdir-$(CONFIG_SH_LBOX_RE2) += lboxre2 | 115 | machdir-$(CONFIG_SH_LBOX_RE2) += lboxre2 |
116 | machdir-$(CONFIG_SH_UNKNOWN) += unknown | ||
117 | 116 | ||
118 | incdir-y := $(notdir $(machdir-y)) | 117 | incdir-y := $(notdir $(machdir-y)) |
119 | 118 | ||
diff --git a/arch/sh/boards/unknown/Makefile b/arch/sh/boards/unknown/Makefile deleted file mode 100644 index 7d18f408b0c5..000000000000 --- a/arch/sh/boards/unknown/Makefile +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | # | ||
2 | # Makefile for unknown SH boards | ||
3 | # | ||
4 | |||
5 | obj-y := setup.o | ||
6 | |||
diff --git a/arch/sh/boards/unknown/setup.c b/arch/sh/boards/unknown/setup.c deleted file mode 100644 index f975a1f9094b..000000000000 --- a/arch/sh/boards/unknown/setup.c +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | /* | ||
2 | * linux/arch/sh/boards/unknown/setup.c | ||
3 | * | ||
4 | * Copyright (C) 2002 Paul Mundt | ||
5 | * | ||
6 | * May be copied or modified under the terms of the GNU General Public | ||
7 | * License. See linux/COPYING for more information. | ||
8 | * | ||
9 | * Setup code for an unknown machine (internal peripherals only) | ||
10 | * | ||
11 | * This is the simplest of all boards, and serves only as a quick and dirty | ||
12 | * method to start debugging a new board during bring-up until proper board | ||
13 | * setup code is written. | ||
14 | */ | ||
15 | #include <linux/init.h> | ||
16 | #include <asm/machvec.h> | ||
17 | |||
18 | static struct sh_machine_vector mv_unknown __initmv = { | ||
19 | .mv_name = "Unknown", | ||
20 | }; | ||
diff --git a/arch/sh/kernel/cf-enabler.c b/arch/sh/kernel/cf-enabler.c index ebc73b85094a..1c3b99642e1c 100644 --- a/arch/sh/kernel/cf-enabler.c +++ b/arch/sh/kernel/cf-enabler.c | |||
@@ -75,11 +75,7 @@ static int __init cf_init_default(void) | |||
75 | #if defined(CONFIG_CPU_SH4) | 75 | #if defined(CONFIG_CPU_SH4) |
76 | allocate_cf_area(); | 76 | allocate_cf_area(); |
77 | #endif | 77 | #endif |
78 | #if defined(CONFIG_SH_UNKNOWN) | 78 | |
79 | /* This should be done in each board's init_xxx_irq. */ | ||
80 | make_imask_irq(14); | ||
81 | disable_irq(14); | ||
82 | #endif | ||
83 | return 0; | 79 | return 0; |
84 | } | 80 | } |
85 | 81 | ||
diff --git a/arch/sh/kernel/machvec.c b/arch/sh/kernel/machvec.c index e8121de5faa4..23c5948f0124 100644 --- a/arch/sh/kernel/machvec.c +++ b/arch/sh/kernel/machvec.c | |||
@@ -35,6 +35,8 @@ static struct sh_machine_vector * __init get_mv_byname(const char *name) | |||
35 | return NULL; | 35 | return NULL; |
36 | } | 36 | } |
37 | 37 | ||
38 | static unsigned int __initdata machvec_selected; | ||
39 | |||
38 | static int __init early_parse_mv(char *from) | 40 | static int __init early_parse_mv(char *from) |
39 | { | 41 | { |
40 | char mv_name[MV_NAME_SIZE] = ""; | 42 | char mv_name[MV_NAME_SIZE] = ""; |
@@ -55,9 +57,15 @@ static int __init early_parse_mv(char *from) | |||
55 | mv_name[mv_len] = '\0'; | 57 | mv_name[mv_len] = '\0'; |
56 | from = mv_end; | 58 | from = mv_end; |
57 | 59 | ||
60 | machvec_selected = 1; | ||
61 | |||
62 | /* Boot with the generic vector */ | ||
63 | if (strcmp(mv_name, "generic") == 0) | ||
64 | return 0; | ||
65 | |||
58 | mvp = get_mv_byname(mv_name); | 66 | mvp = get_mv_byname(mv_name); |
59 | if (unlikely(!mvp)) { | 67 | if (unlikely(!mvp)) { |
60 | printk("Available vectors:\n\n\t"); | 68 | printk("Available vectors:\n\n\t'%s', ", sh_mv.mv_name); |
61 | for_each_mv(mvp) | 69 | for_each_mv(mvp) |
62 | printk("'%s', ", mvp->mv_name); | 70 | printk("'%s', ", mvp->mv_name); |
63 | printk("\n\n"); | 71 | printk("\n\n"); |
@@ -76,7 +84,7 @@ void __init sh_mv_setup(void) | |||
76 | * Only overload the machvec if one hasn't been selected on | 84 | * Only overload the machvec if one hasn't been selected on |
77 | * the command line with sh_mv= | 85 | * the command line with sh_mv= |
78 | */ | 86 | */ |
79 | if (strcmp(sh_mv.mv_name, "Unknown") != 0) { | 87 | if (!machvec_selected) { |
80 | unsigned long machvec_size; | 88 | unsigned long machvec_size; |
81 | 89 | ||
82 | machvec_size = ((unsigned long)&__machvec_end - | 90 | machvec_size = ((unsigned long)&__machvec_end - |
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c index 55ed653c7a67..6f1ea9b33374 100644 --- a/arch/sh/kernel/setup.c +++ b/arch/sh/kernel/setup.c | |||
@@ -47,7 +47,7 @@ struct sh_cpuinfo boot_cpu_data = { CPU_SH_NONE, 10000000, }; | |||
47 | * The machine vector. First entry in .machvec.init, or clobbered by | 47 | * The machine vector. First entry in .machvec.init, or clobbered by |
48 | * sh_mv= on the command line, prior to .machvec.init teardown. | 48 | * sh_mv= on the command line, prior to .machvec.init teardown. |
49 | */ | 49 | */ |
50 | struct sh_machine_vector sh_mv = { .mv_name = "Unknown", }; | 50 | struct sh_machine_vector sh_mv = { .mv_name = "generic", }; |
51 | 51 | ||
52 | #ifdef CONFIG_VT | 52 | #ifdef CONFIG_VT |
53 | struct screen_info screen_info; | 53 | struct screen_info screen_info; |