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