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