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