xref: /linux/arch/sh/Kconfig (revision b233b28eac0cc37d07c2d007ea08c86c778c5af4)
1#
2# For a description of the syntax of this configuration file,
3# see Documentation/kbuild/kconfig-language.txt.
4#
5
6mainmenu "Linux/SuperH Kernel Configuration"
7
8config SUPERH
9	def_bool y
10	select EMBEDDED
11	select HAVE_CLK
12	select HAVE_IDE
13	select HAVE_OPROFILE
14	select HAVE_GENERIC_DMA_COHERENT
15	select HAVE_IOREMAP_PROT if MMU
16	select HAVE_ARCH_TRACEHOOK
17	help
18	  The SuperH is a RISC processor targeted for use in embedded systems
19	  and consumer electronics; it was also used in the Sega Dreamcast
20	  gaming console.  The SuperH port has a home page at
21	  <http://www.linux-sh.org/>.
22
23config SUPERH32
24	def_bool !SUPERH64
25	select HAVE_KPROBES
26	select HAVE_KRETPROBES
27	select HAVE_FUNCTION_TRACER
28	select HAVE_FTRACE_MCOUNT_RECORD
29	select HAVE_DYNAMIC_FTRACE
30	select HAVE_ARCH_KGDB
31
32config SUPERH64
33	def_bool y if CPU_SH5
34
35config ARCH_DEFCONFIG
36	string
37	default "arch/sh/configs/shx3_defconfig" if SUPERH32
38	default "arch/sh/configs/cayman_defconfig" if SUPERH64
39
40config RWSEM_GENERIC_SPINLOCK
41	def_bool y
42
43config RWSEM_XCHGADD_ALGORITHM
44	bool
45
46config GENERIC_BUG
47	def_bool y
48	depends on BUG && SUPERH32
49
50config GENERIC_FIND_NEXT_BIT
51	def_bool y
52
53config GENERIC_HWEIGHT
54	def_bool y
55
56config GENERIC_HARDIRQS
57	def_bool y
58
59config GENERIC_HARDIRQS_NO__DO_IRQ
60	def_bool y
61
62config GENERIC_IRQ_PROBE
63	def_bool y
64
65config GENERIC_GPIO
66	def_bool n
67
68config GENERIC_CALIBRATE_DELAY
69	bool
70
71config GENERIC_IOMAP
72	bool
73
74config GENERIC_TIME
75	def_bool n
76
77config GENERIC_CLOCKEVENTS
78	def_bool n
79
80config GENERIC_CLOCKEVENTS_BROADCAST
81	bool
82
83config GENERIC_LOCKBREAK
84	def_bool y
85	depends on SMP && PREEMPT
86
87config SYS_SUPPORTS_PM
88	bool
89	depends on !SMP
90
91config ARCH_SUSPEND_POSSIBLE
92	def_bool n
93
94config ARCH_HIBERNATION_POSSIBLE
95	def_bool n
96
97config SYS_SUPPORTS_APM_EMULATION
98	bool
99	select ARCH_SUSPEND_POSSIBLE
100
101config SYS_SUPPORTS_SMP
102	bool
103
104config SYS_SUPPORTS_NUMA
105	bool
106
107config SYS_SUPPORTS_PCI
108	bool
109
110config SYS_SUPPORTS_CMT
111	bool
112
113config STACKTRACE_SUPPORT
114	def_bool y
115
116config LOCKDEP_SUPPORT
117	def_bool y
118
119config HAVE_LATENCYTOP_SUPPORT
120	def_bool y
121	depends on !SMP
122
123config ARCH_HAS_ILOG2_U32
124	def_bool n
125
126config ARCH_HAS_ILOG2_U64
127	def_bool n
128
129config ARCH_NO_VIRT_TO_BUS
130	def_bool y
131
132config IO_TRAPPED
133	bool
134
135source "init/Kconfig"
136
137source "kernel/Kconfig.freezer"
138
139menu "System type"
140
141#
142# Processor families
143#
144config CPU_SH2
145	bool
146
147config CPU_SH2A
148	bool
149	select CPU_SH2
150
151config CPU_SH3
152	bool
153	select CPU_HAS_INTEVT
154	select CPU_HAS_SR_RB
155
156config CPU_SH4
157	bool
158	select CPU_HAS_INTEVT
159	select CPU_HAS_SR_RB
160	select CPU_HAS_PTEA if !CPU_SH4A || CPU_SHX2
161	select CPU_HAS_FPU if !CPU_SH4AL_DSP
162
163config CPU_SH4A
164	bool
165	select CPU_SH4
166
167config CPU_SH4AL_DSP
168	bool
169	select CPU_SH4A
170	select CPU_HAS_DSP
171
172config CPU_SH5
173	bool
174	select CPU_HAS_FPU
175
176config CPU_SHX2
177	bool
178
179config CPU_SHX3
180	bool
181
182choice
183	prompt "Processor sub-type selection"
184
185#
186# Processor subtypes
187#
188
189# SH-2 Processor Support
190
191config CPU_SUBTYPE_SH7619
192	bool "Support SH7619 processor"
193	select CPU_SH2
194	select SYS_SUPPORTS_CMT
195
196# SH-2A Processor Support
197
198config CPU_SUBTYPE_SH7201
199	bool "Support SH7201 processor"
200	select CPU_SH2A
201	select CPU_HAS_FPU
202
203config CPU_SUBTYPE_SH7203
204	bool "Support SH7203 processor"
205	select CPU_SH2A
206	select CPU_HAS_FPU
207	select SYS_SUPPORTS_CMT
208
209config CPU_SUBTYPE_SH7206
210	bool "Support SH7206 processor"
211	select CPU_SH2A
212	select SYS_SUPPORTS_CMT
213
214config CPU_SUBTYPE_SH7263
215	bool "Support SH7263 processor"
216	select CPU_SH2A
217	select CPU_HAS_FPU
218	select SYS_SUPPORTS_CMT
219
220config CPU_SUBTYPE_MXG
221	bool "Support MX-G processor"
222	select CPU_SH2A
223	help
224	  Select MX-G if running on an R8A03022BG part.
225
226# SH-3 Processor Support
227
228config CPU_SUBTYPE_SH7705
229	bool "Support SH7705 processor"
230	select CPU_SH3
231
232config CPU_SUBTYPE_SH7706
233	bool "Support SH7706 processor"
234	select CPU_SH3
235	help
236	  Select SH7706 if you have a 133 Mhz SH-3 HD6417706 CPU.
237
238config CPU_SUBTYPE_SH7707
239	bool "Support SH7707 processor"
240	select CPU_SH3
241	help
242	  Select SH7707 if you have a  60 Mhz SH-3 HD6417707 CPU.
243
244config CPU_SUBTYPE_SH7708
245	bool "Support SH7708 processor"
246	select CPU_SH3
247	help
248	  Select SH7708 if you have a  60 Mhz SH-3 HD6417708S or
249	  if you have a 100 Mhz SH-3 HD6417708R CPU.
250
251config CPU_SUBTYPE_SH7709
252	bool "Support SH7709 processor"
253	select CPU_SH3
254	help
255	  Select SH7709 if you have a  80 Mhz SH-3 HD6417709 CPU.
256
257config CPU_SUBTYPE_SH7710
258	bool "Support SH7710 processor"
259	select CPU_SH3
260	select CPU_HAS_DSP
261	help
262	  Select SH7710 if you have a SH3-DSP SH7710 CPU.
263
264config CPU_SUBTYPE_SH7712
265	bool "Support SH7712 processor"
266	select CPU_SH3
267	select CPU_HAS_DSP
268	help
269	  Select SH7712 if you have a SH3-DSP SH7712 CPU.
270
271config CPU_SUBTYPE_SH7720
272	bool "Support SH7720 processor"
273	select CPU_SH3
274	select CPU_HAS_DSP
275	help
276	  Select SH7720 if you have a SH3-DSP SH7720 CPU.
277
278config CPU_SUBTYPE_SH7721
279	bool "Support SH7721 processor"
280	select CPU_SH3
281	select CPU_HAS_DSP
282	help
283	  Select SH7721 if you have a SH3-DSP SH7721 CPU.
284
285# SH-4 Processor Support
286
287config CPU_SUBTYPE_SH7750
288	bool "Support SH7750 processor"
289	select CPU_SH4
290	help
291	  Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.
292
293config CPU_SUBTYPE_SH7091
294	bool "Support SH7091 processor"
295	select CPU_SH4
296	help
297	  Select SH7091 if you have an SH-4 based Sega device (such as
298	  the Dreamcast, Naomi, and Naomi 2).
299
300config CPU_SUBTYPE_SH7750R
301	bool "Support SH7750R processor"
302	select CPU_SH4
303
304config CPU_SUBTYPE_SH7750S
305	bool "Support SH7750S processor"
306	select CPU_SH4
307
308config CPU_SUBTYPE_SH7751
309	bool "Support SH7751 processor"
310	select CPU_SH4
311	help
312	  Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU,
313	  or if you have a HD6417751R CPU.
314
315config CPU_SUBTYPE_SH7751R
316	bool "Support SH7751R processor"
317	select CPU_SH4
318
319config CPU_SUBTYPE_SH7760
320	bool "Support SH7760 processor"
321	select CPU_SH4
322
323config CPU_SUBTYPE_SH4_202
324	bool "Support SH4-202 processor"
325	select CPU_SH4
326
327# SH-4A Processor Support
328
329config CPU_SUBTYPE_SH7723
330	bool "Support SH7723 processor"
331	select CPU_SH4A
332	select CPU_SHX2
333	select ARCH_SPARSEMEM_ENABLE
334	select SYS_SUPPORTS_CMT
335	help
336	  Select SH7723 if you have an SH-MobileR2 CPU.
337
338config CPU_SUBTYPE_SH7763
339	bool "Support SH7763 processor"
340	select CPU_SH4A
341	help
342	  Select SH7763 if you have a SH4A SH7763(R5S77631) CPU.
343
344config CPU_SUBTYPE_SH7770
345	bool "Support SH7770 processor"
346	select CPU_SH4A
347
348config CPU_SUBTYPE_SH7780
349	bool "Support SH7780 processor"
350	select CPU_SH4A
351
352config CPU_SUBTYPE_SH7785
353	bool "Support SH7785 processor"
354	select CPU_SH4A
355	select CPU_SHX2
356	select ARCH_SPARSEMEM_ENABLE
357	select SYS_SUPPORTS_NUMA
358
359config CPU_SUBTYPE_SHX3
360	bool "Support SH-X3 processor"
361	select CPU_SH4A
362	select CPU_SHX3
363	select ARCH_SPARSEMEM_ENABLE
364	select SYS_SUPPORTS_NUMA
365	select SYS_SUPPORTS_SMP
366	select GENERIC_CLOCKEVENTS_BROADCAST if SMP
367
368# SH4AL-DSP Processor Support
369
370config CPU_SUBTYPE_SH7343
371	bool "Support SH7343 processor"
372	select CPU_SH4AL_DSP
373	select SYS_SUPPORTS_CMT
374
375config CPU_SUBTYPE_SH7722
376	bool "Support SH7722 processor"
377	select CPU_SH4AL_DSP
378	select CPU_SHX2
379	select ARCH_SPARSEMEM_ENABLE
380	select SYS_SUPPORTS_NUMA
381	select SYS_SUPPORTS_CMT
382
383config CPU_SUBTYPE_SH7366
384	bool "Support SH7366 processor"
385	select CPU_SH4AL_DSP
386	select CPU_SHX2
387	select ARCH_SPARSEMEM_ENABLE
388	select SYS_SUPPORTS_NUMA
389	select SYS_SUPPORTS_CMT
390
391# SH-5 Processor Support
392
393config CPU_SUBTYPE_SH5_101
394	bool "Support SH5-101 processor"
395	select CPU_SH5
396
397config CPU_SUBTYPE_SH5_103
398	bool "Support SH5-103 processor"
399	select CPU_SH5
400
401endchoice
402
403source "arch/sh/mm/Kconfig"
404
405source "arch/sh/Kconfig.cpu"
406
407source "arch/sh/boards/Kconfig"
408
409menu "Timer and clock configuration"
410
411config SH_TMU
412	bool "TMU timer support"
413	depends on CPU_SH3 || CPU_SH4
414	default y
415	select GENERIC_TIME
416	select GENERIC_CLOCKEVENTS
417	help
418	  This enables the use of the TMU as the system timer.
419
420config SH_CMT
421	bool "CMT timer support"
422	depends on SYS_SUPPORTS_CMT && CPU_SH2
423	default y
424	help
425	  This enables the use of the CMT as the system timer.
426
427#
428# Support for the new-style CMT driver. This will replace SH_CMT
429# once its other dependencies are merged.
430#
431config SH_TIMER_CMT
432	bool "CMT clockevents driver"
433	depends on SYS_SUPPORTS_CMT && !SH_CMT
434	select GENERIC_CLOCKEVENTS
435
436config SH_MTU2
437	bool "MTU2 timer support"
438	depends on CPU_SH2A
439	default y
440	help
441	  This enables the use of the MTU2 as the system timer.
442
443config SH_TIMER_IRQ
444	int
445	default "28" if CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 || \
446			CPU_SUBTYPE_SH7763
447	default "86" if CPU_SUBTYPE_SH7619
448	default "140" if CPU_SUBTYPE_SH7206
449	default "142" if CPU_SUBTYPE_SH7203 && SH_CMT
450	default "153" if CPU_SUBTYPE_SH7203 && SH_MTU2
451	default "238" if CPU_SUBTYPE_MXG
452	default "16"
453
454config SH_PCLK_FREQ
455	int "Peripheral clock frequency (in Hz)"
456	default "27000000" if CPU_SUBTYPE_SH7343
457	default "31250000" if CPU_SUBTYPE_SH7619
458	default "32000000" if CPU_SUBTYPE_SH7722
459	default "33333333" if CPU_SUBTYPE_SH7770 || CPU_SUBTYPE_SH7723 || \
460			      CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \
461			      CPU_SUBTYPE_SH7203 || CPU_SUBTYPE_SH7206 || \
462			      CPU_SUBTYPE_SH7263 || CPU_SUBTYPE_MXG
463	default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
464	default "66000000" if CPU_SUBTYPE_SH4_202
465	default "50000000"
466	help
467	  This option is used to specify the peripheral clock frequency.
468	  This is necessary for determining the reference clock value on
469	  platforms lacking an RTC.
470
471config SH_CLK_MD
472	int "CPU Mode Pin Setting"
473	depends on CPU_SH2
474	default 6 if CPU_SUBTYPE_SH7206
475	default 5 if CPU_SUBTYPE_SH7619
476	default 0
477	help
478	  MD2 - MD0 pin setting.
479
480source "kernel/time/Kconfig"
481
482endmenu
483
484menu "CPU Frequency scaling"
485
486source "drivers/cpufreq/Kconfig"
487
488config SH_CPU_FREQ
489	tristate "SuperH CPU Frequency driver"
490	depends on CPU_FREQ
491	select CPU_FREQ_TABLE
492	help
493	  This adds the cpufreq driver for SuperH. Any CPU that supports
494	  clock rate rounding through the clock framework can use this
495	  driver. While it will make the kernel slightly larger, this is
496	  harmless for CPUs that don't support rate rounding. The driver
497	  will also generate a notice in the boot log before disabling
498	  itself if the CPU in question is not capable of rate rounding.
499
500	  For details, take a look at <file:Documentation/cpu-freq>.
501
502	  If unsure, say N.
503
504endmenu
505
506source "arch/sh/drivers/Kconfig"
507
508endmenu
509
510menu "Kernel features"
511
512source kernel/Kconfig.hz
513
514config KEXEC
515	bool "kexec system call (EXPERIMENTAL)"
516	depends on SUPERH32 && EXPERIMENTAL
517	help
518	  kexec is a system call that implements the ability to shutdown your
519	  current kernel, and to start another kernel.  It is like a reboot
520	  but it is independent of the system firmware.  And like a reboot
521	  you can start any kernel with it, not just Linux.
522
523	  The name comes from the similarity to the exec system call.
524
525	  It is an ongoing process to be certain the hardware in a machine
526	  is properly shutdown, so do not be surprised if this code does not
527	  initially work for you.  It may help to enable device hotplugging
528	  support.  As of this writing the exact hardware interface is
529	  strongly in flux, so no good recommendation can be made.
530
531config CRASH_DUMP
532	bool "kernel crash dumps (EXPERIMENTAL)"
533	depends on SUPERH32 && EXPERIMENTAL
534	help
535	  Generate crash dump after being started by kexec.
536	  This should be normally only set in special crash dump kernels
537	  which are loaded in the main kernel with kexec-tools into
538	  a specially reserved region and then later executed after
539	  a crash by kdump/kexec. The crash dump kernel must be compiled
540	  to a memory address not used by the main kernel using
541	  MEMORY_START.
542
543	  For more details see Documentation/kdump/kdump.txt
544
545config SECCOMP
546	bool "Enable seccomp to safely compute untrusted bytecode"
547	depends on PROC_FS
548	help
549	  This kernel feature is useful for number crunching applications
550	  that may need to compute untrusted bytecode during their
551	  execution. By using pipes or other transports made available to
552	  the process as file descriptors supporting the read/write
553	  syscalls, it's possible to isolate those applications in
554	  their own address space using seccomp. Once seccomp is
555	  enabled via prctl, it cannot be disabled and the task is only
556	  allowed to execute a few safe syscalls defined by each seccomp
557	  mode.
558
559	  If unsure, say N.
560
561config SMP
562	bool "Symmetric multi-processing support"
563	depends on SYS_SUPPORTS_SMP
564	select USE_GENERIC_SMP_HELPERS
565	---help---
566	  This enables support for systems with more than one CPU. If you have
567	  a system with only one CPU, like most personal computers, say N. If
568	  you have a system with more than one CPU, say Y.
569
570	  If you say N here, the kernel will run on single and multiprocessor
571	  machines, but will use only one CPU of a multiprocessor machine. If
572	  you say Y here, the kernel will run on many, but not all,
573	  singleprocessor machines. On a singleprocessor machine, the kernel
574	  will run faster if you say N here.
575
576	  People using multiprocessor machines who say Y here should also say
577	  Y to "Enhanced Real Time Clock Support", below.
578
579	  See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
580	  available at <http://www.tldp.org/docs.html#howto>.
581
582	  If you don't know what to do here, say N.
583
584config NR_CPUS
585	int "Maximum number of CPUs (2-32)"
586	range 2 32
587	depends on SMP
588	default "4" if CPU_SHX3
589	default "2"
590	help
591	  This allows you to specify the maximum number of CPUs which this
592	  kernel will support.  The maximum supported value is 32 and the
593	  minimum value which makes sense is 2.
594
595	  This is purely to save memory - each supported CPU adds
596	  approximately eight kilobytes to the kernel image.
597
598source "kernel/Kconfig.preempt"
599
600config GUSA
601	def_bool y
602	depends on !SMP && SUPERH32
603	help
604	  This enables support for gUSA (general UserSpace Atomicity).
605	  This is the default implementation for both UP and non-ll/sc
606	  CPUs, and is used by the libc, amongst others.
607
608	  For additional information, design information can be found
609	  in <http://lc.linux.or.jp/lc2002/papers/niibe0919p.pdf>.
610
611	  This should only be disabled for special cases where alternate
612	  atomicity implementations exist.
613
614config GUSA_RB
615	bool "Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)"
616	depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
617	help
618	  Enabling this option will allow the kernel to implement some
619	  atomic operations using a software implemention of load-locked/
620	  store-conditional (LLSC). On machines which do not have hardware
621	  LLSC, this should be more efficient than the other alternative of
622	  disabling insterrupts around the atomic sequence.
623
624endmenu
625
626menu "Boot options"
627
628config ZERO_PAGE_OFFSET
629	hex "Zero page offset"
630	default "0x00004000" if SH_SH03
631	default "0x00010000" if PAGE_SIZE_64KB
632	default "0x00002000" if PAGE_SIZE_8KB
633	default "0x00001000"
634	help
635	  This sets the default offset of zero page.
636
637config BOOT_LINK_OFFSET
638	hex "Link address offset for booting"
639	default "0x00800000"
640	help
641	  This option allows you to set the link address offset of the zImage.
642	  This can be useful if you are on a board which has a small amount of
643	  memory.
644
645config UBC_WAKEUP
646	bool "Wakeup UBC on startup"
647	depends on CPU_SH4 && !CPU_SH4A
648	help
649	  Selecting this option will wakeup the User Break Controller (UBC) on
650	  startup. Although the UBC is left in an awake state when the processor
651	  comes up, some boot loaders misbehave by putting the UBC to sleep in a
652	  power saving state, which causes issues with things like ptrace().
653
654	  If unsure, say N.
655
656config CMDLINE_BOOL
657	bool "Default bootloader kernel arguments"
658
659config CMDLINE
660	string "Initial kernel command string"
661	depends on CMDLINE_BOOL
662	default "console=ttySC1,115200"
663
664endmenu
665
666menu "Bus options"
667
668config SUPERHYWAY
669	tristate "SuperHyway Bus support"
670	depends on CPU_SUBTYPE_SH4_202
671
672config MAPLE
673	bool "Maple Bus support"
674	depends on SH_DREAMCAST
675	help
676	 The Maple Bus is SEGA's serial communication bus for peripherals
677	 on the Dreamcast. Without this bus support you won't be able to
678	 get your Dreamcast keyboard etc to work, so most users
679	 probably want to say 'Y' here, unless you are only using the
680	 Dreamcast with a serial line terminal or a remote network
681	 connection.
682
683source "arch/sh/drivers/pci/Kconfig"
684
685source "drivers/pci/pcie/Kconfig"
686
687source "drivers/pci/Kconfig"
688
689source "drivers/pcmcia/Kconfig"
690
691source "drivers/pci/hotplug/Kconfig"
692
693endmenu
694
695menu "Executable file formats"
696
697source "fs/Kconfig.binfmt"
698
699endmenu
700
701menu "Power management options (EXPERIMENTAL)"
702depends on EXPERIMENTAL
703
704source "kernel/power/Kconfig"
705
706source "drivers/cpuidle/Kconfig"
707
708endmenu
709
710source "net/Kconfig"
711
712source "drivers/Kconfig"
713
714source "fs/Kconfig"
715
716source "arch/sh/Kconfig.debug"
717
718source "security/Kconfig"
719
720source "crypto/Kconfig"
721
722source "lib/Kconfig"
723