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