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