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