Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only
0002 config 64BIT
0003         bool "64-bit kernel" if "$(ARCH)" = "sparc"
0004         default "$(ARCH)" = "sparc64"
0005         help
0006           SPARC is a family of RISC microprocessors designed and marketed by
0007           Sun Microsystems, incorporated.  They are very widely found in Sun
0008           workstations and clones.
0009 
0010           Say yes to build a 64-bit kernel - formerly known as sparc64
0011           Say no to build a 32-bit kernel - formerly known as sparc
0012 
0013 config SPARC
0014         bool
0015         default y
0016         select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
0017         select ARCH_MIGHT_HAVE_PC_SERIO
0018         select DMA_OPS
0019         select OF
0020         select OF_PROMTREE
0021         select HAVE_ASM_MODVERSIONS
0022         select HAVE_ARCH_KGDB if !SMP || SPARC64
0023         select HAVE_ARCH_TRACEHOOK
0024         select HAVE_ARCH_SECCOMP if SPARC64
0025         select HAVE_EXIT_THREAD
0026         select HAVE_PCI
0027         select SYSCTL_EXCEPTION_TRACE
0028         select RTC_CLASS
0029         select RTC_DRV_M48T59
0030         select RTC_SYSTOHC
0031         select HAVE_ARCH_JUMP_LABEL if SPARC64
0032         select GENERIC_IRQ_SHOW
0033         select ARCH_WANT_IPC_PARSE_VERSION
0034         select GENERIC_PCI_IOMAP
0035         select HAVE_NMI_WATCHDOG if SPARC64
0036         select HAVE_CBPF_JIT if SPARC32
0037         select HAVE_EBPF_JIT if SPARC64
0038         select HAVE_DEBUG_BUGVERBOSE
0039         select GENERIC_SMP_IDLE_THREAD
0040         select MODULES_USE_ELF_RELA
0041         select PCI_SYSCALL if PCI
0042         select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
0043         select ODD_RT_SIGACTION
0044         select OLD_SIGSUSPEND
0045         select CPU_NO_EFFICIENT_FFS
0046         select LOCKDEP_SMALL if LOCKDEP
0047         select NEED_DMA_MAP_STATE
0048         select NEED_SG_DMA_LENGTH
0049         select TRACE_IRQFLAGS_SUPPORT
0050 
0051 config SPARC32
0052         def_bool !64BIT
0053         select ARCH_32BIT_OFF_T
0054         select ARCH_HAS_SYNC_DMA_FOR_CPU
0055         select CLZ_TAB
0056         select DMA_DIRECT_REMAP
0057         select GENERIC_ATOMIC64
0058         select HAVE_UID16
0059         select OLD_SIGACTION
0060         select ZONE_DMA
0061 
0062 config SPARC64
0063         def_bool 64BIT
0064         select ALTERNATE_USER_ADDRESS_SPACE
0065         select HAVE_FUNCTION_TRACER
0066         select HAVE_FUNCTION_GRAPH_TRACER
0067         select HAVE_KRETPROBES
0068         select HAVE_KPROBES
0069         select MMU_GATHER_RCU_TABLE_FREE if SMP
0070         select MMU_GATHER_MERGE_VMAS
0071         select MMU_GATHER_NO_FLUSH_CACHE
0072         select HAVE_ARCH_TRANSPARENT_HUGEPAGE
0073         select HAVE_DYNAMIC_FTRACE
0074         select HAVE_FTRACE_MCOUNT_RECORD
0075         select HAVE_SYSCALL_TRACEPOINTS
0076         select HAVE_CONTEXT_TRACKING_USER
0077         select HAVE_TIF_NOHZ
0078         select HAVE_DEBUG_KMEMLEAK
0079         select IOMMU_HELPER
0080         select SPARSE_IRQ
0081         select RTC_DRV_CMOS
0082         select RTC_DRV_BQ4802
0083         select RTC_DRV_SUN4V
0084         select RTC_DRV_STARFIRE
0085         select HAVE_PERF_EVENTS
0086         select PERF_USE_VMALLOC
0087         select ARCH_HAVE_NMI_SAFE_CMPXCHG
0088         select HAVE_C_RECORDMCOUNT
0089         select HAVE_ARCH_AUDITSYSCALL
0090         select ARCH_SUPPORTS_ATOMIC_RMW
0091         select ARCH_SUPPORTS_DEBUG_PAGEALLOC
0092         select HAVE_NMI
0093         select HAVE_REGS_AND_STACK_ACCESS_API
0094         select ARCH_USE_QUEUED_RWLOCKS
0095         select ARCH_USE_QUEUED_SPINLOCKS
0096         select GENERIC_TIME_VSYSCALL
0097         select ARCH_CLOCKSOURCE_DATA
0098         select ARCH_HAS_PTE_SPECIAL
0099         select PCI_DOMAINS if PCI
0100         select ARCH_HAS_GIGANTIC_PAGE
0101         select HAVE_SOFTIRQ_ON_OWN_STACK
0102         select HAVE_SETUP_PER_CPU_AREA
0103         select NEED_PER_CPU_EMBED_FIRST_CHUNK
0104         select NEED_PER_CPU_PAGE_FIRST_CHUNK
0105 
0106 config ARCH_PROC_KCORE_TEXT
0107         def_bool y
0108 
0109 config CPU_BIG_ENDIAN
0110         def_bool y
0111 
0112 config ARCH_ATU
0113         bool
0114         default y if SPARC64
0115 
0116 config STACKTRACE_SUPPORT
0117         bool
0118         default y if SPARC64
0119 
0120 config LOCKDEP_SUPPORT
0121         bool
0122         default y if SPARC64
0123 
0124 config ARCH_HIBERNATION_POSSIBLE
0125         def_bool y if SPARC64
0126 
0127 config AUDIT_ARCH
0128         bool
0129         default y
0130 
0131 config MMU
0132         bool
0133         default y
0134 
0135 config HIGHMEM
0136         bool
0137         default y if SPARC32
0138         select KMAP_LOCAL
0139 
0140 config GENERIC_ISA_DMA
0141         bool
0142         default y if SPARC32
0143 
0144 config PGTABLE_LEVELS
0145         default 4 if 64BIT
0146         default 3
0147 
0148 config ARCH_SUPPORTS_UPROBES
0149         def_bool y if SPARC64
0150 
0151 menu "Processor type and features"
0152 
0153 config SMP
0154         bool "Symmetric multi-processing support"
0155         help
0156           This enables support for systems with more than one CPU. If you have
0157           a system with only one CPU, say N. If you have a system with more
0158           than one CPU, say Y.
0159 
0160           If you say N here, the kernel will run on uni- and multiprocessor
0161           machines, but will use only one CPU of a multiprocessor machine. If
0162           you say Y here, the kernel will run on many, but not all,
0163           uniprocessor machines. On a uniprocessor machine, the kernel
0164           will run faster if you say N here.
0165 
0166           People using multiprocessor machines who say Y here should also say
0167           Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
0168           Management" code will be disabled if you say Y here.
0169 
0170           See also <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO
0171           available at <https://www.tldp.org/docs.html#howto>.
0172 
0173           If you don't know what to do here, say N.
0174 
0175 config NR_CPUS
0176         int "Maximum number of CPUs"
0177         depends on SMP
0178         range 2 32 if SPARC32
0179         range 2 4096 if SPARC64
0180         default 32 if SPARC32
0181         default 4096 if SPARC64
0182 
0183 source "kernel/Kconfig.hz"
0184 
0185 config GENERIC_HWEIGHT
0186         bool
0187         default y
0188 
0189 config GENERIC_CALIBRATE_DELAY
0190         bool
0191         default y
0192 
0193 config ARCH_MAY_HAVE_PC_FDC
0194         bool
0195         default y
0196 
0197 config EMULATED_CMPXCHG
0198         bool
0199         default y if SPARC32
0200         help
0201           Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
0202           is emulated, and therefore it is not completely atomic.
0203 
0204 # Makefile helpers
0205 config SPARC32_SMP
0206         bool
0207         default y
0208         depends on SPARC32 && SMP
0209 
0210 config SPARC64_SMP
0211         bool
0212         default y
0213         depends on SPARC64 && SMP
0214 
0215 config EARLYFB
0216         bool "Support for early boot text console"
0217         default y
0218         depends on SPARC64
0219         help
0220           Say Y here to enable a faster early framebuffer boot console.
0221 
0222 config HOTPLUG_CPU
0223         bool "Support for hot-pluggable CPUs"
0224         depends on SPARC64 && SMP
0225         help
0226           Say Y here to experiment with turning CPUs off and on.  CPUs
0227           can be controlled through /sys/devices/system/cpu/cpu#.
0228           Say N if you want to disable CPU hotplug.
0229 
0230 if SPARC64
0231 source "drivers/cpufreq/Kconfig"
0232 endif
0233 
0234 config US3_MC
0235         tristate "UltraSPARC-III Memory Controller driver"
0236         depends on SPARC64
0237         default y
0238         help
0239           This adds a driver for the UltraSPARC-III memory controller.
0240           Loading this driver allows exact mnemonic strings to be
0241           printed in the event of a memory error, so that the faulty DIMM
0242           on the motherboard can be matched to the error.
0243 
0244           If in doubt, say Y, as this information can be very useful.
0245 
0246 # Global things across all Sun machines.
0247 config GENERIC_LOCKBREAK
0248         bool
0249         default y
0250         depends on SPARC64 && SMP && PREEMPTION
0251 
0252 config NUMA
0253         bool "NUMA support"
0254         depends on SPARC64 && SMP
0255 
0256 config NODES_SHIFT
0257         int "Maximum NUMA Nodes (as a power of 2)"
0258         range 4 5 if SPARC64
0259         default "5"
0260         depends on NUMA
0261         help
0262           Specify the maximum number of NUMA Nodes available on the target
0263           system.  Increases memory reserved to accommodate various tables.
0264 
0265 config ARCH_SPARSEMEM_ENABLE
0266         def_bool y if SPARC64
0267         select SPARSEMEM_VMEMMAP_ENABLE
0268 
0269 config ARCH_SPARSEMEM_DEFAULT
0270         def_bool y if SPARC64
0271 
0272 config FORCE_MAX_ZONEORDER
0273         int "Maximum zone order"
0274         default "13"
0275         help
0276           The kernel memory allocator divides physically contiguous memory
0277           blocks into "zones", where each zone is a power of two number of
0278           pages.  This option selects the largest power of two that the kernel
0279           keeps in the memory allocator.  If you need to allocate very large
0280           blocks of physically contiguous memory, then you may need to
0281           increase this value.
0282 
0283           This config option is actually maximum order plus one. For example,
0284           a value of 13 means that the largest free memory block is 2^12 pages.
0285 
0286 if SPARC64
0287 source "kernel/power/Kconfig"
0288 endif
0289 
0290 config SCHED_SMT
0291         bool "SMT (Hyperthreading) scheduler support"
0292         depends on SPARC64 && SMP
0293         default y
0294         help
0295           SMT scheduler support improves the CPU scheduler's decision making
0296           when dealing with SPARC cpus at a cost of slightly increased overhead
0297           in some places. If unsure say N here.
0298 
0299 config SCHED_MC
0300         bool "Multi-core scheduler support"
0301         depends on SPARC64 && SMP
0302         default y
0303         help
0304           Multi-core scheduler support improves the CPU scheduler's decision
0305           making when dealing with multi-core CPU chips at a cost of slightly
0306           increased overhead in some places. If unsure say N here.
0307 
0308 config CMDLINE_BOOL
0309         bool "Default bootloader kernel arguments"
0310         depends on SPARC64
0311 
0312 config CMDLINE
0313         string "Initial kernel command string"
0314         depends on CMDLINE_BOOL
0315         default "console=ttyS0,9600 root=/dev/sda1"
0316         help
0317           Say Y here if you want to be able to pass default arguments to
0318           the kernel. This will be overridden by the bootloader, if you
0319           use one (such as SILO). This is most useful if you want to boot
0320           a kernel from TFTP, and want default options to be available
0321           with having them passed on the command line.
0322 
0323           NOTE: This option WILL override the PROM bootargs setting!
0324 
0325 config SUN_PM
0326         bool
0327         default y if SPARC32
0328         help
0329           Enable power management and CPU standby features on supported
0330           SPARC platforms.
0331 
0332 config SPARC_LED
0333         tristate "Sun4m LED driver"
0334         depends on SPARC32
0335         help
0336           This driver toggles the front-panel LED on sun4m systems
0337           in a user-specifiable manner.  Its state can be probed
0338           by reading /proc/led and its blinking mode can be changed
0339           via writes to /proc/led
0340 
0341 config SERIAL_CONSOLE
0342         bool
0343         depends on SPARC32
0344         default y
0345         help
0346           If you say Y here, it will be possible to use a serial port as the
0347           system console (the system console is the device which receives all
0348           kernel messages and warnings and which allows logins in single user
0349           mode). This could be useful if some terminal or printer is connected
0350           to that serial port.
0351 
0352           Even if you say Y here, the currently visible virtual console
0353           (/dev/tty0) will still be used as the system console by default, but
0354           you can alter that using a kernel command line option such as
0355           "console=ttyS1". (Try "man bootparam" or see the documentation of
0356           your boot loader (silo) about how to pass options to the kernel at
0357           boot time.)
0358 
0359           If you don't have a graphics card installed and you say Y here, the
0360           kernel will automatically use the first serial line, /dev/ttyS0, as
0361           system console.
0362 
0363           If unsure, say N.
0364 
0365 config SPARC_LEON
0366         bool "Sparc Leon processor family"
0367         depends on SPARC32
0368         select USB_EHCI_BIG_ENDIAN_MMIO
0369         select USB_EHCI_BIG_ENDIAN_DESC
0370         select USB_UHCI_BIG_ENDIAN_MMIO
0371         select USB_UHCI_BIG_ENDIAN_DESC
0372         help
0373           If you say Y here if you are running on a SPARC-LEON processor.
0374           The LEON processor is a synthesizable VHDL model of the
0375           SPARC-v8 standard. LEON is  part of the GRLIB collection of
0376           IP cores that are distributed under GPL. GRLIB can be downloaded
0377           from www.gaisler.com. You can download a sparc-linux cross-compilation
0378           toolchain at www.gaisler.com.
0379 
0380 if SPARC_LEON
0381 menu "U-Boot options"
0382 
0383 config UBOOT_LOAD_ADDR
0384         hex "uImage Load Address"
0385         default 0x40004000
0386         help
0387          U-Boot kernel load address, the address in physical address space
0388          where u-boot will place the Linux kernel before booting it.
0389          This address is normally the base address of main memory + 0x4000.
0390 
0391 config UBOOT_FLASH_ADDR
0392         hex "uImage.o Load Address"
0393         default 0x00080000
0394         help
0395          Optional setting only affecting the uImage.o ELF-image used to
0396          download the uImage file to the target using a ELF-loader other than
0397          U-Boot. It may for example be used to download an uImage to FLASH with
0398          the GRMON utility before even starting u-boot.
0399 
0400 config UBOOT_ENTRY_ADDR
0401         hex "uImage Entry Address"
0402         default 0xf0004000
0403         help
0404          Do not change this unless you know what you're doing. This is
0405          hardcoded by the SPARC32 and LEON port.
0406 
0407          This is the virtual address u-boot jumps to when booting the Linux
0408          Kernel.
0409 
0410 endmenu
0411 endif
0412 
0413 endmenu
0414 
0415 menu "Bus options (PCI etc.)"
0416 config SBUS
0417         bool
0418         default y
0419 
0420 config SBUSCHAR
0421         bool
0422         default y
0423 
0424 config SUN_LDOMS
0425         bool "Sun Logical Domains support"
0426         depends on SPARC64
0427         help
0428           Say Y here is you want to support virtual devices via
0429           Logical Domains.
0430 
0431 config PCIC_PCI
0432         bool
0433         depends on PCI && SPARC32 && !SPARC_LEON
0434         default y
0435 
0436 config LEON_PCI
0437         bool
0438         depends on PCI && SPARC_LEON
0439         default y
0440 
0441 config SPARC_GRPCI1
0442         bool "GRPCI Host Bridge Support"
0443         depends on LEON_PCI
0444         default y
0445         help
0446           Say Y here to include the GRPCI Host Bridge Driver. The GRPCI
0447           PCI host controller is typically found in GRLIB SPARC32/LEON
0448           systems. The driver has one property (all_pci_errors) controlled
0449           from the bootloader that makes the GRPCI to generate interrupts
0450           on detected PCI Parity and System errors.
0451 
0452 config SPARC_GRPCI2
0453         bool "GRPCI2 Host Bridge Support"
0454         depends on LEON_PCI
0455         default y
0456         help
0457           Say Y here to include the GRPCI2 Host Bridge Driver.
0458 
0459 config SUN_OPENPROMFS
0460         tristate "Openprom tree appears in /proc/openprom"
0461         help
0462           If you say Y, the OpenPROM device tree will be available as a
0463           virtual file system, which you can mount to /proc/openprom by "mount
0464           -t openpromfs none /proc/openprom".
0465 
0466           To compile the /proc/openprom support as a module, choose M here: the
0467           module will be called openpromfs.
0468 
0469           Only choose N if you know in advance that you will not need to modify
0470           OpenPROM settings on the running system.
0471 
0472 # Makefile helpers
0473 config SPARC64_PCI
0474         bool
0475         default y
0476         depends on SPARC64 && PCI
0477 
0478 config SPARC64_PCI_MSI
0479         bool
0480         default y
0481         depends on SPARC64_PCI && PCI_MSI
0482 
0483 endmenu
0484 
0485 config COMPAT
0486         bool
0487         depends on SPARC64
0488         default y
0489         select HAVE_UID16
0490         select ARCH_WANT_OLD_COMPAT_IPC
0491         select COMPAT_OLD_SIGACTION
0492 
0493 source "drivers/sbus/char/Kconfig"