ARC: Build system: Makefiles, Kconfig, Linker script
[linux-2.6-block.git] / arch / arc / Kconfig
CommitLineData
cfdbc2e1
VG
1#
2# Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
3#
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.
7#
8
9config ARC
10 def_bool y
11 select ARCH_NO_VIRT_TO_BUS
12 # ARC Busybox based initramfs absolutely relies on DEVTMPFS for /dev
13 select DEVTMPFS if !INITRAMFS_SOURCE=""
14 select GENERIC_ATOMIC64
15 select GENERIC_CLOCKEVENTS
16 select GENERIC_FIND_FIRST_BIT
17 # for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP
18 select GENERIC_IRQ_SHOW
19 select GENERIC_PENDING_IRQ if SMP
20 select GENERIC_SMP_IDLE_THREAD
21 select HAVE_GENERIC_HARDIRQS
22 select MODULES_USE_ELF_RELA
23
24config SCHED_OMIT_FRAME_POINTER
25 def_bool y
26
27config GENERIC_CSUM
28 def_bool y
29
30config RWSEM_GENERIC_SPINLOCK
31 def_bool y
32
33config ARCH_FLATMEM_ENABLE
34 def_bool y
35
36config MMU
37 def_bool y
38
39config NO_IOPORT
40 def_bool y
41
42config GENERIC_CALIBRATE_DELAY
43 def_bool y
44
45config GENERIC_HWEIGHT
46 def_bool y
47
48config BINFMT_ELF
49 def_bool y
50
51config HAVE_LATENCYTOP_SUPPORT
52 def_bool y
53
54config NO_DMA
55 def_bool n
56
57source "init/Kconfig"
58source "kernel/Kconfig.freezer"
59
60menu "ARC Architecture Configuration"
61
62choice
63 prompt "ARC Platform"
64 default ARC_PLAT_FPGA_LEGACY
65
66config ARC_PLAT_FPGA_LEGACY
67 bool "\"Legacy\" ARC FPGA dev platform"
68 help
69 Support for ARC development platforms, provided by Synopsys.
70 These are based on FPGA or ISS. e.g.
71 - ARCAngel4
72 - ML509
73 - MetaWare ISS
74
75#New platform adds here
76endchoice
77
78menu "ARC CPU Configuration"
79
80choice
81 prompt "ARC Core"
82 default ARC_CPU_770
83
84config ARC_CPU_750D
85 bool "ARC750D"
86 help
87 Support for ARC750 core
88
89config ARC_CPU_770
90 bool "ARC770"
91 select ARC_CPU_REL_4_10
92 help
93 Support for ARC770 core introduced with Rel 4.10 (Summer 2011)
94 This core has a bunch of cool new features:
95 -MMU-v3: Variable Page Sz (4k, 8k, 16k), bigger J-TLB (128x4)
96 Shared Address Spaces (for sharing TLB entires in MMU)
97 -Caches: New Prog Model, Region Flush
98 -Insns: endian swap, load-locked/store-conditional, time-stamp-ctr
99
100endchoice
101
102config CPU_BIG_ENDIAN
103 bool "Enable Big Endian Mode"
104 default n
105 help
106 Build kernel for Big Endian Mode of ARC CPU
107
108menuconfig ARC_CACHE
109 bool "Enable Cache Support"
110 default y
111
112if ARC_CACHE
113
114config ARC_CACHE_LINE_SHIFT
115 int "Cache Line Length (as power of 2)"
116 range 5 7
117 default "6"
118 help
119 Starting with ARC700 4.9, Cache line length is configurable,
120 This option specifies "N", with Line-len = 2 power N
121 So line lengths of 32, 64, 128 are specified by 5,6,7, respectively
122 Linux only supports same line lengths for I and D caches.
123
124config ARC_HAS_ICACHE
125 bool "Use Instruction Cache"
126 default y
127
128config ARC_HAS_DCACHE
129 bool "Use Data Cache"
130 default y
131
132config ARC_CACHE_PAGES
133 bool "Per Page Cache Control"
134 default y
135 depends on ARC_HAS_ICACHE || ARC_HAS_DCACHE
136 help
137 This can be used to over-ride the global I/D Cache Enable on a
138 per-page basis (but only for pages accessed via MMU such as
139 Kernel Virtual address or User Virtual Address)
140 TLB entries have a per-page Cache Enable Bit.
141 Note that Global I/D ENABLE + Per Page DISABLE works but corollary
142 Global DISABLE + Per Page ENABLE won't work
143
144endif #ARC_CACHE
145
146config ARC_HAS_HW_MPY
147 bool "Use Hardware Multiplier (Normal or Faster XMAC)"
148 default y
149 help
150 Influences how gcc generates code for MPY operations.
151 If enabled, MPYxx insns are generated, provided by Standard/XMAC
152 Multipler. Otherwise software multipy lib is used
153
154choice
155 prompt "ARC700 MMU Version"
156 default ARC_MMU_V3 if ARC_CPU_770
157 default ARC_MMU_V2 if ARC_CPU_750D
158
159config ARC_MMU_V1
160 bool "MMU v1"
161 help
162 Orig ARC700 MMU
163
164config ARC_MMU_V2
165 bool "MMU v2"
166 help
167 Fixed the deficiency of v1 - possible thrashing in memcpy sceanrio
168 when 2 D-TLB and 1 I-TLB entries index into same 2way set.
169
170config ARC_MMU_V3
171 bool "MMU v3"
172 depends on ARC_CPU_770
173 help
174 Introduced with ARC700 4.10: New Features
175 Variable Page size (1k-16k), var JTLB size 128 x (2 or 4)
176 Shared Address Spaces (SASID)
177
178endchoice
179
180
181choice
182 prompt "MMU Page Size"
183 default ARC_PAGE_SIZE_8K
184
185config ARC_PAGE_SIZE_8K
186 bool "8KB"
187 help
188 Choose between 8k vs 16k
189
190config ARC_PAGE_SIZE_16K
191 bool "16KB"
192 depends on ARC_MMU_V3
193
194config ARC_PAGE_SIZE_4K
195 bool "4KB"
196 depends on ARC_MMU_V3
197
198endchoice
199
200config ARC_FPU_SAVE_RESTORE
201 bool "Enable FPU state persistence across context switch"
202 default n
203 help
204 Double Precision Floating Point unit had dedictaed regs which
205 need to be saved/restored across context-switch.
206 Note that ARC FPU is overly simplistic, unlike say x86, which has
207 hardware pieces to allow software to conditionally save/restore,
208 based on actual usage of FPU by a task. Thus our implemn does
209 this for all tasks in system.
210
211menuconfig ARC_CPU_REL_4_10
212 bool "Enable support for Rel 4.10 features"
213 default n
214 help
215 -ARC770 (and dependent features) enabled
216 -ARC750 also shares some of the new features with 770
217
218config ARC_HAS_LLSC
219 bool "Insn: LLOCK/SCOND (efficient atomic ops)"
220 default y
221 depends on ARC_CPU_770
222 # if SMP, enable LLSC ONLY if ARC implementation has coherent atomics
223 depends on !SMP || ARC_HAS_COH_LLSC
224
225config ARC_HAS_SWAPE
226 bool "Insn: SWAPE (endian-swap)"
227 default y
228 depends on ARC_CPU_REL_4_10
229
230config ARC_HAS_RTSC
231 bool "Insn: RTSC (64-bit r/o cycle counter)"
232 default y
233 depends on ARC_CPU_REL_4_10
234
235endmenu # "ARC CPU Configuration"
236
237menu "Platform Board Configuration"
238
239source "arch/arc/plat-arcfpga/Kconfig"
240
241#New platform adds here
242
243config ARC_PLAT_CLK
244 int "Clk speed in Hz"
245 default "80000000"
246
247config LINUX_LINK_BASE
248 hex "Linux Link Address"
249 default "0x80000000"
250 help
251 ARC700 divides the 32 bit phy address space into two equal halves
252 -Lower 2G (0 - 0x7FFF_FFFF ) is user virtual, translated by MMU
253 -Upper 2G (0x8000_0000 onwards) is untranslated, for kernel
254 Typically Linux kernel is linked at the start of untransalted addr,
255 hence the default value of 0x8zs.
256 However some customers have peripherals mapped at this addr, so
257 Linux needs to be scooted a bit.
258 If you don't know what the above means, leave this setting alone.
259
260config ARC_PLAT_SDRAM_SIZE
261 hex "SD RAM Size"
262 default "0x10000000"
263 help
264 Implies the amount of SDRAM/DRAM Linux is going to claim/own.
265 The actual memory itself could be larger than this number. But for
266 all software purposes, this is the amt of memory.
267
268endmenu # "Platform Board Configuration"
269
270config ARC_STACK_NONEXEC
271 bool "Make stack non-executable"
272 default n
273 help
274 To disable the execute permissions of stack/heap of processes
275 which are enabled by default.
276
277config HZ
278 int "Timer Frequency"
279 default 100
280
281menuconfig ARC_DBG
282 bool "ARC debugging"
283 default y
284
285config ARC_DBG_TLB_PARANOIA
286 bool "Paranoia Checks in Low Level TLB Handlers"
287 depends on ARC_DBG
288 default n
289
290config ARC_DBG_TLB_MISS_COUNT
291 bool "Profile TLB Misses"
292 default n
293 select DEBUG_FS
294 depends on ARC_DBG
295 help
296 Counts number of I and D TLB Misses and exports them via Debugfs
297 The counters can be cleared via Debugfs as well
298
299config CMDLINE
300 string "Kernel command line to built-in"
301 default "print-fatal-signals=1"
302 help
303 The default command line which will be appended to the optional
304 u-boot provided command line (see below)
305
306config CMDLINE_UBOOT
307 bool "Support U-boot kernel command line passing"
308 default n
309 help
310 If you are using U-boot (www.denx.de) and wish to pass the kernel
311 command line from the U-boot environment to the Linux kernel then
312 switch this option on.
313 ARC U-boot will setup the cmdline in RAM/flash and set r2 to point
314 to it. kernel startup code will copy the string into cmdline buffer
315 and also append CONFIG_CMDLINE.
316
317source "kernel/Kconfig.preempt"
318
319endmenu # "ARC Architecture Configuration"
320
321source "mm/Kconfig"
322source "net/Kconfig"
323source "drivers/Kconfig"
324source "fs/Kconfig"
325source "arch/arc/Kconfig.debug"
326source "security/Kconfig"
327source "crypto/Kconfig"
328source "lib/Kconfig"