Commit 357d5946 authored by Paul Mundt's avatar Paul Mundt

sh: Tidy up dependencies for SH-2 build.

SH-2 can presently get in to some pretty bogus states, so
we tidy up the dependencies a bit and get it all building
again.

This gets us a bit closer to a functional allyesconfig
and allmodconfig, though there are still a few things to
fix up.
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 54039591
...@@ -55,8 +55,21 @@ config GENERIC_TIME ...@@ -55,8 +55,21 @@ config GENERIC_TIME
config GENERIC_CLOCKEVENTS config GENERIC_CLOCKEVENTS
def_bool n def_bool n
config SYS_SUPPORTS_PM
bool
config SYS_SUPPORTS_APM_EMULATION config SYS_SUPPORTS_APM_EMULATION
bool bool
select SYS_SUPPORTS_PM
config SYS_SUPPORTS_SMP
bool
config SYS_SUPPORTS_NUMA
bool
config SYS_SUPPORTS_PCI
bool
config ARCH_MAY_HAVE_PC_FDC config ARCH_MAY_HAVE_PC_FDC
bool bool
...@@ -102,7 +115,7 @@ endchoice ...@@ -102,7 +115,7 @@ endchoice
config SH_FPU config SH_FPU
bool "FPU support" bool "FPU support"
depends on !CPU_SH3 depends on CPU_SH4
default y default y
help help
Selecting this option will enable support for SH processors that Selecting this option will enable support for SH processors that
...@@ -236,6 +249,7 @@ config SH_7751_SOLUTION_ENGINE ...@@ -236,6 +249,7 @@ config SH_7751_SOLUTION_ENGINE
config SH_7780_SOLUTION_ENGINE config SH_7780_SOLUTION_ENGINE
bool "SolutionEngine7780" bool "SolutionEngine7780"
select SOLUTION_ENGINE select SOLUTION_ENGINE
select SYS_SUPPORTS_PCI
depends on CPU_SUBTYPE_SH7780 depends on CPU_SUBTYPE_SH7780
help help
Select 7780 SolutionEngine if configuring for a Renesas SH7780 Select 7780 SolutionEngine if configuring for a Renesas SH7780
...@@ -275,20 +289,16 @@ config SH_7751_SYSTEMH ...@@ -275,20 +289,16 @@ config SH_7751_SYSTEMH
config SH_HP6XX config SH_HP6XX
bool "HP6XX" bool "HP6XX"
select SYS_SUPPORTS_APM_EMULATION select SYS_SUPPORTS_APM_EMULATION
select HD6446X_SERIES
depends on CPU_SUBTYPE_SH7709 depends on CPU_SUBTYPE_SH7709
help help
Select HP6XX if configuring for a HP jornada HP6xx. Select HP6XX if configuring for a HP jornada HP6xx.
More information (hardware only) at More information (hardware only) at
<http://www.hp.com/jornada/>. <http://www.hp.com/jornada/>.
config SH_SATURN
bool "Saturn"
depends on CPU_SUBTYPE_SH7604
help
Select Saturn if configuring for a SEGA Saturn.
config SH_DREAMCAST config SH_DREAMCAST
bool "Dreamcast" bool "Dreamcast"
select SYS_SUPPORTS_PCI
depends on CPU_SUBTYPE_SH7091 depends on CPU_SUBTYPE_SH7091
help help
Select Dreamcast if configuring for a SEGA Dreamcast. Select Dreamcast if configuring for a SEGA Dreamcast.
...@@ -307,6 +317,7 @@ config SH_MPC1211 ...@@ -307,6 +317,7 @@ config SH_MPC1211
config SH_SH03 config SH_SH03
bool "Interface CTP/PCI-SH03" bool "Interface CTP/PCI-SH03"
depends on CPU_SUBTYPE_SH7751 && BROKEN depends on CPU_SUBTYPE_SH7751 && BROKEN
select SYS_SUPPORTS_PCI
help help
CTP/PCI-SH03 is a CPU module computer that is produced CTP/PCI-SH03 is a CPU module computer that is produced
by Interface Corporation. by Interface Corporation.
...@@ -315,6 +326,7 @@ config SH_SH03 ...@@ -315,6 +326,7 @@ config SH_SH03
config SH_SECUREEDGE5410 config SH_SECUREEDGE5410
bool "SecureEdge5410" bool "SecureEdge5410"
depends on CPU_SUBTYPE_SH7751R depends on CPU_SUBTYPE_SH7751R
select SYS_SUPPORTS_PCI
help help
Select SecureEdge5410 if configuring for a SnapGear SH board. Select SecureEdge5410 if configuring for a SnapGear SH board.
This includes both the OEM SecureEdge products as well as the This includes both the OEM SecureEdge products as well as the
...@@ -337,6 +349,7 @@ config SH_7710VOIPGW ...@@ -337,6 +349,7 @@ config SH_7710VOIPGW
config SH_RTS7751R2D config SH_RTS7751R2D
bool "RTS7751R2D" bool "RTS7751R2D"
depends on CPU_SUBTYPE_SH7751R depends on CPU_SUBTYPE_SH7751R
select SYS_SUPPORTS_PCI
help help
Select RTS7751R2D if configuring for a Renesas Technology Select RTS7751R2D if configuring for a Renesas Technology
Sales SH-Graphics board. Sales SH-Graphics board.
...@@ -344,6 +357,7 @@ config SH_RTS7751R2D ...@@ -344,6 +357,7 @@ config SH_RTS7751R2D
config SH_HIGHLANDER config SH_HIGHLANDER
bool "Highlander" bool "Highlander"
depends on CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 depends on CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785
select SYS_SUPPORTS_PCI
config SH_EDOSK7705 config SH_EDOSK7705
bool "EDOSK7705" bool "EDOSK7705"
...@@ -359,12 +373,14 @@ config SH_SH4202_MICRODEV ...@@ -359,12 +373,14 @@ config SH_SH4202_MICRODEV
config SH_LANDISK config SH_LANDISK
bool "LANDISK" bool "LANDISK"
depends on CPU_SUBTYPE_SH7751R depends on CPU_SUBTYPE_SH7751R
select SYS_SUPPORTS_PCI
help help
I-O DATA DEVICE, INC. "LANDISK Series" support. I-O DATA DEVICE, INC. "LANDISK Series" support.
config SH_TITAN config SH_TITAN
bool "TITAN" bool "TITAN"
depends on CPU_SUBTYPE_SH7751R depends on CPU_SUBTYPE_SH7751R
select SYS_SUPPORTS_PCI
help help
Select Titan if you are configuring for a Nimble Microsystems Select Titan if you are configuring for a Nimble Microsystems
NetEngine NP51R. NetEngine NP51R.
...@@ -378,6 +394,7 @@ config SH_SHMIN ...@@ -378,6 +394,7 @@ config SH_SHMIN
config SH_LBOX_RE2 config SH_LBOX_RE2
bool "L-BOX RE2" bool "L-BOX RE2"
depends on CPU_SUBTYPE_SH7751R depends on CPU_SUBTYPE_SH7751R
select SYS_SUPPORTS_PCI
help help
Select L-BOX RE2 if configuring for the NTT COMWARE L-BOX RE2. Select L-BOX RE2 if configuring for the NTT COMWARE L-BOX RE2.
...@@ -481,8 +498,10 @@ config SH_PCLK_FREQ ...@@ -481,8 +498,10 @@ config SH_PCLK_FREQ
config SH_CLK_MD config SH_CLK_MD
int "CPU Mode Pin Setting" int "CPU Mode Pin Setting"
default 0
depends on CPU_SUBTYPE_SH7619 || CPU_SUBTYPE_SH7206 depends on CPU_SUBTYPE_SH7619 || CPU_SUBTYPE_SH7206
default 6 if CPU_SUBTYPE_SH7206
default 5 if CPU_SUBTYPE_SH7619
default 0
help help
MD2 - MD0 pin setting. MD2 - MD0 pin setting.
...@@ -554,6 +573,7 @@ config CRASH_DUMP ...@@ -554,6 +573,7 @@ config CRASH_DUMP
config SMP config SMP
bool "Symmetric multi-processing support" bool "Symmetric multi-processing support"
depends on SYS_SUPPORTS_SMP
---help--- ---help---
This enables support for systems with more than one CPU. If you have This enables support for systems with more than one CPU. If you have
a system with only one CPU, like most personal computers, say N. If a system with only one CPU, like most personal computers, say N. If
...@@ -617,6 +637,7 @@ config BOOT_LINK_OFFSET ...@@ -617,6 +637,7 @@ config BOOT_LINK_OFFSET
config UBC_WAKEUP config UBC_WAKEUP
bool "Wakeup UBC on startup" bool "Wakeup UBC on startup"
depends on CPU_SH4
help help
Selecting this option will wakeup the User Break Controller (UBC) on Selecting this option will wakeup the User Break Controller (UBC) on
startup. Although the UBC is left in an awake state when the processor startup. Although the UBC is left in an awake state when the processor
...@@ -645,8 +666,8 @@ menu "Bus options" ...@@ -645,8 +666,8 @@ menu "Bus options"
# we're not using PCMCIA, so we make it dependent on # we're not using PCMCIA, so we make it dependent on
# PCMCIA outright. -- PFM. # PCMCIA outright. -- PFM.
config ISA config ISA
bool def_bool y
default y if PCMCIA depends on PCMCIA && HD6446X_SERIES
help help
Find out whether you have ISA slots on your motherboard. ISA is the Find out whether you have ISA slots on your motherboard. ISA is the
name of a bus system, i.e. the way the CPU talks to the other stuff name of a bus system, i.e. the way the CPU talks to the other stuff
...@@ -701,7 +722,7 @@ source "fs/Kconfig.binfmt" ...@@ -701,7 +722,7 @@ source "fs/Kconfig.binfmt"
endmenu endmenu
menu "Power management options (EXPERIMENTAL)" menu "Power management options (EXPERIMENTAL)"
depends on EXPERIMENTAL depends on EXPERIMENTAL && SYS_SUPPORTS_PM
source kernel/power/Kconfig source kernel/power/Kconfig
......
...@@ -86,6 +86,7 @@ config SH_KGDB ...@@ -86,6 +86,7 @@ config SH_KGDB
bool "Include KGDB kernel debugger" bool "Include KGDB kernel debugger"
select FRAME_POINTER select FRAME_POINTER
select DEBUG_INFO select DEBUG_INFO
depends on CPU_SH3 || CPU_SH4
help help
Include in-kernel hooks for kgdb, the Linux kernel source level Include in-kernel hooks for kgdb, the Linux kernel source level
debugger. See <http://kgdb.sourceforge.net/> for more information. debugger. See <http://kgdb.sourceforge.net/> for more information.
......
...@@ -13,10 +13,8 @@ config VOYAGERGX ...@@ -13,10 +13,8 @@ config VOYAGERGX
are additional GPIO bits that can be used to interface to are additional GPIO bits that can be used to interface to
external as well. external as well.
# A board must have defined HD6446X_SERIES in order to see these
config HD6446X_SERIES config HD6446X_SERIES
bool "HD6446x support" bool
default n
choice choice
prompt "HD6446x options" prompt "HD6446x options"
...@@ -25,7 +23,6 @@ choice ...@@ -25,7 +23,6 @@ choice
config HD64461 config HD64461
bool "Hitachi HD64461 companion chip support" bool "Hitachi HD64461 companion chip support"
depends on CPU_SUBTYPE_SH7709
---help--- ---help---
The Hitachi HD64461 provides an interface for The Hitachi HD64461 provides an interface for
the SH7709 CPU, supporting a LCD controller, the SH7709 CPU, supporting a LCD controller,
...@@ -40,7 +37,6 @@ config HD64461 ...@@ -40,7 +37,6 @@ config HD64461
config HD64465 config HD64465
bool "Hitachi HD64465 companion chip support" bool "Hitachi HD64465 companion chip support"
depends on CPU_SUBTYPE_SH7750
---help--- ---help---
The Hitachi HD64465 provides an interface for The Hitachi HD64465 provides an interface for
the SH7750 CPU, supporting a LCD controller, the SH7750 CPU, supporting a LCD controller,
......
config PCI config PCI
bool "PCI support" bool "PCI support"
depends on SYS_SUPPORTS_PCI
help help
Find out whether you have a PCI motherboard. PCI is the name of a Find out whether you have a PCI motherboard. PCI is the name of a
bus system, i.e. the way the CPU talks to the other stuff inside bus system, i.e. the way the CPU talks to the other stuff inside
......
...@@ -21,8 +21,7 @@ ...@@ -21,8 +21,7 @@
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
#include <asm/cache.h> #include <asm/cache.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/ubc.h>
extern void detect_cpu_and_cache_system(void);
/* /*
* Generic wrapper for command line arguments to disable on-chip * Generic wrapper for command line arguments to disable on-chip
...@@ -152,15 +151,6 @@ static void __init cache_init(void) ...@@ -152,15 +151,6 @@ static void __init cache_init(void)
flags |= CCR_CACHE_CB; flags |= CCR_CACHE_CB;
#endif #endif
#ifdef CONFIG_SH_OCRAM
/* Turn on OCRAM -- halve the OC */
flags |= CCR_CACHE_ORA;
current_cpu_data.dcache.sets >>= 1;
current_cpu_data.dcache.way_size = current_cpu_data.dcache.sets *
current_cpu_data.dcache.linesz;
#endif
ctrl_outl(flags, CCR); ctrl_outl(flags, CCR);
back_to_P1(); back_to_P1();
} }
...@@ -269,7 +259,6 @@ asmlinkage void __init sh_cpu_init(void) ...@@ -269,7 +259,6 @@ asmlinkage void __init sh_cpu_init(void)
} }
#endif #endif
#ifdef CONFIG_UBC_WAKEUP
/* /*
* Some brain-damaged loaders decided it would be a good idea to put * Some brain-damaged loaders decided it would be a good idea to put
* the UBC to sleep. This causes some issues when it comes to things * the UBC to sleep. This causes some issues when it comes to things
...@@ -277,7 +266,5 @@ asmlinkage void __init sh_cpu_init(void) ...@@ -277,7 +266,5 @@ asmlinkage void __init sh_cpu_init(void)
* we wake it up and hope that all is well. * we wake it up and hope that all is well.
*/ */
ubc_wakeup(); ubc_wakeup();
#endif
speculative_execution_init(); speculative_execution_init();
} }
...@@ -9,9 +9,8 @@ ...@@ -9,9 +9,8 @@
* License. See the file "COPYING" in the main directory of this archive * License. See the file "COPYING" in the main directory of this archive
* for more details. * for more details.
*/ */
#include <linux/init.h> #include <linux/init.h>
#include <linux/smp.h>
#include <asm/processor.h> #include <asm/processor.h>
#include <asm/cache.h> #include <asm/cache.h>
......
...@@ -320,9 +320,7 @@ static void ubc_set_tracing(int asid, unsigned long pc) ...@@ -320,9 +320,7 @@ static void ubc_set_tracing(int asid, unsigned long pc)
ctrl_outl(pc, UBC_BARA); ctrl_outl(pc, UBC_BARA);
#ifdef CONFIG_MMU #ifdef CONFIG_MMU
/* We don't have any ASID settings for the SH-2! */ ctrl_outb(asid, UBC_BASRA);
if (current_cpu_data.type != CPU_SH7604)
ctrl_outb(asid, UBC_BASRA);
#endif #endif
ctrl_outl(0, UBC_BAMRA); ctrl_outl(0, UBC_BAMRA);
......
...@@ -48,6 +48,7 @@ choice ...@@ -48,6 +48,7 @@ choice
config CPU_SUBTYPE_SH7619 config CPU_SUBTYPE_SH7619
bool "Support SH7619 processor" bool "Support SH7619 processor"
select CPU_SH2 select CPU_SH2
select CPU_HAS_IPR_IRQ
# SH-2A Processor Support # SH-2A Processor Support
...@@ -208,6 +209,7 @@ config CPU_SUBTYPE_SH7722 ...@@ -208,6 +209,7 @@ config CPU_SUBTYPE_SH7722
select CPU_SHX2 select CPU_SHX2
select CPU_HAS_IPR_IRQ select CPU_HAS_IPR_IRQ
select ARCH_SPARSEMEM_ENABLE select ARCH_SPARSEMEM_ENABLE
select SYS_SUPPORTS_NUMA
endchoice endchoice
...@@ -292,7 +294,7 @@ config VSYSCALL ...@@ -292,7 +294,7 @@ config VSYSCALL
config NUMA config NUMA
bool "Non Uniform Memory Access (NUMA) Support" bool "Non Uniform Memory Access (NUMA) Support"
depends on MMU && SPARSEMEM && EXPERIMENTAL depends on MMU && SYS_SUPPORTS_NUMA && EXPERIMENTAL
default n default n
help help
Some SH systems have many various memories scattered around Some SH systems have many various memories scattered around
...@@ -308,6 +310,7 @@ config NODES_SHIFT ...@@ -308,6 +310,7 @@ config NODES_SHIFT
config ARCH_FLATMEM_ENABLE config ARCH_FLATMEM_ENABLE
def_bool y def_bool y
depends on !NUMA
config ARCH_SPARSEMEM_ENABLE config ARCH_SPARSEMEM_ENABLE
def_bool y def_bool y
...@@ -419,15 +422,4 @@ config SH_WRITETHROUGH ...@@ -419,15 +422,4 @@ config SH_WRITETHROUGH
If unsure, say N. If unsure, say N.
config SH_OCRAM
bool "Operand Cache RAM (OCRAM) support"
help
Selecting this option will automatically tear down the number of
sets in the dcache by half, which in turn exposes a memory range.
The addresses for the OC RAM base will vary according to the
processor version. Consult vendor documentation for specifics.
If unsure, say N.
endmenu endmenu
...@@ -300,6 +300,7 @@ int remove_memory(u64 start, u64 size) ...@@ -300,6 +300,7 @@ int remove_memory(u64 start, u64 size)
} }
EXPORT_SYMBOL_GPL(remove_memory); EXPORT_SYMBOL_GPL(remove_memory);
#ifdef CONFIG_NUMA
int memory_add_physaddr_to_nid(u64 addr) int memory_add_physaddr_to_nid(u64 addr)
{ {
/* Node 0 for now.. */ /* Node 0 for now.. */
...@@ -307,3 +308,4 @@ int memory_add_physaddr_to_nid(u64 addr) ...@@ -307,3 +308,4 @@ int memory_add_physaddr_to_nid(u64 addr)
} }
EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid); EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
#endif #endif
#endif
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#define __ASM_SH_CACHE_H #define __ASM_SH_CACHE_H
#ifdef __KERNEL__ #ifdef __KERNEL__
#include <linux/init.h>
#include <asm/cpu/cache.h> #include <asm/cpu/cache.h>
#define SH_CACHE_VALID 1 #define SH_CACHE_VALID 1
...@@ -48,6 +49,9 @@ struct cache_info { ...@@ -48,6 +49,9 @@ struct cache_info {
unsigned long flags; unsigned long flags;
}; };
int __init detect_cpu_and_cache_system(void);
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
#endif /* __ASM_SH_CACHE_H */ #endif /* __ASM_SH_CACHE_H */
...@@ -184,7 +184,7 @@ ...@@ -184,7 +184,7 @@
#define HD64461_NIRR 0x15000 #define HD64461_NIRR 0x15000
#define HD64461_NIMR 0x15002 #define HD64461_NIMR 0x15002
#define HD64461_IRQBASE OFFCHIP_IRQ_BASE #define HD64461_IRQBASE 64
#define HD64461_IRQ_NUM 16 #define HD64461_IRQ_NUM 16
#define HD64461_IRQ_UART (HD64461_IRQBASE+5) #define HD64461_IRQ_UART (HD64461_IRQBASE+5)
......
...@@ -228,11 +228,7 @@ static __inline__ void grab_fpu(struct pt_regs *regs) ...@@ -228,11 +228,7 @@ static __inline__ void grab_fpu(struct pt_regs *regs)
regs->sr &= ~SR_FD; regs->sr &= ~SR_FD;
} }
#ifdef CONFIG_CPU_SH4
extern void save_fpu(struct task_struct *__tsk, struct pt_regs *regs); extern void save_fpu(struct task_struct *__tsk, struct pt_regs *regs);
#else
#define save_fpu(tsk) do { } while (0)
#endif
#define unlazy_fpu(tsk, regs) do { \ #define unlazy_fpu(tsk, regs) do { \
if (test_tsk_thread_flag(tsk, TIF_USEDFPU)) { \ if (test_tsk_thread_flag(tsk, TIF_USEDFPU)) { \
......
...@@ -126,7 +126,7 @@ static inline void sched_cacheflush(void) ...@@ -126,7 +126,7 @@ static inline void sched_cacheflush(void)
#define smp_read_barrier_depends() do { } while(0) #define smp_read_barrier_depends() do { } while(0)
#endif #endif
#define set_mb(var, value) do { xchg(&var, value); } while (0) #define set_mb(var, value) do { (void)xchg(&var, value); } while (0)
/* /*
* Jump to P2 area. * Jump to P2 area.
......
...@@ -51,9 +51,14 @@ ...@@ -51,9 +51,14 @@
#define BRCR_UBDE (1 << 0) #define BRCR_UBDE (1 << 0)
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
/* arch/sh/kernel/ubc.S */ /* arch/sh/kernel/cpu/ubc.S */
extern void ubc_wakeup(void);
extern void ubc_sleep(void); extern void ubc_sleep(void);
#ifdef CONFIG_UBC_WAKEUP
extern void ubc_wakeup(void);
#else
#define ubc_wakeup() do { } while (0)
#endif
#endif #endif
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment