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