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