18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_cimenu "Generic Driver Options"
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ciconfig UEVENT_HELPER
58c2ecf20Sopenharmony_ci	bool "Support for uevent helper"
68c2ecf20Sopenharmony_ci	help
78c2ecf20Sopenharmony_ci	  The uevent helper program is forked by the kernel for
88c2ecf20Sopenharmony_ci	  every uevent.
98c2ecf20Sopenharmony_ci	  Before the switch to the netlink-based uevent source, this was
108c2ecf20Sopenharmony_ci	  used to hook hotplug scripts into kernel device events. It
118c2ecf20Sopenharmony_ci	  usually pointed to a shell script at /sbin/hotplug.
128c2ecf20Sopenharmony_ci	  This should not be used today, because usual systems create
138c2ecf20Sopenharmony_ci	  many events at bootup or device discovery in a very short time
148c2ecf20Sopenharmony_ci	  frame. One forked process per event can create so many processes
158c2ecf20Sopenharmony_ci	  that it creates a high system load, or on smaller systems
168c2ecf20Sopenharmony_ci	  it is known to create out-of-memory situations during bootup.
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ciconfig UEVENT_HELPER_PATH
198c2ecf20Sopenharmony_ci	string "path to uevent helper"
208c2ecf20Sopenharmony_ci	depends on UEVENT_HELPER
218c2ecf20Sopenharmony_ci	default ""
228c2ecf20Sopenharmony_ci	help
238c2ecf20Sopenharmony_ci	  To disable user space helper program execution at by default
248c2ecf20Sopenharmony_ci	  specify an empty string here. This setting can still be altered
258c2ecf20Sopenharmony_ci	  via /proc/sys/kernel/hotplug or via /sys/kernel/uevent_helper
268c2ecf20Sopenharmony_ci	  later at runtime.
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ciconfig DEVTMPFS
298c2ecf20Sopenharmony_ci	bool "Maintain a devtmpfs filesystem to mount at /dev"
308c2ecf20Sopenharmony_ci	help
318c2ecf20Sopenharmony_ci	  This creates a tmpfs/ramfs filesystem instance early at bootup.
328c2ecf20Sopenharmony_ci	  In this filesystem, the kernel driver core maintains device
338c2ecf20Sopenharmony_ci	  nodes with their default names and permissions for all
348c2ecf20Sopenharmony_ci	  registered devices with an assigned major/minor number.
358c2ecf20Sopenharmony_ci	  Userspace can modify the filesystem content as needed, add
368c2ecf20Sopenharmony_ci	  symlinks, and apply needed permissions.
378c2ecf20Sopenharmony_ci	  It provides a fully functional /dev directory, where usually
388c2ecf20Sopenharmony_ci	  udev runs on top, managing permissions and adding meaningful
398c2ecf20Sopenharmony_ci	  symlinks.
408c2ecf20Sopenharmony_ci	  In very limited environments, it may provide a sufficient
418c2ecf20Sopenharmony_ci	  functional /dev without any further help. It also allows simple
428c2ecf20Sopenharmony_ci	  rescue systems, and reliably handles dynamic major/minor numbers.
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci	  Notice: if CONFIG_TMPFS isn't enabled, the simpler ramfs
458c2ecf20Sopenharmony_ci	  file system will be used instead.
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ciconfig DEVTMPFS_MOUNT
488c2ecf20Sopenharmony_ci	bool "Automount devtmpfs at /dev, after the kernel mounted the rootfs"
498c2ecf20Sopenharmony_ci	depends on DEVTMPFS
508c2ecf20Sopenharmony_ci	help
518c2ecf20Sopenharmony_ci	  This will instruct the kernel to automatically mount the
528c2ecf20Sopenharmony_ci	  devtmpfs filesystem at /dev, directly after the kernel has
538c2ecf20Sopenharmony_ci	  mounted the root filesystem. The behavior can be overridden
548c2ecf20Sopenharmony_ci	  with the commandline parameter: devtmpfs.mount=0|1.
558c2ecf20Sopenharmony_ci	  This option does not affect initramfs based booting, here
568c2ecf20Sopenharmony_ci	  the devtmpfs filesystem always needs to be mounted manually
578c2ecf20Sopenharmony_ci	  after the rootfs is mounted.
588c2ecf20Sopenharmony_ci	  With this option enabled, it allows to bring up a system in
598c2ecf20Sopenharmony_ci	  rescue mode with init=/bin/sh, even when the /dev directory
608c2ecf20Sopenharmony_ci	  on the rootfs is completely empty.
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ciconfig STANDALONE
638c2ecf20Sopenharmony_ci	bool "Select only drivers that don't need compile-time external firmware"
648c2ecf20Sopenharmony_ci	default y
658c2ecf20Sopenharmony_ci	help
668c2ecf20Sopenharmony_ci	  Select this option if you don't have magic firmware for drivers that
678c2ecf20Sopenharmony_ci	  need it.
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci	  If unsure, say Y.
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ciconfig PREVENT_FIRMWARE_BUILD
728c2ecf20Sopenharmony_ci	bool "Disable drivers features which enable custom firmware building"
738c2ecf20Sopenharmony_ci	default y
748c2ecf20Sopenharmony_ci	help
758c2ecf20Sopenharmony_ci	  Say yes to disable driver features which enable building a custom
768c2ecf20Sopenharmony_ci	  driver firmware at kernel build time. These drivers do not use the
778c2ecf20Sopenharmony_ci	  kernel firmware API to load firmware (CONFIG_FW_LOADER), instead they
788c2ecf20Sopenharmony_ci	  use their own custom loading mechanism. The required firmware is
798c2ecf20Sopenharmony_ci	  usually shipped with the driver, building the driver firmware
808c2ecf20Sopenharmony_ci	  should only be needed if you have an updated firmware source.
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ci	  Firmware should not be being built as part of kernel, these days
838c2ecf20Sopenharmony_ci	  you should always prevent this and say Y here. There are only two
848c2ecf20Sopenharmony_ci	  old drivers which enable building of its firmware at kernel build
858c2ecf20Sopenharmony_ci	  time:
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci	    o CONFIG_WANXL through CONFIG_WANXL_BUILD_FIRMWARE
888c2ecf20Sopenharmony_ci	    o CONFIG_SCSI_AIC79XX through CONFIG_AIC79XX_BUILD_FIRMWARE
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_cisource "drivers/base/firmware_loader/Kconfig"
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ciconfig WANT_DEV_COREDUMP
938c2ecf20Sopenharmony_ci	bool
948c2ecf20Sopenharmony_ci	help
958c2ecf20Sopenharmony_ci	  Drivers should "select" this option if they desire to use the
968c2ecf20Sopenharmony_ci	  device coredump mechanism.
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ciconfig ALLOW_DEV_COREDUMP
998c2ecf20Sopenharmony_ci	bool "Allow device coredump" if EXPERT
1008c2ecf20Sopenharmony_ci	default y
1018c2ecf20Sopenharmony_ci	help
1028c2ecf20Sopenharmony_ci	  This option controls if the device coredump mechanism is available or
1038c2ecf20Sopenharmony_ci	  not; if disabled, the mechanism will be omitted even if drivers that
1048c2ecf20Sopenharmony_ci	  can use it are enabled.
1058c2ecf20Sopenharmony_ci	  Say 'N' for more sensitive systems or systems that don't want
1068c2ecf20Sopenharmony_ci	  to ever access the information to not have the code, nor keep any
1078c2ecf20Sopenharmony_ci	  data.
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci	  If unsure, say Y.
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ciconfig DEV_COREDUMP
1128c2ecf20Sopenharmony_ci	bool
1138c2ecf20Sopenharmony_ci	default y if WANT_DEV_COREDUMP
1148c2ecf20Sopenharmony_ci	depends on ALLOW_DEV_COREDUMP
1158c2ecf20Sopenharmony_ci
1168c2ecf20Sopenharmony_ciconfig DEBUG_DRIVER
1178c2ecf20Sopenharmony_ci	bool "Driver Core verbose debug messages"
1188c2ecf20Sopenharmony_ci	depends on DEBUG_KERNEL
1198c2ecf20Sopenharmony_ci	help
1208c2ecf20Sopenharmony_ci	  Say Y here if you want the Driver core to produce a bunch of
1218c2ecf20Sopenharmony_ci	  debug messages to the system log. Select this if you are having a
1228c2ecf20Sopenharmony_ci	  problem with the driver core and want to see more of what is
1238c2ecf20Sopenharmony_ci	  going on.
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ci	  If you are unsure about this, say N here.
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ciconfig DEBUG_DEVRES
1288c2ecf20Sopenharmony_ci	bool "Managed device resources verbose debug messages"
1298c2ecf20Sopenharmony_ci	depends on DEBUG_KERNEL
1308c2ecf20Sopenharmony_ci	help
1318c2ecf20Sopenharmony_ci	  This option enables kernel parameter devres.log. If set to
1328c2ecf20Sopenharmony_ci	  non-zero, devres debug messages are printed. Select this if
1338c2ecf20Sopenharmony_ci	  you are having a problem with devres or want to debug
1348c2ecf20Sopenharmony_ci	  resource management for a managed device. devres.log can be
1358c2ecf20Sopenharmony_ci	  switched on and off from sysfs node.
1368c2ecf20Sopenharmony_ci
1378c2ecf20Sopenharmony_ci	  If you are unsure about this, Say N here.
1388c2ecf20Sopenharmony_ci
1398c2ecf20Sopenharmony_ciconfig DEBUG_TEST_DRIVER_REMOVE
1408c2ecf20Sopenharmony_ci	bool "Test driver remove calls during probe (UNSTABLE)"
1418c2ecf20Sopenharmony_ci	depends on DEBUG_KERNEL
1428c2ecf20Sopenharmony_ci	help
1438c2ecf20Sopenharmony_ci	  Say Y here if you want the Driver core to test driver remove functions
1448c2ecf20Sopenharmony_ci	  by calling probe, remove, probe. This tests the remove path without
1458c2ecf20Sopenharmony_ci	  having to unbind the driver or unload the driver module.
1468c2ecf20Sopenharmony_ci
1478c2ecf20Sopenharmony_ci	  This option is expected to find errors and may render your system
1488c2ecf20Sopenharmony_ci	  unusable. You should say N here unless you are explicitly looking to
1498c2ecf20Sopenharmony_ci	  test this functionality.
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ciconfig PM_QOS_KUNIT_TEST
1528c2ecf20Sopenharmony_ci	bool "KUnit Test for PM QoS features" if !KUNIT_ALL_TESTS
1538c2ecf20Sopenharmony_ci	depends on KUNIT=y
1548c2ecf20Sopenharmony_ci	default KUNIT_ALL_TESTS
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ciconfig HMEM_REPORTING
1578c2ecf20Sopenharmony_ci	bool
1588c2ecf20Sopenharmony_ci	default n
1598c2ecf20Sopenharmony_ci	depends on NUMA
1608c2ecf20Sopenharmony_ci	help
1618c2ecf20Sopenharmony_ci	  Enable reporting for heterogenous memory access attributes under
1628c2ecf20Sopenharmony_ci	  their non-uniform memory nodes.
1638c2ecf20Sopenharmony_ci
1648c2ecf20Sopenharmony_cisource "drivers/base/test/Kconfig"
1658c2ecf20Sopenharmony_ci
1668c2ecf20Sopenharmony_ciconfig SYS_HYPERVISOR
1678c2ecf20Sopenharmony_ci	bool
1688c2ecf20Sopenharmony_ci	default n
1698c2ecf20Sopenharmony_ci
1708c2ecf20Sopenharmony_ciconfig GENERIC_CPU_DEVICES
1718c2ecf20Sopenharmony_ci	bool
1728c2ecf20Sopenharmony_ci	default n
1738c2ecf20Sopenharmony_ci
1748c2ecf20Sopenharmony_ciconfig GENERIC_CPU_AUTOPROBE
1758c2ecf20Sopenharmony_ci	bool
1768c2ecf20Sopenharmony_ci
1778c2ecf20Sopenharmony_ciconfig GENERIC_CPU_VULNERABILITIES
1788c2ecf20Sopenharmony_ci	bool
1798c2ecf20Sopenharmony_ci
1808c2ecf20Sopenharmony_ciconfig SOC_BUS
1818c2ecf20Sopenharmony_ci	bool
1828c2ecf20Sopenharmony_ci	select GLOB
1838c2ecf20Sopenharmony_ci
1848c2ecf20Sopenharmony_cisource "drivers/base/regmap/Kconfig"
1858c2ecf20Sopenharmony_ci
1868c2ecf20Sopenharmony_ciconfig DMA_SHARED_BUFFER
1878c2ecf20Sopenharmony_ci	bool
1888c2ecf20Sopenharmony_ci	default n
1898c2ecf20Sopenharmony_ci	select IRQ_WORK
1908c2ecf20Sopenharmony_ci	help
1918c2ecf20Sopenharmony_ci	  This option enables the framework for buffer-sharing between
1928c2ecf20Sopenharmony_ci	  multiple drivers. A buffer is associated with a file using driver
1938c2ecf20Sopenharmony_ci	  APIs extension; the file's descriptor can then be passed on to other
1948c2ecf20Sopenharmony_ci	  driver.
1958c2ecf20Sopenharmony_ci
1968c2ecf20Sopenharmony_ciconfig DMA_FENCE_TRACE
1978c2ecf20Sopenharmony_ci	bool "Enable verbose DMA_FENCE_TRACE messages"
1988c2ecf20Sopenharmony_ci	depends on DMA_SHARED_BUFFER
1998c2ecf20Sopenharmony_ci	help
2008c2ecf20Sopenharmony_ci	  Enable the DMA_FENCE_TRACE printks. This will add extra
2018c2ecf20Sopenharmony_ci	  spam to the console log, but will make it easier to diagnose
2028c2ecf20Sopenharmony_ci	  lockup related problems for dma-buffers shared across multiple
2038c2ecf20Sopenharmony_ci	  devices.
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ciconfig GENERIC_ARCH_TOPOLOGY
2068c2ecf20Sopenharmony_ci	bool
2078c2ecf20Sopenharmony_ci	help
2088c2ecf20Sopenharmony_ci	  Enable support for architectures common topology code: e.g., parsing
2098c2ecf20Sopenharmony_ci	  CPU capacity information from DT, usage of such information for
2108c2ecf20Sopenharmony_ci	  appropriate scaling, sysfs interface for reading capacity values at
2118c2ecf20Sopenharmony_ci	  runtime.
2128c2ecf20Sopenharmony_ci
2138c2ecf20Sopenharmony_ciendmenu
214