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