xref: /linux/arch/sh/Kconfig (revision b43ab901d671e3e3cad425ea5e9a3c74e266dcdd)
1config SUPERH
2	def_bool y
3	select EXPERT
4	select CLKDEV_LOOKUP
5	select HAVE_IDE if HAS_IOPORT
6	select HAVE_MEMBLOCK
7	select HAVE_MEMBLOCK_NODE_MAP
8	select HAVE_OPROFILE
9	select HAVE_GENERIC_DMA_COHERENT
10	select HAVE_ARCH_TRACEHOOK
11	select HAVE_DMA_API_DEBUG
12	select HAVE_DMA_ATTRS
13	select HAVE_IRQ_WORK
14	select HAVE_PERF_EVENTS
15	select ARCH_HAVE_NMI_SAFE_CMPXCHG if (GUSA_RB || CPU_SH4A)
16	select PERF_USE_VMALLOC
17	select HAVE_KERNEL_GZIP
18	select HAVE_KERNEL_BZIP2
19	select HAVE_KERNEL_LZMA
20	select HAVE_KERNEL_XZ
21	select HAVE_KERNEL_LZO
22	select HAVE_SYSCALL_TRACEPOINTS
23	select HAVE_REGS_AND_STACK_ACCESS_API
24	select HAVE_GENERIC_HARDIRQS
25	select HAVE_SPARSE_IRQ
26	select IRQ_FORCED_THREADING
27	select RTC_LIB
28	select GENERIC_ATOMIC64
29	select GENERIC_IRQ_SHOW
30	help
31	  The SuperH is a RISC processor targeted for use in embedded systems
32	  and consumer electronics; it was also used in the Sega Dreamcast
33	  gaming console.  The SuperH port has a home page at
34	  <http://www.linux-sh.org/>.
35
36config SUPERH32
37	def_bool ARCH = "sh"
38	select HAVE_KPROBES
39	select HAVE_KRETPROBES
40	select HAVE_IOREMAP_PROT if MMU && !X2TLB
41	select HAVE_FUNCTION_TRACER
42	select HAVE_FTRACE_MCOUNT_RECORD
43	select HAVE_DYNAMIC_FTRACE
44	select HAVE_FUNCTION_TRACE_MCOUNT_TEST
45	select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE
46	select HAVE_FUNCTION_GRAPH_TRACER
47	select HAVE_ARCH_KGDB
48	select HAVE_HW_BREAKPOINT
49	select HAVE_MIXED_BREAKPOINTS_REGS
50	select PERF_EVENTS
51	select ARCH_HIBERNATION_POSSIBLE if MMU
52	select SPARSE_IRQ
53
54config SUPERH64
55	def_bool ARCH = "sh64"
56
57config ARCH_DEFCONFIG
58	string
59	default "arch/sh/configs/shx3_defconfig" if SUPERH32
60	default "arch/sh/configs/cayman_defconfig" if SUPERH64
61
62config RWSEM_GENERIC_SPINLOCK
63	def_bool y
64
65config RWSEM_XCHGADD_ALGORITHM
66	bool
67
68config GENERIC_BUG
69	def_bool y
70	depends on BUG && SUPERH32
71
72config GENERIC_CSUM
73	def_bool y
74	depends on SUPERH64
75
76config GENERIC_HWEIGHT
77	def_bool y
78
79config IRQ_PER_CPU
80	def_bool y
81
82config GENERIC_GPIO
83	def_bool n
84
85config GENERIC_CALIBRATE_DELAY
86	bool
87
88config GENERIC_CLOCKEVENTS
89	def_bool y
90
91config GENERIC_CLOCKEVENTS_BROADCAST
92	bool
93
94config GENERIC_CMOS_UPDATE
95	def_bool y
96	depends on SH_SH03 || SH_DREAMCAST
97
98config GENERIC_LOCKBREAK
99	def_bool y
100	depends on SMP && PREEMPT
101
102config ARCH_SUSPEND_POSSIBLE
103	def_bool n
104
105config ARCH_HIBERNATION_POSSIBLE
106	def_bool n
107
108config SYS_SUPPORTS_APM_EMULATION
109	bool
110	select ARCH_SUSPEND_POSSIBLE
111
112config SYS_SUPPORTS_HUGETLBFS
113	bool
114
115config SYS_SUPPORTS_SMP
116	bool
117
118config SYS_SUPPORTS_NUMA
119	bool
120
121config SYS_SUPPORTS_PCI
122	bool
123
124config SYS_SUPPORTS_CMT
125	bool
126
127config SYS_SUPPORTS_MTU2
128	bool
129
130config SYS_SUPPORTS_TMU
131	bool
132
133config STACKTRACE_SUPPORT
134	def_bool y
135
136config LOCKDEP_SUPPORT
137	def_bool y
138
139config HAVE_LATENCYTOP_SUPPORT
140	def_bool y
141
142config ARCH_HAS_ILOG2_U32
143	def_bool n
144
145config ARCH_HAS_ILOG2_U64
146	def_bool n
147
148config ARCH_NO_VIRT_TO_BUS
149	def_bool y
150
151config ARCH_HAS_DEFAULT_IDLE
152	def_bool y
153
154config ARCH_HAS_CPU_IDLE_WAIT
155	def_bool y
156
157config NO_IOPORT
158	def_bool !PCI
159	depends on !SH_CAYMAN && !SH_SH4202_MICRODEV && !SH_SHMIN
160
161config IO_TRAPPED
162	bool
163
164config DMA_COHERENT
165	bool
166
167config DMA_NONCOHERENT
168	def_bool !DMA_COHERENT
169
170config NEED_DMA_MAP_STATE
171	def_bool DMA_NONCOHERENT
172
173config NEED_SG_DMA_LENGTH
174	def_bool y
175
176source "init/Kconfig"
177
178source "kernel/Kconfig.freezer"
179
180menu "System type"
181
182#
183# Processor families
184#
185config CPU_SH2
186	bool
187
188config CPU_SH2A
189	bool
190	select CPU_SH2
191	select UNCACHED_MAPPING
192
193config CPU_SH3
194	bool
195	select CPU_HAS_INTEVT
196	select CPU_HAS_SR_RB
197	select SYS_SUPPORTS_TMU
198
199config CPU_SH4
200	bool
201	select CPU_HAS_INTEVT
202	select CPU_HAS_SR_RB
203	select CPU_HAS_FPU if !CPU_SH4AL_DSP
204	select SYS_SUPPORTS_TMU
205	select SYS_SUPPORTS_HUGETLBFS if MMU
206
207config CPU_SH4A
208	bool
209	select CPU_SH4
210
211config CPU_SH4AL_DSP
212	bool
213	select CPU_SH4A
214	select CPU_HAS_DSP
215
216config CPU_SH5
217	bool
218	select CPU_HAS_FPU
219	select SYS_SUPPORTS_TMU
220	select SYS_SUPPORTS_HUGETLBFS if MMU
221
222config CPU_SHX2
223	bool
224
225config CPU_SHX3
226	bool
227	select DMA_COHERENT
228	select SYS_SUPPORTS_SMP
229	select SYS_SUPPORTS_NUMA
230
231config ARCH_SHMOBILE
232	bool
233	select ARCH_SUSPEND_POSSIBLE
234	select PM
235	select PM_RUNTIME
236
237config CPU_HAS_PMU
238       depends on CPU_SH4 || CPU_SH4A
239       default y
240       bool
241
242if SUPERH32
243
244choice
245	prompt "Processor sub-type selection"
246
247#
248# Processor subtypes
249#
250
251# SH-2 Processor Support
252
253config CPU_SUBTYPE_SH7619
254	bool "Support SH7619 processor"
255	select CPU_SH2
256	select SYS_SUPPORTS_CMT
257
258# SH-2A Processor Support
259
260config CPU_SUBTYPE_SH7201
261	bool "Support SH7201 processor"
262	select CPU_SH2A
263	select CPU_HAS_FPU
264	select SYS_SUPPORTS_MTU2
265
266config CPU_SUBTYPE_SH7203
267	bool "Support SH7203 processor"
268	select CPU_SH2A
269	select CPU_HAS_FPU
270	select SYS_SUPPORTS_CMT
271	select SYS_SUPPORTS_MTU2
272	select ARCH_WANT_OPTIONAL_GPIOLIB
273
274config CPU_SUBTYPE_SH7206
275	bool "Support SH7206 processor"
276	select CPU_SH2A
277	select SYS_SUPPORTS_CMT
278	select SYS_SUPPORTS_MTU2
279
280config CPU_SUBTYPE_SH7263
281	bool "Support SH7263 processor"
282	select CPU_SH2A
283	select CPU_HAS_FPU
284	select SYS_SUPPORTS_CMT
285	select SYS_SUPPORTS_MTU2
286
287config CPU_SUBTYPE_MXG
288	bool "Support MX-G processor"
289	select CPU_SH2A
290	select SYS_SUPPORTS_MTU2
291	help
292	  Select MX-G if running on an R8A03022BG part.
293
294# SH-3 Processor Support
295
296config CPU_SUBTYPE_SH7705
297	bool "Support SH7705 processor"
298	select CPU_SH3
299
300config CPU_SUBTYPE_SH7706
301	bool "Support SH7706 processor"
302	select CPU_SH3
303	help
304	  Select SH7706 if you have a 133 Mhz SH-3 HD6417706 CPU.
305
306config CPU_SUBTYPE_SH7707
307	bool "Support SH7707 processor"
308	select CPU_SH3
309	help
310	  Select SH7707 if you have a  60 Mhz SH-3 HD6417707 CPU.
311
312config CPU_SUBTYPE_SH7708
313	bool "Support SH7708 processor"
314	select CPU_SH3
315	help
316	  Select SH7708 if you have a  60 Mhz SH-3 HD6417708S or
317	  if you have a 100 Mhz SH-3 HD6417708R CPU.
318
319config CPU_SUBTYPE_SH7709
320	bool "Support SH7709 processor"
321	select CPU_SH3
322	help
323	  Select SH7709 if you have a  80 Mhz SH-3 HD6417709 CPU.
324
325config CPU_SUBTYPE_SH7710
326	bool "Support SH7710 processor"
327	select CPU_SH3
328	select CPU_HAS_DSP
329	help
330	  Select SH7710 if you have a SH3-DSP SH7710 CPU.
331
332config CPU_SUBTYPE_SH7712
333	bool "Support SH7712 processor"
334	select CPU_SH3
335	select CPU_HAS_DSP
336	help
337	  Select SH7712 if you have a SH3-DSP SH7712 CPU.
338
339config CPU_SUBTYPE_SH7720
340	bool "Support SH7720 processor"
341	select CPU_SH3
342	select CPU_HAS_DSP
343	select SYS_SUPPORTS_CMT
344	select ARCH_WANT_OPTIONAL_GPIOLIB
345	select USB_ARCH_HAS_OHCI
346	select USB_OHCI_SH if USB_OHCI_HCD
347	help
348	  Select SH7720 if you have a SH3-DSP SH7720 CPU.
349
350config CPU_SUBTYPE_SH7721
351	bool "Support SH7721 processor"
352	select CPU_SH3
353	select CPU_HAS_DSP
354	select SYS_SUPPORTS_CMT
355	select USB_ARCH_HAS_OHCI
356	select USB_OHCI_SH if USB_OHCI_HCD
357	help
358	  Select SH7721 if you have a SH3-DSP SH7721 CPU.
359
360# SH-4 Processor Support
361
362config CPU_SUBTYPE_SH7750
363	bool "Support SH7750 processor"
364	select CPU_SH4
365	help
366	  Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.
367
368config CPU_SUBTYPE_SH7091
369	bool "Support SH7091 processor"
370	select CPU_SH4
371	help
372	  Select SH7091 if you have an SH-4 based Sega device (such as
373	  the Dreamcast, Naomi, and Naomi 2).
374
375config CPU_SUBTYPE_SH7750R
376	bool "Support SH7750R processor"
377	select CPU_SH4
378
379config CPU_SUBTYPE_SH7750S
380	bool "Support SH7750S processor"
381	select CPU_SH4
382
383config CPU_SUBTYPE_SH7751
384	bool "Support SH7751 processor"
385	select CPU_SH4
386	help
387	  Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU,
388	  or if you have a HD6417751R CPU.
389
390config CPU_SUBTYPE_SH7751R
391	bool "Support SH7751R processor"
392	select CPU_SH4
393
394config CPU_SUBTYPE_SH7760
395	bool "Support SH7760 processor"
396	select CPU_SH4
397
398config CPU_SUBTYPE_SH4_202
399	bool "Support SH4-202 processor"
400	select CPU_SH4
401
402# SH-4A Processor Support
403
404config CPU_SUBTYPE_SH7723
405	bool "Support SH7723 processor"
406	select CPU_SH4A
407	select CPU_SHX2
408	select ARCH_SHMOBILE
409	select ARCH_SPARSEMEM_ENABLE
410	select SYS_SUPPORTS_CMT
411	select ARCH_WANT_OPTIONAL_GPIOLIB
412	help
413	  Select SH7723 if you have an SH-MobileR2 CPU.
414
415config CPU_SUBTYPE_SH7724
416	bool "Support SH7724 processor"
417	select CPU_SH4A
418	select CPU_SHX2
419	select ARCH_SHMOBILE
420	select ARCH_SPARSEMEM_ENABLE
421	select SYS_SUPPORTS_CMT
422	select ARCH_WANT_OPTIONAL_GPIOLIB
423	help
424	  Select SH7724 if you have an SH-MobileR2R CPU.
425
426config CPU_SUBTYPE_SH7757
427	bool "Support SH7757 processor"
428	select CPU_SH4A
429	select CPU_SHX2
430	select ARCH_WANT_OPTIONAL_GPIOLIB
431	select USB_ARCH_HAS_OHCI
432	select USB_ARCH_HAS_EHCI
433	help
434	  Select SH7757 if you have a SH4A SH7757 CPU.
435
436config CPU_SUBTYPE_SH7763
437	bool "Support SH7763 processor"
438	select CPU_SH4A
439	select USB_ARCH_HAS_OHCI
440	select USB_OHCI_SH if USB_OHCI_HCD
441	help
442	  Select SH7763 if you have a SH4A SH7763(R5S77631) CPU.
443
444config CPU_SUBTYPE_SH7770
445	bool "Support SH7770 processor"
446	select CPU_SH4A
447
448config CPU_SUBTYPE_SH7780
449	bool "Support SH7780 processor"
450	select CPU_SH4A
451
452config CPU_SUBTYPE_SH7785
453	bool "Support SH7785 processor"
454	select CPU_SH4A
455	select CPU_SHX2
456	select ARCH_SPARSEMEM_ENABLE
457	select SYS_SUPPORTS_NUMA
458	select ARCH_WANT_OPTIONAL_GPIOLIB
459
460config CPU_SUBTYPE_SH7786
461	bool "Support SH7786 processor"
462	select CPU_SH4A
463	select CPU_SHX3
464	select CPU_HAS_PTEAEX
465	select GENERIC_CLOCKEVENTS_BROADCAST if SMP
466	select ARCH_WANT_OPTIONAL_GPIOLIB
467	select USB_ARCH_HAS_OHCI
468	select USB_OHCI_SH if USB_OHCI_HCD
469	select USB_ARCH_HAS_EHCI
470	select USB_EHCI_SH if USB_EHCI_HCD
471
472config CPU_SUBTYPE_SHX3
473	bool "Support SH-X3 processor"
474	select CPU_SH4A
475	select CPU_SHX3
476	select GENERIC_CLOCKEVENTS_BROADCAST if SMP
477	select ARCH_REQUIRE_GPIOLIB
478
479# SH4AL-DSP Processor Support
480
481config CPU_SUBTYPE_SH7343
482	bool "Support SH7343 processor"
483	select CPU_SH4AL_DSP
484	select ARCH_SHMOBILE
485	select SYS_SUPPORTS_CMT
486
487config CPU_SUBTYPE_SH7722
488	bool "Support SH7722 processor"
489	select CPU_SH4AL_DSP
490	select CPU_SHX2
491	select ARCH_SHMOBILE
492	select ARCH_SPARSEMEM_ENABLE
493	select SYS_SUPPORTS_NUMA
494	select SYS_SUPPORTS_CMT
495	select ARCH_WANT_OPTIONAL_GPIOLIB
496
497config CPU_SUBTYPE_SH7366
498	bool "Support SH7366 processor"
499	select CPU_SH4AL_DSP
500	select CPU_SHX2
501	select ARCH_SHMOBILE
502	select ARCH_SPARSEMEM_ENABLE
503	select SYS_SUPPORTS_NUMA
504	select SYS_SUPPORTS_CMT
505
506endchoice
507
508endif
509
510if SUPERH64
511
512choice
513	prompt "Processor sub-type selection"
514
515# SH-5 Processor Support
516
517config CPU_SUBTYPE_SH5_101
518	bool "Support SH5-101 processor"
519	select CPU_SH5
520
521config CPU_SUBTYPE_SH5_103
522	bool "Support SH5-103 processor"
523	select CPU_SH5
524
525endchoice
526
527endif
528
529source "arch/sh/mm/Kconfig"
530
531source "arch/sh/Kconfig.cpu"
532
533source "arch/sh/boards/Kconfig"
534
535menu "Timer and clock configuration"
536
537config SH_TIMER_TMU
538	bool "TMU timer driver"
539	depends on SYS_SUPPORTS_TMU
540	default y
541	help
542	  This enables the build of the TMU timer driver.
543
544config SH_TIMER_CMT
545	bool "CMT timer driver"
546	depends on SYS_SUPPORTS_CMT
547	default y
548	help
549	  This enables build of the CMT timer driver.
550
551config SH_TIMER_MTU2
552	bool "MTU2 timer driver"
553	depends on SYS_SUPPORTS_MTU2
554	default y
555	help
556	  This enables build of the MTU2 timer driver.
557
558config SH_PCLK_FREQ
559	int "Peripheral clock frequency (in Hz)"
560	depends on SH_CLK_CPG_LEGACY
561	default "31250000" if CPU_SUBTYPE_SH7619
562	default "33333333" if CPU_SUBTYPE_SH7770 || \
563			      CPU_SUBTYPE_SH7760 || \
564			      CPU_SUBTYPE_SH7705 || \
565			      CPU_SUBTYPE_SH7203 || \
566			      CPU_SUBTYPE_SH7206 || \
567			      CPU_SUBTYPE_SH7263 || \
568			      CPU_SUBTYPE_MXG
569	default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
570	default "66000000" if CPU_SUBTYPE_SH4_202
571	default "50000000"
572	help
573	  This option is used to specify the peripheral clock frequency.
574	  This is necessary for determining the reference clock value on
575	  platforms lacking an RTC.
576
577config SH_CLK_CPG
578	def_bool y
579
580config SH_CLK_CPG_LEGACY
581	depends on SH_CLK_CPG
582	def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE && \
583		      !CPU_SHX3 && !CPU_SUBTYPE_SH7757
584
585source "kernel/time/Kconfig"
586
587endmenu
588
589menu "CPU Frequency scaling"
590
591source "drivers/cpufreq/Kconfig"
592
593config SH_CPU_FREQ
594	tristate "SuperH CPU Frequency driver"
595	depends on CPU_FREQ
596	select CPU_FREQ_TABLE
597	help
598	  This adds the cpufreq driver for SuperH. Any CPU that supports
599	  clock rate rounding through the clock framework can use this
600	  driver. While it will make the kernel slightly larger, this is
601	  harmless for CPUs that don't support rate rounding. The driver
602	  will also generate a notice in the boot log before disabling
603	  itself if the CPU in question is not capable of rate rounding.
604
605	  For details, take a look at <file:Documentation/cpu-freq>.
606
607	  If unsure, say N.
608
609endmenu
610
611source "arch/sh/drivers/Kconfig"
612
613endmenu
614
615menu "Kernel features"
616
617source kernel/Kconfig.hz
618
619config KEXEC
620	bool "kexec system call (EXPERIMENTAL)"
621	depends on SUPERH32 && EXPERIMENTAL && MMU
622	help
623	  kexec is a system call that implements the ability to shutdown your
624	  current kernel, and to start another kernel.  It is like a reboot
625	  but it is independent of the system firmware.  And like a reboot
626	  you can start any kernel with it, not just Linux.
627
628	  The name comes from the similarity to the exec system call.
629
630	  It is an ongoing process to be certain the hardware in a machine
631	  is properly shutdown, so do not be surprised if this code does not
632	  initially work for you.  It may help to enable device hotplugging
633	  support.  As of this writing the exact hardware interface is
634	  strongly in flux, so no good recommendation can be made.
635
636config CRASH_DUMP
637	bool "kernel crash dumps (EXPERIMENTAL)"
638	depends on SUPERH32 && EXPERIMENTAL && BROKEN_ON_SMP
639	help
640	  Generate crash dump after being started by kexec.
641	  This should be normally only set in special crash dump kernels
642	  which are loaded in the main kernel with kexec-tools into
643	  a specially reserved region and then later executed after
644	  a crash by kdump/kexec. The crash dump kernel must be compiled
645	  to a memory address not used by the main kernel using
646	  PHYSICAL_START.
647
648	  For more details see Documentation/kdump/kdump.txt
649
650config KEXEC_JUMP
651	bool "kexec jump (EXPERIMENTAL)"
652	depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL
653	help
654	  Jump between original kernel and kexeced kernel and invoke
655	  code via KEXEC
656
657config PHYSICAL_START
658	hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP)
659	default MEMORY_START
660	---help---
661	  This gives the physical address where the kernel is loaded
662	  and is ordinarily the same as MEMORY_START.
663
664	  Different values are primarily used in the case of kexec on panic
665	  where the fail safe kernel needs to run at a different address
666	  than the panic-ed kernel.
667
668config SECCOMP
669	bool "Enable seccomp to safely compute untrusted bytecode"
670	depends on PROC_FS
671	help
672	  This kernel feature is useful for number crunching applications
673	  that may need to compute untrusted bytecode during their
674	  execution. By using pipes or other transports made available to
675	  the process as file descriptors supporting the read/write
676	  syscalls, it's possible to isolate those applications in
677	  their own address space using seccomp. Once seccomp is
678	  enabled via prctl, it cannot be disabled and the task is only
679	  allowed to execute a few safe syscalls defined by each seccomp
680	  mode.
681
682	  If unsure, say N.
683
684config SMP
685	bool "Symmetric multi-processing support"
686	depends on SYS_SUPPORTS_SMP
687	select USE_GENERIC_SMP_HELPERS
688	---help---
689	  This enables support for systems with more than one CPU. If you have
690	  a system with only one CPU, like most personal computers, say N. If
691	  you have a system with more than one CPU, say Y.
692
693	  If you say N here, the kernel will run on single and multiprocessor
694	  machines, but will use only one CPU of a multiprocessor machine. If
695	  you say Y here, the kernel will run on many, but not all,
696	  singleprocessor machines. On a singleprocessor machine, the kernel
697	  will run faster if you say N here.
698
699	  People using multiprocessor machines who say Y here should also say
700	  Y to "Enhanced Real Time Clock Support", below.
701
702	  See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
703	  available at <http://www.tldp.org/docs.html#howto>.
704
705	  If you don't know what to do here, say N.
706
707config NR_CPUS
708	int "Maximum number of CPUs (2-32)"
709	range 2 32
710	depends on SMP
711	default "4" if CPU_SUBTYPE_SHX3
712	default "2"
713	help
714	  This allows you to specify the maximum number of CPUs which this
715	  kernel will support.  The maximum supported value is 32 and the
716	  minimum value which makes sense is 2.
717
718	  This is purely to save memory - each supported CPU adds
719	  approximately eight kilobytes to the kernel image.
720
721config HOTPLUG_CPU
722	bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
723	depends on SMP && HOTPLUG && EXPERIMENTAL
724	help
725	  Say Y here to experiment with turning CPUs off and on.  CPUs
726	  can be controlled through /sys/devices/system/cpu.
727
728source "kernel/Kconfig.preempt"
729
730config GUSA
731	def_bool y
732	depends on !SMP && SUPERH32
733	help
734	  This enables support for gUSA (general UserSpace Atomicity).
735	  This is the default implementation for both UP and non-ll/sc
736	  CPUs, and is used by the libc, amongst others.
737
738	  For additional information, design information can be found
739	  in <http://lc.linux.or.jp/lc2002/papers/niibe0919p.pdf>.
740
741	  This should only be disabled for special cases where alternate
742	  atomicity implementations exist.
743
744config GUSA_RB
745	bool "Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)"
746	depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
747	help
748	  Enabling this option will allow the kernel to implement some
749	  atomic operations using a software implementation of load-locked/
750	  store-conditional (LLSC). On machines which do not have hardware
751	  LLSC, this should be more efficient than the other alternative of
752	  disabling interrupts around the atomic sequence.
753
754config HW_PERF_EVENTS
755	bool "Enable hardware performance counter support for perf events"
756	depends on PERF_EVENTS && CPU_HAS_PMU
757	default y
758	help
759	  Enable hardware performance counter support for perf events. If
760	  disabled, perf events will use software events only.
761
762source "drivers/sh/Kconfig"
763
764endmenu
765
766menu "Boot options"
767
768config ZERO_PAGE_OFFSET
769	hex
770	default "0x00010000" if PAGE_SIZE_64KB || SH_RTS7751R2D || \
771				SH_7751_SOLUTION_ENGINE
772	default "0x00004000" if PAGE_SIZE_16KB || SH_SH03
773	default "0x00002000" if PAGE_SIZE_8KB
774	default "0x00001000"
775	help
776	  This sets the default offset of zero page.
777
778config BOOT_LINK_OFFSET
779	hex
780	default "0x00210000" if SH_SHMIN
781	default "0x00400000" if SH_CAYMAN
782	default "0x00810000" if SH_7780_SOLUTION_ENGINE
783	default "0x009e0000" if SH_TITAN
784	default "0x01800000" if SH_SDK7780
785	default "0x02000000" if SH_EDOSK7760
786	default "0x00800000"
787	help
788	  This option allows you to set the link address offset of the zImage.
789	  This can be useful if you are on a board which has a small amount of
790	  memory.
791
792config ENTRY_OFFSET
793	hex
794	default "0x00001000" if PAGE_SIZE_4KB
795	default "0x00002000" if PAGE_SIZE_8KB
796	default "0x00004000" if PAGE_SIZE_16KB
797	default "0x00010000" if PAGE_SIZE_64KB
798	default "0x00000000"
799
800config ROMIMAGE_MMCIF
801	bool "Include MMCIF loader in romImage (EXPERIMENTAL)"
802	depends on CPU_SUBTYPE_SH7724 && EXPERIMENTAL
803	help
804	  Say Y here to include experimental MMCIF loading code in
805	  romImage. With this enabled it is possible to write the romImage
806	  kernel image to an MMC card and boot the kernel straight from
807	  the reset vector. At reset the processor Mask ROM will load the
808	  first part of the romImage which in turn loads the rest the kernel
809	  image to RAM using the MMCIF hardware block.
810
811choice
812	prompt "Kernel command line"
813	optional
814	default CMDLINE_OVERWRITE
815	help
816	  Setting this option allows the kernel command line arguments
817	  to be set.
818
819config CMDLINE_OVERWRITE
820	bool "Overwrite bootloader kernel arguments"
821	help
822	  Given string will overwrite any arguments passed in by
823	  a bootloader.
824
825config CMDLINE_EXTEND
826	bool "Extend bootloader kernel arguments"
827	help
828	  Given string will be concatenated with arguments passed in
829	  by a bootloader.
830
831endchoice
832
833config CMDLINE
834	string "Kernel command line arguments string"
835	depends on CMDLINE_OVERWRITE || CMDLINE_EXTEND
836	default "console=ttySC1,115200"
837
838endmenu
839
840menu "Bus options"
841
842config SUPERHYWAY
843	tristate "SuperHyway Bus support"
844	depends on CPU_SUBTYPE_SH4_202
845
846config MAPLE
847	bool "Maple Bus support"
848	depends on SH_DREAMCAST
849	help
850	 The Maple Bus is SEGA's serial communication bus for peripherals
851	 on the Dreamcast. Without this bus support you won't be able to
852	 get your Dreamcast keyboard etc to work, so most users
853	 probably want to say 'Y' here, unless you are only using the
854	 Dreamcast with a serial line terminal or a remote network
855	 connection.
856
857config PCI
858	bool "PCI support"
859	depends on SYS_SUPPORTS_PCI
860	select PCI_DOMAINS
861	select GENERIC_PCI_IOMAP
862	help
863	  Find out whether you have a PCI motherboard. PCI is the name of a
864	  bus system, i.e. the way the CPU talks to the other stuff inside
865	  your box. If you have PCI, say Y, otherwise N.
866
867config PCI_DOMAINS
868	bool
869
870source "drivers/pci/pcie/Kconfig"
871
872source "drivers/pci/Kconfig"
873
874source "drivers/pcmcia/Kconfig"
875
876source "drivers/pci/hotplug/Kconfig"
877
878endmenu
879
880menu "Executable file formats"
881
882source "fs/Kconfig.binfmt"
883
884endmenu
885
886menu "Power management options (EXPERIMENTAL)"
887depends on EXPERIMENTAL
888
889source "kernel/power/Kconfig"
890
891source "drivers/cpuidle/Kconfig"
892
893endmenu
894
895source "net/Kconfig"
896
897source "drivers/Kconfig"
898
899source "fs/Kconfig"
900
901source "arch/sh/Kconfig.debug"
902
903source "security/Kconfig"
904
905source "crypto/Kconfig"
906
907source "lib/Kconfig"
908