xref: /linux/arch/openrisc/Kconfig (revision 87e387acd8eba5021a8e5d6b54e0c5ef5c28ada2)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
2f8c4a270SJonas Bonn#
3f8c4a270SJonas Bonn# For a description of the syntax of this configuration file,
4cd238effSMauro Carvalho Chehab# see Documentation/kbuild/kconfig-language.rst.
5f8c4a270SJonas Bonn#
6f8c4a270SJonas Bonn
7f8c4a270SJonas Bonnconfig OPENRISC
8f8c4a270SJonas Bonn	def_bool y
9942fa985SYury Norov	select ARCH_32BIT_OFF_T
10a4a4d11aSChristoph Hellwig	select ARCH_HAS_DMA_SET_UNCACHED
11a4a4d11aSChristoph Hellwig	select ARCH_HAS_DMA_CLEAR_UNCACHED
125600779eSChristoph Hellwig	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
137f435e42SStafford Horne	select COMMON_CLK
14f8c4a270SJonas Bonn	select OF
15f8c4a270SJonas Bonn	select OF_EARLY_FLATTREE
16b4c4c6eeSJonas Bonn	select IRQ_DOMAIN
178636f344SLinus Walleij	select GPIOLIB
18f8c4a270SJonas Bonn	select HAVE_ARCH_TRACEHOOK
19c0fcaf55SJonas Bonn	select SPARSE_IRQ
20f8c4a270SJonas Bonn	select GENERIC_IRQ_CHIP
21f8c4a270SJonas Bonn	select GENERIC_IRQ_PROBE
22f8c4a270SJonas Bonn	select GENERIC_IRQ_SHOW
23f8c4a270SJonas Bonn	select GENERIC_IOMAP
249f13a1fdSBen Hutchings	select GENERIC_CPU_DEVICES
2504ea1e91SAndrew Morton	select HAVE_UID16
260662d33aSRichard Weinberger	select GENERIC_ATOMIC64
278e6d08e0SStefan Kristiansson	select GENERIC_CLOCKEVENTS_BROADCAST
288e6d08e0SStefan Kristiansson	select GENERIC_SMP_IDLE_THREAD
29786d35d4SDavid Howells	select MODULES_USE_ELF_RELA
30d1a1dc0bSDave Hansen	select HAVE_DEBUG_STACKOVERFLOW
314db8e6d2SStefan Kristiansson	select OR1K_PIC
32fff7fb0bSZhaoxiu Zeng	select CPU_NO_EFFICIENT_FFS if !OPENRISC_HAVE_INST_FF1
33b5f82176SStafford Horne	select ARCH_USE_QUEUED_SPINLOCKS
34b5f82176SStafford Horne	select ARCH_USE_QUEUED_RWLOCKS
359b54470aSStafford Horne	select OMPIC if SMP
36eecac38bSStafford Horne	select ARCH_WANT_FRAME_POINTERS
37c5ca4560SPalmer Dabbelt	select GENERIC_IRQ_MULTI_HANDLER
386137fed0SPeter Zijlstra	select MMU_GATHER_NO_RANGE if MMU
394aae683fSMasahiro Yamada	select TRACE_IRQFLAGS_SUPPORT
40f8c4a270SJonas Bonn
414c97a0c8SBabu Mogerconfig CPU_BIG_ENDIAN
424c97a0c8SBabu Moger	def_bool y
434c97a0c8SBabu Moger
44f8c4a270SJonas Bonnconfig MMU
45f8c4a270SJonas Bonn	def_bool y
46f8c4a270SJonas Bonn
47f8c4a270SJonas Bonnconfig GENERIC_HWEIGHT
48f8c4a270SJonas Bonn	def_bool y
49f8c4a270SJonas Bonn
50ce816fa8SUwe Kleine-Königconfig NO_IOPORT_MAP
51f8c4a270SJonas Bonn	def_bool y
52f8c4a270SJonas Bonn
53f8c4a270SJonas Bonn# For now, use generic checksum functions
54f8c4a270SJonas Bonn#These can be reimplemented in assembly later if so inclined
55f8c4a270SJonas Bonnconfig GENERIC_CSUM
56f8c4a270SJonas Bonn	def_bool y
57f8c4a270SJonas Bonn
58eecac38bSStafford Horneconfig STACKTRACE_SUPPORT
59eecac38bSStafford Horne	def_bool y
60eecac38bSStafford Horne
6178cdfb5cSStafford Horneconfig LOCKDEP_SUPPORT
6278cdfb5cSStafford Horne	def_bool  y
6378cdfb5cSStafford Horne
64f8c4a270SJonas Bonnmenu "Processor type and features"
65f8c4a270SJonas Bonn
66f8c4a270SJonas Bonnchoice
67f8c4a270SJonas Bonn	prompt "Subarchitecture"
68f8c4a270SJonas Bonn	default OR1K_1200
69f8c4a270SJonas Bonn
70f8c4a270SJonas Bonnconfig OR1K_1200
71f8c4a270SJonas Bonn	bool "OR1200"
72f8c4a270SJonas Bonn	help
73f8c4a270SJonas Bonn	  Generic OpenRISC 1200 architecture
74f8c4a270SJonas Bonn
75f8c4a270SJonas Bonnendchoice
76f8c4a270SJonas Bonn
774ee93d80SJan Henrik Weinstockconfig DCACHE_WRITETHROUGH
784ee93d80SJan Henrik Weinstock	bool "Have write through data caches"
794ee93d80SJan Henrik Weinstock	default n
804ee93d80SJan Henrik Weinstock	help
814ee93d80SJan Henrik Weinstock	  Select this if your implementation features write through data caches.
824ee93d80SJan Henrik Weinstock	  Selecting 'N' here will allow the kernel to force flushing of data
834ee93d80SJan Henrik Weinstock	  caches at relevant times. Most OpenRISC implementations support write-
844ee93d80SJan Henrik Weinstock	  through data caches.
854ee93d80SJan Henrik Weinstock
864ee93d80SJan Henrik Weinstock	  If unsure say N here
874ee93d80SJan Henrik Weinstock
88f8c4a270SJonas Bonnconfig OPENRISC_BUILTIN_DTB
89f8c4a270SJonas Bonn	string "Builtin DTB"
90f8c4a270SJonas Bonn	default ""
91f8c4a270SJonas Bonn
92f8c4a270SJonas Bonnmenu "Class II Instructions"
93f8c4a270SJonas Bonn
94f8c4a270SJonas Bonnconfig OPENRISC_HAVE_INST_FF1
95f8c4a270SJonas Bonn	bool "Have instruction l.ff1"
96f8c4a270SJonas Bonn	default y
97f8c4a270SJonas Bonn	help
98f8c4a270SJonas Bonn	  Select this if your implementation has the Class II instruction l.ff1
99f8c4a270SJonas Bonn
100f8c4a270SJonas Bonnconfig OPENRISC_HAVE_INST_FL1
101f8c4a270SJonas Bonn	bool "Have instruction l.fl1"
102f8c4a270SJonas Bonn	default y
103f8c4a270SJonas Bonn	help
104f8c4a270SJonas Bonn	  Select this if your implementation has the Class II instruction l.fl1
105f8c4a270SJonas Bonn
106f8c4a270SJonas Bonnconfig OPENRISC_HAVE_INST_MUL
107f8c4a270SJonas Bonn	bool "Have instruction l.mul for hardware multiply"
108f8c4a270SJonas Bonn	default y
109f8c4a270SJonas Bonn	help
110f8c4a270SJonas Bonn	  Select this if your implementation has a hardware multiply instruction
111f8c4a270SJonas Bonn
112f8c4a270SJonas Bonnconfig OPENRISC_HAVE_INST_DIV
113f8c4a270SJonas Bonn	bool "Have instruction l.div for hardware divide"
114f8c4a270SJonas Bonn	default y
115f8c4a270SJonas Bonn	help
116f8c4a270SJonas Bonn	  Select this if your implementation has a hardware divide instruction
117*87e387acSStafford Horne
118*87e387acSStafford Horneconfig OPENRISC_HAVE_INST_CMOV
119*87e387acSStafford Horne	bool "Have instruction l.cmov for conditional move"
120*87e387acSStafford Horne	default n
121*87e387acSStafford Horne	help
122*87e387acSStafford Horne	  This config enables gcc to generate l.cmov instructions when compiling
123*87e387acSStafford Horne	  the kernel which in general will improve performance and reduce the
124*87e387acSStafford Horne	  binary size.
125*87e387acSStafford Horne
126*87e387acSStafford Horne	  Select this if your implementation has support for the Class II
127*87e387acSStafford Horne	  l.cmov conistional move instruction.
128*87e387acSStafford Horne
129*87e387acSStafford Horne	  Say N if you are unsure.
130*87e387acSStafford Horne
131*87e387acSStafford Horneconfig OPENRISC_HAVE_INST_ROR
132*87e387acSStafford Horne	bool "Have instruction l.ror for rotate right"
133*87e387acSStafford Horne	default n
134*87e387acSStafford Horne	help
135*87e387acSStafford Horne	  This config enables gcc to generate l.ror instructions when compiling
136*87e387acSStafford Horne	  the kernel which in general will improve performance and reduce the
137*87e387acSStafford Horne	  binary size.
138*87e387acSStafford Horne
139*87e387acSStafford Horne	  Select this if your implementation has support for the Class II
140*87e387acSStafford Horne	  l.ror rotate right instruction.
141*87e387acSStafford Horne
142*87e387acSStafford Horne	  Say N if you are unsure.
143*87e387acSStafford Horne
144*87e387acSStafford Horneconfig OPENRISC_HAVE_INST_RORI
145*87e387acSStafford Horne	bool "Have instruction l.rori for rotate right with immediate"
146*87e387acSStafford Horne	default n
147*87e387acSStafford Horne	help
148*87e387acSStafford Horne	  This config enables gcc to generate l.rori instructions when compiling
149*87e387acSStafford Horne	  the kernel which in general will improve performance and reduce the
150*87e387acSStafford Horne	  binary size.
151*87e387acSStafford Horne
152*87e387acSStafford Horne	  Select this if your implementation has support for the Class II
153*87e387acSStafford Horne	  l.rori rotate right with immediate instruction.
154*87e387acSStafford Horne
155*87e387acSStafford Horne	  Say N if you are unsure.
156*87e387acSStafford Horne
157*87e387acSStafford Horneconfig OPENRISC_HAVE_INST_SEXT
158*87e387acSStafford Horne	bool "Have instructions l.ext* for sign extension"
159*87e387acSStafford Horne	default n
160*87e387acSStafford Horne	help
161*87e387acSStafford Horne	  This config enables gcc to generate l.ext* instructions when compiling
162*87e387acSStafford Horne	  the kernel which in general will improve performance and reduce the
163*87e387acSStafford Horne	  binary size.
164*87e387acSStafford Horne
165*87e387acSStafford Horne	  Select this if your implementation has support for the Class II
166*87e387acSStafford Horne	  l.exths, l.extbs, l.exthz and l.extbz size extend instructions.
167*87e387acSStafford Horne
168*87e387acSStafford Horne	  Say N if you are unsure.
169*87e387acSStafford Horne
170f8c4a270SJonas Bonnendmenu
171f8c4a270SJonas Bonn
17234bbdcdcSStafford Horneconfig NR_CPUS
1738e6d08e0SStefan Kristiansson	int "Maximum number of CPUs (2-32)"
1748e6d08e0SStefan Kristiansson	range 2 32
1758e6d08e0SStefan Kristiansson	depends on SMP
1768e6d08e0SStefan Kristiansson	default "2"
1778e6d08e0SStefan Kristiansson
1788e6d08e0SStefan Kristianssonconfig SMP
1798e6d08e0SStefan Kristiansson	bool "Symmetric Multi-Processing support"
1808e6d08e0SStefan Kristiansson	help
1818e6d08e0SStefan Kristiansson	  This enables support for systems with more than one CPU. If you have
1828e6d08e0SStefan Kristiansson	  a system with only one CPU, say N. If you have a system with more
1838e6d08e0SStefan Kristiansson	  than one CPU, say Y.
1848e6d08e0SStefan Kristiansson
1858e6d08e0SStefan Kristiansson	  If you don't know what to do here, say N.
186f8c4a270SJonas Bonn
1878636a1f9SMasahiro Yamadasource "kernel/Kconfig.hz"
188f8c4a270SJonas Bonn
189f8c4a270SJonas Bonnconfig OPENRISC_NO_SPR_SR_DSX
190f8c4a270SJonas Bonn	bool "use SPR_SR_DSX software emulation" if OR1K_1200
191f8c4a270SJonas Bonn	default y
192f8c4a270SJonas Bonn	help
193f8c4a270SJonas Bonn	  SPR_SR_DSX bit is status register bit indicating whether
194f8c4a270SJonas Bonn	  the last exception has happened in delay slot.
195f8c4a270SJonas Bonn
196f8c4a270SJonas Bonn	  OpenRISC architecture makes it optional to have it implemented
197f8c4a270SJonas Bonn	  in hardware and the OR1200 does not have it.
198f8c4a270SJonas Bonn
199f8c4a270SJonas Bonn	  Say N here if you know that your OpenRISC processor has
200f8c4a270SJonas Bonn	  SPR_SR_DSX bit implemented. Say Y if you are unsure.
201f8c4a270SJonas Bonn
20291993c8cSStefan Kristianssonconfig OPENRISC_HAVE_SHADOW_GPRS
20391993c8cSStefan Kristiansson	bool "Support for shadow gpr files" if !SMP
20491993c8cSStefan Kristiansson	default y if SMP
20591993c8cSStefan Kristiansson	help
20691993c8cSStefan Kristiansson	  Say Y here if your OpenRISC processor features shadowed
20791993c8cSStefan Kristiansson	  register files. They will in such case be used as a
20891993c8cSStefan Kristiansson	  scratch reg storage on exception entry.
20991993c8cSStefan Kristiansson
21091993c8cSStefan Kristiansson	  On SMP systems, this feature is mandatory.
21191993c8cSStefan Kristiansson	  On a unicore system it's safe to say N here if you are unsure.
21291993c8cSStefan Kristiansson
213f8c4a270SJonas Bonnconfig CMDLINE
214f8c4a270SJonas Bonn	string "Default kernel command string"
215f8c4a270SJonas Bonn	default ""
216f8c4a270SJonas Bonn	help
217f8c4a270SJonas Bonn	  On some architectures there is currently no way for the boot loader
218f8c4a270SJonas Bonn	  to pass arguments to the kernel. For these architectures, you should
219f8c4a270SJonas Bonn	  supply some command-line options at build time by entering them
220f8c4a270SJonas Bonn	  here.
221f8c4a270SJonas Bonn
222f8c4a270SJonas Bonnmenu "Debugging options"
223f8c4a270SJonas Bonn
224f8c4a270SJonas Bonnconfig JUMP_UPON_UNHANDLED_EXCEPTION
225f8c4a270SJonas Bonn	bool "Try to die gracefully"
226f8c4a270SJonas Bonn	default y
227f8c4a270SJonas Bonn	help
228f8c4a270SJonas Bonn	  Now this puts kernel into infinite loop after first oops. Till
229f8c4a270SJonas Bonn	  your kernel crashes this doesn't have any influence.
230f8c4a270SJonas Bonn
231f8c4a270SJonas Bonn	  Say Y if you are unsure.
232f8c4a270SJonas Bonn
233f8c4a270SJonas Bonnconfig OPENRISC_ESR_EXCEPTION_BUG_CHECK
234f8c4a270SJonas Bonn	bool "Check for possible ESR exception bug"
235f8c4a270SJonas Bonn	default n
236f8c4a270SJonas Bonn	help
237f8c4a270SJonas Bonn	  This option enables some checks that might expose some problems
238f8c4a270SJonas Bonn	  in kernel.
239f8c4a270SJonas Bonn
240f8c4a270SJonas Bonn	  Say N if you are unsure.
241f8c4a270SJonas Bonn
242f8c4a270SJonas Bonnendmenu
243f8c4a270SJonas Bonn
244f8c4a270SJonas Bonnendmenu
245