Kconfig 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. # SPDX-License-Identifier: GPL-2.0
  2. #
  3. # For a description of the syntax of this configuration file,
  4. # see Documentation/kbuild/kconfig-language.rst.
  5. #
  6. config OPENRISC
  7. def_bool y
  8. select ARCH_32BIT_OFF_T
  9. select ARCH_HAS_DMA_SET_UNCACHED
  10. select ARCH_HAS_DMA_CLEAR_UNCACHED
  11. select ARCH_HAS_SYNC_DMA_FOR_DEVICE
  12. select GENERIC_BUILTIN_DTB
  13. select COMMON_CLK
  14. select OF
  15. select OF_EARLY_FLATTREE
  16. select IRQ_DOMAIN
  17. select GPIOLIB
  18. select HAVE_ARCH_TRACEHOOK
  19. select SPARSE_IRQ
  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
  26. select HAVE_ARCH_JUMP_LABEL
  27. select HAVE_ARCH_JUMP_LABEL_RELATIVE
  28. select HAVE_PCI
  29. select HAVE_UID16
  30. select HAVE_PAGE_SIZE_8KB
  31. select HAVE_REGS_AND_STACK_ACCESS_API
  32. select HAVE_RSEQ
  33. select GENERIC_ATOMIC64
  34. select GENERIC_CLOCKEVENTS_BROADCAST
  35. select GENERIC_SMP_IDLE_THREAD
  36. select MODULES_USE_ELF_RELA
  37. select HAVE_DEBUG_STACKOVERFLOW
  38. select OR1K_PIC
  39. select CPU_NO_EFFICIENT_FFS if !OPENRISC_HAVE_INST_FF1
  40. select ARCH_USE_QUEUED_RWLOCKS
  41. select OMPIC if SMP
  42. select PCI_DOMAINS_GENERIC if PCI
  43. select PCI_MSI if PCI
  44. select ARCH_WANT_FRAME_POINTERS
  45. select GENERIC_IRQ_MULTI_HANDLER
  46. select MMU_GATHER_NO_RANGE if MMU
  47. select TRACE_IRQFLAGS_SUPPORT
  48. config CPU_BIG_ENDIAN
  49. def_bool y
  50. config MMU
  51. def_bool y
  52. config GENERIC_HWEIGHT
  53. def_bool y
  54. config NO_IOPORT_MAP
  55. def_bool y
  56. # For now, use generic checksum functions
  57. #These can be reimplemented in assembly later if so inclined
  58. config GENERIC_CSUM
  59. def_bool y
  60. config STACKTRACE_SUPPORT
  61. def_bool y
  62. config LOCKDEP_SUPPORT
  63. def_bool y
  64. config FIX_EARLYCON_MEM
  65. def_bool y
  66. menu "Processor type and features"
  67. choice
  68. prompt "Subarchitecture"
  69. default OR1K_1200
  70. config OR1K_1200
  71. bool "OR1200"
  72. help
  73. Generic OpenRISC 1200 architecture
  74. endchoice
  75. config DCACHE_WRITETHROUGH
  76. bool "Have write through data caches"
  77. default n
  78. help
  79. Select this if your implementation features write through data caches.
  80. Selecting 'N' here will allow the kernel to force flushing of data
  81. caches at relevant times. Most OpenRISC implementations support write-
  82. through data caches.
  83. If unsure say N here
  84. config BUILTIN_DTB_NAME
  85. string "Builtin DTB"
  86. default ""
  87. menu "Class II Instructions"
  88. config OPENRISC_HAVE_INST_FF1
  89. bool "Have instruction l.ff1"
  90. default y
  91. help
  92. Select this if your implementation has the Class II instruction l.ff1
  93. config OPENRISC_HAVE_INST_FL1
  94. bool "Have instruction l.fl1"
  95. default y
  96. help
  97. Select this if your implementation has the Class II instruction l.fl1
  98. config OPENRISC_HAVE_INST_MUL
  99. bool "Have instruction l.mul for hardware multiply"
  100. default y
  101. help
  102. Select this if your implementation has a hardware multiply instruction
  103. config OPENRISC_HAVE_INST_DIV
  104. bool "Have instruction l.div for hardware divide"
  105. default y
  106. help
  107. Select this if your implementation has a hardware divide instruction
  108. config OPENRISC_HAVE_INST_CMOV
  109. bool "Have instruction l.cmov for conditional move"
  110. default n
  111. help
  112. This config enables gcc to generate l.cmov instructions when compiling
  113. the kernel which in general will improve performance and reduce the
  114. binary size.
  115. Select this if your implementation has support for the Class II
  116. l.cmov conistional move instruction.
  117. Say N if you are unsure.
  118. config OPENRISC_HAVE_INST_ROR
  119. bool "Have instruction l.ror for rotate right"
  120. default n
  121. help
  122. This config enables gcc to generate l.ror instructions when compiling
  123. the kernel which in general will improve performance and reduce the
  124. binary size.
  125. Select this if your implementation has support for the Class II
  126. l.ror rotate right instruction.
  127. Say N if you are unsure.
  128. config OPENRISC_HAVE_INST_RORI
  129. bool "Have instruction l.rori for rotate right with immediate"
  130. default n
  131. help
  132. This config enables gcc to generate l.rori instructions when compiling
  133. the kernel which in general will improve performance and reduce the
  134. binary size.
  135. Select this if your implementation has support for the Class II
  136. l.rori rotate right with immediate instruction.
  137. Say N if you are unsure.
  138. config OPENRISC_HAVE_INST_SEXT
  139. bool "Have instructions l.ext* for sign extension"
  140. default n
  141. help
  142. This config enables gcc to generate l.ext* instructions when compiling
  143. the kernel which in general will improve performance and reduce the
  144. binary size.
  145. Select this if your implementation has support for the Class II
  146. l.exths, l.extbs, l.exthz and l.extbz size extend instructions.
  147. Say N if you are unsure.
  148. endmenu
  149. config NR_CPUS
  150. int "Maximum number of CPUs (2-32)"
  151. range 2 32
  152. depends on SMP
  153. default "2"
  154. config SMP
  155. bool "Symmetric Multi-Processing support"
  156. help
  157. This enables support for systems with more than one CPU. If you have
  158. a system with only one CPU, say N. If you have a system with more
  159. than one CPU, say Y.
  160. If you don't know what to do here, say N.
  161. config FPU
  162. bool "FPU support"
  163. default y
  164. help
  165. Say N here if you want to disable all floating-point related procedures
  166. in the kernel and reduce binary size.
  167. If you don't know what to do here, say Y.
  168. source "kernel/Kconfig.hz"
  169. config OPENRISC_NO_SPR_SR_DSX
  170. bool "use SPR_SR_DSX software emulation" if OR1K_1200
  171. default y
  172. help
  173. SPR_SR_DSX bit is status register bit indicating whether
  174. the last exception has happened in delay slot.
  175. OpenRISC architecture makes it optional to have it implemented
  176. in hardware and the OR1200 does not have it.
  177. Say N here if you know that your OpenRISC processor has
  178. SPR_SR_DSX bit implemented. Say Y if you are unsure.
  179. config OPENRISC_HAVE_SHADOW_GPRS
  180. bool "Support for shadow gpr files" if !SMP
  181. default y if SMP
  182. help
  183. Say Y here if your OpenRISC processor features shadowed
  184. register files. They will in such case be used as a
  185. scratch reg storage on exception entry.
  186. On SMP systems, this feature is mandatory.
  187. On a unicore system it's safe to say N here if you are unsure.
  188. config CMDLINE
  189. string "Default kernel command string"
  190. default ""
  191. help
  192. On some architectures there is currently no way for the boot loader
  193. to pass arguments to the kernel. For these architectures, you should
  194. supply some command-line options at build time by entering them
  195. here.
  196. menu "Debugging options"
  197. config JUMP_UPON_UNHANDLED_EXCEPTION
  198. bool "Try to die gracefully"
  199. default y
  200. help
  201. Now this puts kernel into infinite loop after first oops. Till
  202. your kernel crashes this doesn't have any influence.
  203. Say Y if you are unsure.
  204. config OPENRISC_ESR_EXCEPTION_BUG_CHECK
  205. bool "Check for possible ESR exception bug"
  206. default n
  207. help
  208. This option enables some checks that might expose some problems
  209. in kernel.
  210. Say N if you are unsure.
  211. endmenu
  212. endmenu