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