Kconfig 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378
  1. # SPDX-License-Identifier: GPL-2.0
  2. config PARISC
  3. def_bool y
  4. select ALTERNATE_USER_ADDRESS_SPACE
  5. select ARCH_32BIT_OFF_T if !64BIT
  6. select ARCH_MIGHT_HAVE_PC_PARPORT
  7. select HAVE_FUNCTION_TRACER
  8. select HAVE_FUNCTION_GRAPH_TRACER
  9. select HAVE_SYSCALL_TRACEPOINTS
  10. select ARCH_WANT_FRAME_POINTERS
  11. select ARCH_HAS_ELF_RANDOMIZE
  12. select ARCH_HAS_STRICT_KERNEL_RWX
  13. select ARCH_HAS_STRICT_MODULE_RWX
  14. select ARCH_HAS_UBSAN_SANITIZE_ALL
  15. select ARCH_HAS_PTE_SPECIAL
  16. select ARCH_NO_SG_CHAIN
  17. select ARCH_SUPPORTS_HUGETLBFS if PA20
  18. select ARCH_SUPPORTS_MEMORY_FAILURE
  19. select ARCH_STACKWALK
  20. select ARCH_HAS_DEBUG_VM_PGTABLE
  21. select HAVE_RELIABLE_STACKTRACE
  22. select DMA_OPS
  23. select RTC_CLASS
  24. select RTC_DRV_GENERIC
  25. select INIT_ALL_POSSIBLE
  26. select BUG
  27. select BUILDTIME_TABLE_SORT
  28. select HAVE_PCI
  29. select HAVE_PERF_EVENTS
  30. select HAVE_KERNEL_BZIP2
  31. select HAVE_KERNEL_GZIP
  32. select HAVE_KERNEL_LZ4
  33. select HAVE_KERNEL_LZMA
  34. select HAVE_KERNEL_LZO
  35. select HAVE_KERNEL_XZ
  36. select GENERIC_ATOMIC64 if !64BIT
  37. select GENERIC_IRQ_PROBE
  38. select GENERIC_PCI_IOMAP
  39. select ARCH_HAVE_NMI_SAFE_CMPXCHG
  40. select GENERIC_SMP_IDLE_THREAD
  41. select GENERIC_ARCH_TOPOLOGY if SMP
  42. select GENERIC_CPU_DEVICES if !SMP
  43. select GENERIC_LIB_DEVMEM_IS_ALLOWED
  44. select SYSCTL_ARCH_UNALIGN_ALLOW
  45. select SYSCTL_EXCEPTION_TRACE
  46. select HAVE_MOD_ARCH_SPECIFIC
  47. select MODULES_USE_ELF_RELA
  48. select CLONE_BACKWARDS
  49. select TTY # Needed for pdc_cons.c
  50. select HAVE_DEBUG_STACKOVERFLOW
  51. select HAVE_ARCH_AUDITSYSCALL
  52. select HAVE_ARCH_HASH
  53. select HAVE_ARCH_JUMP_LABEL
  54. select HAVE_ARCH_JUMP_LABEL_RELATIVE
  55. select HAVE_ARCH_KFENCE
  56. select HAVE_ARCH_SECCOMP_FILTER
  57. select HAVE_ARCH_TRACEHOOK
  58. select HAVE_REGS_AND_STACK_ACCESS_API
  59. select GENERIC_SCHED_CLOCK
  60. select GENERIC_IRQ_MIGRATION if SMP
  61. select HAVE_UNSTABLE_SCHED_CLOCK if SMP
  62. select LEGACY_TIMER_TICK
  63. select CPU_NO_EFFICIENT_FFS
  64. select THREAD_INFO_IN_TASK
  65. select NEED_DMA_MAP_STATE
  66. select NEED_SG_DMA_LENGTH
  67. select HAVE_ARCH_KGDB
  68. select HAVE_KPROBES
  69. select HAVE_KRETPROBES
  70. select HAVE_DYNAMIC_FTRACE if $(cc-option,-fpatchable-function-entry=1,1)
  71. select HAVE_FTRACE_MCOUNT_RECORD if HAVE_DYNAMIC_FTRACE
  72. select FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY if DYNAMIC_FTRACE
  73. select HAVE_KPROBES_ON_FTRACE
  74. select HAVE_DYNAMIC_FTRACE_WITH_REGS
  75. select HAVE_SOFTIRQ_ON_OWN_STACK if IRQSTACKS
  76. select TRACE_IRQFLAGS_SUPPORT
  77. select HAVE_FUNCTION_DESCRIPTORS if 64BIT
  78. help
  79. The PA-RISC microprocessor is designed by Hewlett-Packard and used
  80. in many of their workstations & servers (HP9000 700 and 800 series,
  81. and later HP3000 series). The PA-RISC Linux project home page is
  82. at <https://parisc.wiki.kernel.org>.
  83. config CPU_BIG_ENDIAN
  84. def_bool y
  85. config MMU
  86. def_bool y
  87. config STACK_GROWSUP
  88. def_bool y
  89. config GENERIC_LOCKBREAK
  90. bool
  91. default y
  92. depends on SMP && PREEMPTION
  93. config ARCH_HAS_ILOG2_U32
  94. bool
  95. default n
  96. config ARCH_HAS_ILOG2_U64
  97. bool
  98. default n
  99. config GENERIC_BUG
  100. def_bool y
  101. depends on BUG
  102. select GENERIC_BUG_RELATIVE_POINTERS if 64BIT
  103. config GENERIC_BUG_RELATIVE_POINTERS
  104. bool
  105. config GENERIC_HWEIGHT
  106. bool
  107. default y
  108. config GENERIC_CALIBRATE_DELAY
  109. bool
  110. default y
  111. config TIME_LOW_RES
  112. bool
  113. depends on SMP
  114. default y
  115. # unless you want to implement ACPI on PA-RISC ... ;-)
  116. config PM
  117. bool
  118. config STACKTRACE_SUPPORT
  119. def_bool y
  120. config LOCKDEP_SUPPORT
  121. bool
  122. default y
  123. config ISA_DMA_API
  124. bool
  125. config ARCH_MAY_HAVE_PC_FDC
  126. bool
  127. depends on BROKEN
  128. default y
  129. config PGTABLE_LEVELS
  130. int
  131. default 3 if 64BIT && PARISC_PAGE_SIZE_4KB
  132. default 2
  133. menu "Processor type and features"
  134. choice
  135. prompt "Processor type"
  136. default PA7000 if "$(ARCH)" = "parisc"
  137. config PA7000
  138. bool "PA7000/PA7100" if "$(ARCH)" = "parisc"
  139. help
  140. This is the processor type of your CPU. This information is
  141. used for optimizing purposes. In order to compile a kernel
  142. that can run on all 32-bit PA CPUs (albeit not optimally fast),
  143. you can specify "PA7000" here.
  144. Specifying "PA8000" here will allow you to select a 64-bit kernel
  145. which is required on some machines.
  146. config PA7100LC
  147. bool "PA7100LC" if "$(ARCH)" = "parisc"
  148. help
  149. Select this option for the PCX-L processor, as used in the
  150. 712, 715/64, 715/80, 715/100, 715/100XC, 725/100, 743, 748,
  151. D200, D210, D300, D310 and E-class
  152. config PA7200
  153. bool "PA7200" if "$(ARCH)" = "parisc"
  154. help
  155. Select this option for the PCX-T' processor, as used in the
  156. C100, C110, J100, J110, J210XC, D250, D260, D350, D360,
  157. K100, K200, K210, K220, K400, K410 and K420
  158. config PA7300LC
  159. bool "PA7300LC" if "$(ARCH)" = "parisc"
  160. help
  161. Select this option for the PCX-L2 processor, as used in the
  162. 744, A180, B132L, B160L, B180L, C132L, C160L, C180L,
  163. D220, D230, D320 and D330.
  164. config PA8X00
  165. bool "PA8000 and up"
  166. help
  167. Select this option for PCX-U to PCX-W2 processors.
  168. endchoice
  169. # Define implied options from the CPU selection here
  170. config PA20
  171. def_bool y
  172. depends on PA8X00
  173. config PA11
  174. def_bool y
  175. depends on PA7000 || PA7100LC || PA7200 || PA7300LC
  176. select ARCH_HAS_SYNC_DMA_FOR_CPU
  177. select ARCH_HAS_SYNC_DMA_FOR_DEVICE
  178. config PREFETCH
  179. def_bool y
  180. depends on PA8X00 || PA7200
  181. config PARISC_HUGE_KERNEL
  182. def_bool y if !MODULES || UBSAN || FTRACE || COMPILE_TEST
  183. config MLONGCALLS
  184. def_bool y if PARISC_HUGE_KERNEL
  185. bool "Enable the -mlong-calls compiler option for big kernels" if !PARISC_HUGE_KERNEL
  186. depends on PA8X00
  187. help
  188. If you configure the kernel to include many drivers built-in instead
  189. as modules, the kernel executable may become too big, so that the
  190. linker will not be able to resolve some long branches and fails to link
  191. your vmlinux kernel. In that case enabling this option will help you
  192. to overcome this limit by using the -mlong-calls compiler option.
  193. Usually you want to say N here, unless you e.g. want to build
  194. a kernel which includes all necessary drivers built-in and which can
  195. be used for TFTP booting without the need to have an initrd ramdisk.
  196. Enabling this option will probably slow down your kernel.
  197. config 64BIT
  198. def_bool y if "$(ARCH)" = "parisc64"
  199. bool "64-bit kernel" if "$(ARCH)" = "parisc"
  200. depends on PA8X00
  201. help
  202. Enable this if you want to support 64bit kernel on PA-RISC platform.
  203. At the moment, only people willing to use more than 2GB of RAM,
  204. or having a 64bit-only capable PA-RISC machine should say Y here.
  205. Since there is no 64bit userland on PA-RISC, there is no point to
  206. enable this option otherwise. The 64bit kernel is significantly bigger
  207. and slower than the 32bit one.
  208. choice
  209. prompt "Kernel page size"
  210. default PARISC_PAGE_SIZE_4KB
  211. config PARISC_PAGE_SIZE_4KB
  212. bool "4KB"
  213. help
  214. This lets you select the page size of the kernel. For best
  215. performance, a page size of 16KB is recommended. For best
  216. compatibility with 32bit applications, a page size of 4KB should be
  217. selected (the vast majority of 32bit binaries work perfectly fine
  218. with a larger page size).
  219. 4KB For best 32bit compatibility
  220. 16KB For best performance
  221. 64KB For best performance, might give more overhead.
  222. If you don't know what to do, choose 4KB.
  223. config PARISC_PAGE_SIZE_16KB
  224. bool "16KB"
  225. depends on PA8X00 && BROKEN && !KFENCE
  226. config PARISC_PAGE_SIZE_64KB
  227. bool "64KB"
  228. depends on PA8X00 && BROKEN && !KFENCE
  229. endchoice
  230. config SMP
  231. bool "Symmetric multi-processing support"
  232. help
  233. This enables support for systems with more than one CPU. If you have
  234. a system with only one CPU, say N. If you have a system with more
  235. than one CPU, say Y.
  236. If you say N here, the kernel will run on uni- and multiprocessor
  237. machines, but will use only one CPU of a multiprocessor machine.
  238. On a uniprocessor machine, the kernel will run faster if you say N.
  239. See also <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO
  240. available at <https://www.tldp.org/docs.html#howto>.
  241. If you don't know what to do here, say N.
  242. config SCHED_MC
  243. bool "Multi-core scheduler support"
  244. depends on GENERIC_ARCH_TOPOLOGY && PA8X00
  245. help
  246. Multi-core scheduler support improves the CPU scheduler's decision
  247. making when dealing with multi-core CPU chips at a cost of slightly
  248. increased overhead in some places. If unsure say N here.
  249. config IRQSTACKS
  250. bool "Use separate kernel stacks when processing interrupts"
  251. default y
  252. help
  253. If you say Y here the kernel will use separate kernel stacks
  254. for handling hard and soft interrupts. This can help avoid
  255. overflowing the process kernel stacks.
  256. config TLB_PTLOCK
  257. bool "Use page table locks in TLB fault handler"
  258. depends on SMP
  259. default n
  260. help
  261. Select this option to enable page table locking in the TLB
  262. fault handler. This ensures that page table entries are
  263. updated consistently on SMP machines at the expense of some
  264. loss in performance.
  265. config HOTPLUG_CPU
  266. bool
  267. default y if SMP
  268. config ARCH_SELECT_MEMORY_MODEL
  269. def_bool y
  270. depends on 64BIT
  271. config ARCH_SPARSEMEM_ENABLE
  272. def_bool y
  273. depends on 64BIT
  274. config ARCH_FLATMEM_ENABLE
  275. def_bool y
  276. config ARCH_SPARSEMEM_DEFAULT
  277. def_bool y
  278. depends on ARCH_SPARSEMEM_ENABLE
  279. source "kernel/Kconfig.hz"
  280. config COMPAT
  281. def_bool y
  282. depends on 64BIT
  283. config AUDIT_ARCH
  284. def_bool y
  285. config NR_CPUS
  286. int "Maximum number of CPUs (2-32)"
  287. range 2 32
  288. depends on SMP
  289. default "4" if 64BIT
  290. default "16"
  291. config KEXEC
  292. bool "Kexec system call"
  293. select KEXEC_CORE
  294. help
  295. kexec is a system call that implements the ability to shutdown your
  296. current kernel, and to start another kernel. It is like a reboot
  297. but it is independent of the system firmware. And like a reboot
  298. you can start any kernel with it, not just Linux.
  299. It is an ongoing process to be certain the hardware in a machine
  300. shutdown, so do not be surprised if this code does not
  301. initially work for you.
  302. config KEXEC_FILE
  303. bool "kexec file based system call"
  304. select KEXEC_CORE
  305. select KEXEC_ELF
  306. help
  307. This enables the kexec_file_load() System call. This is
  308. file based and takes file descriptors as system call argument
  309. for kernel and initramfs as opposed to list of segments as
  310. accepted by previous system call.
  311. endmenu
  312. source "drivers/parisc/Kconfig"