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