linux/arch/sparc/Kconfig
<<
>>
Prefs
   1# SPDX-License-Identifier: GPL-2.0-only
   2config 64BIT
   3        bool "64-bit kernel" if "$(ARCH)" = "sparc"
   4        default "$(ARCH)" = "sparc64"
   5        help
   6          SPARC is a family of RISC microprocessors designed and marketed by
   7          Sun Microsystems, incorporated.  They are very widely found in Sun
   8          workstations and clones.
   9
  10          Say yes to build a 64-bit kernel - formerly known as sparc64
  11          Say no to build a 32-bit kernel - formerly known as sparc
  12
  13config SPARC
  14        bool
  15        default y
  16        select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
  17        select ARCH_MIGHT_HAVE_PC_SERIO
  18        select DMA_OPS
  19        select OF
  20        select OF_PROMTREE
  21        select HAVE_ASM_MODVERSIONS
  22        select HAVE_ARCH_KGDB if !SMP || SPARC64
  23        select HAVE_ARCH_TRACEHOOK
  24        select HAVE_ARCH_SECCOMP if SPARC64
  25        select HAVE_EXIT_THREAD
  26        select HAVE_PCI
  27        select SYSCTL_EXCEPTION_TRACE
  28        select RTC_CLASS
  29        select RTC_DRV_M48T59
  30        select RTC_SYSTOHC
  31        select HAVE_ARCH_JUMP_LABEL if SPARC64
  32        select GENERIC_IRQ_SHOW
  33        select ARCH_WANT_IPC_PARSE_VERSION
  34        select GENERIC_PCI_IOMAP
  35        select HAVE_NMI_WATCHDOG if SPARC64
  36        select HAVE_CBPF_JIT if SPARC32
  37        select HAVE_EBPF_JIT if SPARC64
  38        select HAVE_DEBUG_BUGVERBOSE
  39        select GENERIC_SMP_IDLE_THREAD
  40        select MODULES_USE_ELF_RELA
  41        select PCI_SYSCALL if PCI
  42        select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
  43        select ODD_RT_SIGACTION
  44        select OLD_SIGSUSPEND
  45        select CPU_NO_EFFICIENT_FFS
  46        select LOCKDEP_SMALL if LOCKDEP
  47        select NEED_DMA_MAP_STATE
  48        select NEED_SG_DMA_LENGTH
  49        select SET_FS
  50        select TRACE_IRQFLAGS_SUPPORT
  51
  52config SPARC32
  53        def_bool !64BIT
  54        select ARCH_32BIT_OFF_T
  55        select ARCH_HAS_SYNC_DMA_FOR_CPU
  56        select GENERIC_ATOMIC64
  57        select CLZ_TAB
  58        select HAVE_UID16
  59        select OLD_SIGACTION
  60        select ZONE_DMA
  61
  62config SPARC64
  63        def_bool 64BIT
  64        select HAVE_FUNCTION_TRACER
  65        select HAVE_FUNCTION_GRAPH_TRACER
  66        select HAVE_KRETPROBES
  67        select HAVE_KPROBES
  68        select MMU_GATHER_RCU_TABLE_FREE if SMP
  69        select HAVE_ARCH_TRANSPARENT_HUGEPAGE
  70        select HAVE_DYNAMIC_FTRACE
  71        select HAVE_FTRACE_MCOUNT_RECORD
  72        select HAVE_SYSCALL_TRACEPOINTS
  73        select HAVE_CONTEXT_TRACKING
  74        select HAVE_TIF_NOHZ
  75        select HAVE_DEBUG_KMEMLEAK
  76        select IOMMU_HELPER
  77        select SPARSE_IRQ
  78        select RTC_DRV_CMOS
  79        select RTC_DRV_BQ4802
  80        select RTC_DRV_SUN4V
  81        select RTC_DRV_STARFIRE
  82        select HAVE_PERF_EVENTS
  83        select PERF_USE_VMALLOC
  84        select ARCH_HAVE_NMI_SAFE_CMPXCHG
  85        select HAVE_C_RECORDMCOUNT
  86        select HAVE_ARCH_AUDITSYSCALL
  87        select ARCH_SUPPORTS_ATOMIC_RMW
  88        select ARCH_SUPPORTS_DEBUG_PAGEALLOC
  89        select HAVE_NMI
  90        select HAVE_REGS_AND_STACK_ACCESS_API
  91        select ARCH_USE_QUEUED_RWLOCKS
  92        select ARCH_USE_QUEUED_SPINLOCKS
  93        select GENERIC_TIME_VSYSCALL
  94        select ARCH_CLOCKSOURCE_DATA
  95        select ARCH_HAS_PTE_SPECIAL
  96        select PCI_DOMAINS if PCI
  97        select ARCH_HAS_GIGANTIC_PAGE
  98        select HAVE_SOFTIRQ_ON_OWN_STACK
  99
 100config ARCH_PROC_KCORE_TEXT
 101        def_bool y
 102
 103config CPU_BIG_ENDIAN
 104        def_bool y
 105
 106config ARCH_ATU
 107        bool
 108        default y if SPARC64
 109
 110config STACKTRACE_SUPPORT
 111        bool
 112        default y if SPARC64
 113
 114config LOCKDEP_SUPPORT
 115        bool
 116        default y if SPARC64
 117
 118config ARCH_HIBERNATION_POSSIBLE
 119        def_bool y if SPARC64
 120
 121config AUDIT_ARCH
 122        bool
 123        default y
 124
 125config HAVE_SETUP_PER_CPU_AREA
 126        def_bool y if SPARC64
 127
 128config NEED_PER_CPU_EMBED_FIRST_CHUNK
 129        def_bool y if SPARC64
 130
 131config NEED_PER_CPU_PAGE_FIRST_CHUNK
 132        def_bool y if SPARC64
 133
 134config MMU
 135        bool
 136        default y
 137
 138config HIGHMEM
 139        bool
 140        default y if SPARC32
 141        select KMAP_LOCAL
 142
 143config GENERIC_ISA_DMA
 144        bool
 145        default y if SPARC32
 146
 147config PGTABLE_LEVELS
 148        default 4 if 64BIT
 149        default 3
 150
 151config ARCH_SUPPORTS_UPROBES
 152        def_bool y if SPARC64
 153
 154menu "Processor type and features"
 155
 156config SMP
 157        bool "Symmetric multi-processing support"
 158        help
 159          This enables support for systems with more than one CPU. If you have
 160          a system with only one CPU, say N. If you have a system with more
 161          than one CPU, say Y.
 162
 163          If you say N here, the kernel will run on uni- and multiprocessor
 164          machines, but will use only one CPU of a multiprocessor machine. If
 165          you say Y here, the kernel will run on many, but not all,
 166          uniprocessor machines. On a uniprocessor machine, the kernel
 167          will run faster if you say N here.
 168
 169          People using multiprocessor machines who say Y here should also say
 170          Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
 171          Management" code will be disabled if you say Y here.
 172
 173          See also <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO
 174          available at <https://www.tldp.org/docs.html#howto>.
 175
 176          If you don't know what to do here, say N.
 177
 178config NR_CPUS
 179        int "Maximum number of CPUs"
 180        depends on SMP
 181        range 2 32 if SPARC32
 182        range 2 4096 if SPARC64
 183        default 32 if SPARC32
 184        default 4096 if SPARC64
 185
 186source "kernel/Kconfig.hz"
 187
 188config GENERIC_HWEIGHT
 189        bool
 190        default y
 191
 192config GENERIC_CALIBRATE_DELAY
 193        bool
 194        default y
 195
 196config ARCH_MAY_HAVE_PC_FDC
 197        bool
 198        default y
 199
 200config EMULATED_CMPXCHG
 201        bool
 202        default y if SPARC32
 203        help
 204          Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
 205          is emulated, and therefore it is not completely atomic.
 206
 207# Makefile helpers
 208config SPARC32_SMP
 209        bool
 210        default y
 211        depends on SPARC32 && SMP
 212
 213config SPARC64_SMP
 214        bool
 215        default y
 216        depends on SPARC64 && SMP
 217
 218config EARLYFB
 219        bool "Support for early boot text console"
 220        default y
 221        depends on SPARC64
 222        help
 223          Say Y here to enable a faster early framebuffer boot console.
 224
 225config HOTPLUG_CPU
 226        bool "Support for hot-pluggable CPUs"
 227        depends on SPARC64 && SMP
 228        help
 229          Say Y here to experiment with turning CPUs off and on.  CPUs
 230          can be controlled through /sys/devices/system/cpu/cpu#.
 231          Say N if you want to disable CPU hotplug.
 232
 233if SPARC64
 234source "drivers/cpufreq/Kconfig"
 235endif
 236
 237config US3_MC
 238        tristate "UltraSPARC-III Memory Controller driver"
 239        depends on SPARC64
 240        default y
 241        help
 242          This adds a driver for the UltraSPARC-III memory controller.
 243          Loading this driver allows exact mnemonic strings to be
 244          printed in the event of a memory error, so that the faulty DIMM
 245          on the motherboard can be matched to the error.
 246
 247          If in doubt, say Y, as this information can be very useful.
 248
 249# Global things across all Sun machines.
 250config GENERIC_LOCKBREAK
 251        bool
 252        default y
 253        depends on SPARC64 && SMP && PREEMPTION
 254
 255config NUMA
 256        bool "NUMA support"
 257        depends on SPARC64 && SMP
 258
 259config NODES_SHIFT
 260        int "Maximum NUMA Nodes (as a power of 2)"
 261        range 4 5 if SPARC64
 262        default "5"
 263        depends on NUMA
 264        help
 265          Specify the maximum number of NUMA Nodes available on the target
 266          system.  Increases memory reserved to accommodate various tables.
 267
 268config ARCH_SPARSEMEM_ENABLE
 269        def_bool y if SPARC64
 270        select SPARSEMEM_VMEMMAP_ENABLE
 271
 272config ARCH_SPARSEMEM_DEFAULT
 273        def_bool y if SPARC64
 274
 275config FORCE_MAX_ZONEORDER
 276        int "Maximum zone order"
 277        default "13"
 278        help
 279          The kernel memory allocator divides physically contiguous memory
 280          blocks into "zones", where each zone is a power of two number of
 281          pages.  This option selects the largest power of two that the kernel
 282          keeps in the memory allocator.  If you need to allocate very large
 283          blocks of physically contiguous memory, then you may need to
 284          increase this value.
 285
 286          This config option is actually maximum order plus one. For example,
 287          a value of 13 means that the largest free memory block is 2^12 pages.
 288
 289if SPARC64
 290source "kernel/power/Kconfig"
 291endif
 292
 293config SCHED_SMT
 294        bool "SMT (Hyperthreading) scheduler support"
 295        depends on SPARC64 && SMP
 296        default y
 297        help
 298          SMT scheduler support improves the CPU scheduler's decision making
 299          when dealing with SPARC cpus at a cost of slightly increased overhead
 300          in some places. If unsure say N here.
 301
 302config SCHED_MC
 303        bool "Multi-core scheduler support"
 304        depends on SPARC64 && SMP
 305        default y
 306        help
 307          Multi-core scheduler support improves the CPU scheduler's decision
 308          making when dealing with multi-core CPU chips at a cost of slightly
 309          increased overhead in some places. If unsure say N here.
 310
 311config CMDLINE_BOOL
 312        bool "Default bootloader kernel arguments"
 313        depends on SPARC64
 314
 315config CMDLINE
 316        string "Initial kernel command string"
 317        depends on CMDLINE_BOOL
 318        default "console=ttyS0,9600 root=/dev/sda1"
 319        help
 320          Say Y here if you want to be able to pass default arguments to
 321          the kernel. This will be overridden by the bootloader, if you
 322          use one (such as SILO). This is most useful if you want to boot
 323          a kernel from TFTP, and want default options to be available
 324          with having them passed on the command line.
 325
 326          NOTE: This option WILL override the PROM bootargs setting!
 327
 328config SUN_PM
 329        bool
 330        default y if SPARC32
 331        help
 332          Enable power management and CPU standby features on supported
 333          SPARC platforms.
 334
 335config SPARC_LED
 336        tristate "Sun4m LED driver"
 337        depends on SPARC32
 338        help
 339          This driver toggles the front-panel LED on sun4m systems
 340          in a user-specifiable manner.  Its state can be probed
 341          by reading /proc/led and its blinking mode can be changed
 342          via writes to /proc/led
 343
 344config SERIAL_CONSOLE
 345        bool
 346        depends on SPARC32
 347        default y
 348        help
 349          If you say Y here, it will be possible to use a serial port as the
 350          system console (the system console is the device which receives all
 351          kernel messages and warnings and which allows logins in single user
 352          mode). This could be useful if some terminal or printer is connected
 353          to that serial port.
 354
 355          Even if you say Y here, the currently visible virtual console
 356          (/dev/tty0) will still be used as the system console by default, but
 357          you can alter that using a kernel command line option such as
 358          "console=ttyS1". (Try "man bootparam" or see the documentation of
 359          your boot loader (silo) about how to pass options to the kernel at
 360          boot time.)
 361
 362          If you don't have a graphics card installed and you say Y here, the
 363          kernel will automatically use the first serial line, /dev/ttyS0, as
 364          system console.
 365
 366          If unsure, say N.
 367
 368config SPARC_LEON
 369        bool "Sparc Leon processor family"
 370        depends on SPARC32
 371        select USB_EHCI_BIG_ENDIAN_MMIO
 372        select USB_EHCI_BIG_ENDIAN_DESC
 373        select USB_UHCI_BIG_ENDIAN_MMIO
 374        select USB_UHCI_BIG_ENDIAN_DESC
 375        help
 376          If you say Y here if you are running on a SPARC-LEON processor.
 377          The LEON processor is a synthesizable VHDL model of the
 378          SPARC-v8 standard. LEON is  part of the GRLIB collection of
 379          IP cores that are distributed under GPL. GRLIB can be downloaded
 380          from www.gaisler.com. You can download a sparc-linux cross-compilation
 381          toolchain at www.gaisler.com.
 382
 383if SPARC_LEON
 384menu "U-Boot options"
 385
 386config UBOOT_LOAD_ADDR
 387        hex "uImage Load Address"
 388        default 0x40004000
 389        help
 390         U-Boot kernel load address, the address in physical address space
 391         where u-boot will place the Linux kernel before booting it.
 392         This address is normally the base address of main memory + 0x4000.
 393
 394config UBOOT_FLASH_ADDR
 395        hex "uImage.o Load Address"
 396        default 0x00080000
 397        help
 398         Optional setting only affecting the uImage.o ELF-image used to
 399         download the uImage file to the target using a ELF-loader other than
 400         U-Boot. It may for example be used to download an uImage to FLASH with
 401         the GRMON utility before even starting u-boot.
 402
 403config UBOOT_ENTRY_ADDR
 404        hex "uImage Entry Address"
 405        default 0xf0004000
 406        help
 407         Do not change this unless you know what you're doing. This is
 408         hardcoded by the SPARC32 and LEON port.
 409
 410         This is the virtual address u-boot jumps to when booting the Linux
 411         Kernel.
 412
 413endmenu
 414endif
 415
 416endmenu
 417
 418menu "Bus options (PCI etc.)"
 419config SBUS
 420        bool
 421        default y
 422
 423config SBUSCHAR
 424        bool
 425        default y
 426
 427config SUN_LDOMS
 428        bool "Sun Logical Domains support"
 429        depends on SPARC64
 430        help
 431          Say Y here is you want to support virtual devices via
 432          Logical Domains.
 433
 434config PCIC_PCI
 435        bool
 436        depends on PCI && SPARC32 && !SPARC_LEON
 437        default y
 438
 439config LEON_PCI
 440        bool
 441        depends on PCI && SPARC_LEON
 442        default y
 443
 444config SPARC_GRPCI1
 445        bool "GRPCI Host Bridge Support"
 446        depends on LEON_PCI
 447        default y
 448        help
 449          Say Y here to include the GRPCI Host Bridge Driver. The GRPCI
 450          PCI host controller is typically found in GRLIB SPARC32/LEON
 451          systems. The driver has one property (all_pci_errors) controlled
 452          from the bootloader that makes the GRPCI to generate interrupts
 453          on detected PCI Parity and System errors.
 454
 455config SPARC_GRPCI2
 456        bool "GRPCI2 Host Bridge Support"
 457        depends on LEON_PCI
 458        default y
 459        help
 460          Say Y here to include the GRPCI2 Host Bridge Driver.
 461
 462config SUN_OPENPROMFS
 463        tristate "Openprom tree appears in /proc/openprom"
 464        help
 465          If you say Y, the OpenPROM device tree will be available as a
 466          virtual file system, which you can mount to /proc/openprom by "mount
 467          -t openpromfs none /proc/openprom".
 468
 469          To compile the /proc/openprom support as a module, choose M here: the
 470          module will be called openpromfs.
 471
 472          Only choose N if you know in advance that you will not need to modify
 473          OpenPROM settings on the running system.
 474
 475# Makefile helpers
 476config SPARC64_PCI
 477        bool
 478        default y
 479        depends on SPARC64 && PCI
 480
 481config SPARC64_PCI_MSI
 482        bool
 483        default y
 484        depends on SPARC64_PCI && PCI_MSI
 485
 486endmenu
 487
 488config COMPAT
 489        bool
 490        depends on SPARC64
 491        default y
 492        select HAVE_UID16
 493        select ARCH_WANT_OLD_COMPAT_IPC
 494        select COMPAT_OLD_SIGACTION
 495
 496config SYSVIPC_COMPAT
 497        bool
 498        depends on COMPAT && SYSVIPC
 499        default y
 500
 501source "drivers/sbus/char/Kconfig"
 502