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.
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
15 select OF_EARLY_FLATTREE
18 select HAVE_ARCH_TRACEHOOK
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
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
35 select CPU_NO_EFFICIENT_FFS if !OPENRISC_HAVE_INST_FF1
36 select ARCH_USE_QUEUED_RWLOCKS
38 select PCI_DOMAINS_GENERIC 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
51 config GENERIC_HWEIGHT
57 # For now, use generic checksum functions
58 #These can be reimplemented in assembly later if so inclined
62 config STACKTRACE_SUPPORT
65 config LOCKDEP_SUPPORT
68 config FIX_EARLYCON_MEM
71 menu "Processor type and features"
74 prompt "Subarchitecture"
80 Generic OpenRISC 1200 architecture
84 config DCACHE_WRITETHROUGH
85 bool "Have write through data caches"
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-
95 config OPENRISC_BUILTIN_DTB
99 menu "Class II Instructions"
101 config OPENRISC_HAVE_INST_FF1
102 bool "Have instruction l.ff1"
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"
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"
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"
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"
129 This config enables gcc to generate l.cmov instructions when compiling
130 the kernel which in general will improve performance and reduce the
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"
142 This config enables gcc to generate l.ror instructions when compiling
143 the kernel which in general will improve performance and reduce the
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"
155 This config enables gcc to generate l.rori instructions when compiling
156 the kernel which in general will improve performance and reduce the
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"
168 This config enables gcc to generate l.ext* instructions when compiling
169 the kernel which in general will improve performance and reduce the
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.
180 int "Maximum number of CPUs (2-32)"
186 bool "Symmetric Multi-Processing support"
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
192 If you don't know what to do here, say N.
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
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
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.
230 string "Default kernel command string"
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
238 menu "Debugging options"
240 config JUMP_UPON_UNHANDLED_EXCEPTION
241 bool "Try to die gracefully"
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"
253 This option enables some checks that might expose some problems
256 Say N if you are unsure.