summaryrefslogtreecommitdiffstats
path: root/arch/openrisc/Kconfig
blob: 3586cda55bdecaf687114d2dad14c8b1e9ceef97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
# SPDX-License-Identifier: GPL-2.0
#
# For a description of the syntax of this configuration file,
# see Documentation/kbuild/kconfig-language.rst.
#

config OPENRISC
	def_bool y
	select ARCH_32BIT_OFF_T
	select ARCH_HAS_DMA_SET_UNCACHED
	select ARCH_HAS_DMA_CLEAR_UNCACHED
	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
	select COMMON_CLK
	select OF
	select OF_EARLY_FLATTREE
	select IRQ_DOMAIN
	select GPIOLIB
	select HAVE_ARCH_TRACEHOOK
	select SPARSE_IRQ
	select GENERIC_IRQ_CHIP
	select GENERIC_IRQ_PROBE
	select GENERIC_IRQ_SHOW
	select GENERIC_PCI_IOMAP
	select GENERIC_IOREMAP
	select GENERIC_CPU_DEVICES
	select HAVE_PCI
	select HAVE_UID16
	select HAVE_PAGE_SIZE_8KB
	select GENERIC_ATOMIC64
	select GENERIC_CLOCKEVENTS_BROADCAST
	select GENERIC_SMP_IDLE_THREAD
	select MODULES_USE_ELF_RELA
	select HAVE_DEBUG_STACKOVERFLOW
	select OR1K_PIC
	select CPU_NO_EFFICIENT_FFS if !OPENRISC_HAVE_INST_FF1
	select ARCH_USE_QUEUED_RWLOCKS
	select OMPIC if SMP
	select PCI_DOMAINS_GENERIC if PCI
	select PCI_MSI if PCI
	select ARCH_WANT_FRAME_POINTERS
	select GENERIC_IRQ_MULTI_HANDLER
	select MMU_GATHER_NO_RANGE if MMU
	select TRACE_IRQFLAGS_SUPPORT

config CPU_BIG_ENDIAN
	def_bool y

config MMU
	def_bool y

config GENERIC_HWEIGHT
	def_bool y

config NO_IOPORT_MAP
	def_bool y

# For now, use generic checksum functions
#These can be reimplemented in assembly later if so inclined
config GENERIC_CSUM
	def_bool y

config STACKTRACE_SUPPORT
	def_bool y

config LOCKDEP_SUPPORT
	def_bool  y

menu "Processor type and features"

choice
	prompt "Subarchitecture"
	default OR1K_1200

config OR1K_1200
	bool "OR1200"
	help
	  Generic OpenRISC 1200 architecture

endchoice

config DCACHE_WRITETHROUGH
	bool "Have write through data caches"
	default n
	help
	  Select this if your implementation features write through data caches.
	  Selecting 'N' here will allow the kernel to force flushing of data
	  caches at relevant times. Most OpenRISC implementations support write-
	  through data caches.

	  If unsure say N here

config OPENRISC_BUILTIN_DTB
	string "Builtin DTB"
	default ""

menu "Class II Instructions"

config OPENRISC_HAVE_INST_FF1
	bool "Have instruction l.ff1"
	default y
	help
	  Select this if your implementation has the Class II instruction l.ff1

config OPENRISC_HAVE_INST_FL1
	bool "Have instruction l.fl1"
	default y
	help
	  Select this if your implementation has the Class II instruction l.fl1

config OPENRISC_HAVE_INST_MUL
	bool "Have instruction l.mul for hardware multiply"
	default y
	help
	  Select this if your implementation has a hardware multiply instruction

config OPENRISC_HAVE_INST_DIV
	bool "Have instruction l.div for hardware divide"
	default y
	help
	  Select this if your implementation has a hardware divide instruction

config OPENRISC_HAVE_INST_CMOV
	bool "Have instruction l.cmov for conditional move"
	default n
	help
	  This config enables gcc to generate l.cmov instructions when compiling
	  the kernel which in general will improve performance and reduce the
	  binary size.

	  Select this if your implementation has support for the Class II
	  l.cmov conistional move instruction.

	  Say N if you are unsure.

config OPENRISC_HAVE_INST_ROR
	bool "Have instruction l.ror for rotate right"
	default n
	help
	  This config enables gcc to generate l.ror instructions when compiling
	  the kernel which in general will improve performance and reduce the
	  binary size.

	  Select this if your implementation has support for the Class II
	  l.ror rotate right instruction.

	  Say N if you are unsure.

config OPENRISC_HAVE_INST_RORI
	bool "Have instruction l.rori for rotate right with immediate"
	default n
	help
	  This config enables gcc to generate l.rori instructions when compiling
	  the kernel which in general will improve performance and reduce the
	  binary size.

	  Select this if your implementation has support for the Class II
	  l.rori rotate right with immediate instruction.

	  Say N if you are unsure.

config OPENRISC_HAVE_INST_SEXT
	bool "Have instructions l.ext* for sign extension"
	default n
	help
	  This config enables gcc to generate l.ext* instructions when compiling
	  the kernel which in general will improve performance and reduce the
	  binary size.

	  Select this if your implementation has support for the Class II
	  l.exths, l.extbs, l.exthz and l.extbz size extend instructions.

	  Say N if you are unsure.

endmenu

config NR_CPUS
	int "Maximum number of CPUs (2-32)"
	range 2 32
	depends on SMP
	default "2"

config SMP
	bool "Symmetric Multi-Processing support"
	help
	  This enables support for systems with more than one CPU. If you have
	  a system with only one CPU, say N. If you have a system with more
	  than one CPU, say Y.

	  If you don't know what to do here, say N.

source "kernel/Kconfig.hz"

config OPENRISC_NO_SPR_SR_DSX
	bool "use SPR_SR_DSX software emulation" if OR1K_1200
	default y
	help
	  SPR_SR_DSX bit is status register bit indicating whether
	  the last exception has happened in delay slot.

	  OpenRISC architecture makes it optional to have it implemented
	  in hardware and the OR1200 does not have it.

	  Say N here if you know that your OpenRISC processor has
	  SPR_SR_DSX bit implemented. Say Y if you are unsure.

config OPENRISC_HAVE_SHADOW_GPRS
	bool "Support for shadow gpr files" if !SMP
	default y if SMP
	help
	  Say Y here if your OpenRISC processor features shadowed
	  register files. They will in such case be used as a
	  scratch reg storage on exception entry.

	  On SMP systems, this feature is mandatory.
	  On a unicore system it's safe to say N here if you are unsure.

config CMDLINE
	string "Default kernel command string"
	default ""
	help
	  On some architectures there is currently no way for the boot loader
	  to pass arguments to the kernel. For these architectures, you should
	  supply some command-line options at build time by entering them
	  here.

menu "Debugging options"

config JUMP_UPON_UNHANDLED_EXCEPTION
	bool "Try to die gracefully"
	default y
	help
	  Now this puts kernel into infinite loop after first oops. Till
	  your kernel crashes this doesn't have any influence.

	  Say Y if you are unsure.

config OPENRISC_ESR_EXCEPTION_BUG_CHECK
	bool "Check for possible ESR exception bug"
	default n
	help
	  This option enables some checks that might expose some problems
	  in kernel.

	  Say N if you are unsure.

endmenu

endmenu