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