18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# For a description of the syntax of this configuration file,
48c2ecf20Sopenharmony_ci# see Documentation/kbuild/kconfig-language.rst.
58c2ecf20Sopenharmony_ci#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ciconfig OPENRISC
88c2ecf20Sopenharmony_ci	def_bool y
98c2ecf20Sopenharmony_ci	select ARCH_32BIT_OFF_T
108c2ecf20Sopenharmony_ci	select ARCH_HAS_DMA_SET_UNCACHED
118c2ecf20Sopenharmony_ci	select ARCH_HAS_DMA_CLEAR_UNCACHED
128c2ecf20Sopenharmony_ci	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
138c2ecf20Sopenharmony_ci	select OF
148c2ecf20Sopenharmony_ci	select OF_EARLY_FLATTREE
158c2ecf20Sopenharmony_ci	select IRQ_DOMAIN
168c2ecf20Sopenharmony_ci	select HANDLE_DOMAIN_IRQ
178c2ecf20Sopenharmony_ci	select GPIOLIB
188c2ecf20Sopenharmony_ci	select HAVE_ARCH_TRACEHOOK
198c2ecf20Sopenharmony_ci	select SPARSE_IRQ
208c2ecf20Sopenharmony_ci	select GENERIC_IRQ_CHIP
218c2ecf20Sopenharmony_ci	select GENERIC_IRQ_PROBE
228c2ecf20Sopenharmony_ci	select GENERIC_IRQ_SHOW
238c2ecf20Sopenharmony_ci	select GENERIC_IOMAP
248c2ecf20Sopenharmony_ci	select GENERIC_CPU_DEVICES
258c2ecf20Sopenharmony_ci	select HAVE_UID16
268c2ecf20Sopenharmony_ci	select GENERIC_ATOMIC64
278c2ecf20Sopenharmony_ci	select GENERIC_CLOCKEVENTS
288c2ecf20Sopenharmony_ci	select GENERIC_CLOCKEVENTS_BROADCAST
298c2ecf20Sopenharmony_ci	select GENERIC_STRNCPY_FROM_USER
308c2ecf20Sopenharmony_ci	select GENERIC_STRNLEN_USER
318c2ecf20Sopenharmony_ci	select GENERIC_SMP_IDLE_THREAD
328c2ecf20Sopenharmony_ci	select MODULES_USE_ELF_RELA
338c2ecf20Sopenharmony_ci	select HAVE_DEBUG_STACKOVERFLOW
348c2ecf20Sopenharmony_ci	select OR1K_PIC
358c2ecf20Sopenharmony_ci	select CPU_NO_EFFICIENT_FFS if !OPENRISC_HAVE_INST_FF1
368c2ecf20Sopenharmony_ci	select ARCH_USE_QUEUED_SPINLOCKS
378c2ecf20Sopenharmony_ci	select ARCH_USE_QUEUED_RWLOCKS
388c2ecf20Sopenharmony_ci	select OMPIC if SMP
398c2ecf20Sopenharmony_ci	select ARCH_WANT_FRAME_POINTERS
408c2ecf20Sopenharmony_ci	select GENERIC_IRQ_MULTI_HANDLER
418c2ecf20Sopenharmony_ci	select MMU_GATHER_NO_RANGE if MMU
428c2ecf20Sopenharmony_ci	select SET_FS
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ciconfig CPU_BIG_ENDIAN
458c2ecf20Sopenharmony_ci	def_bool y
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ciconfig MMU
488c2ecf20Sopenharmony_ci	def_bool y
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ciconfig GENERIC_HWEIGHT
518c2ecf20Sopenharmony_ci	def_bool y
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ciconfig NO_IOPORT_MAP
548c2ecf20Sopenharmony_ci	def_bool y
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ciconfig TRACE_IRQFLAGS_SUPPORT
578c2ecf20Sopenharmony_ci	def_bool y
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci# For now, use generic checksum functions
608c2ecf20Sopenharmony_ci#These can be reimplemented in assembly later if so inclined
618c2ecf20Sopenharmony_ciconfig GENERIC_CSUM
628c2ecf20Sopenharmony_ci	def_bool y
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ciconfig STACKTRACE_SUPPORT
658c2ecf20Sopenharmony_ci	def_bool y
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ciconfig LOCKDEP_SUPPORT
688c2ecf20Sopenharmony_ci	def_bool  y
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_cimenu "Processor type and features"
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_cichoice
738c2ecf20Sopenharmony_ci	prompt "Subarchitecture"
748c2ecf20Sopenharmony_ci	default OR1K_1200
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ciconfig OR1K_1200
778c2ecf20Sopenharmony_ci	bool "OR1200"
788c2ecf20Sopenharmony_ci	help
798c2ecf20Sopenharmony_ci	  Generic OpenRISC 1200 architecture
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ciendchoice
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ciconfig DCACHE_WRITETHROUGH
848c2ecf20Sopenharmony_ci	bool "Have write through data caches"
858c2ecf20Sopenharmony_ci	default n
868c2ecf20Sopenharmony_ci	help
878c2ecf20Sopenharmony_ci	  Select this if your implementation features write through data caches.
888c2ecf20Sopenharmony_ci	  Selecting 'N' here will allow the kernel to force flushing of data
898c2ecf20Sopenharmony_ci	  caches at relevant times. Most OpenRISC implementations support write-
908c2ecf20Sopenharmony_ci	  through data caches.
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ci	  If unsure say N here
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ciconfig OPENRISC_BUILTIN_DTB
958c2ecf20Sopenharmony_ci	string "Builtin DTB"
968c2ecf20Sopenharmony_ci	default ""
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_cimenu "Class II Instructions"
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ciconfig OPENRISC_HAVE_INST_FF1
1018c2ecf20Sopenharmony_ci	bool "Have instruction l.ff1"
1028c2ecf20Sopenharmony_ci	default y
1038c2ecf20Sopenharmony_ci	help
1048c2ecf20Sopenharmony_ci	  Select this if your implementation has the Class II instruction l.ff1
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ciconfig OPENRISC_HAVE_INST_FL1
1078c2ecf20Sopenharmony_ci	bool "Have instruction l.fl1"
1088c2ecf20Sopenharmony_ci	default y
1098c2ecf20Sopenharmony_ci	help
1108c2ecf20Sopenharmony_ci	  Select this if your implementation has the Class II instruction l.fl1
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ciconfig OPENRISC_HAVE_INST_MUL
1138c2ecf20Sopenharmony_ci	bool "Have instruction l.mul for hardware multiply"
1148c2ecf20Sopenharmony_ci	default y
1158c2ecf20Sopenharmony_ci	help
1168c2ecf20Sopenharmony_ci	  Select this if your implementation has a hardware multiply instruction
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ciconfig OPENRISC_HAVE_INST_DIV
1198c2ecf20Sopenharmony_ci	bool "Have instruction l.div for hardware divide"
1208c2ecf20Sopenharmony_ci	default y
1218c2ecf20Sopenharmony_ci	help
1228c2ecf20Sopenharmony_ci	  Select this if your implementation has a hardware divide instruction
1238c2ecf20Sopenharmony_ciendmenu
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ciconfig NR_CPUS
1268c2ecf20Sopenharmony_ci	int "Maximum number of CPUs (2-32)"
1278c2ecf20Sopenharmony_ci	range 2 32
1288c2ecf20Sopenharmony_ci	depends on SMP
1298c2ecf20Sopenharmony_ci	default "2"
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ciconfig SMP
1328c2ecf20Sopenharmony_ci	bool "Symmetric Multi-Processing support"
1338c2ecf20Sopenharmony_ci	help
1348c2ecf20Sopenharmony_ci	  This enables support for systems with more than one CPU. If you have
1358c2ecf20Sopenharmony_ci	  a system with only one CPU, say N. If you have a system with more
1368c2ecf20Sopenharmony_ci	  than one CPU, say Y.
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ci	  If you don't know what to do here, say N.
1398c2ecf20Sopenharmony_ci
1408c2ecf20Sopenharmony_cisource "kernel/Kconfig.hz"
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ciconfig OPENRISC_NO_SPR_SR_DSX
1438c2ecf20Sopenharmony_ci	bool "use SPR_SR_DSX software emulation" if OR1K_1200
1448c2ecf20Sopenharmony_ci	default y
1458c2ecf20Sopenharmony_ci	help
1468c2ecf20Sopenharmony_ci	  SPR_SR_DSX bit is status register bit indicating whether
1478c2ecf20Sopenharmony_ci	  the last exception has happened in delay slot.
1488c2ecf20Sopenharmony_ci
1498c2ecf20Sopenharmony_ci	  OpenRISC architecture makes it optional to have it implemented
1508c2ecf20Sopenharmony_ci	  in hardware and the OR1200 does not have it.
1518c2ecf20Sopenharmony_ci
1528c2ecf20Sopenharmony_ci	  Say N here if you know that your OpenRISC processor has
1538c2ecf20Sopenharmony_ci	  SPR_SR_DSX bit implemented. Say Y if you are unsure.
1548c2ecf20Sopenharmony_ci
1558c2ecf20Sopenharmony_ciconfig OPENRISC_HAVE_SHADOW_GPRS
1568c2ecf20Sopenharmony_ci	bool "Support for shadow gpr files" if !SMP
1578c2ecf20Sopenharmony_ci	default y if SMP
1588c2ecf20Sopenharmony_ci	help
1598c2ecf20Sopenharmony_ci	  Say Y here if your OpenRISC processor features shadowed
1608c2ecf20Sopenharmony_ci	  register files. They will in such case be used as a
1618c2ecf20Sopenharmony_ci	  scratch reg storage on exception entry.
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ci	  On SMP systems, this feature is mandatory.
1648c2ecf20Sopenharmony_ci	  On a unicore system it's safe to say N here if you are unsure.
1658c2ecf20Sopenharmony_ci
1668c2ecf20Sopenharmony_ciconfig CMDLINE
1678c2ecf20Sopenharmony_ci	string "Default kernel command string"
1688c2ecf20Sopenharmony_ci	default ""
1698c2ecf20Sopenharmony_ci	help
1708c2ecf20Sopenharmony_ci	  On some architectures there is currently no way for the boot loader
1718c2ecf20Sopenharmony_ci	  to pass arguments to the kernel. For these architectures, you should
1728c2ecf20Sopenharmony_ci	  supply some command-line options at build time by entering them
1738c2ecf20Sopenharmony_ci	  here.
1748c2ecf20Sopenharmony_ci
1758c2ecf20Sopenharmony_cimenu "Debugging options"
1768c2ecf20Sopenharmony_ci
1778c2ecf20Sopenharmony_ciconfig JUMP_UPON_UNHANDLED_EXCEPTION
1788c2ecf20Sopenharmony_ci	bool "Try to die gracefully"
1798c2ecf20Sopenharmony_ci	default y
1808c2ecf20Sopenharmony_ci	help
1818c2ecf20Sopenharmony_ci	  Now this puts kernel into infinite loop after first oops. Till
1828c2ecf20Sopenharmony_ci	  your kernel crashes this doesn't have any influence.
1838c2ecf20Sopenharmony_ci
1848c2ecf20Sopenharmony_ci	  Say Y if you are unsure.
1858c2ecf20Sopenharmony_ci
1868c2ecf20Sopenharmony_ciconfig OPENRISC_ESR_EXCEPTION_BUG_CHECK
1878c2ecf20Sopenharmony_ci	bool "Check for possible ESR exception bug"
1888c2ecf20Sopenharmony_ci	default n
1898c2ecf20Sopenharmony_ci	help
1908c2ecf20Sopenharmony_ci	  This option enables some checks that might expose some problems
1918c2ecf20Sopenharmony_ci	  in kernel.
1928c2ecf20Sopenharmony_ci
1938c2ecf20Sopenharmony_ci	  Say N if you are unsure.
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ciendmenu
1968c2ecf20Sopenharmony_ci
1978c2ecf20Sopenharmony_ciendmenu
198