Merge tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik...
[firefly-linux-kernel-4.4.55.git] / arch / sh / Kconfig
1 config SUPERH
2         def_bool y
3         select EXPERT
4         select CLKDEV_LOOKUP
5         select HAVE_IDE if HAS_IOPORT
6         select HAVE_MEMBLOCK
7         select HAVE_MEMBLOCK_NODE_MAP
8         select ARCH_DISCARD_MEMBLOCK
9         select HAVE_OPROFILE
10         select HAVE_GENERIC_DMA_COHERENT
11         select HAVE_ARCH_TRACEHOOK
12         select HAVE_DMA_API_DEBUG
13         select HAVE_DMA_ATTRS
14         select HAVE_IRQ_WORK
15         select HAVE_PERF_EVENTS
16         select HAVE_DEBUG_BUGVERBOSE
17         select ARCH_HAVE_CUSTOM_GPIO_H
18         select ARCH_HAVE_NMI_SAFE_CMPXCHG if (GUSA_RB || CPU_SH4A)
19         select PERF_USE_VMALLOC
20         select HAVE_DEBUG_KMEMLEAK
21         select HAVE_KERNEL_GZIP
22         select HAVE_KERNEL_BZIP2
23         select HAVE_KERNEL_LZMA
24         select HAVE_KERNEL_XZ
25         select HAVE_KERNEL_LZO
26         select HAVE_UID16
27         select ARCH_WANT_IPC_PARSE_VERSION
28         select HAVE_SYSCALL_TRACEPOINTS
29         select HAVE_REGS_AND_STACK_ACCESS_API
30         select HAVE_GENERIC_HARDIRQS
31         select MAY_HAVE_SPARSE_IRQ
32         select IRQ_FORCED_THREADING
33         select RTC_LIB
34         select GENERIC_ATOMIC64
35         select GENERIC_IRQ_SHOW
36         select GENERIC_SMP_IDLE_THREAD
37         select GENERIC_CLOCKEVENTS
38         select GENERIC_CMOS_UPDATE if SH_SH03 || SH_DREAMCAST
39         select GENERIC_STRNCPY_FROM_USER
40         select GENERIC_STRNLEN_USER
41         select HAVE_MOD_ARCH_SPECIFIC if DWARF_UNWINDER
42         select MODULES_USE_ELF_RELA
43         select GENERIC_KERNEL_THREAD
44         select GENERIC_KERNEL_EXECVE
45         help
46           The SuperH is a RISC processor targeted for use in embedded systems
47           and consumer electronics; it was also used in the Sega Dreamcast
48           gaming console.  The SuperH port has a home page at
49           <http://www.linux-sh.org/>.
50
51 config SUPERH32
52         def_bool ARCH = "sh"
53         select HAVE_KPROBES
54         select HAVE_KRETPROBES
55         select HAVE_IOREMAP_PROT if MMU && !X2TLB
56         select HAVE_FUNCTION_TRACER
57         select HAVE_FTRACE_MCOUNT_RECORD
58         select HAVE_DYNAMIC_FTRACE
59         select HAVE_FUNCTION_TRACE_MCOUNT_TEST
60         select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE
61         select ARCH_WANT_IPC_PARSE_VERSION
62         select HAVE_FUNCTION_GRAPH_TRACER
63         select HAVE_ARCH_KGDB
64         select HAVE_HW_BREAKPOINT
65         select HAVE_MIXED_BREAKPOINTS_REGS
66         select PERF_EVENTS
67         select ARCH_HIBERNATION_POSSIBLE if MMU
68         select SPARSE_IRQ
69
70 config SUPERH64
71         def_bool ARCH = "sh64"
72         select KALLSYMS
73
74 config ARCH_DEFCONFIG
75         string
76         default "arch/sh/configs/shx3_defconfig" if SUPERH32
77         default "arch/sh/configs/cayman_defconfig" if SUPERH64
78
79 config RWSEM_GENERIC_SPINLOCK
80         def_bool y
81
82 config RWSEM_XCHGADD_ALGORITHM
83         bool
84
85 config GENERIC_BUG
86         def_bool y
87         depends on BUG && SUPERH32
88
89 config GENERIC_CSUM
90         def_bool y
91         depends on SUPERH64
92
93 config GENERIC_HWEIGHT
94         def_bool y
95
96 config IRQ_PER_CPU
97         def_bool y
98
99 config GENERIC_GPIO
100         def_bool n
101
102 config GENERIC_CALIBRATE_DELAY
103         bool
104
105 config GENERIC_LOCKBREAK
106         def_bool y
107         depends on SMP && PREEMPT
108
109 config ARCH_SUSPEND_POSSIBLE
110         def_bool n
111
112 config ARCH_HIBERNATION_POSSIBLE
113         def_bool n
114
115 config SYS_SUPPORTS_APM_EMULATION
116         bool
117         select ARCH_SUSPEND_POSSIBLE
118
119 config SYS_SUPPORTS_HUGETLBFS
120         bool
121
122 config SYS_SUPPORTS_SMP
123         bool
124
125 config SYS_SUPPORTS_NUMA
126         bool
127
128 config SYS_SUPPORTS_PCI
129         bool
130
131 config SYS_SUPPORTS_CMT
132         bool
133
134 config SYS_SUPPORTS_MTU2
135         bool
136
137 config SYS_SUPPORTS_TMU
138         bool
139
140 config STACKTRACE_SUPPORT
141         def_bool y
142
143 config LOCKDEP_SUPPORT
144         def_bool y
145
146 config HAVE_LATENCYTOP_SUPPORT
147         def_bool y
148
149 config ARCH_HAS_ILOG2_U32
150         def_bool n
151
152 config ARCH_HAS_ILOG2_U64
153         def_bool n
154
155 config ARCH_NO_VIRT_TO_BUS
156         def_bool y
157
158 config ARCH_HAS_DEFAULT_IDLE
159         def_bool y
160
161 config NO_IOPORT
162         def_bool !PCI
163         depends on !SH_CAYMAN && !SH_SH4202_MICRODEV && !SH_SHMIN && \
164                    !SH_HP6XX && !SH_SOLUTION_ENGINE
165
166 config IO_TRAPPED
167         bool
168
169 config SWAP_IO_SPACE
170         bool
171
172 config DMA_COHERENT
173         bool
174
175 config DMA_NONCOHERENT
176         def_bool !DMA_COHERENT
177
178 config NEED_DMA_MAP_STATE
179         def_bool DMA_NONCOHERENT
180
181 config NEED_SG_DMA_LENGTH
182         def_bool y
183
184 source "init/Kconfig"
185
186 source "kernel/Kconfig.freezer"
187
188 menu "System type"
189
190 #
191 # Processor families
192 #
193 config CPU_SH2
194         bool
195
196 config CPU_SH2A
197         bool
198         select CPU_SH2
199         select UNCACHED_MAPPING
200
201 config CPU_SH3
202         bool
203         select CPU_HAS_INTEVT
204         select CPU_HAS_SR_RB
205         select SYS_SUPPORTS_TMU
206
207 config CPU_SH4
208         bool
209         select CPU_HAS_INTEVT
210         select CPU_HAS_SR_RB
211         select CPU_HAS_FPU if !CPU_SH4AL_DSP
212         select SYS_SUPPORTS_TMU
213         select SYS_SUPPORTS_HUGETLBFS if MMU
214
215 config CPU_SH4A
216         bool
217         select CPU_SH4
218
219 config CPU_SH4AL_DSP
220         bool
221         select CPU_SH4A
222         select CPU_HAS_DSP
223
224 config CPU_SH5
225         bool
226         select CPU_HAS_FPU
227         select SYS_SUPPORTS_TMU
228         select SYS_SUPPORTS_HUGETLBFS if MMU
229
230 config CPU_SHX2
231         bool
232
233 config CPU_SHX3
234         bool
235         select DMA_COHERENT
236         select SYS_SUPPORTS_SMP
237         select SYS_SUPPORTS_NUMA
238
239 config ARCH_SHMOBILE
240         bool
241         select ARCH_SUSPEND_POSSIBLE
242         select PM
243         select PM_RUNTIME
244
245 config CPU_HAS_PMU
246        depends on CPU_SH4 || CPU_SH4A
247        default y
248        bool
249
250 if SUPERH32
251
252 choice
253         prompt "Processor sub-type selection"
254
255 #
256 # Processor subtypes
257 #
258
259 # SH-2 Processor Support
260
261 config CPU_SUBTYPE_SH7619
262         bool "Support SH7619 processor"
263         select CPU_SH2
264         select SYS_SUPPORTS_CMT
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_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_CMT
279         select SYS_SUPPORTS_MTU2
280         select ARCH_WANT_OPTIONAL_GPIOLIB
281
282 config CPU_SUBTYPE_SH7206
283         bool "Support SH7206 processor"
284         select CPU_SH2A
285         select SYS_SUPPORTS_CMT
286         select SYS_SUPPORTS_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_CMT
293         select SYS_SUPPORTS_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_CMT
300         select SYS_SUPPORTS_MTU2
301
302 config CPU_SUBTYPE_SH7269
303         bool "Support SH7269 processor"
304         select CPU_SH2A
305         select CPU_HAS_FPU
306         select SYS_SUPPORTS_CMT
307         select SYS_SUPPORTS_MTU2
308
309 config CPU_SUBTYPE_MXG
310         bool "Support MX-G processor"
311         select CPU_SH2A
312         select SYS_SUPPORTS_MTU2
313         help
314           Select MX-G if running on an R8A03022BG part.
315
316 # SH-3 Processor Support
317
318 config CPU_SUBTYPE_SH7705
319         bool "Support SH7705 processor"
320         select CPU_SH3
321
322 config CPU_SUBTYPE_SH7706
323         bool "Support SH7706 processor"
324         select CPU_SH3
325         help
326           Select SH7706 if you have a 133 Mhz SH-3 HD6417706 CPU.
327
328 config CPU_SUBTYPE_SH7707
329         bool "Support SH7707 processor"
330         select CPU_SH3
331         help
332           Select SH7707 if you have a  60 Mhz SH-3 HD6417707 CPU.
333
334 config CPU_SUBTYPE_SH7708
335         bool "Support SH7708 processor"
336         select CPU_SH3
337         help
338           Select SH7708 if you have a  60 Mhz SH-3 HD6417708S or
339           if you have a 100 Mhz SH-3 HD6417708R CPU.
340
341 config CPU_SUBTYPE_SH7709
342         bool "Support SH7709 processor"
343         select CPU_SH3
344         help
345           Select SH7709 if you have a  80 Mhz SH-3 HD6417709 CPU.
346
347 config CPU_SUBTYPE_SH7710
348         bool "Support SH7710 processor"
349         select CPU_SH3
350         select CPU_HAS_DSP
351         help
352           Select SH7710 if you have a SH3-DSP SH7710 CPU.
353
354 config CPU_SUBTYPE_SH7712
355         bool "Support SH7712 processor"
356         select CPU_SH3
357         select CPU_HAS_DSP
358         help
359           Select SH7712 if you have a SH3-DSP SH7712 CPU.
360
361 config CPU_SUBTYPE_SH7720
362         bool "Support SH7720 processor"
363         select CPU_SH3
364         select CPU_HAS_DSP
365         select SYS_SUPPORTS_CMT
366         select ARCH_WANT_OPTIONAL_GPIOLIB
367         select USB_ARCH_HAS_OHCI
368         select USB_OHCI_SH if USB_OHCI_HCD
369         help
370           Select SH7720 if you have a SH3-DSP SH7720 CPU.
371
372 config CPU_SUBTYPE_SH7721
373         bool "Support SH7721 processor"
374         select CPU_SH3
375         select CPU_HAS_DSP
376         select SYS_SUPPORTS_CMT
377         select USB_ARCH_HAS_OHCI
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_CMT
433         select ARCH_WANT_OPTIONAL_GPIOLIB
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_CMT
444         select ARCH_WANT_OPTIONAL_GPIOLIB
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 ARCH_WANT_OPTIONAL_GPIOLIB
453         select USB_ARCH_HAS_OHCI
454         select USB_ARCH_HAS_EHCI
455         help
456           Select SH7734 if you have a SH4A SH7734 CPU.
457
458 config CPU_SUBTYPE_SH7757
459         bool "Support SH7757 processor"
460         select CPU_SH4A
461         select CPU_SHX2
462         select ARCH_WANT_OPTIONAL_GPIOLIB
463         select USB_ARCH_HAS_OHCI
464         select USB_ARCH_HAS_EHCI
465         help
466           Select SH7757 if you have a SH4A SH7757 CPU.
467
468 config CPU_SUBTYPE_SH7763
469         bool "Support SH7763 processor"
470         select CPU_SH4A
471         select USB_ARCH_HAS_OHCI
472         select USB_OHCI_SH if USB_OHCI_HCD
473         help
474           Select SH7763 if you have a SH4A SH7763(R5S77631) CPU.
475
476 config CPU_SUBTYPE_SH7770
477         bool "Support SH7770 processor"
478         select CPU_SH4A
479
480 config CPU_SUBTYPE_SH7780
481         bool "Support SH7780 processor"
482         select CPU_SH4A
483
484 config CPU_SUBTYPE_SH7785
485         bool "Support SH7785 processor"
486         select CPU_SH4A
487         select CPU_SHX2
488         select ARCH_SPARSEMEM_ENABLE
489         select SYS_SUPPORTS_NUMA
490         select ARCH_WANT_OPTIONAL_GPIOLIB
491
492 config CPU_SUBTYPE_SH7786
493         bool "Support SH7786 processor"
494         select CPU_SH4A
495         select CPU_SHX3
496         select CPU_HAS_PTEAEX
497         select GENERIC_CLOCKEVENTS_BROADCAST if SMP
498         select ARCH_WANT_OPTIONAL_GPIOLIB
499         select USB_ARCH_HAS_OHCI
500         select USB_OHCI_SH if USB_OHCI_HCD
501         select USB_ARCH_HAS_EHCI
502         select USB_EHCI_SH if USB_EHCI_HCD
503
504 config CPU_SUBTYPE_SHX3
505         bool "Support SH-X3 processor"
506         select CPU_SH4A
507         select CPU_SHX3
508         select GENERIC_CLOCKEVENTS_BROADCAST if SMP
509         select ARCH_REQUIRE_GPIOLIB
510
511 # SH4AL-DSP Processor Support
512
513 config CPU_SUBTYPE_SH7343
514         bool "Support SH7343 processor"
515         select CPU_SH4AL_DSP
516         select ARCH_SHMOBILE
517         select SYS_SUPPORTS_CMT
518
519 config CPU_SUBTYPE_SH7722
520         bool "Support SH7722 processor"
521         select CPU_SH4AL_DSP
522         select CPU_SHX2
523         select ARCH_SHMOBILE
524         select ARCH_SPARSEMEM_ENABLE
525         select SYS_SUPPORTS_NUMA
526         select SYS_SUPPORTS_CMT
527         select ARCH_WANT_OPTIONAL_GPIOLIB
528
529 config CPU_SUBTYPE_SH7366
530         bool "Support SH7366 processor"
531         select CPU_SH4AL_DSP
532         select CPU_SHX2
533         select ARCH_SHMOBILE
534         select ARCH_SPARSEMEM_ENABLE
535         select SYS_SUPPORTS_NUMA
536         select SYS_SUPPORTS_CMT
537
538 endchoice
539
540 endif
541
542 if SUPERH64
543
544 choice
545         prompt "Processor sub-type selection"
546
547 # SH-5 Processor Support
548
549 config CPU_SUBTYPE_SH5_101
550         bool "Support SH5-101 processor"
551         select CPU_SH5
552
553 config CPU_SUBTYPE_SH5_103
554         bool "Support SH5-103 processor"
555         select CPU_SH5
556
557 endchoice
558
559 endif
560
561 source "arch/sh/mm/Kconfig"
562  
563 source "arch/sh/Kconfig.cpu"
564
565 source "arch/sh/boards/Kconfig"
566
567 menu "Timer and clock configuration"
568
569 config SH_TIMER_TMU
570         bool "TMU timer driver"
571         depends on SYS_SUPPORTS_TMU
572         default y
573         help
574           This enables the build of the TMU timer driver.
575
576 config SH_TIMER_CMT
577         bool "CMT timer driver"
578         depends on SYS_SUPPORTS_CMT
579         default y
580         help
581           This enables build of the CMT timer driver.
582
583 config SH_TIMER_MTU2
584         bool "MTU2 timer driver"
585         depends on SYS_SUPPORTS_MTU2
586         default y
587         help
588           This enables build of the MTU2 timer driver.
589
590 config SH_PCLK_FREQ
591         int "Peripheral clock frequency (in Hz)"
592         depends on SH_CLK_CPG_LEGACY
593         default "31250000" if CPU_SUBTYPE_SH7619
594         default "33333333" if CPU_SUBTYPE_SH7770 || \
595                               CPU_SUBTYPE_SH7760 || \
596                               CPU_SUBTYPE_SH7705 || \
597                               CPU_SUBTYPE_SH7203 || \
598                               CPU_SUBTYPE_SH7206 || \
599                               CPU_SUBTYPE_SH7263 || \
600                               CPU_SUBTYPE_MXG
601         default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
602         default "66000000" if CPU_SUBTYPE_SH4_202
603         default "50000000"
604         help
605           This option is used to specify the peripheral clock frequency.
606           This is necessary for determining the reference clock value on
607           platforms lacking an RTC.
608
609 config SH_CLK_CPG
610         def_bool y
611
612 config SH_CLK_CPG_LEGACY
613         depends on SH_CLK_CPG
614         def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE && \
615                       !CPU_SHX3 && !CPU_SUBTYPE_SH7757 && \
616                       !CPU_SUBTYPE_SH7734 && !CPU_SUBTYPE_SH7264 && \
617                       !CPU_SUBTYPE_SH7269
618
619 endmenu
620
621 menu "CPU Frequency scaling"
622
623 source "drivers/cpufreq/Kconfig"
624
625 config SH_CPU_FREQ
626         tristate "SuperH CPU Frequency driver"
627         depends on CPU_FREQ
628         select CPU_FREQ_TABLE
629         help
630           This adds the cpufreq driver for SuperH. Any CPU that supports
631           clock rate rounding through the clock framework can use this
632           driver. While it will make the kernel slightly larger, this is
633           harmless for CPUs that don't support rate rounding. The driver
634           will also generate a notice in the boot log before disabling
635           itself if the CPU in question is not capable of rate rounding.
636
637           For details, take a look at <file:Documentation/cpu-freq>.
638
639           If unsure, say N.
640
641 endmenu
642
643 source "arch/sh/drivers/Kconfig"
644
645 endmenu
646
647 menu "Kernel features"
648
649 source kernel/Kconfig.hz
650
651 config KEXEC
652         bool "kexec system call (EXPERIMENTAL)"
653         depends on SUPERH32 && EXPERIMENTAL && MMU
654         help
655           kexec is a system call that implements the ability to shutdown your
656           current kernel, and to start another kernel.  It is like a reboot
657           but it is independent of the system firmware.  And like a reboot
658           you can start any kernel with it, not just Linux.
659
660           The name comes from the similarity to the exec system call.
661
662           It is an ongoing process to be certain the hardware in a machine
663           is properly shutdown, so do not be surprised if this code does not
664           initially work for you.  It may help to enable device hotplugging
665           support.  As of this writing the exact hardware interface is
666           strongly in flux, so no good recommendation can be made.
667
668 config CRASH_DUMP
669         bool "kernel crash dumps (EXPERIMENTAL)"
670         depends on SUPERH32 && EXPERIMENTAL && BROKEN_ON_SMP
671         help
672           Generate crash dump after being started by kexec.
673           This should be normally only set in special crash dump kernels
674           which are loaded in the main kernel with kexec-tools into
675           a specially reserved region and then later executed after
676           a crash by kdump/kexec. The crash dump kernel must be compiled
677           to a memory address not used by the main kernel using
678           PHYSICAL_START.
679
680           For more details see Documentation/kdump/kdump.txt
681
682 config KEXEC_JUMP
683         bool "kexec jump (EXPERIMENTAL)"
684         depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL
685         help
686           Jump between original kernel and kexeced kernel and invoke
687           code via KEXEC
688
689 config PHYSICAL_START
690         hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP)
691         default MEMORY_START
692         ---help---
693           This gives the physical address where the kernel is loaded
694           and is ordinarily the same as MEMORY_START.
695
696           Different values are primarily used in the case of kexec on panic
697           where the fail safe kernel needs to run at a different address
698           than the panic-ed kernel.
699
700 config SECCOMP
701         bool "Enable seccomp to safely compute untrusted bytecode"
702         depends on PROC_FS
703         help
704           This kernel feature is useful for number crunching applications
705           that may need to compute untrusted bytecode during their
706           execution. By using pipes or other transports made available to
707           the process as file descriptors supporting the read/write
708           syscalls, it's possible to isolate those applications in
709           their own address space using seccomp. Once seccomp is
710           enabled via prctl, it cannot be disabled and the task is only
711           allowed to execute a few safe syscalls defined by each seccomp
712           mode.
713
714           If unsure, say N.
715
716 config CC_STACKPROTECTOR
717         bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
718         depends on SUPERH32 && EXPERIMENTAL
719         help
720           This option turns on the -fstack-protector GCC feature. This
721           feature puts, at the beginning of functions, a canary value on
722           the stack just before the return address, and validates
723           the value just before actually returning.  Stack based buffer
724           overflows (that need to overwrite this return address) now also
725           overwrite the canary, which gets detected and the attack is then
726           neutralized via a kernel panic.
727
728           This feature requires gcc version 4.2 or above.
729
730 config SMP
731         bool "Symmetric multi-processing support"
732         depends on SYS_SUPPORTS_SMP
733         select USE_GENERIC_SMP_HELPERS
734         ---help---
735           This enables support for systems with more than one CPU. If you have
736           a system with only one CPU, like most personal computers, say N. If
737           you have a system with more than one CPU, say Y.
738
739           If you say N here, the kernel will run on single and multiprocessor
740           machines, but will use only one CPU of a multiprocessor machine. If
741           you say Y here, the kernel will run on many, but not all,
742           singleprocessor machines. On a singleprocessor machine, the kernel
743           will run faster if you say N here.
744
745           People using multiprocessor machines who say Y here should also say
746           Y to "Enhanced Real Time Clock Support", below.
747
748           See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
749           available at <http://www.tldp.org/docs.html#howto>.
750
751           If you don't know what to do here, say N.
752
753 config NR_CPUS
754         int "Maximum number of CPUs (2-32)"
755         range 2 32
756         depends on SMP
757         default "4" if CPU_SUBTYPE_SHX3
758         default "2"
759         help
760           This allows you to specify the maximum number of CPUs which this
761           kernel will support.  The maximum supported value is 32 and the
762           minimum value which makes sense is 2.
763
764           This is purely to save memory - each supported CPU adds
765           approximately eight kilobytes to the kernel image.
766
767 config HOTPLUG_CPU
768         bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
769         depends on SMP && HOTPLUG && EXPERIMENTAL
770         help
771           Say Y here to experiment with turning CPUs off and on.  CPUs
772           can be controlled through /sys/devices/system/cpu.
773
774 source "kernel/Kconfig.preempt"
775
776 config GUSA
777         def_bool y
778         depends on !SMP && SUPERH32
779         help
780           This enables support for gUSA (general UserSpace Atomicity).
781           This is the default implementation for both UP and non-ll/sc
782           CPUs, and is used by the libc, amongst others.
783
784           For additional information, design information can be found 
785           in <http://lc.linux.or.jp/lc2002/papers/niibe0919p.pdf>.
786
787           This should only be disabled for special cases where alternate
788           atomicity implementations exist.
789
790 config GUSA_RB
791         bool "Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)"
792         depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
793         help
794           Enabling this option will allow the kernel to implement some
795           atomic operations using a software implementation of load-locked/
796           store-conditional (LLSC). On machines which do not have hardware
797           LLSC, this should be more efficient than the other alternative of
798           disabling interrupts around the atomic sequence.
799
800 config HW_PERF_EVENTS
801         bool "Enable hardware performance counter support for perf events"
802         depends on PERF_EVENTS && CPU_HAS_PMU
803         default y
804         help
805           Enable hardware performance counter support for perf events. If
806           disabled, perf events will use software events only.
807
808 source "drivers/sh/Kconfig"
809
810 endmenu
811
812 menu "Boot options"
813
814 config ZERO_PAGE_OFFSET
815         hex
816         default "0x00010000" if PAGE_SIZE_64KB || SH_RTS7751R2D || \
817                                 SH_7751_SOLUTION_ENGINE
818         default "0x00004000" if PAGE_SIZE_16KB || SH_SH03
819         default "0x00002000" if PAGE_SIZE_8KB
820         default "0x00001000"
821         help
822           This sets the default offset of zero page.
823
824 config BOOT_LINK_OFFSET
825         hex
826         default "0x00210000" if SH_SHMIN
827         default "0x00400000" if SH_CAYMAN
828         default "0x00810000" if SH_7780_SOLUTION_ENGINE
829         default "0x009e0000" if SH_TITAN
830         default "0x01800000" if SH_SDK7780
831         default "0x02000000" if SH_EDOSK7760
832         default "0x00800000"
833         help
834           This option allows you to set the link address offset of the zImage.
835           This can be useful if you are on a board which has a small amount of
836           memory.
837
838 config ENTRY_OFFSET
839         hex
840         default "0x00001000" if PAGE_SIZE_4KB
841         default "0x00002000" if PAGE_SIZE_8KB
842         default "0x00004000" if PAGE_SIZE_16KB
843         default "0x00010000" if PAGE_SIZE_64KB
844         default "0x00000000"
845
846 config ROMIMAGE_MMCIF
847         bool "Include MMCIF loader in romImage (EXPERIMENTAL)"
848         depends on CPU_SUBTYPE_SH7724 && EXPERIMENTAL
849         help
850           Say Y here to include experimental MMCIF loading code in
851           romImage. With this enabled it is possible to write the romImage
852           kernel image to an MMC card and boot the kernel straight from
853           the reset vector. At reset the processor Mask ROM will load the
854           first part of the romImage which in turn loads the rest the kernel
855           image to RAM using the MMCIF hardware block.
856
857 choice
858         prompt "Kernel command line"
859         optional
860         default CMDLINE_OVERWRITE
861         help
862           Setting this option allows the kernel command line arguments
863           to be set.
864
865 config CMDLINE_OVERWRITE
866         bool "Overwrite bootloader kernel arguments"
867         help
868           Given string will overwrite any arguments passed in by
869           a bootloader.
870
871 config CMDLINE_EXTEND
872         bool "Extend bootloader kernel arguments"
873         help
874           Given string will be concatenated with arguments passed in
875           by a bootloader.
876
877 endchoice
878
879 config CMDLINE
880         string "Kernel command line arguments string"
881         depends on CMDLINE_OVERWRITE || CMDLINE_EXTEND
882         default "console=ttySC1,115200"
883
884 endmenu
885
886 menu "Bus options"
887
888 config SUPERHYWAY
889         tristate "SuperHyway Bus support"
890         depends on CPU_SUBTYPE_SH4_202
891
892 config MAPLE
893         bool "Maple Bus support"
894         depends on SH_DREAMCAST
895         help
896          The Maple Bus is SEGA's serial communication bus for peripherals
897          on the Dreamcast. Without this bus support you won't be able to
898          get your Dreamcast keyboard etc to work, so most users
899          probably want to say 'Y' here, unless you are only using the
900          Dreamcast with a serial line terminal or a remote network
901          connection.
902
903 config PCI
904         bool "PCI support"
905         depends on SYS_SUPPORTS_PCI
906         select PCI_DOMAINS
907         select GENERIC_PCI_IOMAP
908         select NO_GENERIC_PCI_IOPORT_MAP
909         help
910           Find out whether you have a PCI motherboard. PCI is the name of a
911           bus system, i.e. the way the CPU talks to the other stuff inside
912           your box. If you have PCI, say Y, otherwise N.
913
914 config PCI_DOMAINS
915         bool
916
917 source "drivers/pci/pcie/Kconfig"
918
919 source "drivers/pci/Kconfig"
920
921 source "drivers/pcmcia/Kconfig"
922
923 source "drivers/pci/hotplug/Kconfig"
924
925 endmenu
926
927 menu "Executable file formats"
928
929 source "fs/Kconfig.binfmt"
930
931 endmenu
932
933 menu "Power management options (EXPERIMENTAL)"
934 depends on EXPERIMENTAL
935
936 source "kernel/power/Kconfig"
937
938 source "drivers/cpuidle/Kconfig"
939
940 endmenu
941
942 source "net/Kconfig"
943
944 source "drivers/Kconfig"
945
946 source "fs/Kconfig"
947
948 source "arch/sh/Kconfig.debug"
949
950 source "security/Kconfig"
951
952 source "crypto/Kconfig"
953
954 source "lib/Kconfig"