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