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