Kconfig 6.5 KB

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