Merge tag 'selinux-pr-20200416' of git://git.kernel.org/pub/scm/linux/kernel/git...
[platform/kernel/linux-starfive.git] / arch / sh / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2 config 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
64 config 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
85 config SUPERH64
86         def_bool "$(ARCH)" = "sh64"
87         select HAVE_EXIT_THREAD
88         select KALLSYMS
89
90 config GENERIC_BUG
91         def_bool y
92         depends on BUG && SUPERH32
93
94 config GENERIC_CSUM
95         def_bool y
96         depends on SUPERH64
97
98 config GENERIC_HWEIGHT
99         def_bool y
100
101 config GENERIC_CALIBRATE_DELAY
102         bool
103
104 config GENERIC_LOCKBREAK
105         def_bool y
106         depends on SMP && PREEMPTION
107
108 config ARCH_SUSPEND_POSSIBLE
109         def_bool n
110
111 config ARCH_HIBERNATION_POSSIBLE
112         def_bool n
113
114 config SYS_SUPPORTS_APM_EMULATION
115         bool
116         select ARCH_SUSPEND_POSSIBLE
117
118 config SYS_SUPPORTS_HUGETLBFS
119         bool
120
121 config SYS_SUPPORTS_SMP
122         bool
123
124 config SYS_SUPPORTS_NUMA
125         bool
126
127 config STACKTRACE_SUPPORT
128         def_bool y
129
130 config LOCKDEP_SUPPORT
131         def_bool y
132
133 config ARCH_HAS_ILOG2_U32
134         def_bool n
135
136 config ARCH_HAS_ILOG2_U64
137         def_bool n
138
139 config NO_IOPORT_MAP
140         def_bool !PCI
141         depends on !SH_CAYMAN && !SH_SH4202_MICRODEV && !SH_SHMIN && \
142                    !SH_HP6XX && !SH_SOLUTION_ENGINE
143
144 config IO_TRAPPED
145         bool
146
147 config SWAP_IO_SPACE
148         bool
149
150 config DMA_COHERENT
151         bool
152
153 config DMA_NONCOHERENT
154         def_bool !DMA_COHERENT
155         select ARCH_HAS_SYNC_DMA_FOR_DEVICE
156
157 config PGTABLE_LEVELS
158         default 3 if X2TLB
159         default 2
160
161 menu "System type"
162
163 #
164 # Processor families
165 #
166 config CPU_SH2
167         bool
168         select SH_INTC
169
170 config CPU_SH2A
171         bool
172         select CPU_SH2
173         select UNCACHED_MAPPING
174
175 config CPU_J2
176         bool
177         select CPU_SH2
178         select OF
179         select OF_EARLY_FLATTREE
180
181 config 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
188 config 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
197 config CPU_SH4A
198         bool
199         select CPU_SH4
200
201 config CPU_SH4AL_DSP
202         bool
203         select CPU_SH4A
204         select CPU_HAS_DSP
205
206 config CPU_SH5
207         bool
208         select CPU_HAS_FPU
209         select SYS_SUPPORTS_SH_TMU
210         select SYS_SUPPORTS_HUGETLBFS if MMU
211
212 config CPU_SHX2
213         bool
214
215 config CPU_SHX3
216         bool
217         select DMA_COHERENT
218         select SYS_SUPPORTS_SMP
219         select SYS_SUPPORTS_NUMA
220
221 config ARCH_SHMOBILE
222         bool
223         select ARCH_SUSPEND_POSSIBLE
224         select PM
225
226 config CPU_HAS_PMU
227        depends on CPU_SH4 || CPU_SH4A
228        default y
229        bool
230
231 if SUPERH32
232
233 choice
234         prompt "Processor sub-type selection"
235
236 #
237 # Processor subtypes
238 #
239
240 # SH-2 Processor Support
241
242 config CPU_SUBTYPE_SH7619
243         bool "Support SH7619 processor"
244         select CPU_SH2
245         select SYS_SUPPORTS_SH_CMT
246
247 config 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
255 config CPU_SUBTYPE_SH7201
256         bool "Support SH7201 processor"
257         select CPU_SH2A
258         select CPU_HAS_FPU
259         select SYS_SUPPORTS_SH_MTU2
260  
261 config 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
269 config 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
275 config 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
282 config 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
290 config 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
298 config 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
307 config CPU_SUBTYPE_SH7705
308         bool "Support SH7705 processor"
309         select CPU_SH3
310
311 config 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
317 config 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
323 config 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
330 config 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
336 config 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
343 config 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
350 config 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
360 config 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
371 config 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
377 config 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
384 config CPU_SUBTYPE_SH7750R
385         bool "Support SH7750R processor"
386         select CPU_SH4
387
388 config CPU_SUBTYPE_SH7750S
389         bool "Support SH7750S processor"
390         select CPU_SH4
391
392 config 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
399 config CPU_SUBTYPE_SH7751R
400         bool "Support SH7751R processor"
401         select CPU_SH4
402
403 config CPU_SUBTYPE_SH7760
404         bool "Support SH7760 processor"
405         select CPU_SH4
406
407 config CPU_SUBTYPE_SH4_202
408         bool "Support SH4-202 processor"
409         select CPU_SH4
410
411 # SH-4A Processor Support
412
413 config 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
424 config 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
435 config 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
443 config 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
451 config 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
458 config CPU_SUBTYPE_SH7770
459         bool "Support SH7770 processor"
460         select CPU_SH4A
461
462 config CPU_SUBTYPE_SH7780
463         bool "Support SH7780 processor"
464         select CPU_SH4A
465
466 config 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
474 config 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
484 config 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
494 config CPU_SUBTYPE_SH7343
495         bool "Support SH7343 processor"
496         select CPU_SH4AL_DSP
497         select ARCH_SHMOBILE
498         select SYS_SUPPORTS_SH_CMT
499
500 config 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
510 config 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
519 endchoice
520
521 endif
522
523 if SUPERH64
524
525 choice
526         prompt "Processor sub-type selection"
527
528 # SH-5 Processor Support
529
530 config CPU_SUBTYPE_SH5_101
531         bool "Support SH5-101 processor"
532         select CPU_SH5
533
534 config CPU_SUBTYPE_SH5_103
535         bool "Support SH5-103 processor"
536         select CPU_SH5
537
538 endchoice
539
540 endif
541
542 source "arch/sh/mm/Kconfig"
543  
544 source "arch/sh/Kconfig.cpu"
545
546 source "arch/sh/boards/Kconfig"
547
548 menu "Timer and clock configuration"
549
550 config 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
569 config SH_CLK_CPG
570         def_bool y
571
572 config 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
579 endmenu
580
581 menu "CPU Frequency scaling"
582 source "drivers/cpufreq/Kconfig"
583 endmenu
584
585 source "arch/sh/drivers/Kconfig"
586
587 endmenu
588
589 menu "Kernel features"
590
591 source "kernel/Kconfig.hz"
592
593 config 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
611 config 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
625 config 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
632 config 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
643 config 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
659 config 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
681 config 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
695 config 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
702 config 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
716 config 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
726 config 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
734 source "drivers/sh/Kconfig"
735
736 endmenu
737
738 menu "Boot options"
739
740 config 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
751 config 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
760 config 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
770 config 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
784 config 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
792 config 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
803 choice
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
811 config CMDLINE_OVERWRITE
812         bool "Overwrite bootloader kernel arguments"
813         help
814           Given string will overwrite any arguments passed in by
815           a bootloader.
816
817 config 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
823 endchoice
824
825 config CMDLINE
826         string "Kernel command line arguments string"
827         depends on CMDLINE_OVERWRITE || CMDLINE_EXTEND
828         default "console=ttySC1,115200"
829
830 endmenu
831
832 menu "Bus options"
833
834 config SUPERHYWAY
835         tristate "SuperHyway Bus support"
836         depends on CPU_SUBTYPE_SH4_202
837
838 config 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
849 endmenu
850
851 menu "Power management options (EXPERIMENTAL)"
852
853 source "kernel/power/Kconfig"
854
855 source "drivers/cpuidle/Kconfig"
856
857 endmenu