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 GENERIC_ATOMIC64
29 select GENERIC_CLOCKEVENTS_BROADCAST
30 select GENERIC_SMP_IDLE_THREAD
31 select MODULES_USE_ELF_RELA
32 select HAVE_DEBUG_STACKOVERFLOW
34 select CPU_NO_EFFICIENT_FFS if !OPENRISC_HAVE_INST_FF1
35 select ARCH_USE_QUEUED_RWLOCKS
37 select PCI_DOMAINS_GENERIC if PCI
39 select ARCH_WANT_FRAME_POINTERS
40 select GENERIC_IRQ_MULTI_HANDLER
41 select MMU_GATHER_NO_RANGE if MMU
42 select TRACE_IRQFLAGS_SUPPORT
50 config GENERIC_HWEIGHT
56 # For now, use generic checksum functions
57 #These can be reimplemented in assembly later if so inclined
61 config STACKTRACE_SUPPORT
64 config LOCKDEP_SUPPORT
67 menu "Processor type and features"
70 prompt "Subarchitecture"
76 Generic OpenRISC 1200 architecture
80 config DCACHE_WRITETHROUGH
81 bool "Have write through data caches"
84 Select this if your implementation features write through data caches.
85 Selecting 'N' here will allow the kernel to force flushing of data
86 caches at relevant times. Most OpenRISC implementations support write-
91 config OPENRISC_BUILTIN_DTB
95 menu "Class II Instructions"
97 config OPENRISC_HAVE_INST_FF1
98 bool "Have instruction l.ff1"
101 Select this if your implementation has the Class II instruction l.ff1
103 config OPENRISC_HAVE_INST_FL1
104 bool "Have instruction l.fl1"
107 Select this if your implementation has the Class II instruction l.fl1
109 config OPENRISC_HAVE_INST_MUL
110 bool "Have instruction l.mul for hardware multiply"
113 Select this if your implementation has a hardware multiply instruction
115 config OPENRISC_HAVE_INST_DIV
116 bool "Have instruction l.div for hardware divide"
119 Select this if your implementation has a hardware divide instruction
121 config OPENRISC_HAVE_INST_CMOV
122 bool "Have instruction l.cmov for conditional move"
125 This config enables gcc to generate l.cmov instructions when compiling
126 the kernel which in general will improve performance and reduce the
129 Select this if your implementation has support for the Class II
130 l.cmov conistional move instruction.
132 Say N if you are unsure.
134 config OPENRISC_HAVE_INST_ROR
135 bool "Have instruction l.ror for rotate right"
138 This config enables gcc to generate l.ror instructions when compiling
139 the kernel which in general will improve performance and reduce the
142 Select this if your implementation has support for the Class II
143 l.ror rotate right instruction.
145 Say N if you are unsure.
147 config OPENRISC_HAVE_INST_RORI
148 bool "Have instruction l.rori for rotate right with immediate"
151 This config enables gcc to generate l.rori instructions when compiling
152 the kernel which in general will improve performance and reduce the
155 Select this if your implementation has support for the Class II
156 l.rori rotate right with immediate instruction.
158 Say N if you are unsure.
160 config OPENRISC_HAVE_INST_SEXT
161 bool "Have instructions l.ext* for sign extension"
164 This config enables gcc to generate l.ext* instructions when compiling
165 the kernel which in general will improve performance and reduce the
168 Select this if your implementation has support for the Class II
169 l.exths, l.extbs, l.exthz and l.extbz size extend instructions.
171 Say N if you are unsure.
176 int "Maximum number of CPUs (2-32)"
182 bool "Symmetric Multi-Processing support"
184 This enables support for systems with more than one CPU. If you have
185 a system with only one CPU, say N. If you have a system with more
188 If you don't know what to do here, say N.
190 source "kernel/Kconfig.hz"
192 config OPENRISC_NO_SPR_SR_DSX
193 bool "use SPR_SR_DSX software emulation" if OR1K_1200
196 SPR_SR_DSX bit is status register bit indicating whether
197 the last exception has happened in delay slot.
199 OpenRISC architecture makes it optional to have it implemented
200 in hardware and the OR1200 does not have it.
202 Say N here if you know that your OpenRISC processor has
203 SPR_SR_DSX bit implemented. Say Y if you are unsure.
205 config OPENRISC_HAVE_SHADOW_GPRS
206 bool "Support for shadow gpr files" if !SMP
209 Say Y here if your OpenRISC processor features shadowed
210 register files. They will in such case be used as a
211 scratch reg storage on exception entry.
213 On SMP systems, this feature is mandatory.
214 On a unicore system it's safe to say N here if you are unsure.
217 string "Default kernel command string"
220 On some architectures there is currently no way for the boot loader
221 to pass arguments to the kernel. For these architectures, you should
222 supply some command-line options at build time by entering them
225 menu "Debugging options"
227 config JUMP_UPON_UNHANDLED_EXCEPTION
228 bool "Try to die gracefully"
231 Now this puts kernel into infinite loop after first oops. Till
232 your kernel crashes this doesn't have any influence.
234 Say Y if you are unsure.
236 config OPENRISC_ESR_EXCEPTION_BUG_CHECK
237 bool "Check for possible ESR exception bug"
240 This option enables some checks that might expose some problems
243 Say N if you are unsure.