xref: /openbmc/linux/arch/xtensa/Kconfig (revision 8e9356c6)
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	help
24	  Xtensa processors are 32-bit RISC machines designed by Tensilica
25	  primarily for embedded systems.  These processors are both
26	  configurable and extensible.  The Linux port to the Xtensa
27	  architecture supports all processor configurations and extensions,
28	  with reasonable minimum requirements.  The Xtensa Linux project has
29	  a home page at <http://www.linux-xtensa.org/>.
30
31config RWSEM_XCHGADD_ALGORITHM
32	def_bool y
33
34config GENERIC_HWEIGHT
35	def_bool y
36
37config ARCH_HAS_ILOG2_U32
38	def_bool n
39
40config ARCH_HAS_ILOG2_U64
41	def_bool n
42
43config NO_IOPORT
44	def_bool n
45
46config HZ
47	int
48	default 100
49
50source "init/Kconfig"
51source "kernel/Kconfig.freezer"
52
53config LOCKDEP_SUPPORT
54	def_bool y
55
56config STACKTRACE_SUPPORT
57	def_bool y
58
59config TRACE_IRQFLAGS_SUPPORT
60	def_bool y
61
62config MMU
63	def_bool n
64
65config VARIANT_IRQ_SWITCH
66	def_bool n
67
68config HAVE_XTENSA_GPIO32
69	def_bool n
70
71config MAY_HAVE_SMP
72	def_bool n
73
74menu "Processor type and features"
75
76choice
77	prompt "Xtensa Processor Configuration"
78	default XTENSA_VARIANT_FSF
79
80config XTENSA_VARIANT_FSF
81	bool "fsf - default (not generic) configuration"
82	select MMU
83
84config XTENSA_VARIANT_DC232B
85	bool "dc232b - Diamond 232L Standard Core Rev.B (LE)"
86	select MMU
87	select HAVE_XTENSA_GPIO32
88	help
89	  This variant refers to Tensilica's Diamond 232L Standard core Rev.B (LE).
90
91config XTENSA_VARIANT_DC233C
92	bool "dc233c - Diamond 233L Standard Core Rev.C (LE)"
93	select MMU
94	select HAVE_XTENSA_GPIO32
95	help
96	  This variant refers to Tensilica's Diamond 233L Standard core Rev.C (LE).
97
98config XTENSA_VARIANT_S6000
99	bool "s6000 - Stretch software configurable processor"
100	select VARIANT_IRQ_SWITCH
101	select ARCH_REQUIRE_GPIOLIB
102	select XTENSA_CALIBRATE_CCOUNT
103endchoice
104
105config XTENSA_UNALIGNED_USER
106	bool "Unaligned memory access in use space"
107	help
108	  The Xtensa architecture currently does not handle unaligned
109	  memory accesses in hardware but through an exception handler.
110	  Per default, unaligned memory accesses are disabled in user space.
111
112	  Say Y here to enable unaligned memory access in user space.
113
114source "kernel/Kconfig.preempt"
115
116config HAVE_SMP
117	bool "System Supports SMP (MX)"
118	depends on MAY_HAVE_SMP
119	select XTENSA_MX
120	help
121	  This option is use to indicate that the system-on-a-chip (SOC)
122	  supports Multiprocessing. Multiprocessor support implemented above
123	  the CPU core definition and currently needs to be selected manually.
124
125	  Multiprocessor support in implemented with external cache and
126	  interrupt controlers.
127
128	  The MX interrupt distributer adds Interprocessor Interrupts
129	  and causes the IRQ numbers to be increased by 4 for devices
130	  like the open cores ethernet driver and the serial interface.
131
132	  You still have to select "Enable SMP" to enable SMP on this SOC.
133
134config SMP
135	bool "Enable Symmetric multi-processing support"
136	depends on HAVE_SMP
137	select USE_GENERIC_SMP_HELPERS
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
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