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