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