# For a description of the syntax of this configuration file,
# see Documentation/kbuild/kconfig-language.txt.

mainmenu "Linux/SCORE Kernel Configuration"

menu "Machine selection"

choice
	prompt "System type"
	default MACH_SPCT6600

config ARCH_SCORE7
	bool "SCORE7 processor"
	select SYS_SUPPORTS_32BIT_KERNEL
	select CPU_SCORE7
	select GENERIC_HAS_IOMAP

config MACH_SPCT6600
	bool "SPCT6600 series based machines"
	select SYS_SUPPORTS_32BIT_KERNEL
	select CPU_SCORE7
	select GENERIC_HAS_IOMAP

config SCORE_SIM
	bool "Score simulator"
	select SYS_SUPPORTS_32BIT_KERNEL
	select CPU_SCORE7
	select GENERIC_HAS_IOMAP
endchoice

endmenu

config CPU_SCORE7
	bool

config GENERIC_IOMAP
	def_bool y

config NO_DMA
	bool
	default y

config RWSEM_GENERIC_SPINLOCK
	def_bool y

config GENERIC_FIND_NEXT_BIT
	def_bool y

config GENERIC_HWEIGHT
	def_bool y

config GENERIC_CALIBRATE_DELAY
	def_bool y

config GENERIC_CLOCKEVENTS
	def_bool y

config GENERIC_TIME
	def_bool y

config SCHED_NO_NO_OMIT_FRAME_POINTER
	def_bool y

config GENERIC_HARDIRQS_NO__DO_IRQ
	def_bool y

config GENERIC_SYSCALL_TABLE
	def_bool y

config SCORE_L1_CACHE_SHIFT
	int
	default "4"

menu "Kernel type"

config 32BIT
	def_bool y

config GENERIC_HARDIRQS
	def_bool y

config ARCH_FLATMEM_ENABLE
	def_bool y

config ARCH_POPULATES_NODE_MAP
	def_bool y

source "mm/Kconfig"

config MEMORY_START
	hex
	default	0xa0000000

source "kernel/time/Kconfig"
source "kernel/Kconfig.hz"
source "kernel/Kconfig.preempt"

endmenu

config RWSEM_GENERIC_SPINLOCK
	def_bool y

config LOCKDEP_SUPPORT
	def_bool y

config STACKTRACE_SUPPORT
	def_bool y

source "init/Kconfig"

config PROBE_INITRD_HEADER
	bool "Probe initrd header created by addinitrd"
	depends on BLK_DEV_INITRD
	help
	  Probe initrd header at the last page of kernel image.
	  Say Y here if you are using arch/score/boot/addinitrd.c to
	  add initrd or initramfs image to the kernel image.
	  Otherwise, say N.

config MMU
	def_bool y

menu "Executable file formats"

source "fs/Kconfig.binfmt"

endmenu

source "net/Kconfig"

source "drivers/Kconfig"

source "fs/Kconfig"

source "arch/score/Kconfig.debug"

source "security/Kconfig"

source "crypto/Kconfig"

source "lib/Kconfig"
