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