Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0
0002 menu "Generic Driver Options"
0003 
0004 config AUXILIARY_BUS
0005         bool
0006 
0007 config UEVENT_HELPER
0008         bool "Support for uevent helper"
0009         help
0010           The uevent helper program is forked by the kernel for
0011           every uevent.
0012           Before the switch to the netlink-based uevent source, this was
0013           used to hook hotplug scripts into kernel device events. It
0014           usually pointed to a shell script at /sbin/hotplug.
0015           This should not be used today, because usual systems create
0016           many events at bootup or device discovery in a very short time
0017           frame. One forked process per event can create so many processes
0018           that it creates a high system load, or on smaller systems
0019           it is known to create out-of-memory situations during bootup.
0020 
0021 config UEVENT_HELPER_PATH
0022         string "path to uevent helper"
0023         depends on UEVENT_HELPER
0024         default ""
0025         help
0026           To disable user space helper program execution at by default
0027           specify an empty string here. This setting can still be altered
0028           via /proc/sys/kernel/hotplug or via /sys/kernel/uevent_helper
0029           later at runtime.
0030 
0031 config DEVTMPFS
0032         bool "Maintain a devtmpfs filesystem to mount at /dev"
0033         help
0034           This creates a tmpfs/ramfs filesystem instance early at bootup.
0035           In this filesystem, the kernel driver core maintains device
0036           nodes with their default names and permissions for all
0037           registered devices with an assigned major/minor number.
0038           Userspace can modify the filesystem content as needed, add
0039           symlinks, and apply needed permissions.
0040           It provides a fully functional /dev directory, where usually
0041           udev runs on top, managing permissions and adding meaningful
0042           symlinks.
0043           In very limited environments, it may provide a sufficient
0044           functional /dev without any further help. It also allows simple
0045           rescue systems, and reliably handles dynamic major/minor numbers.
0046 
0047           Notice: if CONFIG_TMPFS isn't enabled, the simpler ramfs
0048           file system will be used instead.
0049 
0050 config DEVTMPFS_MOUNT
0051         bool "Automount devtmpfs at /dev, after the kernel mounted the rootfs"
0052         depends on DEVTMPFS
0053         help
0054           This will instruct the kernel to automatically mount the
0055           devtmpfs filesystem at /dev, directly after the kernel has
0056           mounted the root filesystem. The behavior can be overridden
0057           with the commandline parameter: devtmpfs.mount=0|1.
0058           This option does not affect initramfs based booting, here
0059           the devtmpfs filesystem always needs to be mounted manually
0060           after the rootfs is mounted.
0061           With this option enabled, it allows to bring up a system in
0062           rescue mode with init=/bin/sh, even when the /dev directory
0063           on the rootfs is completely empty.
0064 
0065 config DEVTMPFS_SAFE
0066         bool "Use nosuid,noexec mount options on devtmpfs"
0067         depends on DEVTMPFS
0068         help
0069           This instructs the kernel to include the MS_NOEXEC and MS_NOSUID mount
0070           flags when mounting devtmpfs.
0071 
0072           Notice: If enabled, things like /dev/mem cannot be mmapped
0073           with the PROT_EXEC flag. This can break, for example, non-KMS
0074           video drivers.
0075 
0076 config STANDALONE
0077         bool "Select only drivers that don't need compile-time external firmware"
0078         default y
0079         help
0080           Select this option if you don't have magic firmware for drivers that
0081           need it.
0082 
0083           If unsure, say Y.
0084 
0085 config PREVENT_FIRMWARE_BUILD
0086         bool "Disable drivers features which enable custom firmware building"
0087         default y
0088         help
0089           Say yes to disable driver features which enable building a custom
0090           driver firmware at kernel build time. These drivers do not use the
0091           kernel firmware API to load firmware (CONFIG_FW_LOADER), instead they
0092           use their own custom loading mechanism. The required firmware is
0093           usually shipped with the driver, building the driver firmware
0094           should only be needed if you have an updated firmware source.
0095 
0096           Firmware should not be being built as part of kernel, these days
0097           you should always prevent this and say Y here. There are only two
0098           old drivers which enable building of its firmware at kernel build
0099           time:
0100 
0101             o CONFIG_WANXL through CONFIG_WANXL_BUILD_FIRMWARE
0102             o CONFIG_SCSI_AIC79XX through CONFIG_AIC79XX_BUILD_FIRMWARE
0103 
0104 source "drivers/base/firmware_loader/Kconfig"
0105 
0106 config WANT_DEV_COREDUMP
0107         bool
0108         help
0109           Drivers should "select" this option if they desire to use the
0110           device coredump mechanism.
0111 
0112 config ALLOW_DEV_COREDUMP
0113         bool "Allow device coredump" if EXPERT
0114         default y
0115         help
0116           This option controls if the device coredump mechanism is available or
0117           not; if disabled, the mechanism will be omitted even if drivers that
0118           can use it are enabled.
0119           Say 'N' for more sensitive systems or systems that don't want
0120           to ever access the information to not have the code, nor keep any
0121           data.
0122 
0123           If unsure, say Y.
0124 
0125 config DEV_COREDUMP
0126         bool
0127         default y if WANT_DEV_COREDUMP
0128         depends on ALLOW_DEV_COREDUMP
0129 
0130 config DEBUG_DRIVER
0131         bool "Driver Core verbose debug messages"
0132         depends on DEBUG_KERNEL
0133         help
0134           Say Y here if you want the Driver core to produce a bunch of
0135           debug messages to the system log. Select this if you are having a
0136           problem with the driver core and want to see more of what is
0137           going on.
0138 
0139           If you are unsure about this, say N here.
0140 
0141 config DEBUG_DEVRES
0142         bool "Managed device resources verbose debug messages"
0143         depends on DEBUG_KERNEL
0144         help
0145           This option enables kernel parameter devres.log. If set to
0146           non-zero, devres debug messages are printed. Select this if
0147           you are having a problem with devres or want to debug
0148           resource management for a managed device. devres.log can be
0149           switched on and off from sysfs node.
0150 
0151           If you are unsure about this, Say N here.
0152 
0153 config DEBUG_TEST_DRIVER_REMOVE
0154         bool "Test driver remove calls during probe (UNSTABLE)"
0155         depends on DEBUG_KERNEL
0156         help
0157           Say Y here if you want the Driver core to test driver remove functions
0158           by calling probe, remove, probe. This tests the remove path without
0159           having to unbind the driver or unload the driver module.
0160 
0161           This option is expected to find errors and may render your system
0162           unusable. You should say N here unless you are explicitly looking to
0163           test this functionality.
0164 
0165 config PM_QOS_KUNIT_TEST
0166         bool "KUnit Test for PM QoS features" if !KUNIT_ALL_TESTS
0167         depends on KUNIT=y
0168         default KUNIT_ALL_TESTS
0169 
0170 config HMEM_REPORTING
0171         bool
0172         default n
0173         depends on NUMA
0174         help
0175           Enable reporting for heterogeneous memory access attributes under
0176           their non-uniform memory nodes.
0177 
0178 source "drivers/base/test/Kconfig"
0179 
0180 config SYS_HYPERVISOR
0181         bool
0182         default n
0183 
0184 config GENERIC_CPU_DEVICES
0185         bool
0186         default n
0187 
0188 config GENERIC_CPU_AUTOPROBE
0189         bool
0190 
0191 config GENERIC_CPU_VULNERABILITIES
0192         bool
0193 
0194 config SOC_BUS
0195         bool
0196         select GLOB
0197 
0198 source "drivers/base/regmap/Kconfig"
0199 
0200 config DMA_SHARED_BUFFER
0201         bool
0202         default n
0203         select IRQ_WORK
0204         help
0205           This option enables the framework for buffer-sharing between
0206           multiple drivers. A buffer is associated with a file using driver
0207           APIs extension; the file's descriptor can then be passed on to other
0208           driver.
0209 
0210 config DMA_FENCE_TRACE
0211         bool "Enable verbose DMA_FENCE_TRACE messages"
0212         depends on DMA_SHARED_BUFFER
0213         help
0214           Enable the DMA_FENCE_TRACE printks. This will add extra
0215           spam to the console log, but will make it easier to diagnose
0216           lockup related problems for dma-buffers shared across multiple
0217           devices.
0218 
0219 config GENERIC_ARCH_TOPOLOGY
0220         bool
0221         help
0222           Enable support for architectures common topology code: e.g., parsing
0223           CPU capacity information from DT, usage of such information for
0224           appropriate scaling, sysfs interface for reading capacity values at
0225           runtime.
0226 
0227 config GENERIC_ARCH_NUMA
0228         bool
0229         help
0230           Enable support for generic NUMA implementation. Currently, RISC-V
0231           and ARM64 use it.
0232 
0233 endmenu