forked from luck/tmp_suning_uos_patched
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>
This commit is contained in:
parent
82f81f4784
commit
fd8f20e8e2
|
@ -381,18 +381,6 @@ config SH_LBOX_RE2
|
|||
help
|
||||
Select L-BOX RE2 if configuring for the NTT COMWARE L-BOX RE2.
|
||||
|
||||
config SH_UNKNOWN
|
||||
bool "BareCPU"
|
||||
help
|
||||
"Bare CPU" aka "unknown" means an SH-based system which is not one
|
||||
of the specific ones mentioned above, which means you need to enter
|
||||
all sorts of stuff like CONFIG_MEMORY_START because the config
|
||||
system doesn't already know what it is. You get a machine vector
|
||||
without any platform-specific code in it, so things like the RTC may
|
||||
not work.
|
||||
|
||||
This option is for the early stages of porting to a new machine.
|
||||
|
||||
endmenu
|
||||
|
||||
source "arch/sh/boards/renesas/hs7751rvoip/Kconfig"
|
||||
|
@ -401,7 +389,7 @@ source "arch/sh/boards/renesas/r7780rp/Kconfig"
|
|||
|
||||
config CF_ENABLER
|
||||
bool "Compact Flash Enabler support"
|
||||
depends on SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_SH03
|
||||
depends on SH_SOLUTION_ENGINE || SH_SH03
|
||||
---help---
|
||||
Compact Flash is a small, removable mass storage device introduced
|
||||
in 1994 originally as a PCMCIA device. If you say `Y' here, you
|
||||
|
|
|
@ -113,7 +113,6 @@ machdir-$(CONFIG_SH_SHMIN) += shmin
|
|||
machdir-$(CONFIG_SH_7206_SOLUTION_ENGINE) += se/7206
|
||||
machdir-$(CONFIG_SH_7619_SOLUTION_ENGINE) += se/7619
|
||||
machdir-$(CONFIG_SH_LBOX_RE2) += lboxre2
|
||||
machdir-$(CONFIG_SH_UNKNOWN) += unknown
|
||||
|
||||
incdir-y := $(notdir $(machdir-y))
|
||||
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
#
|
||||
# Makefile for unknown SH boards
|
||||
#
|
||||
|
||||
obj-y := setup.o
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
/*
|
||||
* linux/arch/sh/boards/unknown/setup.c
|
||||
*
|
||||
* Copyright (C) 2002 Paul Mundt
|
||||
*
|
||||
* May be copied or modified under the terms of the GNU General Public
|
||||
* License. See linux/COPYING for more information.
|
||||
*
|
||||
* Setup code for an unknown machine (internal peripherals only)
|
||||
*
|
||||
* This is the simplest of all boards, and serves only as a quick and dirty
|
||||
* method to start debugging a new board during bring-up until proper board
|
||||
* setup code is written.
|
||||
*/
|
||||
#include <linux/init.h>
|
||||
#include <asm/machvec.h>
|
||||
|
||||
static struct sh_machine_vector mv_unknown __initmv = {
|
||||
.mv_name = "Unknown",
|
||||
};
|
|
@ -75,11 +75,7 @@ static int __init cf_init_default(void)
|
|||
#if defined(CONFIG_CPU_SH4)
|
||||
allocate_cf_area();
|
||||
#endif
|
||||
#if defined(CONFIG_SH_UNKNOWN)
|
||||
/* This should be done in each board's init_xxx_irq. */
|
||||
make_imask_irq(14);
|
||||
disable_irq(14);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -35,6 +35,8 @@ static struct sh_machine_vector * __init get_mv_byname(const char *name)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static unsigned int __initdata machvec_selected;
|
||||
|
||||
static int __init early_parse_mv(char *from)
|
||||
{
|
||||
char mv_name[MV_NAME_SIZE] = "";
|
||||
|
@ -55,9 +57,15 @@ static int __init early_parse_mv(char *from)
|
|||
mv_name[mv_len] = '\0';
|
||||
from = mv_end;
|
||||
|
||||
machvec_selected = 1;
|
||||
|
||||
/* Boot with the generic vector */
|
||||
if (strcmp(mv_name, "generic") == 0)
|
||||
return 0;
|
||||
|
||||
mvp = get_mv_byname(mv_name);
|
||||
if (unlikely(!mvp)) {
|
||||
printk("Available vectors:\n\n\t");
|
||||
printk("Available vectors:\n\n\t'%s', ", sh_mv.mv_name);
|
||||
for_each_mv(mvp)
|
||||
printk("'%s', ", mvp->mv_name);
|
||||
printk("\n\n");
|
||||
|
@ -76,7 +84,7 @@ void __init sh_mv_setup(void)
|
|||
* Only overload the machvec if one hasn't been selected on
|
||||
* the command line with sh_mv=
|
||||
*/
|
||||
if (strcmp(sh_mv.mv_name, "Unknown") != 0) {
|
||||
if (!machvec_selected) {
|
||||
unsigned long machvec_size;
|
||||
|
||||
machvec_size = ((unsigned long)&__machvec_end -
|
||||
|
|
|
@ -47,7 +47,7 @@ struct sh_cpuinfo boot_cpu_data = { CPU_SH_NONE, 10000000, };
|
|||
* The machine vector. First entry in .machvec.init, or clobbered by
|
||||
* sh_mv= on the command line, prior to .machvec.init teardown.
|
||||
*/
|
||||
struct sh_machine_vector sh_mv = { .mv_name = "Unknown", };
|
||||
struct sh_machine_vector sh_mv = { .mv_name = "generic", };
|
||||
|
||||
#ifdef CONFIG_VT
|
||||
struct screen_info screen_info;
|
||||
|
|
Loading…
Reference in New Issue
Block a user