Kconfig 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. # SPDX-License-Identifier: GPL-2.0
  2. menu "Generic Driver Options"
  3. config AUXILIARY_BUS
  4. bool
  5. config UEVENT_HELPER
  6. bool "Support for uevent helper"
  7. help
  8. The uevent helper program is forked by the kernel for
  9. every uevent.
  10. Before the switch to the netlink-based uevent source, this was
  11. used to hook hotplug scripts into kernel device events. It
  12. usually pointed to a shell script at /sbin/hotplug.
  13. This should not be used today, because usual systems create
  14. many events at bootup or device discovery in a very short time
  15. frame. One forked process per event can create so many processes
  16. that it creates a high system load, or on smaller systems
  17. it is known to create out-of-memory situations during bootup.
  18. config UEVENT_HELPER_PATH
  19. string "path to uevent helper"
  20. depends on UEVENT_HELPER
  21. default ""
  22. help
  23. To disable user space helper program execution at by default
  24. specify an empty string here. This setting can still be altered
  25. via /proc/sys/kernel/hotplug or via /sys/kernel/uevent_helper
  26. later at runtime.
  27. config DEVTMPFS
  28. bool "Maintain a devtmpfs filesystem to mount at /dev"
  29. help
  30. This creates a tmpfs/ramfs filesystem instance early at bootup.
  31. In this filesystem, the kernel driver core maintains device
  32. nodes with their default names and permissions for all
  33. registered devices with an assigned major/minor number.
  34. Userspace can modify the filesystem content as needed, add
  35. symlinks, and apply needed permissions.
  36. It provides a fully functional /dev directory, where usually
  37. udev runs on top, managing permissions and adding meaningful
  38. symlinks.
  39. In very limited environments, it may provide a sufficient
  40. functional /dev without any further help. It also allows simple
  41. rescue systems, and reliably handles dynamic major/minor numbers.
  42. Notice: if CONFIG_TMPFS isn't enabled, the simpler ramfs
  43. file system will be used instead.
  44. config DEVTMPFS_MOUNT
  45. bool "Automount devtmpfs at /dev, after the kernel mounted the rootfs"
  46. depends on DEVTMPFS
  47. help
  48. This will instruct the kernel to automatically mount the
  49. devtmpfs filesystem at /dev, directly after the kernel has
  50. mounted the root filesystem. The behavior can be overridden
  51. with the commandline parameter: devtmpfs.mount=0|1.
  52. This option does not affect initramfs based booting, here
  53. the devtmpfs filesystem always needs to be mounted manually
  54. after the rootfs is mounted.
  55. With this option enabled, it allows to bring up a system in
  56. rescue mode with init=/bin/sh, even when the /dev directory
  57. on the rootfs is completely empty.
  58. config DEVTMPFS_SAFE
  59. bool "Use nosuid,noexec mount options on devtmpfs"
  60. depends on DEVTMPFS
  61. help
  62. This instructs the kernel to include the MS_NOEXEC and MS_NOSUID mount
  63. flags when mounting devtmpfs.
  64. Notice: If enabled, things like /dev/mem cannot be mmapped
  65. with the PROT_EXEC flag. This can break, for example, non-KMS
  66. video drivers.
  67. config STANDALONE
  68. bool "Select only drivers that don't need compile-time external firmware"
  69. default y
  70. help
  71. Select this option if you don't have magic firmware for drivers that
  72. need it.
  73. If unsure, say Y.
  74. config PREVENT_FIRMWARE_BUILD
  75. bool "Disable drivers features which enable custom firmware building"
  76. default y
  77. help
  78. Say yes to disable driver features which enable building a custom
  79. driver firmware at kernel build time. These drivers do not use the
  80. kernel firmware API to load firmware (CONFIG_FW_LOADER), instead they
  81. use their own custom loading mechanism. The required firmware is
  82. usually shipped with the driver, building the driver firmware
  83. should only be needed if you have an updated firmware source.
  84. Firmware should not be being built as part of kernel, these days
  85. you should always prevent this and say Y here. There are only two
  86. old drivers which enable building of its firmware at kernel build
  87. time:
  88. o CONFIG_WANXL through CONFIG_WANXL_BUILD_FIRMWARE
  89. o CONFIG_SCSI_AIC79XX through CONFIG_AIC79XX_BUILD_FIRMWARE
  90. source "drivers/base/firmware_loader/Kconfig"
  91. config WANT_DEV_COREDUMP
  92. bool
  93. help
  94. Drivers should "select" this option if they desire to use the
  95. device coredump mechanism.
  96. config ALLOW_DEV_COREDUMP
  97. bool "Allow device coredump" if EXPERT
  98. default y
  99. help
  100. This option controls if the device coredump mechanism is available or
  101. not; if disabled, the mechanism will be omitted even if drivers that
  102. can use it are enabled.
  103. Say 'N' for more sensitive systems or systems that don't want
  104. to ever access the information to not have the code, nor keep any
  105. data.
  106. If unsure, say Y.
  107. config DEV_COREDUMP
  108. bool
  109. default y if WANT_DEV_COREDUMP
  110. depends on ALLOW_DEV_COREDUMP
  111. config DEBUG_DRIVER
  112. bool "Driver Core verbose debug messages"
  113. depends on DEBUG_KERNEL
  114. help
  115. Say Y here if you want the Driver core to produce a bunch of
  116. debug messages to the system log. Select this if you are having a
  117. problem with the driver core and want to see more of what is
  118. going on.
  119. If you are unsure about this, say N here.
  120. config DEBUG_DEVRES
  121. bool "Managed device resources verbose debug messages"
  122. depends on DEBUG_KERNEL
  123. help
  124. This option enables kernel parameter devres.log. If set to
  125. non-zero, devres debug messages are printed. Select this if
  126. you are having a problem with devres or want to debug
  127. resource management for a managed device. devres.log can be
  128. switched on and off from sysfs node.
  129. If you are unsure about this, Say N here.
  130. config DEBUG_TEST_DRIVER_REMOVE
  131. bool "Test driver remove calls during probe (UNSTABLE)"
  132. depends on DEBUG_KERNEL
  133. help
  134. Say Y here if you want the Driver core to test driver remove functions
  135. by calling probe, remove, probe. This tests the remove path without
  136. having to unbind the driver or unload the driver module.
  137. This option is expected to find errors and may render your system
  138. unusable. You should say N here unless you are explicitly looking to
  139. test this functionality.
  140. config PM_QOS_KUNIT_TEST
  141. bool "KUnit Test for PM QoS features" if !KUNIT_ALL_TESTS
  142. depends on KUNIT=y
  143. default KUNIT_ALL_TESTS
  144. config PM_RUNTIME_KUNIT_TEST
  145. tristate "KUnit Tests for runtime PM" if !KUNIT_ALL_TESTS
  146. depends on KUNIT
  147. depends on PM
  148. default KUNIT_ALL_TESTS
  149. config HMEM_REPORTING
  150. bool
  151. default n
  152. depends on NUMA
  153. help
  154. Enable reporting for heterogeneous memory access attributes under
  155. their non-uniform memory nodes.
  156. source "drivers/base/test/Kconfig"
  157. config SYS_HYPERVISOR
  158. bool
  159. default n
  160. config GENERIC_CPU_DEVICES
  161. bool
  162. default n
  163. config GENERIC_CPU_AUTOPROBE
  164. bool
  165. config GENERIC_CPU_VULNERABILITIES
  166. bool
  167. config SOC_BUS
  168. bool
  169. select GLOB
  170. source "drivers/base/regmap/Kconfig"
  171. config DMA_SHARED_BUFFER
  172. bool
  173. default n
  174. select IRQ_WORK
  175. help
  176. This option enables the framework for buffer-sharing between
  177. multiple drivers. A buffer is associated with a file using driver
  178. APIs extension; the file's descriptor can then be passed on to other
  179. driver.
  180. config DMA_FENCE_TRACE
  181. bool "Enable verbose DMA_FENCE_TRACE messages"
  182. depends on DMA_SHARED_BUFFER
  183. help
  184. Enable the DMA_FENCE_TRACE printks. This will add extra
  185. spam to the console log, but will make it easier to diagnose
  186. lockup related problems for dma-buffers shared across multiple
  187. devices.
  188. config GENERIC_ARCH_TOPOLOGY
  189. bool
  190. help
  191. Enable support for architectures common topology code: e.g., parsing
  192. CPU capacity information from DT, usage of such information for
  193. appropriate scaling, sysfs interface for reading capacity values at
  194. runtime.
  195. config GENERIC_ARCH_NUMA
  196. bool
  197. select NUMA_MEMBLKS
  198. help
  199. Enable support for generic NUMA implementation. Currently, RISC-V
  200. and ARM64 use it.
  201. config FW_DEVLINK_SYNC_STATE_TIMEOUT
  202. bool "sync_state() behavior defaults to timeout instead of strict"
  203. help
  204. This is build time equivalent of adding kernel command line parameter
  205. "fw_devlink.sync_state=timeout". Give up waiting on consumers and
  206. call sync_state() on any devices that haven't yet received their
  207. sync_state() calls after deferred_probe_timeout has expired or by
  208. late_initcall() if !CONFIG_MODULES. You should almost always want to
  209. select N here unless you have already successfully tested with the
  210. command line option on every system/board your kernel is expected to
  211. work on.
  212. endmenu