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