forked from Minki/linux
fef6c12e88
mn10300 doesn't provide its own atomic64 implementation, so it should pull in the generic one. Cc: David Howells <dhowells@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
494 lines
11 KiB
Plaintext
494 lines
11 KiB
Plaintext
config MN10300
|
|
def_bool y
|
|
select HAVE_OPROFILE
|
|
select HAVE_GENERIC_HARDIRQS
|
|
select GENERIC_IRQ_SHOW
|
|
select ARCH_WANT_IPC_PARSE_VERSION
|
|
select HAVE_ARCH_TRACEHOOK
|
|
select HAVE_ARCH_KGDB
|
|
select GENERIC_ATOMIC64
|
|
select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER
|
|
select GENERIC_CLOCKEVENTS
|
|
select MODULES_USE_ELF_RELA
|
|
|
|
config AM33_2
|
|
def_bool n
|
|
|
|
config AM33_3
|
|
def_bool n
|
|
|
|
config AM34_2
|
|
def_bool n
|
|
select MN10300_HAS_ATOMIC_OPS_UNIT
|
|
select MN10300_HAS_CACHE_SNOOP
|
|
|
|
config ERRATUM_NEED_TO_RELOAD_MMUCTR
|
|
def_bool y if AM33_3 || AM34_2
|
|
|
|
config MMU
|
|
def_bool y
|
|
|
|
config HIGHMEM
|
|
def_bool n
|
|
|
|
config NUMA
|
|
def_bool n
|
|
|
|
config UID16
|
|
def_bool y
|
|
|
|
config RWSEM_GENERIC_SPINLOCK
|
|
def_bool y
|
|
|
|
config RWSEM_XCHGADD_ALGORITHM
|
|
bool
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
def_bool y
|
|
|
|
config GENERIC_HWEIGHT
|
|
def_bool y
|
|
|
|
config GENERIC_BUG
|
|
def_bool y
|
|
|
|
config QUICKLIST
|
|
def_bool y
|
|
|
|
config ARCH_HAS_ILOG2_U32
|
|
def_bool y
|
|
|
|
config HOTPLUG_CPU
|
|
def_bool n
|
|
|
|
source "init/Kconfig"
|
|
|
|
source "kernel/Kconfig.freezer"
|
|
|
|
|
|
menu "Panasonic MN10300 system setup"
|
|
|
|
choice
|
|
prompt "Unit type"
|
|
default MN10300_UNIT_ASB2303
|
|
help
|
|
This option specifies board for which the kernel will be
|
|
compiled. It affects the external peripherals catered for.
|
|
|
|
config MN10300_UNIT_ASB2303
|
|
bool "ASB2303"
|
|
|
|
config MN10300_UNIT_ASB2305
|
|
bool "ASB2305"
|
|
|
|
config MN10300_UNIT_ASB2364
|
|
bool "ASB2364"
|
|
select SMSC911X_ARCH_HOOKS if SMSC911X
|
|
|
|
endchoice
|
|
|
|
choice
|
|
prompt "Processor support"
|
|
default MN10300_PROC_MN103E010
|
|
help
|
|
This option specifies the processor for which the kernel will be
|
|
compiled. It affects the on-chip peripherals catered for.
|
|
|
|
config MN10300_PROC_MN103E010
|
|
bool "MN103E010"
|
|
depends on MN10300_UNIT_ASB2303 || MN10300_UNIT_ASB2305
|
|
select AM33_2
|
|
select MN10300_PROC_HAS_TTYSM0
|
|
select MN10300_PROC_HAS_TTYSM1
|
|
select MN10300_PROC_HAS_TTYSM2
|
|
|
|
config MN10300_PROC_MN2WS0050
|
|
bool "MN2WS0050"
|
|
depends on MN10300_UNIT_ASB2364
|
|
select AM34_2
|
|
select MN10300_PROC_HAS_TTYSM0
|
|
select MN10300_PROC_HAS_TTYSM1
|
|
select MN10300_PROC_HAS_TTYSM2
|
|
|
|
endchoice
|
|
|
|
config MN10300_HAS_ATOMIC_OPS_UNIT
|
|
def_bool n
|
|
help
|
|
This should be enabled if the processor has an atomic ops unit
|
|
capable of doing LL/SC equivalent operations.
|
|
|
|
config FPU
|
|
bool "FPU present"
|
|
default y
|
|
depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
|
|
|
|
config LAZY_SAVE_FPU
|
|
bool "Save FPU state lazily"
|
|
default y
|
|
depends on FPU && !SMP
|
|
help
|
|
Enable this to be lazy in the saving of the FPU state to the owning
|
|
task's thread struct. This is useful if most tasks on the system
|
|
don't use the FPU as only those tasks that use it will pass it
|
|
between them, and the state needn't be saved for a task that isn't
|
|
using it.
|
|
|
|
This can't be so easily used on SMP as the process that owns the FPU
|
|
state on a CPU may be currently running on another CPU, so for the
|
|
moment, it is disabled.
|
|
|
|
source "arch/mn10300/mm/Kconfig.cache"
|
|
|
|
config MN10300_TLB_USE_PIDR
|
|
def_bool y
|
|
|
|
menu "Memory layout options"
|
|
|
|
config KERNEL_RAM_BASE_ADDRESS
|
|
hex "Base address of kernel RAM"
|
|
default "0x90000000"
|
|
|
|
config INTERRUPT_VECTOR_BASE
|
|
hex "Base address of vector table"
|
|
default "0x90000000"
|
|
help
|
|
The base address of the vector table will be programmed into
|
|
the TBR register. It must be on 16MiB address boundary.
|
|
|
|
config KERNEL_TEXT_ADDRESS
|
|
hex "Base address of kernel"
|
|
default "0x90001000"
|
|
|
|
config KERNEL_ZIMAGE_BASE_ADDRESS
|
|
hex "Base address of compressed vmlinux image"
|
|
default "0x50700000"
|
|
|
|
config BOOT_STACK_OFFSET
|
|
hex
|
|
default "0xF00" if SMP
|
|
default "0xFF0" if !SMP
|
|
|
|
config BOOT_STACK_SIZE
|
|
hex
|
|
depends on SMP
|
|
default "0x100"
|
|
endmenu
|
|
|
|
config SMP
|
|
bool "Symmetric multi-processing support"
|
|
default y
|
|
select USE_GENERIC_SMP_HELPERS
|
|
depends on MN10300_PROC_MN2WS0038 || MN10300_PROC_MN2WS0050
|
|
---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.
|
|
|
|
See also <file:Documentation/x86/i386/IO-APIC.txt>,
|
|
<file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
|
|
<http://www.tldp.org/docs.html#howto>.
|
|
|
|
If you don't know what to do here, say N.
|
|
|
|
config NR_CPUS
|
|
int
|
|
depends on SMP
|
|
default "2"
|
|
|
|
source "kernel/Kconfig.preempt"
|
|
|
|
config MN10300_CURRENT_IN_E2
|
|
bool "Hold current task address in E2 register"
|
|
depends on !SMP
|
|
default y
|
|
help
|
|
This option removes the E2/R2 register from the set available to gcc
|
|
for normal use and instead uses it to store the address of the
|
|
current process's task_struct whilst in the kernel.
|
|
|
|
This means the kernel doesn't need to calculate the address each time
|
|
"current" is used (take SP, AND with mask and dereference pointer
|
|
just to get the address), and instead can just use E2+offset
|
|
addressing each time.
|
|
|
|
This has no effect on userspace.
|
|
|
|
config MN10300_USING_JTAG
|
|
bool "Using JTAG to debug kernel"
|
|
default y
|
|
help
|
|
This options indicates that JTAG will be used to debug the kernel. It
|
|
suppresses the use of certain hardware debugging features, such as
|
|
single-stepping, which are taken over completely by the JTAG unit.
|
|
|
|
source "kernel/Kconfig.hz"
|
|
|
|
config MN10300_RTC
|
|
bool "Using MN10300 RTC"
|
|
depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
|
|
select GENERIC_CMOS_UPDATE
|
|
default n
|
|
help
|
|
This option enables support for the RTC, thus enabling time to be
|
|
tracked, even when system is powered down. This is available on-chip
|
|
on the MN103E010.
|
|
|
|
config MN10300_WD_TIMER
|
|
bool "Using MN10300 watchdog timer"
|
|
default y
|
|
help
|
|
This options indicates that the watchdog timer will be used.
|
|
|
|
config PCI
|
|
bool "Use PCI"
|
|
depends on MN10300_UNIT_ASB2305
|
|
default y
|
|
select GENERIC_PCI_IOMAP
|
|
help
|
|
Some systems (such as the ASB2305) have PCI onboard. If you have one
|
|
of these boards and you wish to use the PCI facilities, say Y here.
|
|
|
|
The PCI-HOWTO, available from
|
|
<http://www.tldp.org/docs.html#howto>, contains valuable
|
|
information about which PCI hardware does work under Linux and which
|
|
doesn't.
|
|
|
|
source "drivers/pci/Kconfig"
|
|
|
|
source "drivers/pcmcia/Kconfig"
|
|
|
|
menu "MN10300 internal serial options"
|
|
|
|
config MN10300_PROC_HAS_TTYSM0
|
|
bool
|
|
default n
|
|
|
|
config MN10300_PROC_HAS_TTYSM1
|
|
bool
|
|
default n
|
|
|
|
config MN10300_PROC_HAS_TTYSM2
|
|
bool
|
|
default n
|
|
|
|
config MN10300_TTYSM
|
|
bool "Support for ttySM serial ports"
|
|
depends on MN10300
|
|
default y
|
|
select SERIAL_CORE
|
|
help
|
|
This option enables support for the on-chip serial ports that the
|
|
MN10300 has available.
|
|
|
|
config MN10300_TTYSM_CONSOLE
|
|
bool "Support for console on ttySM serial ports"
|
|
depends on MN10300_TTYSM
|
|
select SERIAL_CORE_CONSOLE
|
|
help
|
|
This option enables support for a console on the on-chip serial ports
|
|
that the MN10300 has available.
|
|
|
|
#
|
|
# /dev/ttySM0
|
|
#
|
|
config MN10300_TTYSM0
|
|
bool "Enable SIF0 (/dev/ttySM0)"
|
|
depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM0
|
|
help
|
|
Enable access to SIF0 through /dev/ttySM0 or gdb-stub
|
|
|
|
choice
|
|
prompt "Select the timer to supply the clock for SIF0"
|
|
default MN10300_TTYSM0_TIMER8
|
|
depends on MN10300_TTYSM0
|
|
|
|
config MN10300_TTYSM0_TIMER8
|
|
bool "Use timer 8 (16-bit)"
|
|
|
|
config MN10300_TTYSM0_TIMER2
|
|
bool "Use timer 2 (8-bit)"
|
|
|
|
endchoice
|
|
|
|
#
|
|
# /dev/ttySM1
|
|
#
|
|
config MN10300_TTYSM1
|
|
bool "Enable SIF1 (/dev/ttySM1)"
|
|
depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM1
|
|
help
|
|
Enable access to SIF1 through /dev/ttySM1 or gdb-stub
|
|
|
|
choice
|
|
prompt "Select the timer to supply the clock for SIF1"
|
|
default MN10300_TTYSM1_TIMER12 \
|
|
if !(AM33_2 || AM33_3)
|
|
default MN10300_TTYSM1_TIMER9 \
|
|
if AM33_2 || AM33_3
|
|
depends on MN10300_TTYSM1
|
|
|
|
config MN10300_TTYSM1_TIMER12
|
|
bool "Use timer 12 (16-bit)"
|
|
depends on !(AM33_2 || AM33_3)
|
|
|
|
config MN10300_TTYSM1_TIMER9
|
|
bool "Use timer 9 (16-bit)"
|
|
depends on AM33_2 || AM33_3
|
|
|
|
config MN10300_TTYSM1_TIMER3
|
|
bool "Use timer 3 (8-bit)"
|
|
depends on AM33_2 || AM33_3
|
|
|
|
endchoice
|
|
|
|
#
|
|
# /dev/ttySM2
|
|
#
|
|
config MN10300_TTYSM2
|
|
bool "Enable SIF2 (/dev/ttySM2)"
|
|
depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM2
|
|
help
|
|
Enable access to SIF2 through /dev/ttySM2 or gdb-stub
|
|
|
|
choice
|
|
prompt "Select the timer to supply the clock for SIF2"
|
|
default MN10300_TTYSM2_TIMER3 \
|
|
if !(AM33_2 || AM33_3)
|
|
default MN10300_TTYSM2_TIMER10 \
|
|
if AM33_2 || AM33_3
|
|
depends on MN10300_TTYSM2
|
|
|
|
config MN10300_TTYSM2_TIMER9
|
|
bool "Use timer 9 (16-bit)"
|
|
depends on !(AM33_2 || AM33_3)
|
|
|
|
config MN10300_TTYSM2_TIMER1
|
|
bool "Use timer 1 (8-bit)"
|
|
depends on !(AM33_2 || AM33_3)
|
|
|
|
config MN10300_TTYSM2_TIMER3
|
|
bool "Use timer 3 (8-bit)"
|
|
depends on !(AM33_2 || AM33_3)
|
|
|
|
config MN10300_TTYSM2_TIMER10
|
|
bool "Use timer 10 (16-bit)"
|
|
depends on AM33_2 || AM33_3
|
|
|
|
endchoice
|
|
|
|
config MN10300_TTYSM2_CTS
|
|
bool "Enable the use of the CTS line /dev/ttySM2"
|
|
depends on MN10300_TTYSM2 && AM33_2
|
|
|
|
endmenu
|
|
|
|
menu "Interrupt request priority options"
|
|
|
|
comment "[!] NOTE: A lower number/level indicates a higher priority (0 is highest, 6 is lowest)"
|
|
|
|
comment "____Non-maskable interrupt levels____"
|
|
comment "The following must be set to a higher priority than local_irq_disable() and on-chip serial"
|
|
|
|
config DEBUGGER_IRQ_LEVEL
|
|
int "DEBUGGER interrupt priority"
|
|
depends on KERNEL_DEBUGGER
|
|
range 0 1 if LINUX_CLI_LEVEL = 2
|
|
range 0 2 if LINUX_CLI_LEVEL = 3
|
|
range 0 3 if LINUX_CLI_LEVEL = 4
|
|
range 0 4 if LINUX_CLI_LEVEL = 5
|
|
range 0 5 if LINUX_CLI_LEVEL = 6
|
|
default 0
|
|
|
|
comment "The following must be set to a higher priority than local_irq_disable()"
|
|
|
|
config MN10300_SERIAL_IRQ_LEVEL
|
|
int "MN10300 on-chip serial interrupt priority"
|
|
depends on MN10300_TTYSM
|
|
range 1 1 if LINUX_CLI_LEVEL = 2
|
|
range 1 2 if LINUX_CLI_LEVEL = 3
|
|
range 1 3 if LINUX_CLI_LEVEL = 4
|
|
range 1 4 if LINUX_CLI_LEVEL = 5
|
|
range 1 5 if LINUX_CLI_LEVEL = 6
|
|
default 1
|
|
|
|
comment "-"
|
|
comment "____Maskable interrupt levels____"
|
|
|
|
config LINUX_CLI_LEVEL
|
|
int "The highest interrupt priority excluded by local_irq_disable() (2-6)"
|
|
range 2 6
|
|
default 2
|
|
help
|
|
local_irq_disable() doesn't actually disable maskable interrupts -
|
|
what it does is restrict the levels of interrupt which are permitted
|
|
(a lower level indicates a higher priority) by lowering the value in
|
|
EPSW.IM from 7. Any interrupt is permitted for which the level is
|
|
lower than EPSW.IM.
|
|
|
|
Certain interrupts, such as DEBUGGER and virtual MN10300 on-chip
|
|
serial DMA interrupts are allowed to interrupt normal disabled
|
|
sections.
|
|
|
|
comment "The following must be set to a equal to or lower priority than LINUX_CLI_LEVEL"
|
|
|
|
config TIMER_IRQ_LEVEL
|
|
int "Kernel timer interrupt priority"
|
|
range LINUX_CLI_LEVEL 6
|
|
default 4
|
|
|
|
config PCI_IRQ_LEVEL
|
|
int "PCI interrupt priority"
|
|
depends on PCI
|
|
range LINUX_CLI_LEVEL 6
|
|
default 5
|
|
|
|
config ETHERNET_IRQ_LEVEL
|
|
int "Ethernet interrupt priority"
|
|
depends on SMC91X || SMC911X || SMSC911X
|
|
range LINUX_CLI_LEVEL 6
|
|
default 6
|
|
|
|
config EXT_SERIAL_IRQ_LEVEL
|
|
int "External serial port interrupt priority"
|
|
depends on SERIAL_8250
|
|
range LINUX_CLI_LEVEL 6
|
|
default 6
|
|
|
|
endmenu
|
|
|
|
source "mm/Kconfig"
|
|
|
|
menu "Power management options"
|
|
source kernel/power/Kconfig
|
|
endmenu
|
|
|
|
endmenu
|
|
|
|
|
|
menu "Executable formats"
|
|
|
|
source "fs/Kconfig.binfmt"
|
|
|
|
endmenu
|
|
|
|
source "net/Kconfig"
|
|
|
|
source "drivers/Kconfig"
|
|
|
|
source "fs/Kconfig"
|
|
|
|
source "arch/mn10300/Kconfig.debug"
|
|
|
|
source "security/Kconfig"
|
|
|
|
source "crypto/Kconfig"
|
|
|
|
source "lib/Kconfig"
|