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