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