Linux 6.13-rc4
[linux.git] / arch / openrisc / Kconfig
blob3279ef457c573a1dacc31503fea531346fac763e
1 # SPDX-License-Identifier: GPL-2.0
3 # For a description of the syntax of this configuration file,
4 # see Documentation/kbuild/kconfig-language.rst.
7 config OPENRISC
8         def_bool y
9         select ARCH_32BIT_OFF_T
10         select ARCH_HAS_DMA_SET_UNCACHED
11         select ARCH_HAS_DMA_CLEAR_UNCACHED
12         select ARCH_HAS_SYNC_DMA_FOR_DEVICE
13         select COMMON_CLK
14         select OF
15         select OF_EARLY_FLATTREE
16         select IRQ_DOMAIN
17         select GPIOLIB
18         select HAVE_ARCH_TRACEHOOK
19         select SPARSE_IRQ
20         select GENERIC_IRQ_CHIP
21         select GENERIC_IRQ_PROBE
22         select GENERIC_IRQ_SHOW
23         select GENERIC_PCI_IOMAP
24         select GENERIC_IOREMAP
25         select GENERIC_CPU_DEVICES
26         select HAVE_PCI
27         select HAVE_UID16
28         select HAVE_PAGE_SIZE_8KB
29         select GENERIC_ATOMIC64
30         select GENERIC_CLOCKEVENTS_BROADCAST
31         select GENERIC_SMP_IDLE_THREAD
32         select MODULES_USE_ELF_RELA
33         select HAVE_DEBUG_STACKOVERFLOW
34         select OR1K_PIC
35         select CPU_NO_EFFICIENT_FFS if !OPENRISC_HAVE_INST_FF1
36         select ARCH_USE_QUEUED_RWLOCKS
37         select OMPIC if SMP
38         select PCI_DOMAINS_GENERIC if PCI
39         select PCI_MSI if PCI
40         select ARCH_WANT_FRAME_POINTERS
41         select GENERIC_IRQ_MULTI_HANDLER
42         select MMU_GATHER_NO_RANGE if MMU
43         select TRACE_IRQFLAGS_SUPPORT
45 config CPU_BIG_ENDIAN
46         def_bool y
48 config MMU
49         def_bool y
51 config GENERIC_HWEIGHT
52         def_bool y
54 config NO_IOPORT_MAP
55         def_bool y
57 # For now, use generic checksum functions
58 #These can be reimplemented in assembly later if so inclined
59 config GENERIC_CSUM
60         def_bool y
62 config STACKTRACE_SUPPORT
63         def_bool y
65 config LOCKDEP_SUPPORT
66         def_bool  y
68 config FIX_EARLYCON_MEM
69         def_bool y
71 menu "Processor type and features"
73 choice
74         prompt "Subarchitecture"
75         default OR1K_1200
77 config OR1K_1200
78         bool "OR1200"
79         help
80           Generic OpenRISC 1200 architecture
82 endchoice
84 config DCACHE_WRITETHROUGH
85         bool "Have write through data caches"
86         default n
87         help
88           Select this if your implementation features write through data caches.
89           Selecting 'N' here will allow the kernel to force flushing of data
90           caches at relevant times. Most OpenRISC implementations support write-
91           through data caches.
93           If unsure say N here
95 config OPENRISC_BUILTIN_DTB
96         string "Builtin DTB"
97         default ""
99 menu "Class II Instructions"
101 config OPENRISC_HAVE_INST_FF1
102         bool "Have instruction l.ff1"
103         default y
104         help
105           Select this if your implementation has the Class II instruction l.ff1
107 config OPENRISC_HAVE_INST_FL1
108         bool "Have instruction l.fl1"
109         default y
110         help
111           Select this if your implementation has the Class II instruction l.fl1
113 config OPENRISC_HAVE_INST_MUL
114         bool "Have instruction l.mul for hardware multiply"
115         default y
116         help
117           Select this if your implementation has a hardware multiply instruction
119 config OPENRISC_HAVE_INST_DIV
120         bool "Have instruction l.div for hardware divide"
121         default y
122         help
123           Select this if your implementation has a hardware divide instruction
125 config OPENRISC_HAVE_INST_CMOV
126         bool "Have instruction l.cmov for conditional move"
127         default n
128         help
129           This config enables gcc to generate l.cmov instructions when compiling
130           the kernel which in general will improve performance and reduce the
131           binary size.
133           Select this if your implementation has support for the Class II
134           l.cmov conistional move instruction.
136           Say N if you are unsure.
138 config OPENRISC_HAVE_INST_ROR
139         bool "Have instruction l.ror for rotate right"
140         default n
141         help
142           This config enables gcc to generate l.ror instructions when compiling
143           the kernel which in general will improve performance and reduce the
144           binary size.
146           Select this if your implementation has support for the Class II
147           l.ror rotate right instruction.
149           Say N if you are unsure.
151 config OPENRISC_HAVE_INST_RORI
152         bool "Have instruction l.rori for rotate right with immediate"
153         default n
154         help
155           This config enables gcc to generate l.rori instructions when compiling
156           the kernel which in general will improve performance and reduce the
157           binary size.
159           Select this if your implementation has support for the Class II
160           l.rori rotate right with immediate instruction.
162           Say N if you are unsure.
164 config OPENRISC_HAVE_INST_SEXT
165         bool "Have instructions l.ext* for sign extension"
166         default n
167         help
168           This config enables gcc to generate l.ext* instructions when compiling
169           the kernel which in general will improve performance and reduce the
170           binary size.
172           Select this if your implementation has support for the Class II
173           l.exths, l.extbs, l.exthz and l.extbz size extend instructions.
175           Say N if you are unsure.
177 endmenu
179 config NR_CPUS
180         int "Maximum number of CPUs (2-32)"
181         range 2 32
182         depends on SMP
183         default "2"
185 config SMP
186         bool "Symmetric Multi-Processing support"
187         help
188           This enables support for systems with more than one CPU. If you have
189           a system with only one CPU, say N. If you have a system with more
190           than one CPU, say Y.
192           If you don't know what to do here, say N.
194 config FPU
195         bool "FPU support"
196         default y
197         help
198           Say N here if you want to disable all floating-point related procedures
199           in the kernel and reduce binary size.
201           If you don't know what to do here, say Y.
203 source "kernel/Kconfig.hz"
205 config OPENRISC_NO_SPR_SR_DSX
206         bool "use SPR_SR_DSX software emulation" if OR1K_1200
207         default y
208         help
209           SPR_SR_DSX bit is status register bit indicating whether
210           the last exception has happened in delay slot.
212           OpenRISC architecture makes it optional to have it implemented
213           in hardware and the OR1200 does not have it.
215           Say N here if you know that your OpenRISC processor has
216           SPR_SR_DSX bit implemented. Say Y if you are unsure.
218 config OPENRISC_HAVE_SHADOW_GPRS
219         bool "Support for shadow gpr files" if !SMP
220         default y if SMP
221         help
222           Say Y here if your OpenRISC processor features shadowed
223           register files. They will in such case be used as a
224           scratch reg storage on exception entry.
226           On SMP systems, this feature is mandatory.
227           On a unicore system it's safe to say N here if you are unsure.
229 config CMDLINE
230         string "Default kernel command string"
231         default ""
232         help
233           On some architectures there is currently no way for the boot loader
234           to pass arguments to the kernel. For these architectures, you should
235           supply some command-line options at build time by entering them
236           here.
238 menu "Debugging options"
240 config JUMP_UPON_UNHANDLED_EXCEPTION
241         bool "Try to die gracefully"
242         default y
243         help
244           Now this puts kernel into infinite loop after first oops. Till
245           your kernel crashes this doesn't have any influence.
247           Say Y if you are unsure.
249 config OPENRISC_ESR_EXCEPTION_BUG_CHECK
250         bool "Check for possible ESR exception bug"
251         default n
252         help
253           This option enables some checks that might expose some problems
254           in kernel.
256           Say N if you are unsure.
258 endmenu
260 endmenu