Merge tag 'xarray-6.0' of git://git.infradead.org/users/willy/xarray
[linux-2.6-microblaze.git] / arch / openrisc / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2 #
3 # For a description of the syntax of this configuration file,
4 # see Documentation/kbuild/kconfig-language.rst.
5 #
6
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_IOMAP
24         select GENERIC_CPU_DEVICES
25         select HAVE_UID16
26         select GENERIC_ATOMIC64
27         select GENERIC_CLOCKEVENTS_BROADCAST
28         select GENERIC_SMP_IDLE_THREAD
29         select MODULES_USE_ELF_RELA
30         select HAVE_DEBUG_STACKOVERFLOW
31         select OR1K_PIC
32         select CPU_NO_EFFICIENT_FFS if !OPENRISC_HAVE_INST_FF1
33         select ARCH_USE_QUEUED_RWLOCKS
34         select OMPIC if SMP
35         select ARCH_WANT_FRAME_POINTERS
36         select GENERIC_IRQ_MULTI_HANDLER
37         select MMU_GATHER_NO_RANGE if MMU
38         select TRACE_IRQFLAGS_SUPPORT
39
40 config CPU_BIG_ENDIAN
41         def_bool y
42
43 config MMU
44         def_bool y
45
46 config GENERIC_HWEIGHT
47         def_bool y
48
49 config NO_IOPORT_MAP
50         def_bool y
51
52 # For now, use generic checksum functions
53 #These can be reimplemented in assembly later if so inclined
54 config GENERIC_CSUM
55         def_bool y
56
57 config STACKTRACE_SUPPORT
58         def_bool y
59
60 config LOCKDEP_SUPPORT
61         def_bool  y
62
63 menu "Processor type and features"
64
65 choice
66         prompt "Subarchitecture"
67         default OR1K_1200
68
69 config OR1K_1200
70         bool "OR1200"
71         help
72           Generic OpenRISC 1200 architecture
73
74 endchoice
75
76 config DCACHE_WRITETHROUGH
77         bool "Have write through data caches"
78         default n
79         help
80           Select this if your implementation features write through data caches.
81           Selecting 'N' here will allow the kernel to force flushing of data
82           caches at relevant times. Most OpenRISC implementations support write-
83           through data caches.
84
85           If unsure say N here
86
87 config OPENRISC_BUILTIN_DTB
88         string "Builtin DTB"
89         default ""
90
91 menu "Class II Instructions"
92
93 config OPENRISC_HAVE_INST_FF1
94         bool "Have instruction l.ff1"
95         default y
96         help
97           Select this if your implementation has the Class II instruction l.ff1
98
99 config OPENRISC_HAVE_INST_FL1
100         bool "Have instruction l.fl1"
101         default y
102         help
103           Select this if your implementation has the Class II instruction l.fl1
104
105 config OPENRISC_HAVE_INST_MUL
106         bool "Have instruction l.mul for hardware multiply"
107         default y
108         help
109           Select this if your implementation has a hardware multiply instruction
110
111 config OPENRISC_HAVE_INST_DIV
112         bool "Have instruction l.div for hardware divide"
113         default y
114         help
115           Select this if your implementation has a hardware divide instruction
116
117 config OPENRISC_HAVE_INST_CMOV
118         bool "Have instruction l.cmov for conditional move"
119         default n
120         help
121           This config enables gcc to generate l.cmov instructions when compiling
122           the kernel which in general will improve performance and reduce the
123           binary size.
124
125           Select this if your implementation has support for the Class II
126           l.cmov conistional move instruction.
127
128           Say N if you are unsure.
129
130 config OPENRISC_HAVE_INST_ROR
131         bool "Have instruction l.ror for rotate right"
132         default n
133         help
134           This config enables gcc to generate l.ror instructions when compiling
135           the kernel which in general will improve performance and reduce the
136           binary size.
137
138           Select this if your implementation has support for the Class II
139           l.ror rotate right instruction.
140
141           Say N if you are unsure.
142
143 config OPENRISC_HAVE_INST_RORI
144         bool "Have instruction l.rori for rotate right with immediate"
145         default n
146         help
147           This config enables gcc to generate l.rori instructions when compiling
148           the kernel which in general will improve performance and reduce the
149           binary size.
150
151           Select this if your implementation has support for the Class II
152           l.rori rotate right with immediate instruction.
153
154           Say N if you are unsure.
155
156 config OPENRISC_HAVE_INST_SEXT
157         bool "Have instructions l.ext* for sign extension"
158         default n
159         help
160           This config enables gcc to generate l.ext* instructions when compiling
161           the kernel which in general will improve performance and reduce the
162           binary size.
163
164           Select this if your implementation has support for the Class II
165           l.exths, l.extbs, l.exthz and l.extbz size extend instructions.
166
167           Say N if you are unsure.
168
169 endmenu
170
171 config NR_CPUS
172         int "Maximum number of CPUs (2-32)"
173         range 2 32
174         depends on SMP
175         default "2"
176
177 config SMP
178         bool "Symmetric Multi-Processing support"
179         help
180           This enables support for systems with more than one CPU. If you have
181           a system with only one CPU, say N. If you have a system with more
182           than one CPU, say Y.
183
184           If you don't know what to do here, say N.
185
186 source "kernel/Kconfig.hz"
187
188 config OPENRISC_NO_SPR_SR_DSX
189         bool "use SPR_SR_DSX software emulation" if OR1K_1200
190         default y
191         help
192           SPR_SR_DSX bit is status register bit indicating whether
193           the last exception has happened in delay slot.
194
195           OpenRISC architecture makes it optional to have it implemented
196           in hardware and the OR1200 does not have it.
197
198           Say N here if you know that your OpenRISC processor has
199           SPR_SR_DSX bit implemented. Say Y if you are unsure.
200
201 config OPENRISC_HAVE_SHADOW_GPRS
202         bool "Support for shadow gpr files" if !SMP
203         default y if SMP
204         help
205           Say Y here if your OpenRISC processor features shadowed
206           register files. They will in such case be used as a
207           scratch reg storage on exception entry.
208
209           On SMP systems, this feature is mandatory.
210           On a unicore system it's safe to say N here if you are unsure.
211
212 config CMDLINE
213         string "Default kernel command string"
214         default ""
215         help
216           On some architectures there is currently no way for the boot loader
217           to pass arguments to the kernel. For these architectures, you should
218           supply some command-line options at build time by entering them
219           here.
220
221 menu "Debugging options"
222
223 config JUMP_UPON_UNHANDLED_EXCEPTION
224         bool "Try to die gracefully"
225         default y
226         help
227           Now this puts kernel into infinite loop after first oops. Till
228           your kernel crashes this doesn't have any influence.
229
230           Say Y if you are unsure.
231
232 config OPENRISC_ESR_EXCEPTION_BUG_CHECK
233         bool "Check for possible ESR exception bug"
234         default n
235         help
236           This option enables some checks that might expose some problems
237           in kernel.
238
239           Say N if you are unsure.
240
241 endmenu
242
243 endmenu