Kconfig 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. # SPDX-License-Identifier: GPL-2.0
  2. menu "Generic Driver Options"
  3. config UEVENT_HELPER
  4. bool "Support for uevent helper"
  5. default y
  6. help
  7. The uevent helper program is forked by the kernel for
  8. every uevent.
  9. Before the switch to the netlink-based uevent source, this was
  10. used to hook hotplug scripts into kernel device events. It
  11. usually pointed to a shell script at /sbin/hotplug.
  12. This should not be used today, because usual systems create
  13. many events at bootup or device discovery in a very short time
  14. frame. One forked process per event can create so many processes
  15. that it creates a high system load, or on smaller systems
  16. it is known to create out-of-memory situations during bootup.
  17. config UEVENT_HELPER_PATH
  18. string "path to uevent helper"
  19. depends on UEVENT_HELPER
  20. default ""
  21. help
  22. To disable user space helper program execution at by default
  23. specify an empty string here. This setting can still be altered
  24. via /proc/sys/kernel/hotplug or via /sys/kernel/uevent_helper
  25. later at runtime.
  26. config DEVTMPFS
  27. bool "Maintain a devtmpfs filesystem to mount at /dev"
  28. help
  29. This creates a tmpfs/ramfs filesystem instance early at bootup.
  30. In this filesystem, the kernel driver core maintains device
  31. nodes with their default names and permissions for all
  32. registered devices with an assigned major/minor number.
  33. Userspace can modify the filesystem content as needed, add
  34. symlinks, and apply needed permissions.
  35. It provides a fully functional /dev directory, where usually
  36. udev runs on top, managing permissions and adding meaningful
  37. symlinks.
  38. In very limited environments, it may provide a sufficient
  39. functional /dev without any further help. It also allows simple
  40. rescue systems, and reliably handles dynamic major/minor numbers.
  41. Notice: if CONFIG_TMPFS isn't enabled, the simpler ramfs
  42. file system will be used instead.
  43. config DEVTMPFS_MOUNT
  44. bool "Automount devtmpfs at /dev, after the kernel mounted the rootfs"
  45. depends on DEVTMPFS
  46. help
  47. This will instruct the kernel to automatically mount the
  48. devtmpfs filesystem at /dev, directly after the kernel has
  49. mounted the root filesystem. The behavior can be overridden
  50. with the commandline parameter: devtmpfs.mount=0|1.
  51. This option does not affect initramfs based booting, here
  52. the devtmpfs filesystem always needs to be mounted manually
  53. after the rootfs is mounted.
  54. With this option enabled, it allows to bring up a system in
  55. rescue mode with init=/bin/sh, even when the /dev directory
  56. on the rootfs is completely empty.
  57. config STANDALONE
  58. bool "Select only drivers that don't need compile-time external firmware"
  59. default y
  60. help
  61. Select this option if you don't have magic firmware for drivers that
  62. need it.
  63. If unsure, say Y.
  64. config PREVENT_FIRMWARE_BUILD
  65. bool "Disable drivers features which enable custom firmware building"
  66. default y
  67. help
  68. Say yes to disable driver features which enable building a custom
  69. driver firmware at kernel build time. These drivers do not use the
  70. kernel firmware API to load firmware (CONFIG_FW_LOADER), instead they
  71. use their own custom loading mechanism. The required firmware is
  72. usually shipped with the driver, building the driver firmware
  73. should only be needed if you have an updated firmware source.
  74. Firmware should not be being built as part of kernel, these days
  75. you should always prevent this and say Y here. There are only two
  76. old drivers which enable building of its firmware at kernel build
  77. time:
  78. o CONFIG_WANXL through CONFIG_WANXL_BUILD_FIRMWARE
  79. o CONFIG_SCSI_AIC79XX through CONFIG_AIC79XX_BUILD_FIRMWARE
  80. source "drivers/base/firmware_loader/Kconfig"
  81. config WANT_DEV_COREDUMP
  82. bool
  83. help
  84. Drivers should "select" this option if they desire to use the
  85. device coredump mechanism.
  86. config ALLOW_DEV_COREDUMP
  87. bool "Allow device coredump" if EXPERT
  88. default y
  89. help
  90. This option controls if the device coredump mechanism is available or
  91. not; if disabled, the mechanism will be omitted even if drivers that
  92. can use it are enabled.
  93. Say 'N' for more sensitive systems or systems that don't want
  94. to ever access the information to not have the code, nor keep any
  95. data.
  96. If unsure, say Y.
  97. config DEV_COREDUMP
  98. bool
  99. default y if WANT_DEV_COREDUMP
  100. depends on ALLOW_DEV_COREDUMP
  101. config DEBUG_DRIVER
  102. bool "Driver Core verbose debug messages"
  103. depends on DEBUG_KERNEL
  104. help
  105. Say Y here if you want the Driver core to produce a bunch of
  106. debug messages to the system log. Select this if you are having a
  107. problem with the driver core and want to see more of what is
  108. going on.
  109. If you are unsure about this, say N here.
  110. config DEBUG_DEVRES
  111. bool "Managed device resources verbose debug messages"
  112. depends on DEBUG_KERNEL
  113. help
  114. This option enables kernel parameter devres.log. If set to
  115. non-zero, devres debug messages are printed. Select this if
  116. you are having a problem with devres or want to debug
  117. resource management for a managed device. devres.log can be
  118. switched on and off from sysfs node.
  119. If you are unsure about this, Say N here.
  120. config DEBUG_TEST_DRIVER_REMOVE
  121. bool "Test driver remove calls during probe (UNSTABLE)"
  122. depends on DEBUG_KERNEL
  123. help
  124. Say Y here if you want the Driver core to test driver remove functions
  125. by calling probe, remove, probe. This tests the remove path without
  126. having to unbind the driver or unload the driver module.
  127. This option is expected to find errors and may render your system
  128. unusable. You should say N here unless you are explicitly looking to
  129. test this functionality.
  130. source "drivers/base/test/Kconfig"
  131. config SYS_HYPERVISOR
  132. bool
  133. default n
  134. config GENERIC_CPU_DEVICES
  135. bool
  136. default n
  137. config GENERIC_CPU_AUTOPROBE
  138. bool
  139. config GENERIC_CPU_VULNERABILITIES
  140. bool
  141. config SOC_BUS
  142. bool
  143. select GLOB
  144. source "drivers/base/regmap/Kconfig"
  145. config DMA_SHARED_BUFFER
  146. bool
  147. default n
  148. select ANON_INODES
  149. select IRQ_WORK
  150. help
  151. This option enables the framework for buffer-sharing between
  152. multiple drivers. A buffer is associated with a file using driver
  153. APIs extension; the file's descriptor can then be passed on to other
  154. driver.
  155. config DMA_FENCE_TRACE
  156. bool "Enable verbose DMA_FENCE_TRACE messages"
  157. depends on DMA_SHARED_BUFFER
  158. help
  159. Enable the DMA_FENCE_TRACE printks. This will add extra
  160. spam to the console log, but will make it easier to diagnose
  161. lockup related problems for dma-buffers shared across multiple
  162. devices.
  163. config DMA_CMA
  164. bool "DMA Contiguous Memory Allocator"
  165. depends on HAVE_DMA_CONTIGUOUS && CMA
  166. help
  167. This enables the Contiguous Memory Allocator which allows drivers
  168. to allocate big physically-contiguous blocks of memory for use with
  169. hardware components that do not support I/O map nor scatter-gather.
  170. You can disable CMA by specifying "cma=0" on the kernel's command
  171. line.
  172. For more information see <include/linux/dma-contiguous.h>.
  173. If unsure, say "n".
  174. if DMA_CMA
  175. comment "Default contiguous memory area size:"
  176. config CMA_SIZE_MBYTES
  177. int "Size in Mega Bytes"
  178. depends on !CMA_SIZE_SEL_PERCENTAGE
  179. default 0 if X86
  180. default 16
  181. help
  182. Defines the size (in MiB) of the default memory area for Contiguous
  183. Memory Allocator. If the size of 0 is selected, CMA is disabled by
  184. default, but it can be enabled by passing cma=size[MG] to the kernel.
  185. config CMA_SIZE_PERCENTAGE
  186. int "Percentage of total memory"
  187. depends on !CMA_SIZE_SEL_MBYTES
  188. default 0 if X86
  189. default 10
  190. help
  191. Defines the size of the default memory area for Contiguous Memory
  192. Allocator as a percentage of the total memory in the system.
  193. If 0 percent is selected, CMA is disabled by default, but it can be
  194. enabled by passing cma=size[MG] to the kernel.
  195. choice
  196. prompt "Selected region size"
  197. default CMA_SIZE_SEL_MBYTES
  198. config CMA_SIZE_SEL_MBYTES
  199. bool "Use mega bytes value only"
  200. config CMA_SIZE_SEL_PERCENTAGE
  201. bool "Use percentage value only"
  202. config CMA_SIZE_SEL_MIN
  203. bool "Use lower value (minimum)"
  204. config CMA_SIZE_SEL_MAX
  205. bool "Use higher value (maximum)"
  206. endchoice
  207. config CMA_ALIGNMENT
  208. int "Maximum PAGE_SIZE order of alignment for contiguous buffers"
  209. range 4 12
  210. default 8
  211. help
  212. DMA mapping framework by default aligns all buffers to the smallest
  213. PAGE_SIZE order which is greater than or equal to the requested buffer
  214. size. This works well for buffers up to a few hundreds kilobytes, but
  215. for larger buffers it just a memory waste. With this parameter you can
  216. specify the maximum PAGE_SIZE order for contiguous buffers. Larger
  217. buffers will be aligned only to this specified order. The order is
  218. expressed as a power of two multiplied by the PAGE_SIZE.
  219. For example, if your system defaults to 4KiB pages, the order value
  220. of 8 means that the buffers will be aligned up to 1MiB only.
  221. If unsure, leave the default value "8".
  222. endif
  223. config GENERIC_ARCH_TOPOLOGY
  224. bool
  225. help
  226. Enable support for architectures common topology code: e.g., parsing
  227. CPU capacity information from DT, usage of such information for
  228. appropriate scaling, sysfs interface for changing capacity values at
  229. runtime.
  230. endmenu