162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_cimenu "Generic Driver Options" 362306a36Sopenharmony_ci 462306a36Sopenharmony_ciconfig AUXILIARY_BUS 562306a36Sopenharmony_ci bool 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciconfig UEVENT_HELPER 862306a36Sopenharmony_ci bool "Support for uevent helper" 962306a36Sopenharmony_ci help 1062306a36Sopenharmony_ci The uevent helper program is forked by the kernel for 1162306a36Sopenharmony_ci every uevent. 1262306a36Sopenharmony_ci Before the switch to the netlink-based uevent source, this was 1362306a36Sopenharmony_ci used to hook hotplug scripts into kernel device events. It 1462306a36Sopenharmony_ci usually pointed to a shell script at /sbin/hotplug. 1562306a36Sopenharmony_ci This should not be used today, because usual systems create 1662306a36Sopenharmony_ci many events at bootup or device discovery in a very short time 1762306a36Sopenharmony_ci frame. One forked process per event can create so many processes 1862306a36Sopenharmony_ci that it creates a high system load, or on smaller systems 1962306a36Sopenharmony_ci it is known to create out-of-memory situations during bootup. 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciconfig UEVENT_HELPER_PATH 2262306a36Sopenharmony_ci string "path to uevent helper" 2362306a36Sopenharmony_ci depends on UEVENT_HELPER 2462306a36Sopenharmony_ci default "" 2562306a36Sopenharmony_ci help 2662306a36Sopenharmony_ci To disable user space helper program execution at by default 2762306a36Sopenharmony_ci specify an empty string here. This setting can still be altered 2862306a36Sopenharmony_ci via /proc/sys/kernel/hotplug or via /sys/kernel/uevent_helper 2962306a36Sopenharmony_ci later at runtime. 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ciconfig DEVTMPFS 3262306a36Sopenharmony_ci bool "Maintain a devtmpfs filesystem to mount at /dev" 3362306a36Sopenharmony_ci help 3462306a36Sopenharmony_ci This creates a tmpfs/ramfs filesystem instance early at bootup. 3562306a36Sopenharmony_ci In this filesystem, the kernel driver core maintains device 3662306a36Sopenharmony_ci nodes with their default names and permissions for all 3762306a36Sopenharmony_ci registered devices with an assigned major/minor number. 3862306a36Sopenharmony_ci Userspace can modify the filesystem content as needed, add 3962306a36Sopenharmony_ci symlinks, and apply needed permissions. 4062306a36Sopenharmony_ci It provides a fully functional /dev directory, where usually 4162306a36Sopenharmony_ci udev runs on top, managing permissions and adding meaningful 4262306a36Sopenharmony_ci symlinks. 4362306a36Sopenharmony_ci In very limited environments, it may provide a sufficient 4462306a36Sopenharmony_ci functional /dev without any further help. It also allows simple 4562306a36Sopenharmony_ci rescue systems, and reliably handles dynamic major/minor numbers. 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci Notice: if CONFIG_TMPFS isn't enabled, the simpler ramfs 4862306a36Sopenharmony_ci file system will be used instead. 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciconfig DEVTMPFS_MOUNT 5162306a36Sopenharmony_ci bool "Automount devtmpfs at /dev, after the kernel mounted the rootfs" 5262306a36Sopenharmony_ci depends on DEVTMPFS 5362306a36Sopenharmony_ci help 5462306a36Sopenharmony_ci This will instruct the kernel to automatically mount the 5562306a36Sopenharmony_ci devtmpfs filesystem at /dev, directly after the kernel has 5662306a36Sopenharmony_ci mounted the root filesystem. The behavior can be overridden 5762306a36Sopenharmony_ci with the commandline parameter: devtmpfs.mount=0|1. 5862306a36Sopenharmony_ci This option does not affect initramfs based booting, here 5962306a36Sopenharmony_ci the devtmpfs filesystem always needs to be mounted manually 6062306a36Sopenharmony_ci after the rootfs is mounted. 6162306a36Sopenharmony_ci With this option enabled, it allows to bring up a system in 6262306a36Sopenharmony_ci rescue mode with init=/bin/sh, even when the /dev directory 6362306a36Sopenharmony_ci on the rootfs is completely empty. 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ciconfig DEVTMPFS_SAFE 6662306a36Sopenharmony_ci bool "Use nosuid,noexec mount options on devtmpfs" 6762306a36Sopenharmony_ci depends on DEVTMPFS 6862306a36Sopenharmony_ci help 6962306a36Sopenharmony_ci This instructs the kernel to include the MS_NOEXEC and MS_NOSUID mount 7062306a36Sopenharmony_ci flags when mounting devtmpfs. 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci Notice: If enabled, things like /dev/mem cannot be mmapped 7362306a36Sopenharmony_ci with the PROT_EXEC flag. This can break, for example, non-KMS 7462306a36Sopenharmony_ci video drivers. 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ciconfig STANDALONE 7762306a36Sopenharmony_ci bool "Select only drivers that don't need compile-time external firmware" 7862306a36Sopenharmony_ci default y 7962306a36Sopenharmony_ci help 8062306a36Sopenharmony_ci Select this option if you don't have magic firmware for drivers that 8162306a36Sopenharmony_ci need it. 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci If unsure, say Y. 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ciconfig PREVENT_FIRMWARE_BUILD 8662306a36Sopenharmony_ci bool "Disable drivers features which enable custom firmware building" 8762306a36Sopenharmony_ci default y 8862306a36Sopenharmony_ci help 8962306a36Sopenharmony_ci Say yes to disable driver features which enable building a custom 9062306a36Sopenharmony_ci driver firmware at kernel build time. These drivers do not use the 9162306a36Sopenharmony_ci kernel firmware API to load firmware (CONFIG_FW_LOADER), instead they 9262306a36Sopenharmony_ci use their own custom loading mechanism. The required firmware is 9362306a36Sopenharmony_ci usually shipped with the driver, building the driver firmware 9462306a36Sopenharmony_ci should only be needed if you have an updated firmware source. 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci Firmware should not be being built as part of kernel, these days 9762306a36Sopenharmony_ci you should always prevent this and say Y here. There are only two 9862306a36Sopenharmony_ci old drivers which enable building of its firmware at kernel build 9962306a36Sopenharmony_ci time: 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci o CONFIG_WANXL through CONFIG_WANXL_BUILD_FIRMWARE 10262306a36Sopenharmony_ci o CONFIG_SCSI_AIC79XX through CONFIG_AIC79XX_BUILD_FIRMWARE 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_cisource "drivers/base/firmware_loader/Kconfig" 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ciconfig WANT_DEV_COREDUMP 10762306a36Sopenharmony_ci bool 10862306a36Sopenharmony_ci help 10962306a36Sopenharmony_ci Drivers should "select" this option if they desire to use the 11062306a36Sopenharmony_ci device coredump mechanism. 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ciconfig ALLOW_DEV_COREDUMP 11362306a36Sopenharmony_ci bool "Allow device coredump" if EXPERT 11462306a36Sopenharmony_ci default y 11562306a36Sopenharmony_ci help 11662306a36Sopenharmony_ci This option controls if the device coredump mechanism is available or 11762306a36Sopenharmony_ci not; if disabled, the mechanism will be omitted even if drivers that 11862306a36Sopenharmony_ci can use it are enabled. 11962306a36Sopenharmony_ci Say 'N' for more sensitive systems or systems that don't want 12062306a36Sopenharmony_ci to ever access the information to not have the code, nor keep any 12162306a36Sopenharmony_ci data. 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_ci If unsure, say Y. 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ciconfig DEV_COREDUMP 12662306a36Sopenharmony_ci bool 12762306a36Sopenharmony_ci default y if WANT_DEV_COREDUMP 12862306a36Sopenharmony_ci depends on ALLOW_DEV_COREDUMP 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ciconfig DEBUG_DRIVER 13162306a36Sopenharmony_ci bool "Driver Core verbose debug messages" 13262306a36Sopenharmony_ci depends on DEBUG_KERNEL 13362306a36Sopenharmony_ci help 13462306a36Sopenharmony_ci Say Y here if you want the Driver core to produce a bunch of 13562306a36Sopenharmony_ci debug messages to the system log. Select this if you are having a 13662306a36Sopenharmony_ci problem with the driver core and want to see more of what is 13762306a36Sopenharmony_ci going on. 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci If you are unsure about this, say N here. 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ciconfig DEBUG_DEVRES 14262306a36Sopenharmony_ci bool "Managed device resources verbose debug messages" 14362306a36Sopenharmony_ci depends on DEBUG_KERNEL 14462306a36Sopenharmony_ci help 14562306a36Sopenharmony_ci This option enables kernel parameter devres.log. If set to 14662306a36Sopenharmony_ci non-zero, devres debug messages are printed. Select this if 14762306a36Sopenharmony_ci you are having a problem with devres or want to debug 14862306a36Sopenharmony_ci resource management for a managed device. devres.log can be 14962306a36Sopenharmony_ci switched on and off from sysfs node. 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci If you are unsure about this, Say N here. 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ciconfig DEBUG_TEST_DRIVER_REMOVE 15462306a36Sopenharmony_ci bool "Test driver remove calls during probe (UNSTABLE)" 15562306a36Sopenharmony_ci depends on DEBUG_KERNEL 15662306a36Sopenharmony_ci help 15762306a36Sopenharmony_ci Say Y here if you want the Driver core to test driver remove functions 15862306a36Sopenharmony_ci by calling probe, remove, probe. This tests the remove path without 15962306a36Sopenharmony_ci having to unbind the driver or unload the driver module. 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ci This option is expected to find errors and may render your system 16262306a36Sopenharmony_ci unusable. You should say N here unless you are explicitly looking to 16362306a36Sopenharmony_ci test this functionality. 16462306a36Sopenharmony_ci 16562306a36Sopenharmony_ciconfig PM_QOS_KUNIT_TEST 16662306a36Sopenharmony_ci bool "KUnit Test for PM QoS features" if !KUNIT_ALL_TESTS 16762306a36Sopenharmony_ci depends on KUNIT=y 16862306a36Sopenharmony_ci default KUNIT_ALL_TESTS 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ciconfig HMEM_REPORTING 17162306a36Sopenharmony_ci bool 17262306a36Sopenharmony_ci default n 17362306a36Sopenharmony_ci depends on NUMA 17462306a36Sopenharmony_ci help 17562306a36Sopenharmony_ci Enable reporting for heterogeneous memory access attributes under 17662306a36Sopenharmony_ci their non-uniform memory nodes. 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_cisource "drivers/base/test/Kconfig" 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ciconfig SYS_HYPERVISOR 18162306a36Sopenharmony_ci bool 18262306a36Sopenharmony_ci default n 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ciconfig GENERIC_CPU_DEVICES 18562306a36Sopenharmony_ci bool 18662306a36Sopenharmony_ci default n 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ciconfig GENERIC_CPU_AUTOPROBE 18962306a36Sopenharmony_ci bool 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ciconfig GENERIC_CPU_VULNERABILITIES 19262306a36Sopenharmony_ci bool 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_ciconfig SOC_BUS 19562306a36Sopenharmony_ci bool 19662306a36Sopenharmony_ci select GLOB 19762306a36Sopenharmony_ci 19862306a36Sopenharmony_cisource "drivers/base/regmap/Kconfig" 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ciconfig DMA_SHARED_BUFFER 20162306a36Sopenharmony_ci bool 20262306a36Sopenharmony_ci default n 20362306a36Sopenharmony_ci select IRQ_WORK 20462306a36Sopenharmony_ci help 20562306a36Sopenharmony_ci This option enables the framework for buffer-sharing between 20662306a36Sopenharmony_ci multiple drivers. A buffer is associated with a file using driver 20762306a36Sopenharmony_ci APIs extension; the file's descriptor can then be passed on to other 20862306a36Sopenharmony_ci driver. 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ciconfig DMA_FENCE_TRACE 21162306a36Sopenharmony_ci bool "Enable verbose DMA_FENCE_TRACE messages" 21262306a36Sopenharmony_ci depends on DMA_SHARED_BUFFER 21362306a36Sopenharmony_ci help 21462306a36Sopenharmony_ci Enable the DMA_FENCE_TRACE printks. This will add extra 21562306a36Sopenharmony_ci spam to the console log, but will make it easier to diagnose 21662306a36Sopenharmony_ci lockup related problems for dma-buffers shared across multiple 21762306a36Sopenharmony_ci devices. 21862306a36Sopenharmony_ci 21962306a36Sopenharmony_ciconfig GENERIC_ARCH_TOPOLOGY 22062306a36Sopenharmony_ci bool 22162306a36Sopenharmony_ci help 22262306a36Sopenharmony_ci Enable support for architectures common topology code: e.g., parsing 22362306a36Sopenharmony_ci CPU capacity information from DT, usage of such information for 22462306a36Sopenharmony_ci appropriate scaling, sysfs interface for reading capacity values at 22562306a36Sopenharmony_ci runtime. 22662306a36Sopenharmony_ci 22762306a36Sopenharmony_ciconfig GENERIC_ARCH_NUMA 22862306a36Sopenharmony_ci bool 22962306a36Sopenharmony_ci help 23062306a36Sopenharmony_ci Enable support for generic NUMA implementation. Currently, RISC-V 23162306a36Sopenharmony_ci and ARM64 use it. 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ciconfig FW_DEVLINK_SYNC_STATE_TIMEOUT 23462306a36Sopenharmony_ci bool "sync_state() behavior defaults to timeout instead of strict" 23562306a36Sopenharmony_ci help 23662306a36Sopenharmony_ci This is build time equivalent of adding kernel command line parameter 23762306a36Sopenharmony_ci "fw_devlink.sync_state=timeout". Give up waiting on consumers and 23862306a36Sopenharmony_ci call sync_state() on any devices that haven't yet received their 23962306a36Sopenharmony_ci sync_state() calls after deferred_probe_timeout has expired or by 24062306a36Sopenharmony_ci late_initcall() if !CONFIG_MODULES. You should almost always want to 24162306a36Sopenharmony_ci select N here unless you have already successfully tested with the 24262306a36Sopenharmony_ci command line option on every system/board your kernel is expected to 24362306a36Sopenharmony_ci work on. 24462306a36Sopenharmony_ci 24562306a36Sopenharmony_ciendmenu 246