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