• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# For a description of the syntax of this configuration file,
2# see Documentation/kbuild/kconfig-language.txt.
3
4config TILE
5	def_bool y
6	select HAVE_EXIT_THREAD
7	select HAVE_PERF_EVENTS
8	select USE_PMC if PERF_EVENTS
9	select HAVE_DMA_ATTRS
10	select HAVE_DMA_API_DEBUG
11	select HAVE_KVM if !TILEGX
12	select GENERIC_FIND_FIRST_BIT
13	select SYSCTL_EXCEPTION_TRACE
14	select CC_OPTIMIZE_FOR_SIZE
15	select HAVE_DEBUG_KMEMLEAK
16	select GENERIC_IRQ_PROBE
17	select GENERIC_PENDING_IRQ if SMP
18	select GENERIC_IRQ_SHOW
19	select HAVE_DEBUG_BUGVERBOSE
20	select VIRT_TO_BUS
21	select SYS_HYPERVISOR
22	select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
23	select ARCH_HAVE_NMI_SAFE_CMPXCHG
24	select GENERIC_CLOCKEVENTS
25	select MODULES_USE_ELF_RELA
26	select HAVE_ARCH_TRACEHOOK
27	select HAVE_SYSCALL_TRACEPOINTS
28	select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
29	select HAVE_DEBUG_STACKOVERFLOW
30	select ARCH_WANT_FRAME_POINTERS
31	select GENERIC_STRNCPY_FROM_USER
32	select GENERIC_STRNLEN_USER
33
34# FIXME: investigate whether we need/want these options.
35#	select HAVE_IOREMAP_PROT
36#	select HAVE_OPTPROBES
37#	select HAVE_REGS_AND_STACK_ACCESS_API
38#	select HAVE_HW_BREAKPOINT
39#	select PERF_EVENTS
40#	select HAVE_USER_RETURN_NOTIFIER
41#	config NO_BOOTMEM
42#	config ARCH_SUPPORTS_DEBUG_PAGEALLOC
43#	config HUGETLB_PAGE_SIZE_VARIABLE
44
45config MMU
46	def_bool y
47
48config GENERIC_CSUM
49	def_bool y
50
51config HAVE_ARCH_ALLOC_REMAP
52	def_bool y
53
54config HAVE_SETUP_PER_CPU_AREA
55	def_bool y
56
57config NEED_PER_CPU_PAGE_FIRST_CHUNK
58	def_bool y
59
60config SYS_SUPPORTS_HUGETLBFS
61	def_bool y
62
63# Support for additional huge page sizes besides HPAGE_SIZE.
64# The software support is currently only present in the TILE-Gx
65# hypervisor. TILEPro in any case does not support page sizes
66# larger than the default HPAGE_SIZE.
67config HUGETLB_SUPER_PAGES
68	depends on HUGETLB_PAGE && TILEGX
69	def_bool y
70
71config GENERIC_TIME_VSYSCALL
72	def_bool y
73
74# Enable PMC if PERF_EVENTS, OPROFILE, or WATCHPOINTS are enabled.
75config USE_PMC
76	bool
77
78# FIXME: tilegx can implement a more efficient rwsem.
79config RWSEM_GENERIC_SPINLOCK
80	def_bool y
81
82# We only support gcc 4.4 and above, so this should work.
83config ARCH_SUPPORTS_OPTIMIZED_INLINING
84	def_bool y
85
86config ARCH_PHYS_ADDR_T_64BIT
87	def_bool y
88
89config ARCH_DMA_ADDR_T_64BIT
90	def_bool y
91
92config NEED_DMA_MAP_STATE
93	def_bool y
94
95config ARCH_HAS_DMA_SET_COHERENT_MASK
96	bool
97
98config LOCKDEP_SUPPORT
99	def_bool y
100
101config STACKTRACE_SUPPORT
102	def_bool y
103	select STACKTRACE
104
105# We use discontigmem for now; at some point we may want to switch
106# to sparsemem (Tilera bug 7996).
107config ARCH_DISCONTIGMEM_ENABLE
108	def_bool y
109
110config ARCH_DISCONTIGMEM_DEFAULT
111	def_bool y
112
113config TRACE_IRQFLAGS_SUPPORT
114	def_bool y
115
116config STRICT_DEVMEM
117	def_bool y
118
119# SMP is required for Tilera Linux.
120config SMP
121	def_bool y
122
123config HVC_TILE
124	depends on TTY
125	select HVC_DRIVER
126	select HVC_IRQ if TILEGX
127	def_bool y
128
129config TILEGX
130	bool "Building for TILE-Gx (64-bit) processor"
131	select SPARSE_IRQ
132	select GENERIC_IRQ_LEGACY_ALLOC_HWIRQ
133	select HAVE_FUNCTION_TRACER
134	select HAVE_FUNCTION_GRAPH_TRACER
135	select HAVE_DYNAMIC_FTRACE
136	select HAVE_FTRACE_MCOUNT_RECORD
137	select HAVE_KPROBES
138	select HAVE_KRETPROBES
139	select HAVE_ARCH_KGDB
140	select ARCH_SUPPORTS_ATOMIC_RMW
141
142config TILEPRO
143	def_bool !TILEGX
144
145config 64BIT
146	def_bool TILEGX
147
148config ARCH_DEFCONFIG
149	string
150	default "arch/tile/configs/tilepro_defconfig" if !TILEGX
151	default "arch/tile/configs/tilegx_defconfig" if TILEGX
152
153source "init/Kconfig"
154
155source "kernel/Kconfig.freezer"
156
157menu "Tilera-specific configuration"
158
159config NR_CPUS
160	int "Maximum number of tiles (2-255)"
161	range 2 255
162	depends on SMP
163	default "64"
164	---help---
165	  Building with 64 is the recommended value, but a slightly
166	  smaller kernel memory footprint results from using a smaller
167	  value on chips with fewer tiles.
168
169if TILEGX
170
171choice
172	prompt "Kernel page size"
173	default PAGE_SIZE_64KB
174	help
175	  This lets you select the page size of the kernel.  For best
176	  performance on memory-intensive applications, a page size of 64KB
177	  is recommended.  For workloads involving many small files, many
178	  connections, etc., it may be better to select 16KB, which uses
179	  memory more efficiently at some cost in TLB performance.
180
181	  Note that this option is TILE-Gx specific; currently
182	  TILEPro page size is set by rebuilding the hypervisor.
183
184config PAGE_SIZE_16KB
185	bool "16KB"
186
187config PAGE_SIZE_64KB
188	bool "64KB"
189
190endchoice
191
192endif
193
194source "kernel/Kconfig.hz"
195
196config KEXEC
197	bool "kexec system call"
198	---help---
199	  kexec is a system call that implements the ability to shutdown your
200	  current kernel, and to start another kernel.  It is like a reboot
201	  but it is independent of the system firmware.   It is used
202	  to implement the "mboot" Tilera booter.
203
204	  The name comes from the similarity to the exec system call.
205
206config COMPAT
207	bool "Support 32-bit TILE-Gx binaries in addition to 64-bit"
208	depends on TILEGX
209	select COMPAT_BINFMT_ELF
210	default y
211	---help---
212	  If enabled, the kernel will support running TILE-Gx binaries
213	  that were built with the -m32 option.
214
215config SYSVIPC_COMPAT
216	def_bool y
217	depends on COMPAT && SYSVIPC
218
219# We do not currently support disabling HIGHMEM on tilepro.
220config HIGHMEM
221	bool # "Support for more than 512 MB of RAM"
222	default !TILEGX
223	---help---
224	  Linux can use the full amount of RAM in the system by
225	  default.  However, the address space of TILE processors is
226	  only 4 Gigabytes large. That means that, if you have a large
227	  amount of physical memory, not all of it can be "permanently
228	  mapped" by the kernel. The physical memory that's not
229	  permanently mapped is called "high memory".
230
231	  If you are compiling a kernel which will never run on a
232	  machine with more than 512 MB total physical RAM, answer
233	  "false" here. This will result in the kernel mapping all of
234	  physical memory into the top 1 GB of virtual memory space.
235
236	  If unsure, say "true".
237
238config ZONE_DMA
239	def_bool y
240
241config IOMMU_HELPER
242	bool
243
244config NEED_SG_DMA_LENGTH
245	bool
246
247config SWIOTLB
248	bool
249	default TILEGX
250	select IOMMU_HELPER
251	select NEED_SG_DMA_LENGTH
252	select ARCH_HAS_DMA_SET_COHERENT_MASK
253
254# We do not currently support disabling NUMA.
255config NUMA
256	bool # "NUMA Memory Allocation and Scheduler Support"
257	depends on SMP && DISCONTIGMEM
258	default y
259	---help---
260	  NUMA memory allocation is required for TILE processors
261	  unless booting with memory striping enabled in the
262	  hypervisor, or with only a single memory controller.
263	  It is recommended that this option always be enabled.
264
265config NODES_SHIFT
266	int "Log base 2 of the max number of memory controllers"
267	default 2
268	depends on NEED_MULTIPLE_NODES
269	---help---
270	  By default, 2, i.e. 2^2 == 4 DDR2 controllers.
271	  In a system with more controllers, this value should be raised.
272
273choice
274	depends on !TILEGX
275	prompt "Memory split" if EXPERT
276	default VMSPLIT_3G
277	---help---
278	  Select the desired split between kernel and user memory.
279
280	  If the address range available to the kernel is less than the
281	  physical memory installed, the remaining memory will be available
282	  as "high memory". Accessing high memory is a little more costly
283	  than low memory, as it needs to be mapped into the kernel first.
284	  Note that increasing the kernel address space limits the range
285	  available to user programs, making the address space there
286	  tighter.  Selecting anything other than the default 3G/1G split
287	  will also likely make your kernel incompatible with binary-only
288	  kernel modules.
289
290	  If you are not absolutely sure what you are doing, leave this
291	  option alone!
292
293	config VMSPLIT_3_75G
294		bool "3.75G/0.25G user/kernel split (no kernel networking)"
295	config VMSPLIT_3_5G
296		bool "3.5G/0.5G user/kernel split"
297	config VMSPLIT_3G
298		bool "3G/1G user/kernel split"
299	config VMSPLIT_2_75G
300		bool "2.75G/1.25G user/kernel split (for full 1G low memory)"
301	config VMSPLIT_2_5G
302		bool "2.5G/1.5G user/kernel split"
303	config VMSPLIT_2_25G
304		bool "2.25G/1.75G user/kernel split"
305	config VMSPLIT_2G
306		bool "2G/2G user/kernel split"
307	config VMSPLIT_1G
308		bool "1G/3G user/kernel split"
309endchoice
310
311config PAGE_OFFSET
312	hex
313	depends on !64BIT
314	default 0xF0000000 if VMSPLIT_3_75G
315	default 0xE0000000 if VMSPLIT_3_5G
316	default 0xB0000000 if VMSPLIT_2_75G
317	default 0xA0000000 if VMSPLIT_2_5G
318	default 0x90000000 if VMSPLIT_2_25G
319	default 0x80000000 if VMSPLIT_2G
320	default 0x40000000 if VMSPLIT_1G
321	default 0xC0000000
322
323source "mm/Kconfig"
324
325source "kernel/Kconfig.preempt"
326
327config CMDLINE_BOOL
328	bool "Built-in kernel command line"
329	default n
330	---help---
331	  Allow for specifying boot arguments to the kernel at
332	  build time.  On some systems (e.g. embedded ones), it is
333	  necessary or convenient to provide some or all of the
334	  kernel boot arguments with the kernel itself (that is,
335	  to not rely on the boot loader to provide them.)
336
337	  To compile command line arguments into the kernel,
338	  set this option to 'Y', then fill in the
339	  the boot arguments in CONFIG_CMDLINE.
340
341	  Systems with fully functional boot loaders (e.g. mboot, or
342	  if booting over PCI) should leave this option set to 'N'.
343
344config CMDLINE
345	string "Built-in kernel command string"
346	depends on CMDLINE_BOOL
347	default ""
348	---help---
349	  Enter arguments here that should be compiled into the kernel
350	  image and used at boot time.  If the boot loader provides a
351	  command line at boot time, it is appended to this string to
352	  form the full kernel command line, when the system boots.
353
354	  However, you can use the CONFIG_CMDLINE_OVERRIDE option to
355	  change this behavior.
356
357	  In most cases, the command line (whether built-in or provided
358	  by the boot loader) should specify the device for the root
359	  file system.
360
361config CMDLINE_OVERRIDE
362	bool "Built-in command line overrides boot loader arguments"
363	default n
364	depends on CMDLINE_BOOL
365	---help---
366	  Set this option to 'Y' to have the kernel ignore the boot loader
367	  command line, and use ONLY the built-in command line.
368
369	  This is used to work around broken boot loaders.  This should
370	  be set to 'N' under normal conditions.
371
372config VMALLOC_RESERVE
373	hex
374	default 0x2000000
375
376config HARDWALL
377	bool "Hardwall support to allow access to user dynamic network"
378	default y
379
380config KERNEL_PL
381	int "Processor protection level for kernel"
382	range 1 2
383	default 2 if TILEGX
384	default 1 if !TILEGX
385	---help---
386	  Since MDE 4.2, the Tilera hypervisor runs the kernel
387	  at PL2 by default.  If running under an older hypervisor,
388	  or as a KVM guest, you must run at PL1.  (The current
389	  hypervisor may also be recompiled with "make HV_PL=2" to
390	  allow it to run a kernel at PL1, but clients running at PL1
391	  are not expected to be supported indefinitely.)
392
393	  If you're not sure, don't change the default.
394
395source "arch/tile/gxio/Kconfig"
396
397endmenu  # Tilera-specific configuration
398
399menu "Bus options"
400
401config PCI
402	bool "PCI support"
403	default y
404	select PCI_DOMAINS
405	select GENERIC_PCI_IOMAP
406	select TILE_GXIO_TRIO if TILEGX
407	select PCI_MSI if TILEGX
408	---help---
409	  Enable PCI root complex support, so PCIe endpoint devices can
410	  be attached to the Tile chip.  Many, but not all, PCI devices
411	  are supported under Tilera's root complex driver.
412
413config PCI_DOMAINS
414	bool
415
416config NO_IOMEM
417	def_bool !PCI
418
419config NO_IOPORT_MAP
420	def_bool !PCI
421
422config TILE_PCI_IO
423	bool "PCI I/O space support"
424	default n
425	depends on PCI
426	depends on TILEGX
427	---help---
428	  Enable PCI I/O space support on TILEGx. Since the PCI I/O space
429	  is used by few modern PCIe endpoint devices, its support is disabled
430	  by default to save the TRIO PIO Region resource for other purposes.
431
432source "drivers/pci/Kconfig"
433
434source "drivers/pci/pcie/Kconfig"
435
436config TILE_USB
437	tristate "Tilera USB host adapter support"
438	default y
439	depends on USB
440	depends on TILEGX
441	select TILE_GXIO_USB_HOST
442	---help---
443	  Provides USB host adapter support for the built-in EHCI and OHCI
444	  interfaces on TILE-Gx chips.
445
446source "drivers/pci/hotplug/Kconfig"
447
448endmenu
449
450menu "Executable file formats"
451
452source "fs/Kconfig.binfmt"
453
454endmenu
455
456source "net/Kconfig"
457
458source "drivers/Kconfig"
459
460source "fs/Kconfig"
461
462source "arch/tile/Kconfig.debug"
463
464source "security/Kconfig"
465
466source "crypto/Kconfig"
467
468source "lib/Kconfig"
469
470source "arch/tile/kvm/Kconfig"
471