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