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