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