Commit 47050253 authored by Paul Mundt's avatar Paul Mundt Committed by Linus Torvalds

[PATCH] toplevel SH update

This gets the toplevel arch/sh stuff in sync with the current SH 2.5
tree.
parent 57069b8f
...@@ -12,11 +12,7 @@ config SUPERH ...@@ -12,11 +12,7 @@ config SUPERH
The SuperH is a RISC processor targeted for use in embedded systems The SuperH is a RISC processor targeted for use in embedded systems
and consumer electronics; it was also used in the Sega Dreamcast and consumer electronics; it was also used in the Sega Dreamcast
gaming console. The SuperH port has a home page at gaming console. The SuperH port has a home page at
<http://www.sh-linux.org/>. <http://www.linux-sh.org/>.
config MMU
bool
default y
config UID16 config UID16
bool bool
...@@ -33,60 +29,18 @@ config GENERIC_ISA_DMA ...@@ -33,60 +29,18 @@ config GENERIC_ISA_DMA
bool bool
default y default y
config VARIABLE_CLOCK_TICK_RATE
bool
default y
source "init/Kconfig" source "init/Kconfig"
menu "Processor type and features" menu "System type"
choice choice
prompt "SuperH system type" prompt "SuperH system type"
default SH_GENERIC default SH_UNKNOWN
config SH_GENERIC
bool "Generic"
---help---
Select Generic if configuring for a generic SuperH system.
The "generic" option compiles in *all* the possible hardware
support and relies on the sh_mv= kernel commandline option to choose
at runtime which routines to use. "MV" stands for "machine vector";
each of the machines below is described by a machine vector.
Select SolutionEngine if configuring for a Hitachi SH7709
or SH7750/7750S evalutation board.
Select Overdrive if configuring for a ST407750 Overdrive board.
More information at
<http://linuxsh.sourceforge.net/docs/7750overdrive.php3>.
Select HP620 if configuring for a HP Jornada HP620.
More information (hardware only) at
<http://www.hp.com/jornada/>.
Select HP680 if configuring for a HP Jornada HP680.
More information (hardware only) at
<http://www.hp.com/jornada/products/680/>.
Select HP690 if configuring for a HP Jornada HP690.
More information (hardware only) at
<http://www.hp.com/jornada/products/680/>.
Select CqREEK if configuring for a CqREEK SH7708 or SH7750.
More information at
<http://sources.redhat.com/ecos/hardware.html#SuperH>.
Select DMIDA if configuring for a DataMyte 4000 Industrial
Digital Assistant. More information at <http://www.dmida.com/>.
Select EC3104 if configuring for a system with an Eclipse
International EC3104 chip, e.g. the Harris AD2000 or Compaq Aero 8000.
Select Dreamcast if configuring for a SEGA Dreamcast.
More information at
<http://www.m17n.org/linux-sh/dreamcast/>. There is a
Dreamcast project is at <http://linuxdc.sourceforge.net/>.
Select BareCPU if you know what this means, and it applies
to your system.
config SH_SOLUTION_ENGINE config SH_SOLUTION_ENGINE
bool "SolutionEngine" bool "SolutionEngine"
...@@ -146,6 +100,9 @@ config SH_EC3104 ...@@ -146,6 +100,9 @@ config SH_EC3104
Select EC3104 if configuring for a system with an Eclipse Select EC3104 if configuring for a system with an Eclipse
International EC3104 chip, e.g. the Harris AD2000. International EC3104 chip, e.g. the Harris AD2000.
config SH_SATURN
bool "Saturn"
config SH_DREAMCAST config SH_DREAMCAST
bool "Dreamcast" bool "Dreamcast"
help help
...@@ -162,10 +119,19 @@ config SH_BIGSUR ...@@ -162,10 +119,19 @@ config SH_BIGSUR
config SH_SH2000 config SH_SH2000
bool "SH2000" bool "SH2000"
help
SH-2000 is a single-board computer based around SH7709A chip
intended for embedded applications.
It has an Ethernet interface (CS8900A), direct connected
Compact Flash socket, three serial ports and PC-104 bus.
More information at <http://sh2000.sh-linux.org>.
config SH_ADX config SH_ADX
bool "ADX" bool "ADX"
config SH_MPC1211
bool "MPC1211"
config SH_UNKNOWN config SH_UNKNOWN
bool "BareCPU" bool "BareCPU"
help help
...@@ -180,6 +146,119 @@ config SH_UNKNOWN ...@@ -180,6 +146,119 @@ config SH_UNKNOWN
endchoice endchoice
config MMU
bool "Support for memory management hardware"
depends on !CPU_SH2
default y
help
Early SH processors (such as the SH7604) lack an MMU. In order to
boot on these systems, this option must not be set.
On other systems (such as the SH-3 and 4) where an MMU exists,
turning this off will boot the kernel on these machines with the
MMU implicitly switched off.
config CMDLINE_BOOL
bool "Default bootloader kernel arguments"
config CMDLINE
string "Initial kernel command string"
depends on CMDLINE_BOOL
default "console=ttySC1,115200"
# Platform-specific memory start and size definitions
config MEMORY_START
hex "Physical memory start address" if !MEMORY_SET || MEMORY_OVERRIDE
default "08000000" if !MEMORY_SET || MEMORY_OVERRIDE || !MEMORY_OVERRIDE && SH_ADX || SH_MPC1211
default "0c000000" if !MEMORY_OVERRIDE && (SH_DREAMCAST || SH_HP600 || SH_BIGSUR || SH_SH2000 || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE)
---help---
Computers built with Hitachi SuperH processors always
map the ROM starting at address zero. But the processor
does not specify the range that RAM takes.
The physical memory (RAM) start address will be automatically
set to 08000000, unless you selected one of the following
processor types: SolutionEngine, Overdrive, HP620, HP680, HP690,
in which case the start address will be set to 0c000000.
Tweak this only when porting to a new machine which is not already
known by the config system. Changing it from the known correct
value on any of the known systems will only lead to disaster.
config MEMORY_SIZE
hex "Physical memory size" if !MEMORY_SET || MEMORY_OVERRIDE
default "00400000" if !MEMORY_SET || MEMORY_OVERRIDE || !MEMORY_OVERRIDE && SH_ADX || !MEMORY_OVERRIDE && (SH_HP600 || SH_BIGSUR || SH_SH2000)
default "01000000" if !MEMORY_OVERRIDE && SH_DREAMCAST
default "04000000" if !MEMORY_OVERRIDE && SH_7751_SOLUTION_ENGINE
default "02000000" if !MEMORY_OVERRIDE && SH_SOLUTION_ENGINE
default "08000000" if SH_MPC1211
help
This sets the default memory size assumed by your SH kernel. It can
be overridden as normal by the 'mem=' argument on the kernel command
line. If unsure, consult your board specifications or just leave it
as 0x00400000 which was the default value before this became
configurable.
config MEMORY_SET
bool
depends on !MEMORY_OVERRIDE && (SH_MPC1211 || SH_ADX || SH_DREAMCAST || SH_HP600 || SH_BIGSUR || SH_SH2000 || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE)
default y
help
This is an option about which you will never be asked a question.
Therefore, I conclude that you do not exist - go away.
There is a grue here.
# If none of the above have set memory start/size, ask the user.
config MEMORY_OVERRIDE
bool "Override default load address and memory size"
# XXX: break these out into the board-specific configs below
config CF_ENABLER
bool "Compact Flash Enabler support"
depends on SH_ADX || SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_CAT68701
---help---
Compact Flash is a small, removable mass storage device introduced
in 1994 originally as a PCMCIA device. If you say `Y' here, you
compile in support for Compact Flash devices directly connected to
a SuperH processor. A Compact Flash FAQ is available at
<http://www.compactflash.org/faqs/faq.htm>.
If your board has "Directly Connected" CompactFlash at area 5 or 6,
you may want to enable this option. Then, you can use CF as
primary IDE drive (only tested for SanDisk).
If in doubt, select 'N'.
choice
prompt "Compact Flash Connection Area"
depends on CF_ENABLER
default CF_AREA6
config CF_AREA5
bool "Area5"
help
If your board has "Directly Connected" CompactFlash, You should
select the area where your CF is connected to.
- "Area5" if CompactFlash is connected to Area 5 (0x14000000)
- "Area6" if it is connected to Area 6 (0x18000000)
"Area6" will work for most boards. For ADX, select "Area5".
config CF_AREA6
bool "Area6"
endchoice
config CF_BASE_ADDR
hex
depends on CF_ENABLER
default "b8000000" if CF_AREA6
default "b4000000" if CF_AREA5
endmenu
# The SH7750 RTC module is disabled in the Dreamcast # The SH7750 RTC module is disabled in the Dreamcast
config SH_RTC config SH_RTC
bool bool
...@@ -191,21 +270,50 @@ config SH_RTC ...@@ -191,21 +270,50 @@ config SH_RTC
If unsure, say N. If unsure, say N.
# This is also board-specific
config PCI_AUTO
bool
config SH_HP600 config SH_HP600
bool bool
depends on SH_HP620 || SH_HP680 || SH_HP690 depends on SH_HP620 || SH_HP680 || SH_HP690
default y default y
config DISCONTIGMEM
bool
depends on SH_HP690
default y
help
Say Y to upport efficient handling of discontiguous physical memory,
for architectures which are either NUMA (Non-Uniform Memory Access)
or have huge holes in the physical address space for other reasons.
See <file:Documentation/vm/numa> for more.
menu "Processor type and features"
#
# Ick, get rid of all this CPU_SUBTYPE nonsense. Just probe it, fill in
# cpu_data, and leave it alone. (Feasible for SH-4 at least, and some
# SH-3). ++paulm
#
choice choice
prompt "Processor type" prompt "Processor type"
default CPU_SUBTYPE_SH7708 default CPU_SUBTYPE_SH7708
config CPU_SUBTYPE_SH7604
bool "SH7604"
help
Select SH7604 if you have SH7604
config CPU_SUBTYPE_SH7707 config CPU_SUBTYPE_SH7707
bool "SH7707" bool "SH7707"
---help--- ---help---
Select the type of SuperH processor you have. This information is Select the type of SuperH processor you have. This information is
used for optimizing and configuration purposes. used for optimizing and configuration purposes.
Select SH7604 if you have a SH-2 CPU.
Select SH7707 if you have a 60 Mhz SH-3 HD6417707 CPU. Select SH7707 if you have a 60 Mhz SH-3 HD6417707 CPU.
Select SH7708 if you have a 60 Mhz SH-3 HD6417708S or Select SH7708 if you have a 60 Mhz SH-3 HD6417708S or
...@@ -237,174 +345,188 @@ config CPU_SUBTYPE_SH7750 ...@@ -237,174 +345,188 @@ config CPU_SUBTYPE_SH7750
config CPU_SUBTYPE_SH7751 config CPU_SUBTYPE_SH7751
bool "SH7751" bool "SH7751"
help
Select SH7750 if you have a 166 Mhz SH-4 HD6417751 CPU.
config CPU_SUBTYPE_ST40STB1 config CPU_SUBTYPE_ST40STB1
bool "ST40STB1" bool "ST40STB1"
help
Select ST40STB1 if you have a ST40STB1 CPU.
endchoice endchoice
config CPU_SH2
bool
depends on CPU_SUBTYPE_SH7604
default y
config CPU_SH3 config CPU_SH3
bool bool
depends on CPU_SUBTYPE_SH7709 || CPU_SUBTYPE_SH7708 || CPU_SUBTYPE_SH7707 depends on !CPU_SH2 && (CPU_SUBTYPE_SH7707 || CPU_SUBTYPE_SH7708 || CPU_SUBTYPE_SH7709)
default y default y
config CPU_SH4 config CPU_SH4
bool bool
depends on CPU_SUBTYPE_ST40STB1 || CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7750 depends on !CPU_SH3 && !CPU_SH2 && (CPU_SUBTYPE_SH7750 || CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_ST40STB1)
default y default y
config CPU_LITTLE_ENDIAN config ZERO_PAGE_OFFSET
bool "Little Endian" hex "Zero page offset"
default "00001000" if !SH_MPC1211
default "00004000" if SH_MPC1211
help help
Some MIPS machines can be configured for either little or big endian This sets the default offset of zero page.
byte order. These modes require different kernels. Say Y if your
machine is little endian, N if it's a big endian machine.
# Platform-specific memory start and size definitions
config MEMORY_START
hex "Physical memory start address" if !MEMORY_SET
default "08000000" if !MEMORY_SET || SH_ADX || CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY
default "0c000000" if SH_HP600 || SH_BIGSUR || SH_DREAMCAST || SH_SH2000 || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE
---help---
Computers built with Hitachi SuperH processors always
map the ROM starting at address zero. But the processor
does not specify the range that RAM takes.
The physical memory (RAM) start address will be automatically # XXX: needs to lose subtype for system type
set to 08000000, unless you selected one of the following config ST40_LMI_MEMORY
processor types: SolutionEngine, Overdrive, HP620, HP680, HP690, bool "Memory on LMI"
in which case the start address will be set to 0c000000. depends on CPU_SUBTYPE_ST40STB1
Tweak this only when porting to a new machine which is not already config MEMORY_START
known by the config system. Changing it from the known correct hex
value on any of the known systems will only lead to disaster. depends on CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY
default "08000000"
config MEMORY_SIZE config MEMORY_SIZE
hex "Physical memory size" if !MEMORY_SET hex
default "00400000" if !MEMORY_SET || SH_ADX || CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY || SH_HP600 || SH_BIGSUR || SH_DREAMCAST || SH_SH2000 depends on CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY
default "04000000" if SH_7751_SOLUTION_ENGINE default "00400000"
default "02000000" if SH_SOLUTION_ENGINE
help
This sets the default memory size assumed by your SH kernel. It can
be overridden as normal by the 'mem=' argument on the kernel command
line. If unsure, consult your board specifications or just leave it
as 0x00400000 which was the default value before this became
configurable.
config MEMORY_SET config MEMORY_SET
bool bool
depends on SH_ADX || CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY || SH_HP600 || SH_BIGSUR || SH_DREAMCAST || SH_SH2000 || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE depends on CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY
default y default y
config CPU_LITTLE_ENDIAN
bool "Little Endian"
help help
This is an option about which you will never be asked a question. Some SuperH machines can be configured for either little or big
Therefore, I conclude that you do not exist - go away. endian byte order. These modes require different kernels. Say Y if
your machine is little endian, N if it's a big endian machine.
There is a grue here. config PREEMPT
bool "Preemptible Kernel (EXPERIMENTAL)"
depends on EXPERIMENTAL
config ST40_LMI_MEMORY config UBC_WAKEUP
bool "Memory on LMI" bool "Wakeup UBC on startup"
depends on CPU_SUBTYPE_ST40STB1 help
Selecting this option will wakeup the User Break Controller (UBC) on
startup. Although the UBC is left in an awake state when the processor
comes up, some boot loaders misbehave by putting the UBC to sleep in a
power saving state, which causes issues with things like ptrace().
# If none of the above have set memory start/size, ask the user. If unsure, say N.
endmenu
config DISCONTIGMEM config SH_WRITETHROUGH
bool bool "Use write-through caching"
depends on SH_HP690 default y if CPU_SH2
default y
help help
Say Y to upport efficient handling of discontiguous physical memory, Selecting this option will configure the caches in write-through
for architectures which are either NUMA (Non-Uniform Memory Access) mode, as opposed to the default write-back configuration.
or have huge holes in the physical address space for other reasons.
See <file:Documentation/vm/numa> for more.
Since there's sill some aliasing issues on SH-4, this option will
unfortunately still require the majority of flushing functions to
be implemented to deal with aliasing.
menu "General setup" If unsure, say N.
# Even on SuperH devices which don't have an ISA bus, config SH_OCRAM
# this variable helps the PCMCIA modules handle bool "Operand Cache RAM (OCRAM) support"
# IRQ requesting properly -- Greg Banks.
config ISA
bool
default y
help help
Find out whether you have ISA slots on your motherboard. ISA is the Selecting this option will automatically tear down the number of
name of a bus system, i.e. the way the CPU talks to the other stuff sets in the dcache by half, which in turn exposes a memory range.
inside your box. Other bus systems are PCI, EISA, MicroChannel
(MCA) or VESA. ISA is an older system, now being displaced by PCI;
newer boards don't support it. If you have ISA, say Y, otherwise N.
config EISA The addresses for the OC RAM base will vary according to the
bool processor version. Consult vendor documentation for specifics.
---help---
The Extended Industry Standard Architecture (EISA) bus was
developed as an open alternative to the IBM MicroChannel bus.
The EISA bus provided some of the features of the IBM MicroChannel If unsure, say N.
bus while maintaining backward compatibility with cards made for
the older ISA bus. The EISA bus saw limited use between 1988 and
1995 when it was made obsolete by the PCI bus.
Say Y here if you are building a kernel for an EISA-based machine. config SMP
bool "Symmetric multi-processing support"
---help---
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
you have a system with more than one CPU, say Y.
If you say N here, the kernel will run on single and multiprocessor
machines, but will use only one CPU of a multiprocessor machine. If
you say Y here, the kernel will run on many, but not all,
singleprocessor machines. On a singleprocessor machine, the kernel
will run faster if you say N here.
People using multiprocessor machines who say Y here should also say
Y to "Enhanced Real Time Clock Support", below.
See also the <file:Documentation/smp.tex>,
<file:Documentation/smp.txt>, <file:Documentation/nmi_watchdog.txt>
and the SMP-HOWTO available at
<http://www.tldp.org/docs.html#howto>.
Otherwise, say N. If you don't know what to do here, say N.
config MCA config NR_CPUS
bool int "Maximum number of CPUs (2-32)"
depends on SMP
default "2"
help help
MicroChannel Architecture is found in some IBM PS/2 machines and This allows you to specify the maximum number of CPUs which this
laptops. It is a bus system similar to PCI or ISA. See kernel will support. The maximum supported value is 32 and the
<file:Documentation/mca.txt> (and especially the web page given minimum value which makes sense is 2.
there) before attempting to build an MCA bus kernel.
config SBUS This is purely to save memory - each supported CPU adds
bool approximately eight kilobytes to the kernel image.
config CF_ENABLER config SH_DMA
bool "Compact Flash Enabler support" bool "DMA controller (DMAC) support"
depends on SH_GENERIC || SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_CAT68701 || SH_ADX help
---help--- Selecting this option will provide same API as PC's Direct Memory
Compact Flash is a small, removable mass storage device introduced Access Controller(8237A) for SuperH DMAC.
in 1994 originally as a PCMCIA device. If you say `Y' here, you
compile in support for Compact Flash devices directly connected to
a SuperH processor. A Compact Flash FAQ is available at
<http://www.compactflash.org/faqs/faq.htm>.
If your board has "Directly Connected" CompactFlash at area 5 or 6, If unsure, say N.
you may want to enable this option. Then, you can use CF as
primary IDE drive (only tested for SanDisk).
If in doubt, select 'N'. config CPU_FREQ
bool "CPU Frequency scaling"
help
CPU clock scaling allows you to change the clock speed of the
running CPU on the fly.
choice For details, take a look at <file:Documentation/cpufreq>.
prompt "Compact Flash Connection Area"
depends on CF_ENABLER
default CF_AREA6
config CF_AREA5 If unsure, say N.
bool "Area5"
config CPU_FREQ_TABLE
tristate "CPU frequency table helpers"
depends on CPU_FREQ
default y
help help
If your board has "Directly Connected" CompactFlash, You should Many cpufreq drivers use these helpers, so only say N here if
select the area where your CF is connected to. the cpufreq driver of your choice doesn't need these helpers.
- "Area5" if CompactFlash is connected to Area 5 (0x14000000) If unsure, say Y.
- "Area6" if it is connected to Area 6 (0x18000000)
"Area6" will work for most boards. For ADX, select "Area5". config SH_CPU_FREQ
tristate "SuperH CPU Frequency driver"
depends on CPU_FREQ
help
This adds the cpufreq driver for SuperH. At present, only
the SH-4 is supported.
config CF_AREA6 For details, take a look at <file:Documentation/cpufreq>.
bool "Area6"
endchoice If unsure, say N.
config CF_BASE_ADDR source "drivers/cpufreq/Kconfig"
hex
depends on CF_ENABLER # A board must have defined HD6446X_SERIES in order to see these
default "b8000000" if CF_AREA6 choice
default "b4000000" if CF_AREA5 prompt "HD6446x options"
depends HD6446X_SERIES
default HD64461
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,
...@@ -417,6 +539,24 @@ config HD64461 ...@@ -417,6 +539,24 @@ config HD64461
Say Y if you want support for the HD64461. Say Y if you want support for the HD64461.
Otherwise, say N. Otherwise, say N.
config HD64465
bool "Hitachi HD64465 companion chip support"
depends on CPU_SUBTYPE_SH7750
---help---
The Hitachi HD64465 provides an interface for
the SH7750 CPU, supporting a LCD controller,
CRT color controller, IrDA, USB, PCMCIA,
keyboard controller, and a printer interface.
More information is available at
<http://global.hitachi.com/New/cnews/E/1998/981019B.html>.
Say Y if you want support for the HD64465.
Otherwise, say N.
endchoice
# These will also be split into the Kconfig's below
config HD64461_IRQ config HD64461_IRQ
int "HD64461 IRQ" int "HD64461 IRQ"
depends on HD64461 depends on HD64461
...@@ -434,19 +574,6 @@ config HD64461_ENABLER ...@@ -434,19 +574,6 @@ config HD64461_ENABLER
via the HD64461 companion chip. via the HD64461 companion chip.
Otherwise, say N. Otherwise, say N.
config HD64465
bool "Hitachi HD64465 companion chip support"
---help---
The Hitachi HD64465 provides an interface for
the SH7750 CPU, supporting a LCD controller,
CRT color controller, IrDA, USB, PCMCIA,
keyboard controller, and a printer interface.
More information is available at
<http://global.hitachi.com/New/cnews/E/1998/981019B.html>.
Say Y if you want support for the HD64465.
Otherwise, say N.
config HD64465_IOBASE config HD64465_IOBASE
hex "HD64465 start address" hex "HD64465 start address"
...@@ -466,13 +593,49 @@ config HD64465_IRQ ...@@ -466,13 +593,49 @@ config HD64465_IRQ
Do not change this unless you know what you are doing. Do not change this unless you know what you are doing.
config SH_DMA endmenu
bool "DMA controller (DMAC) support"
menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
# Even on SuperH devices which don't have an ISA bus,
# this variable helps the PCMCIA modules handle
# IRQ requesting properly -- Greg Banks.
config ISA
bool
default y
help help
Selecting this option will provide same API as PC's Direct Memory Find out whether you have ISA slots on your motherboard. ISA is the
Access Controller(8237A) for SuperH DMAC. name of a bus system, i.e. the way the CPU talks to the other stuff
inside your box. Other bus systems are PCI, EISA, MicroChannel
(MCA) or VESA. ISA is an older system, now being displaced by PCI;
newer boards don't support it. If you have ISA, say Y, otherwise N.
If unsure, say N. config EISA
bool
---help---
The Extended Industry Standard Architecture (EISA) bus was
developed as an open alternative to the IBM MicroChannel bus.
The EISA bus provided some of the features of the IBM MicroChannel
bus while maintaining backward compatibility with cards made for
the older ISA bus. The EISA bus saw limited use between 1988 and
1995 when it was made obsolete by the PCI bus.
Say Y here if you are building a kernel for an EISA-based machine.
Otherwise, say N.
config MCA
bool
help
MicroChannel Architecture is found in some IBM PS/2 machines and
laptops. It is a bus system similar to PCI or ISA. See
<file:Documentation/mca.txt> (and especially the web page given
there) before attempting to build an MCA bus kernel.
config SBUS
bool
config PCI config PCI
bool "PCI support" bool "PCI support"
...@@ -559,6 +722,13 @@ config HOTPLUG ...@@ -559,6 +722,13 @@ config HOTPLUG
source "drivers/pcmcia/Kconfig" source "drivers/pcmcia/Kconfig"
source "drivers/hotplug/Kconfig"
endmenu
menu "Executable file formats"
choice choice
prompt "Kernel core (/proc/kcore) format" prompt "Kernel core (/proc/kcore) format"
depends on PROC_FS depends on PROC_FS
...@@ -622,6 +792,9 @@ config BINFMT_ELF ...@@ -622,6 +792,9 @@ config BINFMT_ELF
will be called binfmt_elf. Saying M or N here is dangerous because will be called binfmt_elf. Saying M or N here is dangerous because
some crucial programs on your system might be in ELF format. some crucial programs on your system might be in ELF format.
config BINFMT_FLAT
tristate "Kernel support for FLAT binaries"
config BINFMT_MISC config BINFMT_MISC
tristate "Kernel support for MISC binaries" tristate "Kernel support for MISC binaries"
---help--- ---help---
...@@ -647,15 +820,13 @@ config BINFMT_MISC ...@@ -647,15 +820,13 @@ config BINFMT_MISC
you have use for it; the module is called binfmt_misc. If you you have use for it; the module is called binfmt_misc. If you
don't know what to answer at this point, say Y. don't know what to answer at this point, say Y.
source "drivers/parport/Kconfig"
endmenu endmenu
source "drivers/mtd/Kconfig" source "drivers/mtd/Kconfig"
source "drivers/block/Kconfig" source "drivers/parport/Kconfig"
source "drivers/md/Kconfig" source "drivers/block/Kconfig"
menu "ATA/ATAPI/MFM/RLL support" menu "ATA/ATAPI/MFM/RLL support"
...@@ -711,10 +882,10 @@ source "drivers/ide/Kconfig" ...@@ -711,10 +882,10 @@ source "drivers/ide/Kconfig"
endmenu endmenu
menu "SCSI support" menu "SCSI device support"
config SCSI config SCSI
tristate "SCSI support" tristate "SCSI device support"
---help--- ---help---
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know any other SCSI device under Linux, say Y and make sure that you know
...@@ -737,9 +908,6 @@ source "drivers/scsi/Kconfig" ...@@ -737,9 +908,6 @@ source "drivers/scsi/Kconfig"
endmenu endmenu
source "drivers/ieee1394/Kconfig"
source "net/Kconfig"
menu "Old CD-ROM drivers (not SCSI, not IDE)" menu "Old CD-ROM drivers (not SCSI, not IDE)"
...@@ -776,8 +944,22 @@ source "drivers/cdrom/Kconfig" ...@@ -776,8 +944,22 @@ source "drivers/cdrom/Kconfig"
endmenu endmenu
source "drivers/md/Kconfig"
source "drivers/ieee1394/Kconfig"
source "net/Kconfig"
source "net/ax25/Kconfig"
source "net/irda/Kconfig"
source "drivers/isdn/Kconfig"
source "drivers/telephony/Kconfig"
# #
# input before char - char/joystick depends on it. As does USB. # input - input/joystick depends on it. As does USB.
# #
source "drivers/input/Kconfig" source "drivers/input/Kconfig"
...@@ -837,6 +1019,11 @@ config VT_CONSOLE ...@@ -837,6 +1019,11 @@ config VT_CONSOLE
If unsure, say Y. If unsure, say Y.
config HW_CONSOLE
bool
depends on VT && !S390 && !UM
default y
config SERIAL config SERIAL
tristate "Serial (8250, 16450, 16550 or compatible) support" tristate "Serial (8250, 16450, 16550 or compatible) support"
---help--- ---help---
...@@ -948,7 +1135,7 @@ config UNIX98_PTY_COUNT ...@@ -948,7 +1135,7 @@ config UNIX98_PTY_COUNT
config HEARTBEAT config HEARTBEAT
bool "Heartbeat LED" bool "Heartbeat LED"
depends on SH_GENERIC || SH_CAT68701 || SH_STB1_HARP || SH_STB1_OVERDRIVE || SH_BIGSUR || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE depends on SH_MPC1211 || SH_CAT68701 || SH_STB1_HARP || SH_STB1_OVERDRIVE || SH_BIGSUR || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE
help help
Use the power-on LED on your machine as a load meter. The exact Use the power-on LED on your machine as a load meter. The exact
behavior is platform-dependent, but normally the flash frequency is behavior is platform-dependent, but normally the flash frequency is
...@@ -971,7 +1158,6 @@ comment "Input core support is required for Maple input peripherals" ...@@ -971,7 +1158,6 @@ comment "Input core support is required for Maple input peripherals"
endmenu endmenu
#source drivers/char/joystick/Config.in
config PRINTER config PRINTER
tristate "Parallel printer support" tristate "Parallel printer support"
depends on PARPORT depends on PARPORT
...@@ -1095,12 +1281,18 @@ config WATCHDOG_NOWAYOUT ...@@ -1095,12 +1281,18 @@ config WATCHDOG_NOWAYOUT
it has been started. it has been started.
config SH_WDT config SH_WDT
tristate "SH 3/4 Watchdog" tristate "SuperH Watchdog"
depends on WATCHDOG depends on WATCHDOG
help help
This driver adds watchdog support for the integrated watchdog in the This driver adds watchdog support for the integrated watchdog in the
SuperH 3 and 4 processors. If you have one of these processors, say Y, SuperH processors. If you have one of these processors and wish
otherwise say N. to have watchdog support enabled, say Y, otherwise say N.
As a side note, saying Y here will automatically boost HZ to 1000
so that the timer has a chance to clear the overflow counter. On
slower systems (such as the SH-2 and SH-3) this will likely yield
some performance issues. As such, the WDT should be avoided here
unless it is absolutely necessary.
This driver is also available as a module ( = code which can be This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want). inserted in and removed from the running kernel whenever you want).
...@@ -1138,6 +1330,10 @@ config RTC ...@@ -1138,6 +1330,10 @@ config RTC
source "drivers/char/pcmcia/Kconfig" source "drivers/char/pcmcia/Kconfig"
source "drivers/serial/Kconfig"
source "drivers/i2c/Kconfig"
endmenu endmenu
source "fs/Kconfig" source "fs/Kconfig"
...@@ -1182,6 +1378,10 @@ source "sound/Kconfig" ...@@ -1182,6 +1378,10 @@ source "sound/Kconfig"
endmenu endmenu
source "drivers/usb/Kconfig"
source "net/bluetooth/Kconfig"
menu "Kernel hacking" menu "Kernel hacking"
...@@ -1198,6 +1398,14 @@ config MAGIC_SYSRQ ...@@ -1198,6 +1398,14 @@ config MAGIC_SYSRQ
keys are documented in <file:Documentation/sysrq.txt>. Don't say Y keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
unless you really know what this hack does. unless you really know what this hack does.
config DEBUG_SPINLOCK
bool "Spinlock debugging"
help
Say Y here and build SMP to catch missing spinlock initialization
and certain other kinds of spinlock errors commonly made. This is
best used in conjunction with the NMI watchdog so that spinlock
deadlocks are also debuggable.
config SH_STANDARD_BIOS config SH_STANDARD_BIOS
bool "Use LinuxSH standard BIOS" bool "Use LinuxSH standard BIOS"
help help
......
# $Id: Makefile,v 1.6 2000/06/10 03:03:52 gniibe Exp $ # $Id: Makefile,v 1.17 2003/05/20 03:12:54 lethal Exp $
# #
# This file is subject to the terms and conditions of the GNU General Public # This file is subject to the terms and conditions of the GNU General Public
# 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.
# #
# Copyright (C) 1999 Kaz Kojima # Copyright (C) 1999 Kaz Kojima
# Copyright (C) 2002, 2003 Paul Mundt
# Copyright (C) 2002 M. R. Brown
# #
# This file is included by the global makefile so that you can add your own # This file is included by the global makefile so that you can add your own
# architecture-specific flags and dependencies. Remember to do have actions # architecture-specific flags and dependencies. Remember to do have actions
...@@ -12,72 +14,116 @@ ...@@ -12,72 +14,116 @@
# this architecture # this architecture
# #
ifdef CONFIG_CPU_LITTLE_ENDIAN #
CFLAGS += -ml # We don't necessarily agree with the top-level Makefile with regards to what
AFLAGS += -ml # does and does not qualify as a noconfig_targets rule. In this case, we're
# LDFLAGS_vmlinux += -EL # still dependant on .config settings in order for core-y (machdir-y in
LDFLAGS := -EL # particular) to resolve the proper directory. So we just manually include it
else # if it hasn't been already..
CFLAGS += -mb #
AFLAGS += -mb ifndef include_config
# LDFLAGS_vmlinux += -EB -include .config
LDFLAGS := -EB
endif endif
OBJCOPYFLAGS := -O binary -R .note -R .comment -R .stab -R .stabstr -S cpu-y := -mb
cpu-$(CONFIG_CPU_LITTLE_ENDIAN) := -ml
MODFLAGS +=
# cpu-$(CONFIG_CPU_SH2) += -m2
# cpu-$(CONFIG_CPU_SH3) += -m3
cpu-$(CONFIG_CPU_SH4) += -m4 -mno-implicit-fp
ifdef CONFIG_CPU_SH3 ifdef CONFIG_SH_KGDB
CFLAGS += -m3 CFLAGS :=$(CFLAGS:-fomit-frame-pointer=) -g
AFLAGS += -m3 AFLAGS += -g
ifdef CONFIG_KGDB_MORE
CFLAGS += $(shell echo $(CONFIG_KGDB_OPTIONS) | sed -e 's/"//g')
endif endif
ifdef CONFIG_CPU_SH4
CFLAGS += -m4 -mno-implicit-fp
AFLAGS += -m4 -mno-implicit-fp
endif endif
OBJCOPYFLAGS := -O binary -R .note -R .comment -R .stab -R .stabstr -S
# #
# Choosing incompatible machines durings configuration will result in # Choosing incompatible machines durings configuration will result in
# error messages during linking. # error messages during linking.
# #
LDFLAGS_vmlinux += -e _stext LDFLAGS_vmlinux += -e _stext
ifdef LOADADDR ifdef CONFIG_CPU_LITTLE_ENDIAN
LDFLAGS_vmlinux += -Ttext $(word 1,$(LOADADDR)) LDFLAGS_vmlinux += --defsym 'jiffies=jiffies_64' -EL
LDFLAGS_BLOB :=--format binary --oformat elf32-sh-linux
else
LDFLAGS_vmlinux += --defsym 'jiffies=jiffies_64+4' -EB
LDFLAGS_BLOB :=--format binary --oformat elf32-shbig-linux
endif endif
# CFLAGS += -pipe $(cpu-y)
CFLAGS += -pipe AFLAGS += $(cpu-y)
head-y := arch/sh/kernel/head.o arch/sh/kernel/init_task.o head-y := arch/sh/kernel/head.o arch/sh/kernel/init_task.o
LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name) LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
core-y += arch/sh/kernel/ arch/sh/mm/ core-y += arch/sh/kernel/ arch/sh/mm/
core-$(CONFIG_SH_GENERIC) += arch/sh/stboards/
core-$(CONFIG_SH_STB1_HARP) += arch/sh/stboards/ # Boards
core-$(CONFIG_SH_STB1_OVERDRIVE)+= arch/sh/stboards/ machdir-$(CONFIG_SH_SOLUTION_ENGINE) := se/770x
machdir-$(CONFIG_SH_7751_SOLUTION_ENGINE) := se/7751
machdir-$(CONFIG_SH_STB1_HARP) := harp
machdir-$(CONFIG_SH_STB1_OVERDRIVE) := overdrive
machdir-$(CONFIG_SH_HP620) := hp6xx/hp620
machdir-$(CONFIG_SH_HP680) := hp6xx/hp680
machdir-$(CONFIG_SH_HP690) := hp6xx/hp690
machdir-$(CONFIG_SH_CQREEK) := cqreek
machdir-$(CONFIG_SH_DMIDA) := dmida
machdir-$(CONFIG_SH_EC3104) := ec3104
machdir-$(CONFIG_SH_SATURN) := saturn
machdir-$(CONFIG_SH_DREAMCAST) := dreamcast
machdir-$(CONFIG_SH_CAT68701) := cat68701
machdir-$(CONFIG_SH_BIGSUR) := bigsur
machdir-$(CONFIG_SH_SH2000) := sh2000
machdir-$(CONFIG_SH_ADX) := adx
machdir-$(CONFIG_SH_MPC1211) := mpc1211
machdir-$(CONFIG_SH_UNKNOWN) := unknown
incdir-y := $(machdir-y)
incdir-$(CONFIG_SH_SOLUTION_ENGINE) := se
incdir-$(CONFIG_SH_7751_SOLUTION_ENGINE) := se7751
incdir-$(CONFIG_SH_HP600) := hp6xx
core-y += arch/sh/boards/$(machdir-y)/
# Companion chips
core-$(CONFIG_HD64461) += arch/sh/cchips/hd6446x/hd64461/
core-$(CONFIG_HD64465) += arch/sh/cchips/hd6446x/hd64465/
cpuincdir-$(CONFIG_CPU_SH2) := cpu-sh2
cpuincdir-$(CONFIG_CPU_SH3) := cpu-sh3
cpuincdir-$(CONFIG_CPU_SH4) := cpu-sh4
libs-y += arch/sh/lib/ $(LIBGCC) libs-y += arch/sh/lib/ $(LIBGCC)
MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot boot := arch/sh/boot
AFLAGS_vmlinux.lds.o := -traditional AFLAGS_vmlinux.lds.o := -traditional
prepare: target_links
.PHONY: target_links FORCE
target_links:
@echo ' Making asm-sh/cpu -> asm-sh/$(cpuincdir-y) link'
@ln -sf $(cpuincdir-y) include/asm-sh/cpu
@echo ' Making asm-sh/mach -> asm-sh/$(incdir-y) link'
@ln -sf $(incdir-y) include/asm-sh/mach
$(Q)$(MAKE) $(build)=arch/sh/tools include/asm-sh/machtypes.h
BOOTIMAGE=arch/sh/boot/zImage
zImage: vmlinux zImage: vmlinux
@$(MAKEBOOT) zImage $(Q)$(MAKE) $(build)=$(boot) $(BOOTIMAGE)
compressed: zImage compressed: zImage
zdisk: vmlinux
@$(MAKEBOOT) zdisk
archclean: archclean:
@$(MAKEBOOT) clean $(Q)$(MAKE) $(clean)=$(boot)
$(MAKE) -C arch/$(ARCH)/kernel clean
$(MAKE) -C arch/$(ARCH)/stboards clean
# $(MAKE) -C arch/$(ARCH)/tools clean
...@@ -4,40 +4,34 @@ ...@@ -4,40 +4,34 @@
# create a compressed vmlinux image from the original vmlinux # create a compressed vmlinux image from the original vmlinux
# #
HEAD = head.o targets := vmlinux vmlinux.bin vmlinux.bin.gz head.o misc.o piggy.o
SYSTEM = $(TOPDIR)/vmlinux EXTRA_AFLAGS := -traditional
OBJECTS = $(HEAD) misc.o OBJECTS = $(obj)/head.o $(obj)/misc.o
ifdef CONFIG_SH_STANDARD_BIOS ifdef CONFIG_SH_STANDARD_BIOS
OBJECTS += ../../kernel/sh_bios.o OBJECTS += $(obj)/../../kernel/sh_bios.o
endif endif
ZLDFLAGS = -e startup -T $(TOPDIR)/arch/sh/vmlinux.lds
# #
# ZIMAGE_OFFSET is the load offset of the compression loader # IMAGE_OFFSET is the load offset of the compression loader
# #
ZIMAGE_OFFSET = $(shell printf "0x%8x" $$[0x80000000+0x$(CONFIG_MEMORY_START)+0x200000+0x10000]) IMAGE_OFFSET = $(shell printf "0x%8x" $$[0x80000000+0x$(CONFIG_MEMORY_START)+0x200000+0x10000])
ZLINKFLAGS = -Ttext $(ZIMAGE_OFFSET) $(ZLDFLAGS) LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -e startup -T $(obj)/../../vmlinux.lds.s
all: vmlinux $(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o FORCE
$(call if_changed,ld)
@:
vmlinux: piggy.o $(OBJECTS) $(obj)/vmlinux.bin: vmlinux FORCE
$(LD) $(LDFLAGS) $(ZLINKFLAGS) -o vmlinux $(OBJECTS) piggy.o $(call if_changed,objcopy)
head.o: head.S $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
$(CC) $(AFLAGS) -traditional -c head.S $(call if_changed,gzip)
piggy.o: $(SYSTEM) LDFLAGS_piggy.o := -r --format binary --oformat elf32-sh-linux -T
tmppiggy=_tmp_$$$$piggy; \ OBJCOPYFLAGS += -R .empty_zero_page
rm -f $$tmppiggy $$tmppiggy.gz $$tmppiggy.lnk; \
$(OBJCOPY) $(OBJCOPYFLAGS) -R .empty_zero_page $(SYSTEM) $$tmppiggy; \
gzip -f -9 < $$tmppiggy > $$tmppiggy.gz; \
echo "SECTIONS { .data : { input_len = .; LONG(input_data_end - input_data) input_data = .; *(.data) input_data_end = .; }}" > $$tmppiggy.lnk; \
$(LD) $(LDFLAGS) -r -o piggy.o -b binary $$tmppiggy.gz -b elf32-sh-linux -T $$tmppiggy.lnk; \
rm -f $$tmppiggy $$tmppiggy.gz $$tmppiggy.lnk
clean: $(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.gz FORCE
rm -f vmlinux _tmp_* $(call if_changed,ld)
/* $Id: vmlinux.lds.in,v 1.5 2001/07/27 11:45:55 gniibe Exp $ /* $Id: vmlinux.lds.S,v 1.8 2003/05/16 17:18:14 lethal Exp $
* ld script to make SuperH Linux kernel * ld script to make SuperH Linux kernel
* Written by Niibe Yutaka * Written by Niibe Yutaka
*/ */
...@@ -7,16 +7,14 @@ ...@@ -7,16 +7,14 @@
#ifdef CONFIG_CPU_LITTLE_ENDIAN #ifdef CONFIG_CPU_LITTLE_ENDIAN
OUTPUT_FORMAT("elf32-sh-linux", "elf32-sh-linux", "elf32-sh-linux") OUTPUT_FORMAT("elf32-sh-linux", "elf32-sh-linux", "elf32-sh-linux")
jiffies = jiffies_64;
#else #else
OUTPUT_FORMAT("elf32-shbig-linux", "elf32-shbig-linux", "elf32-shbig-linux") OUTPUT_FORMAT("elf32-shbig-linux", "elf32-shbig-linux", "elf32-shbig-linux")
jiffies = jiffies_64 + 4;
#endif #endif
OUTPUT_ARCH(sh) OUTPUT_ARCH(sh)
ENTRY(_start) ENTRY(_start)
SECTIONS SECTIONS
{ {
. = 0x80000000 + CONFIG_MEMORY_START + 0x1000; . = 0x80000000 + CONFIG_MEMORY_START + CONFIG_ZERO_PAGE_OFFSET;
_text = .; /* Text and read-only data */ _text = .; /* Text and read-only data */
text = .; /* Text and read-only data */ text = .; /* Text and read-only data */
.empty_zero_page : { .empty_zero_page : {
...@@ -42,6 +40,15 @@ SECTIONS ...@@ -42,6 +40,15 @@ SECTIONS
CONSTRUCTORS CONSTRUCTORS
} }
. = ALIGN(4096);
.data.page_aligned : { *(.data.idt) }
. = ALIGN(32);
__per_cpu_start = .;
.data.percpu : { *(.data.percpu) }
__per_cpu_end = .;
.data.cacheline_aligned : { *(.data.cacheline_aligned) }
_edata = .; /* End of data section */ _edata = .; /* End of data section */
. = ALIGN(8192); /* init_task */ . = ALIGN(8192); /* init_task */
...@@ -51,12 +58,17 @@ SECTIONS ...@@ -51,12 +58,17 @@ SECTIONS
. = ALIGN(4096); /* Init code and data */ . = ALIGN(4096); /* Init code and data */
__init_begin = .; __init_begin = .;
.text.init : { *(.text.init) } _sinittext = .;
.data.init : { *(.data.init) } .init.text : { *(.init.text) }
_einittext = .;
.init.data : { *(.init.data) }
. = ALIGN(16); . = ALIGN(16);
__setup_start = .; __setup_start = .;
.setup.init : { *(.setup.init) } .init.setup : { *(.init.setup) }
__setup_end = .; __setup_end = .;
__start___param = .;
__param : { *(__param) }
__stop___param = .;
__initcall_start = .; __initcall_start = .;
.initcall.init : { .initcall.init : {
*(.initcall1.init) *(.initcall1.init)
...@@ -72,27 +84,19 @@ SECTIONS ...@@ -72,27 +84,19 @@ SECTIONS
.con_initcall.init : { *(.con_initcall.init) } .con_initcall.init : { *(.con_initcall.init) }
__con_initcall_end = .; __con_initcall_end = .;
SECURITY_INIT SECURITY_INIT
__initramfs_start = .;
.init.ramfs : { *(.init.ramfs) }
__initramfs_end = .;
__machvec_start = .; __machvec_start = .;
.machvec.init : { *(.machvec.init) } .init.machvec : { *(.init.machvec) }
__machvec_end = .; __machvec_end = .;
. = ALIGN(4096); . = ALIGN(4096);
__init_end = .; __init_end = .;
. = ALIGN(4096);
.data.page_aligned : { *(.data.idt) }
#ifdef CONFIG_CPU_SH3
. = ALIGN(16);
#else
. = ALIGN(32);
#endif
.data.cacheline_aligned : { *(.data.cacheline_aligned) }
. = ALIGN(4); . = ALIGN(4);
__bss_start = .; /* BSS */ __bss_start = .; /* BSS */
.bss : { .bss : { *(.bss) }
*(.bss)
}
. = ALIGN(4); . = ALIGN(4);
_end = . ; _end = . ;
...@@ -102,8 +106,8 @@ SECTIONS ...@@ -102,8 +106,8 @@ SECTIONS
* it's a module. * it's a module.
*/ */
/DISCARD/ : { /DISCARD/ : {
*(.text.exit) *(.exit.text)
*(.data.exit) *(.exit.data)
*(.exitcall.exit) *(.exitcall.exit)
} }
......
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