Linux 3.17-rc2
[linux/fpc-iii.git] / arch / arc / Kconfig
blob9596b0ab108d14de64763a0b7dfded5a7cddd4f3
2 # Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License version 2 as
6 # published by the Free Software Foundation.
9 config ARC
10         def_bool y
11         select BUILDTIME_EXTABLE_SORT
12         select CLONE_BACKWARDS
13         # ARC Busybox based initramfs absolutely relies on DEVTMPFS for /dev
14         select DEVTMPFS if !INITRAMFS_SOURCE=""
15         select GENERIC_ATOMIC64
16         select GENERIC_CLOCKEVENTS
17         select GENERIC_FIND_FIRST_BIT
18         # for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP
19         select GENERIC_IRQ_SHOW
20         select GENERIC_PENDING_IRQ if SMP
21         select GENERIC_SMP_IDLE_THREAD
22         select HAVE_ARCH_KGDB
23         select HAVE_ARCH_TRACEHOOK
24         select HAVE_IOREMAP_PROT
25         select HAVE_KPROBES
26         select HAVE_KRETPROBES
27         select HAVE_MEMBLOCK
28         select HAVE_MOD_ARCH_SPECIFIC if ARC_DW2_UNWIND
29         select HAVE_OPROFILE
30         select HAVE_PERF_EVENTS
31         select IRQ_DOMAIN
32         select MODULES_USE_ELF_RELA
33         select NO_BOOTMEM
34         select OF
35         select OF_EARLY_FLATTREE
36         select PERF_USE_VMALLOC
37         select HAVE_DEBUG_STACKOVERFLOW
39 config TRACE_IRQFLAGS_SUPPORT
40         def_bool y
42 config LOCKDEP_SUPPORT
43         def_bool y
45 config SCHED_OMIT_FRAME_POINTER
46         def_bool y
48 config GENERIC_CSUM
49         def_bool y
51 config RWSEM_GENERIC_SPINLOCK
52         def_bool y
54 config ARCH_FLATMEM_ENABLE
55         def_bool y
57 config MMU
58         def_bool y
60 config NO_IOPORT_MAP
61         def_bool y
63 config GENERIC_CALIBRATE_DELAY
64         def_bool y
66 config GENERIC_HWEIGHT
67         def_bool y
69 config STACKTRACE_SUPPORT
70         def_bool y
71         select STACKTRACE
73 config HAVE_LATENCYTOP_SUPPORT
74         def_bool y
76 config NO_DMA
77         def_bool n
79 source "init/Kconfig"
80 source "kernel/Kconfig.freezer"
82 menu "ARC Architecture Configuration"
84 menu "ARC Platform/SoC/Board"
86 source "arch/arc/plat-arcfpga/Kconfig"
87 source "arch/arc/plat-tb10x/Kconfig"
88 #New platform adds here
90 endmenu
92 menu "ARC CPU Configuration"
94 choice
95         prompt "ARC Core"
96         default ARC_CPU_770
98 config ARC_CPU_750D
99         bool "ARC750D"
100         help
101           Support for ARC750 core
103 config ARC_CPU_770
104         bool "ARC770"
105         select ARC_CPU_REL_4_10
106         help
107           Support for ARC770 core introduced with Rel 4.10 (Summer 2011)
108           This core has a bunch of cool new features:
109           -MMU-v3: Variable Page Sz (4k, 8k, 16k), bigger J-TLB (128x4)
110                    Shared Address Spaces (for sharing TLB entires in MMU)
111           -Caches: New Prog Model, Region Flush
112           -Insns: endian swap, load-locked/store-conditional, time-stamp-ctr
114 endchoice
116 config CPU_BIG_ENDIAN
117         bool "Enable Big Endian Mode"
118         default n
119         help
120           Build kernel for Big Endian Mode of ARC CPU
122 # If a platform can't work with 0x8000_0000 based dma_addr_t
123 config ARC_PLAT_NEEDS_CPU_TO_DMA
124         bool
126 config SMP
127         bool "Symmetric Multi-Processing (Incomplete)"
128         default n
129         help
130           This enables support for systems with more than one CPU. If you have
131           a system with only one CPU, say N. If you have a system with more
132           than one CPU, say Y.
134 if SMP
136 config ARC_HAS_COH_CACHES
137         def_bool n
139 config ARC_HAS_REENTRANT_IRQ_LV2
140         def_bool n
142 endif
144 config NR_CPUS
145         int "Maximum number of CPUs (2-4096)"
146         range 2 4096
147         depends on SMP
148         default "2"
150 menuconfig ARC_CACHE
151         bool "Enable Cache Support"
152         default y
153         # if SMP, cache enabled ONLY if ARC implementation has cache coherency
154         depends on !SMP || ARC_HAS_COH_CACHES
156 if ARC_CACHE
158 config ARC_CACHE_LINE_SHIFT
159         int "Cache Line Length (as power of 2)"
160         range 5 7
161         default "6"
162         help
163           Starting with ARC700 4.9, Cache line length is configurable,
164           This option specifies "N", with Line-len = 2 power N
165           So line lengths of 32, 64, 128 are specified by 5,6,7, respectively
166           Linux only supports same line lengths for I and D caches.
168 config ARC_HAS_ICACHE
169         bool "Use Instruction Cache"
170         default y
172 config ARC_HAS_DCACHE
173         bool "Use Data Cache"
174         default y
176 config ARC_CACHE_PAGES
177         bool "Per Page Cache Control"
178         default y
179         depends on ARC_HAS_ICACHE || ARC_HAS_DCACHE
180         help
181           This can be used to over-ride the global I/D Cache Enable on a
182           per-page basis (but only for pages accessed via MMU such as
183           Kernel Virtual address or User Virtual Address)
184           TLB entries have a per-page Cache Enable Bit.
185           Note that Global I/D ENABLE + Per Page DISABLE works but corollary
186           Global DISABLE + Per Page ENABLE won't work
188 config ARC_CACHE_VIPT_ALIASING
189         bool "Support VIPT Aliasing D$"
190         depends on ARC_HAS_DCACHE
191         default n
193 endif   #ARC_CACHE
195 config ARC_HAS_ICCM
196         bool "Use ICCM"
197         help
198           Single Cycle RAMS to store Fast Path Code
199         default n
201 config ARC_ICCM_SZ
202         int "ICCM Size in KB"
203         default "64"
204         depends on ARC_HAS_ICCM
206 config ARC_HAS_DCCM
207         bool "Use DCCM"
208         help
209           Single Cycle RAMS to store Fast Path Data
210         default n
212 config ARC_DCCM_SZ
213         int "DCCM Size in KB"
214         default "64"
215         depends on ARC_HAS_DCCM
217 config ARC_DCCM_BASE
218         hex "DCCM map address"
219         default "0xA0000000"
220         depends on ARC_HAS_DCCM
222 config ARC_HAS_HW_MPY
223         bool "Use Hardware Multiplier (Normal or Faster XMAC)"
224         default y
225         help
226           Influences how gcc generates code for MPY operations.
227           If enabled, MPYxx insns are generated, provided by Standard/XMAC
228           Multipler. Otherwise software multipy lib is used
230 choice
231         prompt "ARC700 MMU Version"
232         default ARC_MMU_V3 if ARC_CPU_770
233         default ARC_MMU_V2 if ARC_CPU_750D
235 config ARC_MMU_V1
236         bool "MMU v1"
237         help
238           Orig ARC700 MMU
240 config ARC_MMU_V2
241         bool "MMU v2"
242         help
243           Fixed the deficiency of v1 - possible thrashing in memcpy sceanrio
244           when 2 D-TLB and 1 I-TLB entries index into same 2way set.
246 config ARC_MMU_V3
247         bool "MMU v3"
248         depends on ARC_CPU_770
249         help
250           Introduced with ARC700 4.10: New Features
251           Variable Page size (1k-16k), var JTLB size 128 x (2 or 4)
252           Shared Address Spaces (SASID)
254 endchoice
257 choice
258         prompt "MMU Page Size"
259         default ARC_PAGE_SIZE_8K
261 config ARC_PAGE_SIZE_8K
262         bool "8KB"
263         help
264           Choose between 8k vs 16k
266 config ARC_PAGE_SIZE_16K
267         bool "16KB"
268         depends on ARC_MMU_V3
270 config ARC_PAGE_SIZE_4K
271         bool "4KB"
272         depends on ARC_MMU_V3
274 endchoice
276 config ARC_COMPACT_IRQ_LEVELS
277         bool "ARCompact IRQ Priorities: High(2)/Low(1)"
278         default n
279         # Timer HAS to be high priority, for any other high priority config
280         select ARC_IRQ3_LV2
281         # if SMP, LV2 enabled ONLY if ARC implementation has LV2 re-entrancy
282         depends on !SMP || ARC_HAS_REENTRANT_IRQ_LV2
284 if ARC_COMPACT_IRQ_LEVELS
286 config ARC_IRQ3_LV2
287         bool
289 config ARC_IRQ5_LV2
290         bool
292 config ARC_IRQ6_LV2
293         bool
295 endif
297 config ARC_FPU_SAVE_RESTORE
298         bool "Enable FPU state persistence across context switch"
299         default n
300         help
301           Double Precision Floating Point unit had dedictaed regs which
302           need to be saved/restored across context-switch.
303           Note that ARC FPU is overly simplistic, unlike say x86, which has
304           hardware pieces to allow software to conditionally save/restore,
305           based on actual usage of FPU by a task. Thus our implemn does
306           this for all tasks in system.
308 config ARC_CANT_LLSC
309         def_bool n
311 menuconfig ARC_CPU_REL_4_10
312         bool "Enable support for Rel 4.10 features"
313         default n
314         help
315           -ARC770 (and dependent features) enabled
316           -ARC750 also shares some of the new features with 770
318 config ARC_HAS_LLSC
319         bool "Insn: LLOCK/SCOND (efficient atomic ops)"
320         default y
321         depends on ARC_CPU_770 && !ARC_CANT_LLSC
323 config ARC_HAS_SWAPE
324         bool "Insn: SWAPE (endian-swap)"
325         default y
326         depends on ARC_CPU_REL_4_10
328 config ARC_HAS_RTSC
329         bool "Insn: RTSC (64-bit r/o cycle counter)"
330         default y
331         depends on ARC_CPU_REL_4_10
332         depends on !SMP
334 endmenu   # "ARC CPU Configuration"
336 config LINUX_LINK_BASE
337         hex "Linux Link Address"
338         default "0x80000000"
339         help
340           ARC700 divides the 32 bit phy address space into two equal halves
341           -Lower 2G (0 - 0x7FFF_FFFF ) is user virtual, translated by MMU
342           -Upper 2G (0x8000_0000 onwards) is untranslated, for kernel
343           Typically Linux kernel is linked at the start of untransalted addr,
344           hence the default value of 0x8zs.
345           However some customers have peripherals mapped at this addr, so
346           Linux needs to be scooted a bit.
347           If you don't know what the above means, leave this setting alone.
349 config ARC_CURR_IN_REG
350         bool "Dedicate Register r25 for current_task pointer"
351         default y
352         help
353           This reserved Register R25 to point to Current Task in
354           kernel mode. This saves memory access for each such access
357 config ARC_MISALIGN_ACCESS
358         bool "Emulate unaligned memory access (userspace only)"
359         select SYSCTL_ARCH_UNALIGN_NO_WARN
360         select SYSCTL_ARCH_UNALIGN_ALLOW
361         help
362           This enables misaligned 16 & 32 bit memory access from user space.
363           Use ONLY-IF-ABS-NECESSARY as it will be very slow and also can hide
364           potential bugs in code
366 config HZ
367         int "Timer Frequency"
368         default 100
370 config ARC_METAWARE_HLINK
371         bool "Support for Metaware debugger assisted Host access"
372         default n
373         help
374           This options allows a Linux userland apps to directly access
375           host file system (open/creat/read/write etc) with help from
376           Metaware Debugger. This can come in handy for Linux-host communication
377           when there is no real usable peripheral such as EMAC.
379 menuconfig ARC_DBG
380         bool "ARC debugging"
381         default y
383 config ARC_DW2_UNWIND
384         bool "Enable DWARF specific kernel stack unwind"
385         depends on ARC_DBG
386         default y
387         select KALLSYMS
388         help
389           Compiles the kernel with DWARF unwind information and can be used
390           to get stack backtraces.
392           If you say Y here the resulting kernel image will be slightly larger
393           but not slower, and it will give very useful debugging information.
394           If you don't debug the kernel, you can say N, but we may not be able
395           to solve problems without frame unwind information
397 config ARC_DBG_TLB_PARANOIA
398         bool "Paranoia Checks in Low Level TLB Handlers"
399         depends on ARC_DBG
400         default n
402 config ARC_DBG_TLB_MISS_COUNT
403         bool "Profile TLB Misses"
404         default n
405         select DEBUG_FS
406         depends on ARC_DBG
407         help
408           Counts number of I and D TLB Misses and exports them via Debugfs
409           The counters can be cleared via Debugfs as well
411 config ARC_BUILTIN_DTB_NAME
412         string "Built in DTB"
413         help
414           Set the name of the DTB to embed in the vmlinux binary
415           Leaving it blank selects the minimal "skeleton" dtb
417 source "kernel/Kconfig.preempt"
419 menu "Executable file formats"
420 source "fs/Kconfig.binfmt"
421 endmenu
423 endmenu  # "ARC Architecture Configuration"
425 source "mm/Kconfig"
426 source "net/Kconfig"
427 source "drivers/Kconfig"
428 source "fs/Kconfig"
429 source "arch/arc/Kconfig.debug"
430 source "security/Kconfig"
431 source "crypto/Kconfig"
432 source "lib/Kconfig"