xref: /openbmc/linux/drivers/base/Kconfig (revision 8ad266d1)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
21da177e4SLinus Torvaldsmenu "Generic Driver Options"
31da177e4SLinus Torvalds
47de3697eSDave Ertmanconfig AUXILIARY_BUS
57de3697eSDave Ertman	bool
67de3697eSDave Ertman
786d56134SMichael Marineauconfig UEVENT_HELPER
886d56134SMichael Marineau	bool "Support for uevent helper"
96a8d8abbSKay Sievers	help
1086d56134SMichael Marineau	  The uevent helper program is forked by the kernel for
116a8d8abbSKay Sievers	  every uevent.
127934779aSKay Sievers	  Before the switch to the netlink-based uevent source, this was
137934779aSKay Sievers	  used to hook hotplug scripts into kernel device events. It
147934779aSKay Sievers	  usually pointed to a shell script at /sbin/hotplug.
157934779aSKay Sievers	  This should not be used today, because usual systems create
167934779aSKay Sievers	  many events at bootup or device discovery in a very short time
177934779aSKay Sievers	  frame. One forked process per event can create so many processes
187934779aSKay Sievers	  that it creates a high system load, or on smaller systems
197934779aSKay Sievers	  it is known to create out-of-memory situations during bootup.
206a8d8abbSKay Sievers
2186d56134SMichael Marineauconfig UEVENT_HELPER_PATH
2286d56134SMichael Marineau	string "path to uevent helper"
2386d56134SMichael Marineau	depends on UEVENT_HELPER
2486d56134SMichael Marineau	default ""
2586d56134SMichael Marineau	help
2686d56134SMichael Marineau	  To disable user space helper program execution at by default
2786d56134SMichael Marineau	  specify an empty string here. This setting can still be altered
28573c9774SMárton Németh	  via /proc/sys/kernel/hotplug or via /sys/kernel/uevent_helper
29573c9774SMárton Németh	  later at runtime.
30573c9774SMárton Németh
312b2af54aSKay Sieversconfig DEVTMPFS
324237e5fdSKay Sievers	bool "Maintain a devtmpfs filesystem to mount at /dev"
332b2af54aSKay Sievers	help
34da5e4ef7SPeter Korsgaard	  This creates a tmpfs/ramfs filesystem instance early at bootup.
354237e5fdSKay Sievers	  In this filesystem, the kernel driver core maintains device
364237e5fdSKay Sievers	  nodes with their default names and permissions for all
374237e5fdSKay Sievers	  registered devices with an assigned major/minor number.
384237e5fdSKay Sievers	  Userspace can modify the filesystem content as needed, add
394237e5fdSKay Sievers	  symlinks, and apply needed permissions.
404237e5fdSKay Sievers	  It provides a fully functional /dev directory, where usually
414237e5fdSKay Sievers	  udev runs on top, managing permissions and adding meaningful
424237e5fdSKay Sievers	  symlinks.
434237e5fdSKay Sievers	  In very limited environments, it may provide a sufficient
444237e5fdSKay Sievers	  functional /dev without any further help. It also allows simple
454237e5fdSKay Sievers	  rescue systems, and reliably handles dynamic major/minor numbers.
462b2af54aSKay Sievers
47da5e4ef7SPeter Korsgaard	  Notice: if CONFIG_TMPFS isn't enabled, the simpler ramfs
48da5e4ef7SPeter Korsgaard	  file system will be used instead.
49da5e4ef7SPeter Korsgaard
502b2af54aSKay Sieversconfig DEVTMPFS_MOUNT
514237e5fdSKay Sievers	bool "Automount devtmpfs at /dev, after the kernel mounted the rootfs"
522b2af54aSKay Sievers	depends on DEVTMPFS
532b2af54aSKay Sievers	help
544237e5fdSKay Sievers	  This will instruct the kernel to automatically mount the
554237e5fdSKay Sievers	  devtmpfs filesystem at /dev, directly after the kernel has
564237e5fdSKay Sievers	  mounted the root filesystem. The behavior can be overridden
574237e5fdSKay Sievers	  with the commandline parameter: devtmpfs.mount=0|1.
584237e5fdSKay Sievers	  This option does not affect initramfs based booting, here
594237e5fdSKay Sievers	  the devtmpfs filesystem always needs to be mounted manually
600feb03afSEmilio López	  after the rootfs is mounted.
614237e5fdSKay Sievers	  With this option enabled, it allows to bring up a system in
624237e5fdSKay Sievers	  rescue mode with init=/bin/sh, even when the /dev directory
634237e5fdSKay Sievers	  on the rootfs is completely empty.
642b2af54aSKay Sievers
6528f0c335SKees Cookconfig DEVTMPFS_SAFE
6628f0c335SKees Cook	bool "Use nosuid,noexec mount options on devtmpfs"
6728f0c335SKees Cook	depends on DEVTMPFS
6828f0c335SKees Cook	help
6928f0c335SKees Cook	  This instructs the kernel to include the MS_NOEXEC and MS_NOSUID mount
7028f0c335SKees Cook	  flags when mounting devtmpfs.
7128f0c335SKees Cook
7228f0c335SKees Cook	  Notice: If enabled, things like /dev/mem cannot be mmapped
7328f0c335SKees Cook	  with the PROT_EXEC flag. This can break, for example, non-KMS
7428f0c335SKees Cook	  video drivers.
7528f0c335SKees Cook
761da177e4SLinus Torvaldsconfig STANDALONE
77967857dfSKees Cook	bool "Select only drivers that don't need compile-time external firmware"
781da177e4SLinus Torvalds	default y
791da177e4SLinus Torvalds	help
801da177e4SLinus Torvalds	  Select this option if you don't have magic firmware for drivers that
811da177e4SLinus Torvalds	  need it.
821da177e4SLinus Torvalds
831da177e4SLinus Torvalds	  If unsure, say Y.
841da177e4SLinus Torvalds
851da177e4SLinus Torvaldsconfig PREVENT_FIRMWARE_BUILD
8602c39930SLuis R. Rodriguez	bool "Disable drivers features which enable custom firmware building"
871da177e4SLinus Torvalds	default y
881da177e4SLinus Torvalds	help
8902c39930SLuis R. Rodriguez	  Say yes to disable driver features which enable building a custom
9002c39930SLuis R. Rodriguez	  driver firmware at kernel build time. These drivers do not use the
9102c39930SLuis R. Rodriguez	  kernel firmware API to load firmware (CONFIG_FW_LOADER), instead they
9202c39930SLuis R. Rodriguez	  use their own custom loading mechanism. The required firmware is
9302c39930SLuis R. Rodriguez	  usually shipped with the driver, building the driver firmware
9402c39930SLuis R. Rodriguez	  should only be needed if you have an updated firmware source.
9502c39930SLuis R. Rodriguez
9602c39930SLuis R. Rodriguez	  Firmware should not be being built as part of kernel, these days
9702c39930SLuis R. Rodriguez	  you should always prevent this and say Y here. There are only two
9802c39930SLuis R. Rodriguez	  old drivers which enable building of its firmware at kernel build
9902c39930SLuis R. Rodriguez	  time:
10002c39930SLuis R. Rodriguez
10102c39930SLuis R. Rodriguez	    o CONFIG_WANXL through CONFIG_WANXL_BUILD_FIRMWARE
10202c39930SLuis R. Rodriguez	    o CONFIG_SCSI_AIC79XX through CONFIG_AIC79XX_BUILD_FIRMWARE
10302c39930SLuis R. Rodriguez
10406bfd3c8SLuis R. Rodriguezsource "drivers/base/firmware_loader/Kconfig"
10502c39930SLuis R. Rodriguez
106833c9545SJohannes Bergconfig WANT_DEV_COREDUMP
107833c9545SJohannes Berg	bool
108833c9545SJohannes Berg	help
109833c9545SJohannes Berg	  Drivers should "select" this option if they desire to use the
110833c9545SJohannes Berg	  device coredump mechanism.
111833c9545SJohannes Berg
112cd3d9ea1SJohannes Bergconfig ALLOW_DEV_COREDUMP
113cd3d9ea1SJohannes Berg	bool "Allow device coredump" if EXPERT
1149c602699SAristeu Rozanski	default y
115833c9545SJohannes Berg	help
1169c602699SAristeu Rozanski	  This option controls if the device coredump mechanism is available or
1179c602699SAristeu Rozanski	  not; if disabled, the mechanism will be omitted even if drivers that
1189c602699SAristeu Rozanski	  can use it are enabled.
1199c602699SAristeu Rozanski	  Say 'N' for more sensitive systems or systems that don't want
1209c602699SAristeu Rozanski	  to ever access the information to not have the code, nor keep any
1219c602699SAristeu Rozanski	  data.
122833c9545SJohannes Berg
1239c602699SAristeu Rozanski	  If unsure, say Y.
124833c9545SJohannes Berg
125833c9545SJohannes Bergconfig DEV_COREDUMP
126833c9545SJohannes Berg	bool
127833c9545SJohannes Berg	default y if WANT_DEV_COREDUMP
128cd3d9ea1SJohannes Berg	depends on ALLOW_DEV_COREDUMP
129833c9545SJohannes Berg
1301da177e4SLinus Torvaldsconfig DEBUG_DRIVER
1311da177e4SLinus Torvalds	bool "Driver Core verbose debug messages"
1321da177e4SLinus Torvalds	depends on DEBUG_KERNEL
1331da177e4SLinus Torvalds	help
1341da177e4SLinus Torvalds	  Say Y here if you want the Driver core to produce a bunch of
1351da177e4SLinus Torvalds	  debug messages to the system log. Select this if you are having a
1361da177e4SLinus Torvalds	  problem with the driver core and want to see more of what is
1371da177e4SLinus Torvalds	  going on.
1381da177e4SLinus Torvalds
1391da177e4SLinus Torvalds	  If you are unsure about this, say N here.
1401da177e4SLinus Torvalds
1419ac7849eSTejun Heoconfig DEBUG_DEVRES
1429ac7849eSTejun Heo	bool "Managed device resources verbose debug messages"
1439ac7849eSTejun Heo	depends on DEBUG_KERNEL
1449ac7849eSTejun Heo	help
1459ac7849eSTejun Heo	  This option enables kernel parameter devres.log. If set to
1469ac7849eSTejun Heo	  non-zero, devres debug messages are printed. Select this if
1479ac7849eSTejun Heo	  you are having a problem with devres or want to debug
1489ac7849eSTejun Heo	  resource management for a managed device. devres.log can be
1499ac7849eSTejun Heo	  switched on and off from sysfs node.
1509ac7849eSTejun Heo
1519ac7849eSTejun Heo	  If you are unsure about this, Say N here.
1529ac7849eSTejun Heo
153bea5b158SRob Herringconfig DEBUG_TEST_DRIVER_REMOVE
154248ff021SLaura Abbott	bool "Test driver remove calls during probe (UNSTABLE)"
155bea5b158SRob Herring	depends on DEBUG_KERNEL
156bea5b158SRob Herring	help
157bea5b158SRob Herring	  Say Y here if you want the Driver core to test driver remove functions
158bea5b158SRob Herring	  by calling probe, remove, probe. This tests the remove path without
159bea5b158SRob Herring	  having to unbind the driver or unload the driver module.
160bea5b158SRob Herring
161248ff021SLaura Abbott	  This option is expected to find errors and may render your system
162248ff021SLaura Abbott	  unusable. You should say N here unless you are explicitly looking to
163248ff021SLaura Abbott	  test this functionality.
164bea5b158SRob Herring
16514e08757SLeonard Crestezconfig PM_QOS_KUNIT_TEST
166bebe94b5SAnders Roxell	bool "KUnit Test for PM QoS features" if !KUNIT_ALL_TESTS
16735c57fc3SAlan Maguire	depends on KUNIT=y
168bebe94b5SAnders Roxell	default KUNIT_ALL_TESTS
16914e08757SLeonard Crestez
170e1cf33aaSKeith Buschconfig HMEM_REPORTING
171e1cf33aaSKeith Busch	bool
172e1cf33aaSKeith Busch	default n
173e1cf33aaSKeith Busch	depends on NUMA
174e1cf33aaSKeith Busch	help
175fb88c9a3SColin Ian King	  Enable reporting for heterogeneous memory access attributes under
176e1cf33aaSKeith Busch	  their non-uniform memory nodes.
177e1cf33aaSKeith Busch
17879543cf2SDmitry Torokhovsource "drivers/base/test/Kconfig"
17979543cf2SDmitry Torokhov
1804039483fSMichael Holzheuconfig SYS_HYPERVISOR
1814039483fSMichael Holzheu	bool
1824039483fSMichael Holzheu	default n
183eba6cd67SRandy Dunlap
1849f13a1fdSBen Hutchingsconfig GENERIC_CPU_DEVICES
1859f13a1fdSBen Hutchings	bool
1869f13a1fdSBen Hutchings	default n
1879f13a1fdSBen Hutchings
18867bad2fdSArd Biesheuvelconfig GENERIC_CPU_AUTOPROBE
18967bad2fdSArd Biesheuvel	bool
19067bad2fdSArd Biesheuvel
19187590ce6SThomas Gleixnerconfig GENERIC_CPU_VULNERABILITIES
19287590ce6SThomas Gleixner	bool
19387590ce6SThomas Gleixner
19474d1d82cSLee Jonesconfig SOC_BUS
19574d1d82cSLee Jones	bool
196c97db7ccSArnd Bergmann	select GLOB
19774d1d82cSLee Jones
198b83a313bSMark Brownsource "drivers/base/regmap/Kconfig"
199b83a313bSMark Brown
200d15bd7eeSSumit Semwalconfig DMA_SHARED_BUFFER
2013b32a592SDave Airlie	bool
202d15bd7eeSSumit Semwal	default n
20303e4e0a9SChris Wilson	select IRQ_WORK
204d15bd7eeSSumit Semwal	help
205d15bd7eeSSumit Semwal	  This option enables the framework for buffer-sharing between
206d15bd7eeSSumit Semwal	  multiple drivers. A buffer is associated with a file using driver
207d15bd7eeSSumit Semwal	  APIs extension; the file's descriptor can then be passed on to other
208d15bd7eeSSumit Semwal	  driver.
209d15bd7eeSSumit Semwal
210f54d1867SChris Wilsonconfig DMA_FENCE_TRACE
211f54d1867SChris Wilson	bool "Enable verbose DMA_FENCE_TRACE messages"
212e941759cSMaarten Lankhorst	depends on DMA_SHARED_BUFFER
213e941759cSMaarten Lankhorst	help
214f54d1867SChris Wilson	  Enable the DMA_FENCE_TRACE printks. This will add extra
215e941759cSMaarten Lankhorst	  spam to the console log, but will make it easier to diagnose
216e941759cSMaarten Lankhorst	  lockup related problems for dma-buffers shared across multiple
217e941759cSMaarten Lankhorst	  devices.
218e941759cSMaarten Lankhorst
2192ef7a295SJuri Lelliconfig GENERIC_ARCH_TOPOLOGY
2202ef7a295SJuri Lelli	bool
2212ef7a295SJuri Lelli	help
2222ef7a295SJuri Lelli	  Enable support for architectures common topology code: e.g., parsing
2232ef7a295SJuri Lelli	  CPU capacity information from DT, usage of such information for
224c181831fSSudeep Holla	  appropriate scaling, sysfs interface for reading capacity values at
2252ef7a295SJuri Lelli	  runtime.
2262ef7a295SJuri Lelli
227ae3c107cSAtish Patraconfig GENERIC_ARCH_NUMA
228ae3c107cSAtish Patra	bool
229ae3c107cSAtish Patra	help
230ae3c107cSAtish Patra	  Enable support for generic NUMA implementation. Currently, RISC-V
231ae3c107cSAtish Patra	  and ARM64 use it.
232ae3c107cSAtish Patra
233*8ad266d1SSaravana Kannanconfig FW_DEVLINK_SYNC_STATE_TIMEOUT
234*8ad266d1SSaravana Kannan	bool "sync_state() behavior defaults to timeout instead of strict"
235*8ad266d1SSaravana Kannan	help
236*8ad266d1SSaravana Kannan	  This is build time equivalent of adding kernel command line parameter
237*8ad266d1SSaravana Kannan	  "fw_devlink.sync_state=timeout". Give up waiting on consumers and
238*8ad266d1SSaravana Kannan	  call sync_state() on any devices that haven't yet received their
239*8ad266d1SSaravana Kannan	  sync_state() calls after deferred_probe_timeout has expired or by
240*8ad266d1SSaravana Kannan	  late_initcall() if !CONFIG_MODULES. You should almost always want to
241*8ad266d1SSaravana Kannan	  select N here unless you have already successfully tested with the
242*8ad266d1SSaravana Kannan	  command line option on every system/board your kernel is expected to
243*8ad266d1SSaravana Kannan	  work on.
244*8ad266d1SSaravana Kannan
245eba6cd67SRandy Dunlapendmenu
246