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