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