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