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