xref: /linux/drivers/base/Kconfig (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
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
76*56e3ee72SHans de Goedeconfig DRIVER_DEFERRED_PROBE_TIMEOUT
77*56e3ee72SHans de Goede	int "Default value for deferred_probe_timeout"
78*56e3ee72SHans de Goede	default 0 if !MODULES
79*56e3ee72SHans de Goede	default 10 if MODULES
80*56e3ee72SHans de Goede	help
81*56e3ee72SHans de Goede	  Set the default value for the deferred_probe_timeout kernel parameter.
82*56e3ee72SHans de Goede	  See Documentation/admin-guide/kernel-parameters.txt for a description
83*56e3ee72SHans de Goede	  of the deferred_probe_timeout kernel parameter.
84*56e3ee72SHans de Goede
851da177e4SLinus Torvaldsconfig STANDALONE
86967857dfSKees Cook	bool "Select only drivers that don't need compile-time external firmware"
871da177e4SLinus Torvalds	default y
881da177e4SLinus Torvalds	help
891da177e4SLinus Torvalds	  Select this option if you don't have magic firmware for drivers that
901da177e4SLinus Torvalds	  need it.
911da177e4SLinus Torvalds
921da177e4SLinus Torvalds	  If unsure, say Y.
931da177e4SLinus Torvalds
941da177e4SLinus Torvaldsconfig PREVENT_FIRMWARE_BUILD
9502c39930SLuis R. Rodriguez	bool "Disable drivers features which enable custom firmware building"
961da177e4SLinus Torvalds	default y
971da177e4SLinus Torvalds	help
9802c39930SLuis R. Rodriguez	  Say yes to disable driver features which enable building a custom
9902c39930SLuis R. Rodriguez	  driver firmware at kernel build time. These drivers do not use the
10002c39930SLuis R. Rodriguez	  kernel firmware API to load firmware (CONFIG_FW_LOADER), instead they
10102c39930SLuis R. Rodriguez	  use their own custom loading mechanism. The required firmware is
10202c39930SLuis R. Rodriguez	  usually shipped with the driver, building the driver firmware
10302c39930SLuis R. Rodriguez	  should only be needed if you have an updated firmware source.
10402c39930SLuis R. Rodriguez
10502c39930SLuis R. Rodriguez	  Firmware should not be being built as part of kernel, these days
10602c39930SLuis R. Rodriguez	  you should always prevent this and say Y here. There are only two
10702c39930SLuis R. Rodriguez	  old drivers which enable building of its firmware at kernel build
10802c39930SLuis R. Rodriguez	  time:
10902c39930SLuis R. Rodriguez
11002c39930SLuis R. Rodriguez	    o CONFIG_WANXL through CONFIG_WANXL_BUILD_FIRMWARE
11102c39930SLuis R. Rodriguez	    o CONFIG_SCSI_AIC79XX through CONFIG_AIC79XX_BUILD_FIRMWARE
11202c39930SLuis R. Rodriguez
11306bfd3c8SLuis R. Rodriguezsource "drivers/base/firmware_loader/Kconfig"
11402c39930SLuis R. Rodriguez
115833c9545SJohannes Bergconfig WANT_DEV_COREDUMP
116833c9545SJohannes Berg	bool
117833c9545SJohannes Berg	help
118833c9545SJohannes Berg	  Drivers should "select" this option if they desire to use the
119833c9545SJohannes Berg	  device coredump mechanism.
120833c9545SJohannes Berg
121cd3d9ea1SJohannes Bergconfig ALLOW_DEV_COREDUMP
122cd3d9ea1SJohannes Berg	bool "Allow device coredump" if EXPERT
1239c602699SAristeu Rozanski	default y
124833c9545SJohannes Berg	help
1259c602699SAristeu Rozanski	  This option controls if the device coredump mechanism is available or
1269c602699SAristeu Rozanski	  not; if disabled, the mechanism will be omitted even if drivers that
1279c602699SAristeu Rozanski	  can use it are enabled.
1289c602699SAristeu Rozanski	  Say 'N' for more sensitive systems or systems that don't want
1299c602699SAristeu Rozanski	  to ever access the information to not have the code, nor keep any
1309c602699SAristeu Rozanski	  data.
131833c9545SJohannes Berg
1329c602699SAristeu Rozanski	  If unsure, say Y.
133833c9545SJohannes Berg
134833c9545SJohannes Bergconfig DEV_COREDUMP
135833c9545SJohannes Berg	bool
136833c9545SJohannes Berg	default y if WANT_DEV_COREDUMP
137cd3d9ea1SJohannes Berg	depends on ALLOW_DEV_COREDUMP
138833c9545SJohannes Berg
1391da177e4SLinus Torvaldsconfig DEBUG_DRIVER
1401da177e4SLinus Torvalds	bool "Driver Core verbose debug messages"
1411da177e4SLinus Torvalds	depends on DEBUG_KERNEL
1421da177e4SLinus Torvalds	help
1431da177e4SLinus Torvalds	  Say Y here if you want the Driver core to produce a bunch of
1441da177e4SLinus Torvalds	  debug messages to the system log. Select this if you are having a
1451da177e4SLinus Torvalds	  problem with the driver core and want to see more of what is
1461da177e4SLinus Torvalds	  going on.
1471da177e4SLinus Torvalds
1481da177e4SLinus Torvalds	  If you are unsure about this, say N here.
1491da177e4SLinus Torvalds
1509ac7849eSTejun Heoconfig DEBUG_DEVRES
1519ac7849eSTejun Heo	bool "Managed device resources verbose debug messages"
1529ac7849eSTejun Heo	depends on DEBUG_KERNEL
1539ac7849eSTejun Heo	help
1549ac7849eSTejun Heo	  This option enables kernel parameter devres.log. If set to
1559ac7849eSTejun Heo	  non-zero, devres debug messages are printed. Select this if
1569ac7849eSTejun Heo	  you are having a problem with devres or want to debug
1579ac7849eSTejun Heo	  resource management for a managed device. devres.log can be
1589ac7849eSTejun Heo	  switched on and off from sysfs node.
1599ac7849eSTejun Heo
1609ac7849eSTejun Heo	  If you are unsure about this, Say N here.
1619ac7849eSTejun Heo
162bea5b158SRob Herringconfig DEBUG_TEST_DRIVER_REMOVE
163248ff021SLaura Abbott	bool "Test driver remove calls during probe (UNSTABLE)"
164bea5b158SRob Herring	depends on DEBUG_KERNEL
165bea5b158SRob Herring	help
166bea5b158SRob Herring	  Say Y here if you want the Driver core to test driver remove functions
167bea5b158SRob Herring	  by calling probe, remove, probe. This tests the remove path without
168bea5b158SRob Herring	  having to unbind the driver or unload the driver module.
169bea5b158SRob Herring
170248ff021SLaura Abbott	  This option is expected to find errors and may render your system
171248ff021SLaura Abbott	  unusable. You should say N here unless you are explicitly looking to
172248ff021SLaura Abbott	  test this functionality.
173bea5b158SRob Herring
17414e08757SLeonard Crestezconfig PM_QOS_KUNIT_TEST
175bebe94b5SAnders Roxell	bool "KUnit Test for PM QoS features" if !KUNIT_ALL_TESTS
17635c57fc3SAlan Maguire	depends on KUNIT=y
177bebe94b5SAnders Roxell	default KUNIT_ALL_TESTS
17814e08757SLeonard Crestez
1797f7acd19SBrian Norrisconfig PM_RUNTIME_KUNIT_TEST
1807f7acd19SBrian Norris	tristate "KUnit Tests for runtime PM" if !KUNIT_ALL_TESTS
1817f7acd19SBrian Norris	depends on KUNIT
1827f7acd19SBrian Norris	depends on PM
1837f7acd19SBrian Norris	default KUNIT_ALL_TESTS
1847f7acd19SBrian Norris
185e1cf33aaSKeith Buschconfig HMEM_REPORTING
186e1cf33aaSKeith Busch	bool
187e1cf33aaSKeith Busch	default n
188e1cf33aaSKeith Busch	depends on NUMA
189e1cf33aaSKeith Busch	help
190fb88c9a3SColin Ian King	  Enable reporting for heterogeneous memory access attributes under
191e1cf33aaSKeith Busch	  their non-uniform memory nodes.
192e1cf33aaSKeith Busch
19379543cf2SDmitry Torokhovsource "drivers/base/test/Kconfig"
19479543cf2SDmitry Torokhov
1954039483fSMichael Holzheuconfig SYS_HYPERVISOR
1964039483fSMichael Holzheu	bool
1974039483fSMichael Holzheu	default n
198eba6cd67SRandy Dunlap
1999f13a1fdSBen Hutchingsconfig GENERIC_CPU_DEVICES
2009f13a1fdSBen Hutchings	bool
2019f13a1fdSBen Hutchings	default n
2029f13a1fdSBen Hutchings
20367bad2fdSArd Biesheuvelconfig GENERIC_CPU_AUTOPROBE
20467bad2fdSArd Biesheuvel	bool
20567bad2fdSArd Biesheuvel
20687590ce6SThomas Gleixnerconfig GENERIC_CPU_VULNERABILITIES
20787590ce6SThomas Gleixner	bool
20887590ce6SThomas Gleixner
20974d1d82cSLee Jonesconfig SOC_BUS
21074d1d82cSLee Jones	bool
211c97db7ccSArnd Bergmann	select GLOB
21274d1d82cSLee Jones
213b83a313bSMark Brownsource "drivers/base/regmap/Kconfig"
214b83a313bSMark Brown
215d15bd7eeSSumit Semwalconfig DMA_SHARED_BUFFER
2163b32a592SDave Airlie	bool
217d15bd7eeSSumit Semwal	default n
21803e4e0a9SChris Wilson	select IRQ_WORK
219d15bd7eeSSumit Semwal	help
220d15bd7eeSSumit Semwal	  This option enables the framework for buffer-sharing between
221d15bd7eeSSumit Semwal	  multiple drivers. A buffer is associated with a file using driver
222d15bd7eeSSumit Semwal	  APIs extension; the file's descriptor can then be passed on to other
223d15bd7eeSSumit Semwal	  driver.
224d15bd7eeSSumit Semwal
225f54d1867SChris Wilsonconfig DMA_FENCE_TRACE
226f54d1867SChris Wilson	bool "Enable verbose DMA_FENCE_TRACE messages"
227e941759cSMaarten Lankhorst	depends on DMA_SHARED_BUFFER
228e941759cSMaarten Lankhorst	help
229f54d1867SChris Wilson	  Enable the DMA_FENCE_TRACE printks. This will add extra
230e941759cSMaarten Lankhorst	  spam to the console log, but will make it easier to diagnose
231e941759cSMaarten Lankhorst	  lockup related problems for dma-buffers shared across multiple
232e941759cSMaarten Lankhorst	  devices.
233e941759cSMaarten Lankhorst
2342ef7a295SJuri Lelliconfig GENERIC_ARCH_TOPOLOGY
2352ef7a295SJuri Lelli	bool
2362ef7a295SJuri Lelli	help
2372ef7a295SJuri Lelli	  Enable support for architectures common topology code: e.g., parsing
2382ef7a295SJuri Lelli	  CPU capacity information from DT, usage of such information for
239c181831fSSudeep Holla	  appropriate scaling, sysfs interface for reading capacity values at
2402ef7a295SJuri Lelli	  runtime.
2412ef7a295SJuri Lelli
242ae3c107cSAtish Patraconfig GENERIC_ARCH_NUMA
243ae3c107cSAtish Patra	bool
24476750765SMike Rapoport (Microsoft)	select NUMA_MEMBLKS
245ae3c107cSAtish Patra	help
246ae3c107cSAtish Patra	  Enable support for generic NUMA implementation. Currently, RISC-V
247ae3c107cSAtish Patra	  and ARM64 use it.
248ae3c107cSAtish Patra
2498ad266d1SSaravana Kannanconfig FW_DEVLINK_SYNC_STATE_TIMEOUT
2508ad266d1SSaravana Kannan	bool "sync_state() behavior defaults to timeout instead of strict"
2518ad266d1SSaravana Kannan	help
2528ad266d1SSaravana Kannan	  This is build time equivalent of adding kernel command line parameter
2538ad266d1SSaravana Kannan	  "fw_devlink.sync_state=timeout". Give up waiting on consumers and
2548ad266d1SSaravana Kannan	  call sync_state() on any devices that haven't yet received their
2558ad266d1SSaravana Kannan	  sync_state() calls after deferred_probe_timeout has expired or by
2568ad266d1SSaravana Kannan	  late_initcall() if !CONFIG_MODULES. You should almost always want to
2578ad266d1SSaravana Kannan	  select N here unless you have already successfully tested with the
2588ad266d1SSaravana Kannan	  command line option on every system/board your kernel is expected to
2598ad266d1SSaravana Kannan	  work on.
2608ad266d1SSaravana Kannan
261eba6cd67SRandy Dunlapendmenu
262