Kconfig 13 KB

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