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