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