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