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