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