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