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