Kconfig 6.2 KB

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