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