Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux...
[linux-2.6-block.git] / arch / arc / Kconfig
index 405ea7a756b82669239d3ae9379db97e56f61e4c..e6f4eca09ee36f5cbbe9ade6aadf07aa17ef6332 100644 (file)
@@ -8,7 +8,6 @@
 
 config ARC
        def_bool y
-       select ARCH_NO_VIRT_TO_BUS
        select CLONE_BACKWARDS
        # ARC Busybox based initramfs absolutely relies on DEVTMPFS for /dev
        select DEVTMPFS if !INITRAMFS_SOURCE=""
@@ -20,17 +19,23 @@ config ARC
        select GENERIC_KERNEL_EXECVE
        select GENERIC_KERNEL_THREAD
        select GENERIC_PENDING_IRQ if SMP
-       select GENERIC_SIGALTSTACK
        select GENERIC_SMP_IDLE_THREAD
+       select HAVE_ARCH_KGDB
        select HAVE_ARCH_TRACEHOOK
        select HAVE_GENERIC_HARDIRQS
+       select HAVE_IOREMAP_PROT
+       select HAVE_KPROBES
+       select HAVE_KRETPROBES
        select HAVE_MEMBLOCK
+       select HAVE_MOD_ARCH_SPECIFIC if ARC_DW2_UNWIND
        select HAVE_OPROFILE
+       select HAVE_PERF_EVENTS
        select IRQ_DOMAIN
        select MODULES_USE_ELF_RELA
        select NO_BOOTMEM
        select OF
        select OF_EARLY_FLATTREE
+       select PERF_USE_VMALLOC
 
 config SCHED_OMIT_FRAME_POINTER
        def_bool y
@@ -59,6 +64,10 @@ config GENERIC_HWEIGHT
 config BINFMT_ELF
        def_bool y
 
+config STACKTRACE_SUPPORT
+       def_bool y
+       select STACKTRACE
+
 config HAVE_LATENCYTOP_SUPPORT
        def_bool y
 
@@ -70,21 +79,12 @@ source "kernel/Kconfig.freezer"
 
 menu "ARC Architecture Configuration"
 
-choice
-       prompt "ARC Platform"
-       default ARC_PLAT_FPGA_LEGACY
-
-config ARC_PLAT_FPGA_LEGACY
-       bool "\"Legacy\" ARC FPGA dev platform"
-       help
-         Support for ARC development platforms, provided by Synopsys.
-         These are based on FPGA or ISS. e.g.
-         - ARCAngel4
-         - ML509
-         - MetaWare ISS
+menu "ARC Platform/SoC/Board"
 
+source "arch/arc/plat-arcfpga/Kconfig"
 #New platform adds here
-endchoice
+
+endmenu
 
 menu "ARC CPU Configuration"
 
@@ -116,9 +116,46 @@ config CPU_BIG_ENDIAN
        help
          Build kernel for Big Endian Mode of ARC CPU
 
+# If a platform can't work with 0x8000_0000 based dma_addr_t
+config ARC_PLAT_NEEDS_CPU_TO_DMA
+       bool
+
+config SMP
+       bool "Symmetric Multi-Processing (Incomplete)"
+       default n
+       select USE_GENERIC_SMP_HELPERS
+       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 SMP
+
+config ARC_HAS_COH_CACHES
+       def_bool n
+
+config ARC_HAS_COH_LLSC
+       def_bool n
+
+config ARC_HAS_COH_RTSC
+       def_bool n
+
+config ARC_HAS_REENTRANT_IRQ_LV2
+       def_bool n
+
+endif
+
+config NR_CPUS
+       int "Maximum number of CPUs (2-32)"
+       range 2 32
+       depends on SMP
+       default "2"
+
 menuconfig ARC_CACHE
        bool "Enable Cache Support"
        default y
+       # if SMP, cache enabled ONLY if ARC implementation has cache coherency
+       depends on !SMP || ARC_HAS_COH_CACHES
 
 if ARC_CACHE
 
@@ -154,6 +191,33 @@ config ARC_CACHE_PAGES
 
 endif  #ARC_CACHE
 
+config ARC_HAS_ICCM
+       bool "Use ICCM"
+       help
+         Single Cycle RAMS to store Fast Path Code
+       default n
+
+config ARC_ICCM_SZ
+       int "ICCM Size in KB"
+       default "64"
+       depends on ARC_HAS_ICCM
+
+config ARC_HAS_DCCM
+       bool "Use DCCM"
+       help
+         Single Cycle RAMS to store Fast Path Data
+       default n
+
+config ARC_DCCM_SZ
+       int "DCCM Size in KB"
+       default "64"
+       depends on ARC_HAS_DCCM
+
+config ARC_DCCM_BASE
+       hex "DCCM map address"
+       default "0xA0000000"
+       depends on ARC_HAS_DCCM
+
 config ARC_HAS_HW_MPY
        bool "Use Hardware Multiplier (Normal or Faster XMAC)"
        default y
@@ -208,6 +272,27 @@ config ARC_PAGE_SIZE_4K
 
 endchoice
 
+config ARC_COMPACT_IRQ_LEVELS
+       bool "ARCompact IRQ Priorities: High(2)/Low(1)"
+       default n
+       # Timer HAS to be high priority, for any other high priority config
+       select ARC_IRQ3_LV2
+       # if SMP, LV2 enabled ONLY if ARC implementation has LV2 re-entrancy
+       depends on !SMP || ARC_HAS_REENTRANT_IRQ_LV2
+
+if ARC_COMPACT_IRQ_LEVELS
+
+config ARC_IRQ3_LV2
+       bool
+
+config ARC_IRQ5_LV2
+       bool
+
+config ARC_IRQ6_LV2
+       bool
+
+endif
+
 config ARC_FPU_SAVE_RESTORE
        bool "Enable FPU state persistence across context switch"
        default n
@@ -242,15 +327,11 @@ config ARC_HAS_RTSC
        bool "Insn: RTSC (64-bit r/o cycle counter)"
        default y
        depends on ARC_CPU_REL_4_10
+       # if SMP, enable RTSC only if counter is coherent across cores
+       depends on !SMP || ARC_HAS_COH_RTSC
 
 endmenu   # "ARC CPU Configuration"
 
-menu "Platform Board Configuration"
-
-source "arch/arc/plat-arcfpga/Kconfig"
-
-#New platform adds here
-
 config LINUX_LINK_BASE
        hex "Linux Link Address"
        default "0x80000000"
@@ -264,8 +345,6 @@ config LINUX_LINK_BASE
          Linux needs to be scooted a bit.
          If you don't know what the above means, leave this setting alone.
 
-endmenu # "Platform Board Configuration"
-
 config ARC_CURR_IN_REG
        bool "Dedicate Register r25 for current_task pointer"
        default y
@@ -273,6 +352,17 @@ config ARC_CURR_IN_REG
          This reserved Register R25 to point to Current Task in
          kernel mode. This saves memory access for each such access
 
+
+config ARC_MISALIGN_ACCESS
+       bool "Emulate unaligned memory access (userspace only)"
+       default N
+       select SYSCTL_ARCH_UNALIGN_NO_WARN
+       select SYSCTL_ARCH_UNALIGN_ALLOW
+       help
+         This enables misaligned 16 & 32 bit memory access from user space.
+         Use ONLY-IF-ABS-NECESSARY as it will be very slow and also can hide
+         potential bugs in code
+
 config ARC_STACK_NONEXEC
        bool "Make stack non-executable"
        default n
@@ -284,10 +374,33 @@ config HZ
        int "Timer Frequency"
        default 100
 
+config ARC_METAWARE_HLINK
+       bool "Support for Metaware debugger assisted Host access"
+       default n
+       help
+         This options allows a Linux userland apps to directly access
+         host file system (open/creat/read/write etc) with help from
+         Metaware Debugger. This can come in handy for Linux-host communication
+         when there is no real usable peripheral such as EMAC.
+
 menuconfig ARC_DBG
        bool "ARC debugging"
        default y
 
+config ARC_DW2_UNWIND
+       bool "Enable DWARF specific kernel stack unwind"
+       depends on ARC_DBG
+       default y
+       select KALLSYMS
+       help
+         Compiles the kernel with DWARF unwind information and can be used
+         to get stack backtraces.
+
+         If you say Y here the resulting kernel image will be slightly larger
+         but not slower, and it will give very useful debugging information.
+         If you don't debug the kernel, you can say N, but we may not be able
+         to solve problems without frame unwind information
+
 config ARC_DBG_TLB_PARANOIA
        bool "Paranoia Checks in Low Level TLB Handlers"
        depends on ARC_DBG