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