xref: /linux/arch/sh/Kconfig (revision b9ccfda293ee6fca9a89a1584f0900e0627b975e)
1config SUPERH
2	def_bool y
3	select EXPERT
4	select CLKDEV_LOOKUP
5	select HAVE_IDE if HAS_IOPORT
6	select HAVE_MEMBLOCK
7	select HAVE_MEMBLOCK_NODE_MAP
8	select ARCH_DISCARD_MEMBLOCK
9	select HAVE_OPROFILE
10	select HAVE_GENERIC_DMA_COHERENT
11	select HAVE_ARCH_TRACEHOOK
12	select HAVE_DMA_API_DEBUG
13	select HAVE_DMA_ATTRS
14	select HAVE_IRQ_WORK
15	select HAVE_PERF_EVENTS
16	select ARCH_HAVE_CUSTOM_GPIO_H
17	select ARCH_HAVE_NMI_SAFE_CMPXCHG if (GUSA_RB || CPU_SH4A)
18	select PERF_USE_VMALLOC
19	select HAVE_KERNEL_GZIP
20	select HAVE_KERNEL_BZIP2
21	select HAVE_KERNEL_LZMA
22	select HAVE_KERNEL_XZ
23	select HAVE_KERNEL_LZO
24	select HAVE_SYSCALL_TRACEPOINTS
25	select HAVE_REGS_AND_STACK_ACCESS_API
26	select HAVE_GENERIC_HARDIRQS
27	select MAY_HAVE_SPARSE_IRQ
28	select IRQ_FORCED_THREADING
29	select RTC_LIB
30	select GENERIC_ATOMIC64
31	select GENERIC_IRQ_SHOW
32	select GENERIC_SMP_IDLE_THREAD
33	select GENERIC_CLOCKEVENTS
34	select GENERIC_CMOS_UPDATE if SH_SH03 || SH_DREAMCAST
35	select GENERIC_STRNCPY_FROM_USER
36	select GENERIC_STRNLEN_USER
37	help
38	  The SuperH is a RISC processor targeted for use in embedded systems
39	  and consumer electronics; it was also used in the Sega Dreamcast
40	  gaming console.  The SuperH port has a home page at
41	  <http://www.linux-sh.org/>.
42
43config SUPERH32
44	def_bool ARCH = "sh"
45	select HAVE_KPROBES
46	select HAVE_KRETPROBES
47	select HAVE_IOREMAP_PROT if MMU && !X2TLB
48	select HAVE_FUNCTION_TRACER
49	select HAVE_FTRACE_MCOUNT_RECORD
50	select HAVE_DYNAMIC_FTRACE
51	select HAVE_FUNCTION_TRACE_MCOUNT_TEST
52	select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE
53	select HAVE_FUNCTION_GRAPH_TRACER
54	select HAVE_ARCH_KGDB
55	select HAVE_HW_BREAKPOINT
56	select HAVE_MIXED_BREAKPOINTS_REGS
57	select PERF_EVENTS
58	select ARCH_HIBERNATION_POSSIBLE if MMU
59	select SPARSE_IRQ
60
61config SUPERH64
62	def_bool ARCH = "sh64"
63	select KALLSYMS
64
65config ARCH_DEFCONFIG
66	string
67	default "arch/sh/configs/shx3_defconfig" if SUPERH32
68	default "arch/sh/configs/cayman_defconfig" if SUPERH64
69
70config RWSEM_GENERIC_SPINLOCK
71	def_bool y
72
73config RWSEM_XCHGADD_ALGORITHM
74	bool
75
76config GENERIC_BUG
77	def_bool y
78	depends on BUG && SUPERH32
79
80config GENERIC_CSUM
81	def_bool y
82	depends on SUPERH64
83
84config GENERIC_HWEIGHT
85	def_bool y
86
87config IRQ_PER_CPU
88	def_bool y
89
90config GENERIC_GPIO
91	def_bool n
92
93config GENERIC_CALIBRATE_DELAY
94	bool
95
96config GENERIC_LOCKBREAK
97	def_bool y
98	depends on SMP && PREEMPT
99
100config ARCH_SUSPEND_POSSIBLE
101	def_bool n
102
103config ARCH_HIBERNATION_POSSIBLE
104	def_bool n
105
106config SYS_SUPPORTS_APM_EMULATION
107	bool
108	select ARCH_SUSPEND_POSSIBLE
109
110config SYS_SUPPORTS_HUGETLBFS
111	bool
112
113config SYS_SUPPORTS_SMP
114	bool
115
116config SYS_SUPPORTS_NUMA
117	bool
118
119config SYS_SUPPORTS_PCI
120	bool
121
122config SYS_SUPPORTS_CMT
123	bool
124
125config SYS_SUPPORTS_MTU2
126	bool
127
128config SYS_SUPPORTS_TMU
129	bool
130
131config STACKTRACE_SUPPORT
132	def_bool y
133
134config LOCKDEP_SUPPORT
135	def_bool y
136
137config HAVE_LATENCYTOP_SUPPORT
138	def_bool y
139
140config ARCH_HAS_ILOG2_U32
141	def_bool n
142
143config ARCH_HAS_ILOG2_U64
144	def_bool n
145
146config ARCH_NO_VIRT_TO_BUS
147	def_bool y
148
149config ARCH_HAS_DEFAULT_IDLE
150	def_bool y
151
152config NO_IOPORT
153	def_bool !PCI
154	depends on !SH_CAYMAN && !SH_SH4202_MICRODEV && !SH_SHMIN && \
155		   !SH_HP6XX && !SH_SOLUTION_ENGINE
156
157config IO_TRAPPED
158	bool
159
160config SWAP_IO_SPACE
161	bool
162
163config DMA_COHERENT
164	bool
165
166config DMA_NONCOHERENT
167	def_bool !DMA_COHERENT
168
169config NEED_DMA_MAP_STATE
170	def_bool DMA_NONCOHERENT
171
172config NEED_SG_DMA_LENGTH
173	def_bool y
174
175source "init/Kconfig"
176
177source "kernel/Kconfig.freezer"
178
179menu "System type"
180
181#
182# Processor families
183#
184config CPU_SH2
185	bool
186
187config CPU_SH2A
188	bool
189	select CPU_SH2
190	select UNCACHED_MAPPING
191
192config CPU_SH3
193	bool
194	select CPU_HAS_INTEVT
195	select CPU_HAS_SR_RB
196	select SYS_SUPPORTS_TMU
197
198config CPU_SH4
199	bool
200	select CPU_HAS_INTEVT
201	select CPU_HAS_SR_RB
202	select CPU_HAS_FPU if !CPU_SH4AL_DSP
203	select SYS_SUPPORTS_TMU
204	select SYS_SUPPORTS_HUGETLBFS if MMU
205
206config CPU_SH4A
207	bool
208	select CPU_SH4
209
210config CPU_SH4AL_DSP
211	bool
212	select CPU_SH4A
213	select CPU_HAS_DSP
214
215config CPU_SH5
216	bool
217	select CPU_HAS_FPU
218	select SYS_SUPPORTS_TMU
219	select SYS_SUPPORTS_HUGETLBFS if MMU
220
221config CPU_SHX2
222	bool
223
224config CPU_SHX3
225	bool
226	select DMA_COHERENT
227	select SYS_SUPPORTS_SMP
228	select SYS_SUPPORTS_NUMA
229
230config ARCH_SHMOBILE
231	bool
232	select ARCH_SUSPEND_POSSIBLE
233	select PM
234	select PM_RUNTIME
235
236config CPU_HAS_PMU
237       depends on CPU_SH4 || CPU_SH4A
238       default y
239       bool
240
241if SUPERH32
242
243choice
244	prompt "Processor sub-type selection"
245
246#
247# Processor subtypes
248#
249
250# SH-2 Processor Support
251
252config CPU_SUBTYPE_SH7619
253	bool "Support SH7619 processor"
254	select CPU_SH2
255	select SYS_SUPPORTS_CMT
256
257# SH-2A Processor Support
258
259config CPU_SUBTYPE_SH7201
260	bool "Support SH7201 processor"
261	select CPU_SH2A
262	select CPU_HAS_FPU
263	select SYS_SUPPORTS_MTU2
264
265config CPU_SUBTYPE_SH7203
266	bool "Support SH7203 processor"
267	select CPU_SH2A
268	select CPU_HAS_FPU
269	select SYS_SUPPORTS_CMT
270	select SYS_SUPPORTS_MTU2
271	select ARCH_WANT_OPTIONAL_GPIOLIB
272
273config CPU_SUBTYPE_SH7206
274	bool "Support SH7206 processor"
275	select CPU_SH2A
276	select SYS_SUPPORTS_CMT
277	select SYS_SUPPORTS_MTU2
278
279config CPU_SUBTYPE_SH7263
280	bool "Support SH7263 processor"
281	select CPU_SH2A
282	select CPU_HAS_FPU
283	select SYS_SUPPORTS_CMT
284	select SYS_SUPPORTS_MTU2
285
286config CPU_SUBTYPE_SH7264
287	bool "Support SH7264 processor"
288	select CPU_SH2A
289	select CPU_HAS_FPU
290	select SYS_SUPPORTS_CMT
291	select SYS_SUPPORTS_MTU2
292
293config CPU_SUBTYPE_SH7269
294	bool "Support SH7269 processor"
295	select CPU_SH2A
296	select CPU_HAS_FPU
297	select SYS_SUPPORTS_CMT
298	select SYS_SUPPORTS_MTU2
299
300config CPU_SUBTYPE_MXG
301	bool "Support MX-G processor"
302	select CPU_SH2A
303	select SYS_SUPPORTS_MTU2
304	help
305	  Select MX-G if running on an R8A03022BG part.
306
307# SH-3 Processor Support
308
309config CPU_SUBTYPE_SH7705
310	bool "Support SH7705 processor"
311	select CPU_SH3
312
313config CPU_SUBTYPE_SH7706
314	bool "Support SH7706 processor"
315	select CPU_SH3
316	help
317	  Select SH7706 if you have a 133 Mhz SH-3 HD6417706 CPU.
318
319config CPU_SUBTYPE_SH7707
320	bool "Support SH7707 processor"
321	select CPU_SH3
322	help
323	  Select SH7707 if you have a  60 Mhz SH-3 HD6417707 CPU.
324
325config CPU_SUBTYPE_SH7708
326	bool "Support SH7708 processor"
327	select CPU_SH3
328	help
329	  Select SH7708 if you have a  60 Mhz SH-3 HD6417708S or
330	  if you have a 100 Mhz SH-3 HD6417708R CPU.
331
332config CPU_SUBTYPE_SH7709
333	bool "Support SH7709 processor"
334	select CPU_SH3
335	help
336	  Select SH7709 if you have a  80 Mhz SH-3 HD6417709 CPU.
337
338config CPU_SUBTYPE_SH7710
339	bool "Support SH7710 processor"
340	select CPU_SH3
341	select CPU_HAS_DSP
342	help
343	  Select SH7710 if you have a SH3-DSP SH7710 CPU.
344
345config CPU_SUBTYPE_SH7712
346	bool "Support SH7712 processor"
347	select CPU_SH3
348	select CPU_HAS_DSP
349	help
350	  Select SH7712 if you have a SH3-DSP SH7712 CPU.
351
352config CPU_SUBTYPE_SH7720
353	bool "Support SH7720 processor"
354	select CPU_SH3
355	select CPU_HAS_DSP
356	select SYS_SUPPORTS_CMT
357	select ARCH_WANT_OPTIONAL_GPIOLIB
358	select USB_ARCH_HAS_OHCI
359	select USB_OHCI_SH if USB_OHCI_HCD
360	help
361	  Select SH7720 if you have a SH3-DSP SH7720 CPU.
362
363config CPU_SUBTYPE_SH7721
364	bool "Support SH7721 processor"
365	select CPU_SH3
366	select CPU_HAS_DSP
367	select SYS_SUPPORTS_CMT
368	select USB_ARCH_HAS_OHCI
369	select USB_OHCI_SH if USB_OHCI_HCD
370	help
371	  Select SH7721 if you have a SH3-DSP SH7721 CPU.
372
373# SH-4 Processor Support
374
375config CPU_SUBTYPE_SH7750
376	bool "Support SH7750 processor"
377	select CPU_SH4
378	help
379	  Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.
380
381config CPU_SUBTYPE_SH7091
382	bool "Support SH7091 processor"
383	select CPU_SH4
384	help
385	  Select SH7091 if you have an SH-4 based Sega device (such as
386	  the Dreamcast, Naomi, and Naomi 2).
387
388config CPU_SUBTYPE_SH7750R
389	bool "Support SH7750R processor"
390	select CPU_SH4
391
392config CPU_SUBTYPE_SH7750S
393	bool "Support SH7750S processor"
394	select CPU_SH4
395
396config CPU_SUBTYPE_SH7751
397	bool "Support SH7751 processor"
398	select CPU_SH4
399	help
400	  Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU,
401	  or if you have a HD6417751R CPU.
402
403config CPU_SUBTYPE_SH7751R
404	bool "Support SH7751R processor"
405	select CPU_SH4
406
407config CPU_SUBTYPE_SH7760
408	bool "Support SH7760 processor"
409	select CPU_SH4
410
411config CPU_SUBTYPE_SH4_202
412	bool "Support SH4-202 processor"
413	select CPU_SH4
414
415# SH-4A Processor Support
416
417config CPU_SUBTYPE_SH7723
418	bool "Support SH7723 processor"
419	select CPU_SH4A
420	select CPU_SHX2
421	select ARCH_SHMOBILE
422	select ARCH_SPARSEMEM_ENABLE
423	select SYS_SUPPORTS_CMT
424	select ARCH_WANT_OPTIONAL_GPIOLIB
425	help
426	  Select SH7723 if you have an SH-MobileR2 CPU.
427
428config CPU_SUBTYPE_SH7724
429	bool "Support SH7724 processor"
430	select CPU_SH4A
431	select CPU_SHX2
432	select ARCH_SHMOBILE
433	select ARCH_SPARSEMEM_ENABLE
434	select SYS_SUPPORTS_CMT
435	select ARCH_WANT_OPTIONAL_GPIOLIB
436	help
437	  Select SH7724 if you have an SH-MobileR2R CPU.
438
439config CPU_SUBTYPE_SH7734
440	bool "Support SH7734 processor"
441	select CPU_SH4A
442	select CPU_SHX2
443	select ARCH_WANT_OPTIONAL_GPIOLIB
444	select USB_ARCH_HAS_OHCI
445	select USB_ARCH_HAS_EHCI
446	help
447	  Select SH7734 if you have a SH4A SH7734 CPU.
448
449config CPU_SUBTYPE_SH7757
450	bool "Support SH7757 processor"
451	select CPU_SH4A
452	select CPU_SHX2
453	select ARCH_WANT_OPTIONAL_GPIOLIB
454	select USB_ARCH_HAS_OHCI
455	select USB_ARCH_HAS_EHCI
456	help
457	  Select SH7757 if you have a SH4A SH7757 CPU.
458
459config CPU_SUBTYPE_SH7763
460	bool "Support SH7763 processor"
461	select CPU_SH4A
462	select USB_ARCH_HAS_OHCI
463	select USB_OHCI_SH if USB_OHCI_HCD
464	help
465	  Select SH7763 if you have a SH4A SH7763(R5S77631) CPU.
466
467config CPU_SUBTYPE_SH7770
468	bool "Support SH7770 processor"
469	select CPU_SH4A
470
471config CPU_SUBTYPE_SH7780
472	bool "Support SH7780 processor"
473	select CPU_SH4A
474
475config CPU_SUBTYPE_SH7785
476	bool "Support SH7785 processor"
477	select CPU_SH4A
478	select CPU_SHX2
479	select ARCH_SPARSEMEM_ENABLE
480	select SYS_SUPPORTS_NUMA
481	select ARCH_WANT_OPTIONAL_GPIOLIB
482
483config CPU_SUBTYPE_SH7786
484	bool "Support SH7786 processor"
485	select CPU_SH4A
486	select CPU_SHX3
487	select CPU_HAS_PTEAEX
488	select GENERIC_CLOCKEVENTS_BROADCAST if SMP
489	select ARCH_WANT_OPTIONAL_GPIOLIB
490	select USB_ARCH_HAS_OHCI
491	select USB_OHCI_SH if USB_OHCI_HCD
492	select USB_ARCH_HAS_EHCI
493	select USB_EHCI_SH if USB_EHCI_HCD
494
495config CPU_SUBTYPE_SHX3
496	bool "Support SH-X3 processor"
497	select CPU_SH4A
498	select CPU_SHX3
499	select GENERIC_CLOCKEVENTS_BROADCAST if SMP
500	select ARCH_REQUIRE_GPIOLIB
501
502# SH4AL-DSP Processor Support
503
504config CPU_SUBTYPE_SH7343
505	bool "Support SH7343 processor"
506	select CPU_SH4AL_DSP
507	select ARCH_SHMOBILE
508	select SYS_SUPPORTS_CMT
509
510config CPU_SUBTYPE_SH7722
511	bool "Support SH7722 processor"
512	select CPU_SH4AL_DSP
513	select CPU_SHX2
514	select ARCH_SHMOBILE
515	select ARCH_SPARSEMEM_ENABLE
516	select SYS_SUPPORTS_NUMA
517	select SYS_SUPPORTS_CMT
518	select ARCH_WANT_OPTIONAL_GPIOLIB
519
520config CPU_SUBTYPE_SH7366
521	bool "Support SH7366 processor"
522	select CPU_SH4AL_DSP
523	select CPU_SHX2
524	select ARCH_SHMOBILE
525	select ARCH_SPARSEMEM_ENABLE
526	select SYS_SUPPORTS_NUMA
527	select SYS_SUPPORTS_CMT
528
529endchoice
530
531endif
532
533if SUPERH64
534
535choice
536	prompt "Processor sub-type selection"
537
538# SH-5 Processor Support
539
540config CPU_SUBTYPE_SH5_101
541	bool "Support SH5-101 processor"
542	select CPU_SH5
543
544config CPU_SUBTYPE_SH5_103
545	bool "Support SH5-103 processor"
546	select CPU_SH5
547
548endchoice
549
550endif
551
552source "arch/sh/mm/Kconfig"
553
554source "arch/sh/Kconfig.cpu"
555
556source "arch/sh/boards/Kconfig"
557
558menu "Timer and clock configuration"
559
560config SH_TIMER_TMU
561	bool "TMU timer driver"
562	depends on SYS_SUPPORTS_TMU
563	default y
564	help
565	  This enables the build of the TMU timer driver.
566
567config SH_TIMER_CMT
568	bool "CMT timer driver"
569	depends on SYS_SUPPORTS_CMT
570	default y
571	help
572	  This enables build of the CMT timer driver.
573
574config SH_TIMER_MTU2
575	bool "MTU2 timer driver"
576	depends on SYS_SUPPORTS_MTU2
577	default y
578	help
579	  This enables build of the MTU2 timer driver.
580
581config SH_PCLK_FREQ
582	int "Peripheral clock frequency (in Hz)"
583	depends on SH_CLK_CPG_LEGACY
584	default "31250000" if CPU_SUBTYPE_SH7619
585	default "33333333" if CPU_SUBTYPE_SH7770 || \
586			      CPU_SUBTYPE_SH7760 || \
587			      CPU_SUBTYPE_SH7705 || \
588			      CPU_SUBTYPE_SH7203 || \
589			      CPU_SUBTYPE_SH7206 || \
590			      CPU_SUBTYPE_SH7263 || \
591			      CPU_SUBTYPE_MXG
592	default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
593	default "66000000" if CPU_SUBTYPE_SH4_202
594	default "50000000"
595	help
596	  This option is used to specify the peripheral clock frequency.
597	  This is necessary for determining the reference clock value on
598	  platforms lacking an RTC.
599
600config SH_CLK_CPG
601	def_bool y
602
603config SH_CLK_CPG_LEGACY
604	depends on SH_CLK_CPG
605	def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE && \
606		      !CPU_SHX3 && !CPU_SUBTYPE_SH7757 && \
607		      !CPU_SUBTYPE_SH7734 && !CPU_SUBTYPE_SH7264 && \
608		      !CPU_SUBTYPE_SH7269
609
610endmenu
611
612menu "CPU Frequency scaling"
613
614source "drivers/cpufreq/Kconfig"
615
616config SH_CPU_FREQ
617	tristate "SuperH CPU Frequency driver"
618	depends on CPU_FREQ
619	select CPU_FREQ_TABLE
620	help
621	  This adds the cpufreq driver for SuperH. Any CPU that supports
622	  clock rate rounding through the clock framework can use this
623	  driver. While it will make the kernel slightly larger, this is
624	  harmless for CPUs that don't support rate rounding. The driver
625	  will also generate a notice in the boot log before disabling
626	  itself if the CPU in question is not capable of rate rounding.
627
628	  For details, take a look at <file:Documentation/cpu-freq>.
629
630	  If unsure, say N.
631
632endmenu
633
634source "arch/sh/drivers/Kconfig"
635
636endmenu
637
638menu "Kernel features"
639
640source kernel/Kconfig.hz
641
642config KEXEC
643	bool "kexec system call (EXPERIMENTAL)"
644	depends on SUPERH32 && EXPERIMENTAL && MMU
645	help
646	  kexec is a system call that implements the ability to shutdown your
647	  current kernel, and to start another kernel.  It is like a reboot
648	  but it is independent of the system firmware.  And like a reboot
649	  you can start any kernel with it, not just Linux.
650
651	  The name comes from the similarity to the exec system call.
652
653	  It is an ongoing process to be certain the hardware in a machine
654	  is properly shutdown, so do not be surprised if this code does not
655	  initially work for you.  It may help to enable device hotplugging
656	  support.  As of this writing the exact hardware interface is
657	  strongly in flux, so no good recommendation can be made.
658
659config CRASH_DUMP
660	bool "kernel crash dumps (EXPERIMENTAL)"
661	depends on SUPERH32 && EXPERIMENTAL && BROKEN_ON_SMP
662	help
663	  Generate crash dump after being started by kexec.
664	  This should be normally only set in special crash dump kernels
665	  which are loaded in the main kernel with kexec-tools into
666	  a specially reserved region and then later executed after
667	  a crash by kdump/kexec. The crash dump kernel must be compiled
668	  to a memory address not used by the main kernel using
669	  PHYSICAL_START.
670
671	  For more details see Documentation/kdump/kdump.txt
672
673config KEXEC_JUMP
674	bool "kexec jump (EXPERIMENTAL)"
675	depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL
676	help
677	  Jump between original kernel and kexeced kernel and invoke
678	  code via KEXEC
679
680config PHYSICAL_START
681	hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP)
682	default MEMORY_START
683	---help---
684	  This gives the physical address where the kernel is loaded
685	  and is ordinarily the same as MEMORY_START.
686
687	  Different values are primarily used in the case of kexec on panic
688	  where the fail safe kernel needs to run at a different address
689	  than the panic-ed kernel.
690
691config SECCOMP
692	bool "Enable seccomp to safely compute untrusted bytecode"
693	depends on PROC_FS
694	help
695	  This kernel feature is useful for number crunching applications
696	  that may need to compute untrusted bytecode during their
697	  execution. By using pipes or other transports made available to
698	  the process as file descriptors supporting the read/write
699	  syscalls, it's possible to isolate those applications in
700	  their own address space using seccomp. Once seccomp is
701	  enabled via prctl, it cannot be disabled and the task is only
702	  allowed to execute a few safe syscalls defined by each seccomp
703	  mode.
704
705	  If unsure, say N.
706
707config CC_STACKPROTECTOR
708	bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
709	depends on SUPERH32 && EXPERIMENTAL
710	help
711	  This option turns on the -fstack-protector GCC feature. This
712	  feature puts, at the beginning of functions, a canary value on
713	  the stack just before the return address, and validates
714	  the value just before actually returning.  Stack based buffer
715	  overflows (that need to overwrite this return address) now also
716	  overwrite the canary, which gets detected and the attack is then
717	  neutralized via a kernel panic.
718
719	  This feature requires gcc version 4.2 or above.
720
721config SMP
722	bool "Symmetric multi-processing support"
723	depends on SYS_SUPPORTS_SMP
724	select USE_GENERIC_SMP_HELPERS
725	---help---
726	  This enables support for systems with more than one CPU. If you have
727	  a system with only one CPU, like most personal computers, say N. If
728	  you have a system with more than one CPU, say Y.
729
730	  If you say N here, the kernel will run on single and multiprocessor
731	  machines, but will use only one CPU of a multiprocessor machine. If
732	  you say Y here, the kernel will run on many, but not all,
733	  singleprocessor machines. On a singleprocessor machine, the kernel
734	  will run faster if you say N here.
735
736	  People using multiprocessor machines who say Y here should also say
737	  Y to "Enhanced Real Time Clock Support", below.
738
739	  See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
740	  available at <http://www.tldp.org/docs.html#howto>.
741
742	  If you don't know what to do here, say N.
743
744config NR_CPUS
745	int "Maximum number of CPUs (2-32)"
746	range 2 32
747	depends on SMP
748	default "4" if CPU_SUBTYPE_SHX3
749	default "2"
750	help
751	  This allows you to specify the maximum number of CPUs which this
752	  kernel will support.  The maximum supported value is 32 and the
753	  minimum value which makes sense is 2.
754
755	  This is purely to save memory - each supported CPU adds
756	  approximately eight kilobytes to the kernel image.
757
758config HOTPLUG_CPU
759	bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
760	depends on SMP && HOTPLUG && EXPERIMENTAL
761	help
762	  Say Y here to experiment with turning CPUs off and on.  CPUs
763	  can be controlled through /sys/devices/system/cpu.
764
765source "kernel/Kconfig.preempt"
766
767config GUSA
768	def_bool y
769	depends on !SMP && SUPERH32
770	help
771	  This enables support for gUSA (general UserSpace Atomicity).
772	  This is the default implementation for both UP and non-ll/sc
773	  CPUs, and is used by the libc, amongst others.
774
775	  For additional information, design information can be found
776	  in <http://lc.linux.or.jp/lc2002/papers/niibe0919p.pdf>.
777
778	  This should only be disabled for special cases where alternate
779	  atomicity implementations exist.
780
781config GUSA_RB
782	bool "Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)"
783	depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
784	help
785	  Enabling this option will allow the kernel to implement some
786	  atomic operations using a software implementation of load-locked/
787	  store-conditional (LLSC). On machines which do not have hardware
788	  LLSC, this should be more efficient than the other alternative of
789	  disabling interrupts around the atomic sequence.
790
791config HW_PERF_EVENTS
792	bool "Enable hardware performance counter support for perf events"
793	depends on PERF_EVENTS && CPU_HAS_PMU
794	default y
795	help
796	  Enable hardware performance counter support for perf events. If
797	  disabled, perf events will use software events only.
798
799source "drivers/sh/Kconfig"
800
801endmenu
802
803menu "Boot options"
804
805config ZERO_PAGE_OFFSET
806	hex
807	default "0x00010000" if PAGE_SIZE_64KB || SH_RTS7751R2D || \
808				SH_7751_SOLUTION_ENGINE
809	default "0x00004000" if PAGE_SIZE_16KB || SH_SH03
810	default "0x00002000" if PAGE_SIZE_8KB
811	default "0x00001000"
812	help
813	  This sets the default offset of zero page.
814
815config BOOT_LINK_OFFSET
816	hex
817	default "0x00210000" if SH_SHMIN
818	default "0x00400000" if SH_CAYMAN
819	default "0x00810000" if SH_7780_SOLUTION_ENGINE
820	default "0x009e0000" if SH_TITAN
821	default "0x01800000" if SH_SDK7780
822	default "0x02000000" if SH_EDOSK7760
823	default "0x00800000"
824	help
825	  This option allows you to set the link address offset of the zImage.
826	  This can be useful if you are on a board which has a small amount of
827	  memory.
828
829config ENTRY_OFFSET
830	hex
831	default "0x00001000" if PAGE_SIZE_4KB
832	default "0x00002000" if PAGE_SIZE_8KB
833	default "0x00004000" if PAGE_SIZE_16KB
834	default "0x00010000" if PAGE_SIZE_64KB
835	default "0x00000000"
836
837config ROMIMAGE_MMCIF
838	bool "Include MMCIF loader in romImage (EXPERIMENTAL)"
839	depends on CPU_SUBTYPE_SH7724 && EXPERIMENTAL
840	help
841	  Say Y here to include experimental MMCIF loading code in
842	  romImage. With this enabled it is possible to write the romImage
843	  kernel image to an MMC card and boot the kernel straight from
844	  the reset vector. At reset the processor Mask ROM will load the
845	  first part of the romImage which in turn loads the rest the kernel
846	  image to RAM using the MMCIF hardware block.
847
848choice
849	prompt "Kernel command line"
850	optional
851	default CMDLINE_OVERWRITE
852	help
853	  Setting this option allows the kernel command line arguments
854	  to be set.
855
856config CMDLINE_OVERWRITE
857	bool "Overwrite bootloader kernel arguments"
858	help
859	  Given string will overwrite any arguments passed in by
860	  a bootloader.
861
862config CMDLINE_EXTEND
863	bool "Extend bootloader kernel arguments"
864	help
865	  Given string will be concatenated with arguments passed in
866	  by a bootloader.
867
868endchoice
869
870config CMDLINE
871	string "Kernel command line arguments string"
872	depends on CMDLINE_OVERWRITE || CMDLINE_EXTEND
873	default "console=ttySC1,115200"
874
875endmenu
876
877menu "Bus options"
878
879config SUPERHYWAY
880	tristate "SuperHyway Bus support"
881	depends on CPU_SUBTYPE_SH4_202
882
883config MAPLE
884	bool "Maple Bus support"
885	depends on SH_DREAMCAST
886	help
887	 The Maple Bus is SEGA's serial communication bus for peripherals
888	 on the Dreamcast. Without this bus support you won't be able to
889	 get your Dreamcast keyboard etc to work, so most users
890	 probably want to say 'Y' here, unless you are only using the
891	 Dreamcast with a serial line terminal or a remote network
892	 connection.
893
894config PCI
895	bool "PCI support"
896	depends on SYS_SUPPORTS_PCI
897	select PCI_DOMAINS
898	select GENERIC_PCI_IOMAP
899	select NO_GENERIC_PCI_IOPORT_MAP
900	help
901	  Find out whether you have a PCI motherboard. PCI is the name of a
902	  bus system, i.e. the way the CPU talks to the other stuff inside
903	  your box. If you have PCI, say Y, otherwise N.
904
905config PCI_DOMAINS
906	bool
907
908source "drivers/pci/pcie/Kconfig"
909
910source "drivers/pci/Kconfig"
911
912source "drivers/pcmcia/Kconfig"
913
914source "drivers/pci/hotplug/Kconfig"
915
916endmenu
917
918menu "Executable file formats"
919
920source "fs/Kconfig.binfmt"
921
922endmenu
923
924menu "Power management options (EXPERIMENTAL)"
925depends on EXPERIMENTAL
926
927source "kernel/power/Kconfig"
928
929source "drivers/cpuidle/Kconfig"
930
931endmenu
932
933source "net/Kconfig"
934
935source "drivers/Kconfig"
936
937source "fs/Kconfig"
938
939source "arch/sh/Kconfig.debug"
940
941source "security/Kconfig"
942
943source "crypto/Kconfig"
944
945source "lib/Kconfig"
946