Kconfig 9.7 KB

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