aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2007-05-15 02:38:30 -0400
committerPaul Mundt <lethal@hera.kernel.org>2007-06-07 22:43:40 -0400
commitfd8f20e8e2f8f1d9201086bff444c8d35f0a6a45 (patch)
tree0823660fdd2ec53c6dede452d0802f54119bbde6
parent82f81f4784479df17a80caff4a7156da0a2f7dea (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/Kconfig14
-rw-r--r--arch/sh/Makefile1
-rw-r--r--arch/sh/boards/unknown/Makefile6
-rw-r--r--arch/sh/boards/unknown/setup.c20
-rw-r--r--arch/sh/kernel/cf-enabler.c6
-rw-r--r--arch/sh/kernel/machvec.c12
-rw-r--r--arch/sh/kernel/setup.c2
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
384config 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
396endmenu 384endmenu
397 385
398source "arch/sh/boards/renesas/hs7751rvoip/Kconfig" 386source "arch/sh/boards/renesas/hs7751rvoip/Kconfig"
@@ -401,7 +389,7 @@ source "arch/sh/boards/renesas/r7780rp/Kconfig"
401 389
402config CF_ENABLER 390config 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
113machdir-$(CONFIG_SH_7206_SOLUTION_ENGINE) += se/7206 113machdir-$(CONFIG_SH_7206_SOLUTION_ENGINE) += se/7206
114machdir-$(CONFIG_SH_7619_SOLUTION_ENGINE) += se/7619 114machdir-$(CONFIG_SH_7619_SOLUTION_ENGINE) += se/7619
115machdir-$(CONFIG_SH_LBOX_RE2) += lboxre2 115machdir-$(CONFIG_SH_LBOX_RE2) += lboxre2
116machdir-$(CONFIG_SH_UNKNOWN) += unknown
117 116
118incdir-y := $(notdir $(machdir-y)) 117incdir-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
5obj-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
18static 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
38static unsigned int __initdata machvec_selected;
39
38static int __init early_parse_mv(char *from) 40static 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 */
50struct sh_machine_vector sh_mv = { .mv_name = "Unknown", }; 50struct sh_machine_vector sh_mv = { .mv_name = "generic", };
51 51
52#ifdef CONFIG_VT 52#ifdef CONFIG_VT
53struct screen_info screen_info; 53struct screen_info screen_info;