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