xref: /linux/drivers/base/Kconfig (revision abdf766d149c51fb256118f73be947d7a82f702e)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
21da177e4SLinus Torvaldsmenu "Generic Driver Options"
31da177e4SLinus Torvalds
47de3697eSDave Ertmanconfig AUXILIARY_BUS
57de3697eSDave Ertman	bool
67de3697eSDave Ertman
786d56134SMichael Marineauconfig UEVENT_HELPER
886d56134SMichael Marineau	bool "Support for uevent helper"
96a8d8abbSKay Sievers	help
1086d56134SMichael Marineau	  The uevent helper program is forked by the kernel for
116a8d8abbSKay Sievers	  every uevent.
127934779aSKay Sievers	  Before the switch to the netlink-based uevent source, this was
137934779aSKay Sievers	  used to hook hotplug scripts into kernel device events. It
147934779aSKay Sievers	  usually pointed to a shell script at /sbin/hotplug.
157934779aSKay Sievers	  This should not be used today, because usual systems create
167934779aSKay Sievers	  many events at bootup or device discovery in a very short time
177934779aSKay Sievers	  frame. One forked process per event can create so many processes
187934779aSKay Sievers	  that it creates a high system load, or on smaller systems
197934779aSKay Sievers	  it is known to create out-of-memory situations during bootup.
206a8d8abbSKay Sievers
2186d56134SMichael Marineauconfig UEVENT_HELPER_PATH
2286d56134SMichael Marineau	string "path to uevent helper"
2386d56134SMichael Marineau	depends on UEVENT_HELPER
2486d56134SMichael Marineau	default ""
2586d56134SMichael Marineau	help
2686d56134SMichael Marineau	  To disable user space helper program execution at by default
2786d56134SMichael Marineau	  specify an empty string here. This setting can still be altered
28573c9774SMárton Németh	  via /proc/sys/kernel/hotplug or via /sys/kernel/uevent_helper
29573c9774SMárton Németh	  later at runtime.
30573c9774SMárton Németh
312b2af54aSKay Sieversconfig DEVTMPFS
324237e5fdSKay Sievers	bool "Maintain a devtmpfs filesystem to mount at /dev"
332b2af54aSKay Sievers	help
34da5e4ef7SPeter Korsgaard	  This creates a tmpfs/ramfs filesystem instance early at bootup.
354237e5fdSKay Sievers	  In this filesystem, the kernel driver core maintains device
364237e5fdSKay Sievers	  nodes with their default names and permissions for all
374237e5fdSKay Sievers	  registered devices with an assigned major/minor number.
384237e5fdSKay Sievers	  Userspace can modify the filesystem content as needed, add
394237e5fdSKay Sievers	  symlinks, and apply needed permissions.
404237e5fdSKay Sievers	  It provides a fully functional /dev directory, where usually
414237e5fdSKay Sievers	  udev runs on top, managing permissions and adding meaningful
424237e5fdSKay Sievers	  symlinks.
434237e5fdSKay Sievers	  In very limited environments, it may provide a sufficient
444237e5fdSKay Sievers	  functional /dev without any further help. It also allows simple
454237e5fdSKay Sievers	  rescue systems, and reliably handles dynamic major/minor numbers.
462b2af54aSKay Sievers
47da5e4ef7SPeter Korsgaard	  Notice: if CONFIG_TMPFS isn't enabled, the simpler ramfs
48da5e4ef7SPeter Korsgaard	  file system will be used instead.
49da5e4ef7SPeter Korsgaard
502b2af54aSKay Sieversconfig DEVTMPFS_MOUNT
514237e5fdSKay Sievers	bool "Automount devtmpfs at /dev, after the kernel mounted the rootfs"
522b2af54aSKay Sievers	depends on DEVTMPFS
532b2af54aSKay Sievers	help
544237e5fdSKay Sievers	  This will instruct the kernel to automatically mount the
554237e5fdSKay Sievers	  devtmpfs filesystem at /dev, directly after the kernel has
564237e5fdSKay Sievers	  mounted the root filesystem. The behavior can be overridden
574237e5fdSKay Sievers	  with the commandline parameter: devtmpfs.mount=0|1.
584237e5fdSKay Sievers	  This option does not affect initramfs based booting, here
594237e5fdSKay Sievers	  the devtmpfs filesystem always needs to be mounted manually
600feb03afSEmilio López	  after the rootfs is mounted.
614237e5fdSKay Sievers	  With this option enabled, it allows to bring up a system in
624237e5fdSKay Sievers	  rescue mode with init=/bin/sh, even when the /dev directory
634237e5fdSKay Sievers	  on the rootfs is completely empty.
642b2af54aSKay Sievers
6528f0c335SKees Cookconfig DEVTMPFS_SAFE
6628f0c335SKees Cook	bool "Use nosuid,noexec mount options on devtmpfs"
6728f0c335SKees Cook	depends on DEVTMPFS
6828f0c335SKees Cook	help
6928f0c335SKees Cook	  This instructs the kernel to include the MS_NOEXEC and MS_NOSUID mount
7028f0c335SKees Cook	  flags when mounting devtmpfs.
7128f0c335SKees Cook
7228f0c335SKees Cook	  Notice: If enabled, things like /dev/mem cannot be mmapped
7328f0c335SKees Cook	  with the PROT_EXEC flag. This can break, for example, non-KMS
7428f0c335SKees Cook	  video drivers.
7528f0c335SKees Cook
761da177e4SLinus Torvaldsconfig STANDALONE
77967857dfSKees Cook	bool "Select only drivers that don't need compile-time external firmware"
781da177e4SLinus Torvalds	default y
791da177e4SLinus Torvalds	help
801da177e4SLinus Torvalds	  Select this option if you don't have magic firmware for drivers that
811da177e4SLinus Torvalds	  need it.
821da177e4SLinus Torvalds
831da177e4SLinus Torvalds	  If unsure, say Y.
841da177e4SLinus Torvalds
851da177e4SLinus Torvaldsconfig PREVENT_FIRMWARE_BUILD
8602c39930SLuis R. Rodriguez	bool "Disable drivers features which enable custom firmware building"
871da177e4SLinus Torvalds	default y
881da177e4SLinus Torvalds	help
8902c39930SLuis R. Rodriguez	  Say yes to disable driver features which enable building a custom
9002c39930SLuis R. Rodriguez	  driver firmware at kernel build time. These drivers do not use the
9102c39930SLuis R. Rodriguez	  kernel firmware API to load firmware (CONFIG_FW_LOADER), instead they
9202c39930SLuis R. Rodriguez	  use their own custom loading mechanism. The required firmware is
9302c39930SLuis R. Rodriguez	  usually shipped with the driver, building the driver firmware
9402c39930SLuis R. Rodriguez	  should only be needed if you have an updated firmware source.
9502c39930SLuis R. Rodriguez
9602c39930SLuis R. Rodriguez	  Firmware should not be being built as part of kernel, these days
9702c39930SLuis R. Rodriguez	  you should always prevent this and say Y here. There are only two
9802c39930SLuis R. Rodriguez	  old drivers which enable building of its firmware at kernel build
9902c39930SLuis R. Rodriguez	  time:
10002c39930SLuis R. Rodriguez
10102c39930SLuis R. Rodriguez	    o CONFIG_WANXL through CONFIG_WANXL_BUILD_FIRMWARE
10202c39930SLuis R. Rodriguez	    o CONFIG_SCSI_AIC79XX through CONFIG_AIC79XX_BUILD_FIRMWARE
10302c39930SLuis R. Rodriguez
10406bfd3c8SLuis R. Rodriguezsource "drivers/base/firmware_loader/Kconfig"
10502c39930SLuis R. Rodriguez
106833c9545SJohannes Bergconfig WANT_DEV_COREDUMP
107833c9545SJohannes Berg	bool
108833c9545SJohannes Berg	help
109833c9545SJohannes Berg	  Drivers should "select" this option if they desire to use the
110833c9545SJohannes Berg	  device coredump mechanism.
111833c9545SJohannes Berg
112cd3d9ea1SJohannes Bergconfig ALLOW_DEV_COREDUMP
113cd3d9ea1SJohannes Berg	bool "Allow device coredump" if EXPERT
1149c602699SAristeu Rozanski	default y
115833c9545SJohannes Berg	help
1169c602699SAristeu Rozanski	  This option controls if the device coredump mechanism is available or
1179c602699SAristeu Rozanski	  not; if disabled, the mechanism will be omitted even if drivers that
1189c602699SAristeu Rozanski	  can use it are enabled.
1199c602699SAristeu Rozanski	  Say 'N' for more sensitive systems or systems that don't want
1209c602699SAristeu Rozanski	  to ever access the information to not have the code, nor keep any
1219c602699SAristeu Rozanski	  data.
122833c9545SJohannes Berg
1239c602699SAristeu Rozanski	  If unsure, say Y.
124833c9545SJohannes Berg
125833c9545SJohannes Bergconfig DEV_COREDUMP
126833c9545SJohannes Berg	bool
127833c9545SJohannes Berg	default y if WANT_DEV_COREDUMP
128cd3d9ea1SJohannes Berg	depends on ALLOW_DEV_COREDUMP
129833c9545SJohannes Berg
1301da177e4SLinus Torvaldsconfig DEBUG_DRIVER
1311da177e4SLinus Torvalds	bool "Driver Core verbose debug messages"
1321da177e4SLinus Torvalds	depends on DEBUG_KERNEL
1331da177e4SLinus Torvalds	help
1341da177e4SLinus Torvalds	  Say Y here if you want the Driver core to produce a bunch of
1351da177e4SLinus Torvalds	  debug messages to the system log. Select this if you are having a
1361da177e4SLinus Torvalds	  problem with the driver core and want to see more of what is
1371da177e4SLinus Torvalds	  going on.
1381da177e4SLinus Torvalds
1391da177e4SLinus Torvalds	  If you are unsure about this, say N here.
1401da177e4SLinus Torvalds
1419ac7849eSTejun Heoconfig DEBUG_DEVRES
1429ac7849eSTejun Heo	bool "Managed device resources verbose debug messages"
1439ac7849eSTejun Heo	depends on DEBUG_KERNEL
1449ac7849eSTejun Heo	help
1459ac7849eSTejun Heo	  This option enables kernel parameter devres.log. If set to
1469ac7849eSTejun Heo	  non-zero, devres debug messages are printed. Select this if
1479ac7849eSTejun Heo	  you are having a problem with devres or want to debug
1489ac7849eSTejun Heo	  resource management for a managed device. devres.log can be
1499ac7849eSTejun Heo	  switched on and off from sysfs node.
1509ac7849eSTejun Heo
1519ac7849eSTejun Heo	  If you are unsure about this, Say N here.
1529ac7849eSTejun Heo
153bea5b158SRob Herringconfig DEBUG_TEST_DRIVER_REMOVE
154248ff021SLaura Abbott	bool "Test driver remove calls during probe (UNSTABLE)"
155bea5b158SRob Herring	depends on DEBUG_KERNEL
156bea5b158SRob Herring	help
157bea5b158SRob Herring	  Say Y here if you want the Driver core to test driver remove functions
158bea5b158SRob Herring	  by calling probe, remove, probe. This tests the remove path without
159bea5b158SRob Herring	  having to unbind the driver or unload the driver module.
160bea5b158SRob Herring
161248ff021SLaura Abbott	  This option is expected to find errors and may render your system
162248ff021SLaura Abbott	  unusable. You should say N here unless you are explicitly looking to
163248ff021SLaura Abbott	  test this functionality.
164bea5b158SRob Herring
16514e08757SLeonard Crestezconfig PM_QOS_KUNIT_TEST
166bebe94b5SAnders Roxell	bool "KUnit Test for PM QoS features" if !KUNIT_ALL_TESTS
16735c57fc3SAlan Maguire	depends on KUNIT=y
168bebe94b5SAnders Roxell	default KUNIT_ALL_TESTS
16914e08757SLeonard Crestez
170*7f7acd19SBrian Norrisconfig PM_RUNTIME_KUNIT_TEST
171*7f7acd19SBrian Norris	tristate "KUnit Tests for runtime PM" if !KUNIT_ALL_TESTS
172*7f7acd19SBrian Norris	depends on KUNIT
173*7f7acd19SBrian Norris	depends on PM
174*7f7acd19SBrian Norris	default KUNIT_ALL_TESTS
175*7f7acd19SBrian Norris
176e1cf33aaSKeith Buschconfig HMEM_REPORTING
177e1cf33aaSKeith Busch	bool
178e1cf33aaSKeith Busch	default n
179e1cf33aaSKeith Busch	depends on NUMA
180e1cf33aaSKeith Busch	help
181fb88c9a3SColin Ian King	  Enable reporting for heterogeneous memory access attributes under
182e1cf33aaSKeith Busch	  their non-uniform memory nodes.
183e1cf33aaSKeith Busch
18479543cf2SDmitry Torokhovsource "drivers/base/test/Kconfig"
18579543cf2SDmitry Torokhov
1864039483fSMichael Holzheuconfig SYS_HYPERVISOR
1874039483fSMichael Holzheu	bool
1884039483fSMichael Holzheu	default n
189eba6cd67SRandy Dunlap
1909f13a1fdSBen Hutchingsconfig GENERIC_CPU_DEVICES
1919f13a1fdSBen Hutchings	bool
1929f13a1fdSBen Hutchings	default n
1939f13a1fdSBen Hutchings
19467bad2fdSArd Biesheuvelconfig GENERIC_CPU_AUTOPROBE
19567bad2fdSArd Biesheuvel	bool
19667bad2fdSArd Biesheuvel
19787590ce6SThomas Gleixnerconfig GENERIC_CPU_VULNERABILITIES
19887590ce6SThomas Gleixner	bool
19987590ce6SThomas Gleixner
20074d1d82cSLee Jonesconfig SOC_BUS
20174d1d82cSLee Jones	bool
202c97db7ccSArnd Bergmann	select GLOB
20374d1d82cSLee Jones
204b83a313bSMark Brownsource "drivers/base/regmap/Kconfig"
205b83a313bSMark Brown
206d15bd7eeSSumit Semwalconfig DMA_SHARED_BUFFER
2073b32a592SDave Airlie	bool
208d15bd7eeSSumit Semwal	default n
20903e4e0a9SChris Wilson	select IRQ_WORK
210d15bd7eeSSumit Semwal	help
211d15bd7eeSSumit Semwal	  This option enables the framework for buffer-sharing between
212d15bd7eeSSumit Semwal	  multiple drivers. A buffer is associated with a file using driver
213d15bd7eeSSumit Semwal	  APIs extension; the file's descriptor can then be passed on to other
214d15bd7eeSSumit Semwal	  driver.
215d15bd7eeSSumit Semwal
216f54d1867SChris Wilsonconfig DMA_FENCE_TRACE
217f54d1867SChris Wilson	bool "Enable verbose DMA_FENCE_TRACE messages"
218e941759cSMaarten Lankhorst	depends on DMA_SHARED_BUFFER
219e941759cSMaarten Lankhorst	help
220f54d1867SChris Wilson	  Enable the DMA_FENCE_TRACE printks. This will add extra
221e941759cSMaarten Lankhorst	  spam to the console log, but will make it easier to diagnose
222e941759cSMaarten Lankhorst	  lockup related problems for dma-buffers shared across multiple
223e941759cSMaarten Lankhorst	  devices.
224e941759cSMaarten Lankhorst
2252ef7a295SJuri Lelliconfig GENERIC_ARCH_TOPOLOGY
2262ef7a295SJuri Lelli	bool
2272ef7a295SJuri Lelli	help
2282ef7a295SJuri Lelli	  Enable support for architectures common topology code: e.g., parsing
2292ef7a295SJuri Lelli	  CPU capacity information from DT, usage of such information for
230c181831fSSudeep Holla	  appropriate scaling, sysfs interface for reading capacity values at
2312ef7a295SJuri Lelli	  runtime.
2322ef7a295SJuri Lelli
233ae3c107cSAtish Patraconfig GENERIC_ARCH_NUMA
234ae3c107cSAtish Patra	bool
23576750765SMike Rapoport (Microsoft)	select NUMA_MEMBLKS
236ae3c107cSAtish Patra	help
237ae3c107cSAtish Patra	  Enable support for generic NUMA implementation. Currently, RISC-V
238ae3c107cSAtish Patra	  and ARM64 use it.
239ae3c107cSAtish Patra
2408ad266d1SSaravana Kannanconfig FW_DEVLINK_SYNC_STATE_TIMEOUT
2418ad266d1SSaravana Kannan	bool "sync_state() behavior defaults to timeout instead of strict"
2428ad266d1SSaravana Kannan	help
2438ad266d1SSaravana Kannan	  This is build time equivalent of adding kernel command line parameter
2448ad266d1SSaravana Kannan	  "fw_devlink.sync_state=timeout". Give up waiting on consumers and
2458ad266d1SSaravana Kannan	  call sync_state() on any devices that haven't yet received their
2468ad266d1SSaravana Kannan	  sync_state() calls after deferred_probe_timeout has expired or by
2478ad266d1SSaravana Kannan	  late_initcall() if !CONFIG_MODULES. You should almost always want to
2488ad266d1SSaravana Kannan	  select N here unless you have already successfully tested with the
2498ad266d1SSaravana Kannan	  command line option on every system/board your kernel is expected to
2508ad266d1SSaravana Kannan	  work on.
2518ad266d1SSaravana Kannan
252eba6cd67SRandy Dunlapendmenu
253