xref: /openbmc/linux/arch/xtensa/Kconfig (revision 94c7b6fc)
1config ZONE_DMA
2	def_bool y
3
4config XTENSA
5	def_bool y
6	select ARCH_WANT_FRAME_POINTERS
7	select HAVE_IDE
8	select GENERIC_ATOMIC64
9	select GENERIC_CLOCKEVENTS
10	select VIRT_TO_BUS
11	select GENERIC_IRQ_SHOW
12	select GENERIC_SCHED_CLOCK
13	select MODULES_USE_ELF_RELA
14	select GENERIC_PCI_IOMAP
15	select ARCH_WANT_IPC_PARSE_VERSION
16	select ARCH_WANT_OPTIONAL_GPIOLIB
17	select BUILDTIME_EXTABLE_SORT
18	select CLONE_BACKWARDS
19	select IRQ_DOMAIN
20	select HAVE_OPROFILE
21	select HAVE_FUNCTION_TRACER
22	select HAVE_IRQ_TIME_ACCOUNTING
23	select HAVE_PERF_EVENTS
24	select COMMON_CLK
25	help
26	  Xtensa processors are 32-bit RISC machines designed by Tensilica
27	  primarily for embedded systems.  These processors are both
28	  configurable and extensible.  The Linux port to the Xtensa
29	  architecture supports all processor configurations and extensions,
30	  with reasonable minimum requirements.  The Xtensa Linux project has
31	  a home page at <http://www.linux-xtensa.org/>.
32
33config RWSEM_XCHGADD_ALGORITHM
34	def_bool y
35
36config GENERIC_HWEIGHT
37	def_bool y
38
39config ARCH_HAS_ILOG2_U32
40	def_bool n
41
42config ARCH_HAS_ILOG2_U64
43	def_bool n
44
45config NO_IOPORT_MAP
46	def_bool n
47
48config HZ
49	int
50	default 100
51
52source "init/Kconfig"
53source "kernel/Kconfig.freezer"
54
55config LOCKDEP_SUPPORT
56	def_bool y
57
58config STACKTRACE_SUPPORT
59	def_bool y
60
61config TRACE_IRQFLAGS_SUPPORT
62	def_bool y
63
64config MMU
65	def_bool n
66
67config VARIANT_IRQ_SWITCH
68	def_bool n
69
70config HAVE_XTENSA_GPIO32
71	def_bool n
72
73config MAY_HAVE_SMP
74	def_bool n
75
76menu "Processor type and features"
77
78choice
79	prompt "Xtensa Processor Configuration"
80	default XTENSA_VARIANT_FSF
81
82config XTENSA_VARIANT_FSF
83	bool "fsf - default (not generic) configuration"
84	select MMU
85
86config XTENSA_VARIANT_DC232B
87	bool "dc232b - Diamond 232L Standard Core Rev.B (LE)"
88	select MMU
89	select HAVE_XTENSA_GPIO32
90	help
91	  This variant refers to Tensilica's Diamond 232L Standard core Rev.B (LE).
92
93config XTENSA_VARIANT_DC233C
94	bool "dc233c - Diamond 233L Standard Core Rev.C (LE)"
95	select MMU
96	select HAVE_XTENSA_GPIO32
97	help
98	  This variant refers to Tensilica's Diamond 233L Standard core Rev.C (LE).
99
100config XTENSA_VARIANT_S6000
101	bool "s6000 - Stretch software configurable processor"
102	select VARIANT_IRQ_SWITCH
103	select ARCH_REQUIRE_GPIOLIB
104	select XTENSA_CALIBRATE_CCOUNT
105endchoice
106
107config XTENSA_UNALIGNED_USER
108	bool "Unaligned memory access in use space"
109	help
110	  The Xtensa architecture currently does not handle unaligned
111	  memory accesses in hardware but through an exception handler.
112	  Per default, unaligned memory accesses are disabled in user space.
113
114	  Say Y here to enable unaligned memory access in user space.
115
116source "kernel/Kconfig.preempt"
117
118config HAVE_SMP
119	bool "System Supports SMP (MX)"
120	depends on MAY_HAVE_SMP
121	select XTENSA_MX
122	help
123	  This option is use to indicate that the system-on-a-chip (SOC)
124	  supports Multiprocessing. Multiprocessor support implemented above
125	  the CPU core definition and currently needs to be selected manually.
126
127	  Multiprocessor support in implemented with external cache and
128	  interrupt controlers.
129
130	  The MX interrupt distributer adds Interprocessor Interrupts
131	  and causes the IRQ numbers to be increased by 4 for devices
132	  like the open cores ethernet driver and the serial interface.
133
134	  You still have to select "Enable SMP" to enable SMP on this SOC.
135
136config SMP
137	bool "Enable Symmetric multi-processing support"
138	depends on HAVE_SMP
139	select GENERIC_SMP_IDLE_THREAD
140	help
141	  Enabled SMP Software; allows more than one CPU/CORE
142	  to be activated during startup.
143
144config NR_CPUS
145	depends on SMP
146	int "Maximum number of CPUs (2-32)"
147	range 2 32
148	default "4"
149
150config HOTPLUG_CPU
151	bool "Enable CPU hotplug support"
152	depends on SMP
153	help
154	  Say Y here to allow turning CPUs off and on. CPUs can be
155	  controlled through /sys/devices/system/cpu.
156
157	  Say N if you want to disable CPU hotplug.
158
159config MATH_EMULATION
160	bool "Math emulation"
161	help
162	Can we use information of configuration file?
163
164config INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
165	bool "Initialize Xtensa MMU inside the Linux kernel code"
166	default y
167	help
168	  Earlier version initialized the MMU in the exception vector
169	  before jumping to _startup in head.S and had an advantage that
170	  it was possible to place a software breakpoint at 'reset' and
171	  then enter your normal kernel breakpoints once the MMU was mapped
172	  to the kernel mappings (0XC0000000).
173
174	  This unfortunately doesn't work for U-Boot and likley also wont
175	  work for using KEXEC to have a hot kernel ready for doing a
176	  KDUMP.
177
178	  So now the MMU is initialized in head.S but it's necessary to
179	  use hardware breakpoints (gdb 'hbreak' cmd) to break at _startup.
180	  xt-gdb can't place a Software Breakpoint in the  0XD region prior
181	  to mapping the MMU and after mapping even if the area of low memory
182	  was mapped gdb wouldn't remove the breakpoint on hitting it as the
183	  PC wouldn't match. Since Hardware Breakpoints are recommended for
184	  Linux configurations it seems reasonable to just assume they exist
185	  and leave this older mechanism for unfortunate souls that choose
186	  not to follow Tensilica's recommendation.
187
188	  Selecting this will cause U-Boot to set the KERNEL Load and Entry
189	  address at 0x00003000 instead of the mapped std of 0xD0003000.
190
191	  If in doubt, say Y.
192
193config HIGHMEM
194	bool "High Memory Support"
195	help
196	  Linux can use the full amount of RAM in the system by
197	  default. However, the default MMUv2 setup only maps the
198	  lowermost 128 MB of memory linearly to the areas starting
199	  at 0xd0000000 (cached) and 0xd8000000 (uncached).
200	  When there are more than 128 MB memory in the system not
201	  all of it can be "permanently mapped" by the kernel.
202	  The physical memory that's not permanently mapped is called
203	  "high memory".
204
205	  If you are compiling a kernel which will never run on a
206	  machine with more than 128 MB total physical RAM, answer
207	  N here.
208
209	  If unsure, say Y.
210
211endmenu
212
213config XTENSA_CALIBRATE_CCOUNT
214	def_bool n
215	help
216	  On some platforms (XT2000, for example), the CPU clock rate can
217	  vary.  The frequency can be determined, however, by measuring
218	  against a well known, fixed frequency, such as an UART oscillator.
219
220config SERIAL_CONSOLE
221	def_bool n
222
223menu "Bus options"
224
225config PCI
226	bool "PCI support"
227	default y
228	help
229	  Find out whether you have a PCI motherboard. PCI is the name of a
230	  bus system, i.e. the way the CPU talks to the other stuff inside
231	  your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
232	  VESA. If you have PCI, say Y, otherwise N.
233
234source "drivers/pci/Kconfig"
235
236endmenu
237
238menu "Platform options"
239
240choice
241	prompt "Xtensa System Type"
242	default XTENSA_PLATFORM_ISS
243
244config XTENSA_PLATFORM_ISS
245	bool "ISS"
246	select XTENSA_CALIBRATE_CCOUNT
247	select SERIAL_CONSOLE
248	help
249	  ISS is an acronym for Tensilica's Instruction Set Simulator.
250
251config XTENSA_PLATFORM_XT2000
252	bool "XT2000"
253	help
254	  XT2000 is the name of Tensilica's feature-rich emulation platform.
255	  This hardware is capable of running a full Linux distribution.
256
257config XTENSA_PLATFORM_S6105
258	bool "S6105"
259	select SERIAL_CONSOLE
260	select NO_IOPORT_MAP
261
262config XTENSA_PLATFORM_XTFPGA
263	bool "XTFPGA"
264	select SERIAL_CONSOLE
265	select ETHOC
266	select XTENSA_CALIBRATE_CCOUNT
267	help
268	  XTFPGA is the name of Tensilica board family (LX60, LX110, LX200, ML605).
269	  This hardware is capable of running a full Linux distribution.
270
271endchoice
272
273
274config XTENSA_CPU_CLOCK
275	int "CPU clock rate [MHz]"
276	depends on !XTENSA_CALIBRATE_CCOUNT
277	default 16
278
279config GENERIC_CALIBRATE_DELAY
280	bool "Auto calibration of the BogoMIPS value"
281	help
282	  The BogoMIPS value can easily be derived from the CPU frequency.
283
284config CMDLINE_BOOL
285	bool "Default bootloader kernel arguments"
286
287config CMDLINE
288	string "Initial kernel command string"
289	depends on CMDLINE_BOOL
290	default "console=ttyS0,38400 root=/dev/ram"
291	help
292	  On some architectures (EBSA110 and CATS), there is currently no way
293	  for the boot loader to pass arguments to the kernel. For these
294	  architectures, you should supply some command-line options at build
295	  time by entering them here. As a minimum, you should specify the
296	  memory size and the root device (e.g., mem=64M root=/dev/nfs).
297
298config USE_OF
299	bool "Flattened Device Tree support"
300	select OF
301	select OF_EARLY_FLATTREE
302	help
303	  Include support for flattened device tree machine descriptions.
304
305config BUILTIN_DTB
306	string "DTB to build into the kernel image"
307	depends on OF
308
309config BLK_DEV_SIMDISK
310	tristate "Host file-based simulated block device support"
311	default n
312	depends on XTENSA_PLATFORM_ISS
313	help
314	  Create block devices that map to files in the host file system.
315	  Device binding to host file may be changed at runtime via proc
316	  interface provided the device is not in use.
317
318config BLK_DEV_SIMDISK_COUNT
319	int "Number of host file-based simulated block devices"
320	range 1 10
321	depends on BLK_DEV_SIMDISK
322	default 2
323	help
324	  This is the default minimal number of created block devices.
325	  Kernel/module parameter 'simdisk_count' may be used to change this
326	  value at runtime. More file names (but no more than 10) may be
327	  specified as parameters, simdisk_count grows accordingly.
328
329config SIMDISK0_FILENAME
330	string "Host filename for the first simulated device"
331	depends on BLK_DEV_SIMDISK = y
332	default ""
333	help
334	  Attach a first simdisk to a host file. Conventionally, this file
335	  contains a root file system.
336
337config SIMDISK1_FILENAME
338	string "Host filename for the second simulated device"
339	depends on BLK_DEV_SIMDISK = y && BLK_DEV_SIMDISK_COUNT != 1
340	default ""
341	help
342	  Another simulated disk in a host file for a buildroot-independent
343	  storage.
344
345source "mm/Kconfig"
346
347source "drivers/pcmcia/Kconfig"
348
349source "drivers/pci/hotplug/Kconfig"
350
351endmenu
352
353menu "Executable file formats"
354
355source "fs/Kconfig.binfmt"
356
357endmenu
358
359source "net/Kconfig"
360
361source "drivers/Kconfig"
362
363source "fs/Kconfig"
364
365source "arch/xtensa/Kconfig.debug"
366
367source "security/Kconfig"
368
369source "crypto/Kconfig"
370
371source "lib/Kconfig"
372
373
374