xref: /OK3568_Linux_fs/kernel/drivers/base/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyunmenu "Generic Driver Options"
3*4882a593Smuzhiyun
4*4882a593Smuzhiyunconfig UEVENT_HELPER
5*4882a593Smuzhiyun	bool "Support for uevent helper"
6*4882a593Smuzhiyun	help
7*4882a593Smuzhiyun	  The uevent helper program is forked by the kernel for
8*4882a593Smuzhiyun	  every uevent.
9*4882a593Smuzhiyun	  Before the switch to the netlink-based uevent source, this was
10*4882a593Smuzhiyun	  used to hook hotplug scripts into kernel device events. It
11*4882a593Smuzhiyun	  usually pointed to a shell script at /sbin/hotplug.
12*4882a593Smuzhiyun	  This should not be used today, because usual systems create
13*4882a593Smuzhiyun	  many events at bootup or device discovery in a very short time
14*4882a593Smuzhiyun	  frame. One forked process per event can create so many processes
15*4882a593Smuzhiyun	  that it creates a high system load, or on smaller systems
16*4882a593Smuzhiyun	  it is known to create out-of-memory situations during bootup.
17*4882a593Smuzhiyun
18*4882a593Smuzhiyunconfig UEVENT_HELPER_PATH
19*4882a593Smuzhiyun	string "path to uevent helper"
20*4882a593Smuzhiyun	depends on UEVENT_HELPER
21*4882a593Smuzhiyun	default ""
22*4882a593Smuzhiyun	help
23*4882a593Smuzhiyun	  To disable user space helper program execution at by default
24*4882a593Smuzhiyun	  specify an empty string here. This setting can still be altered
25*4882a593Smuzhiyun	  via /proc/sys/kernel/hotplug or via /sys/kernel/uevent_helper
26*4882a593Smuzhiyun	  later at runtime.
27*4882a593Smuzhiyun
28*4882a593Smuzhiyunconfig DEVTMPFS
29*4882a593Smuzhiyun	bool "Maintain a devtmpfs filesystem to mount at /dev"
30*4882a593Smuzhiyun	help
31*4882a593Smuzhiyun	  This creates a tmpfs/ramfs filesystem instance early at bootup.
32*4882a593Smuzhiyun	  In this filesystem, the kernel driver core maintains device
33*4882a593Smuzhiyun	  nodes with their default names and permissions for all
34*4882a593Smuzhiyun	  registered devices with an assigned major/minor number.
35*4882a593Smuzhiyun	  Userspace can modify the filesystem content as needed, add
36*4882a593Smuzhiyun	  symlinks, and apply needed permissions.
37*4882a593Smuzhiyun	  It provides a fully functional /dev directory, where usually
38*4882a593Smuzhiyun	  udev runs on top, managing permissions and adding meaningful
39*4882a593Smuzhiyun	  symlinks.
40*4882a593Smuzhiyun	  In very limited environments, it may provide a sufficient
41*4882a593Smuzhiyun	  functional /dev without any further help. It also allows simple
42*4882a593Smuzhiyun	  rescue systems, and reliably handles dynamic major/minor numbers.
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun	  Notice: if CONFIG_TMPFS isn't enabled, the simpler ramfs
45*4882a593Smuzhiyun	  file system will be used instead.
46*4882a593Smuzhiyun
47*4882a593Smuzhiyunconfig DEVTMPFS_MOUNT
48*4882a593Smuzhiyun	bool "Automount devtmpfs at /dev, after the kernel mounted the rootfs"
49*4882a593Smuzhiyun	depends on DEVTMPFS
50*4882a593Smuzhiyun	help
51*4882a593Smuzhiyun	  This will instruct the kernel to automatically mount the
52*4882a593Smuzhiyun	  devtmpfs filesystem at /dev, directly after the kernel has
53*4882a593Smuzhiyun	  mounted the root filesystem. The behavior can be overridden
54*4882a593Smuzhiyun	  with the commandline parameter: devtmpfs.mount=0|1.
55*4882a593Smuzhiyun	  This option does not affect initramfs based booting, here
56*4882a593Smuzhiyun	  the devtmpfs filesystem always needs to be mounted manually
57*4882a593Smuzhiyun	  after the rootfs is mounted.
58*4882a593Smuzhiyun	  With this option enabled, it allows to bring up a system in
59*4882a593Smuzhiyun	  rescue mode with init=/bin/sh, even when the /dev directory
60*4882a593Smuzhiyun	  on the rootfs is completely empty.
61*4882a593Smuzhiyun
62*4882a593Smuzhiyunconfig STANDALONE
63*4882a593Smuzhiyun	bool "Select only drivers that don't need compile-time external firmware"
64*4882a593Smuzhiyun	default y
65*4882a593Smuzhiyun	help
66*4882a593Smuzhiyun	  Select this option if you don't have magic firmware for drivers that
67*4882a593Smuzhiyun	  need it.
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun	  If unsure, say Y.
70*4882a593Smuzhiyun
71*4882a593Smuzhiyunconfig PREVENT_FIRMWARE_BUILD
72*4882a593Smuzhiyun	bool "Disable drivers features which enable custom firmware building"
73*4882a593Smuzhiyun	default y
74*4882a593Smuzhiyun	help
75*4882a593Smuzhiyun	  Say yes to disable driver features which enable building a custom
76*4882a593Smuzhiyun	  driver firmware at kernel build time. These drivers do not use the
77*4882a593Smuzhiyun	  kernel firmware API to load firmware (CONFIG_FW_LOADER), instead they
78*4882a593Smuzhiyun	  use their own custom loading mechanism. The required firmware is
79*4882a593Smuzhiyun	  usually shipped with the driver, building the driver firmware
80*4882a593Smuzhiyun	  should only be needed if you have an updated firmware source.
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun	  Firmware should not be being built as part of kernel, these days
83*4882a593Smuzhiyun	  you should always prevent this and say Y here. There are only two
84*4882a593Smuzhiyun	  old drivers which enable building of its firmware at kernel build
85*4882a593Smuzhiyun	  time:
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun	    o CONFIG_WANXL through CONFIG_WANXL_BUILD_FIRMWARE
88*4882a593Smuzhiyun	    o CONFIG_SCSI_AIC79XX through CONFIG_AIC79XX_BUILD_FIRMWARE
89*4882a593Smuzhiyun
90*4882a593Smuzhiyunsource "drivers/base/firmware_loader/Kconfig"
91*4882a593Smuzhiyun
92*4882a593Smuzhiyunconfig WANT_DEV_COREDUMP
93*4882a593Smuzhiyun	bool
94*4882a593Smuzhiyun	help
95*4882a593Smuzhiyun	  Drivers should "select" this option if they desire to use the
96*4882a593Smuzhiyun	  device coredump mechanism.
97*4882a593Smuzhiyun
98*4882a593Smuzhiyunconfig ALLOW_DEV_COREDUMP
99*4882a593Smuzhiyun	bool "Allow device coredump" if EXPERT
100*4882a593Smuzhiyun	default y
101*4882a593Smuzhiyun	help
102*4882a593Smuzhiyun	  This option controls if the device coredump mechanism is available or
103*4882a593Smuzhiyun	  not; if disabled, the mechanism will be omitted even if drivers that
104*4882a593Smuzhiyun	  can use it are enabled.
105*4882a593Smuzhiyun	  Say 'N' for more sensitive systems or systems that don't want
106*4882a593Smuzhiyun	  to ever access the information to not have the code, nor keep any
107*4882a593Smuzhiyun	  data.
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun	  If unsure, say Y.
110*4882a593Smuzhiyun
111*4882a593Smuzhiyunconfig DEV_COREDUMP
112*4882a593Smuzhiyun	bool
113*4882a593Smuzhiyun	default y if WANT_DEV_COREDUMP
114*4882a593Smuzhiyun	depends on ALLOW_DEV_COREDUMP
115*4882a593Smuzhiyun
116*4882a593Smuzhiyunconfig DEBUG_DRIVER
117*4882a593Smuzhiyun	bool "Driver Core verbose debug messages"
118*4882a593Smuzhiyun	depends on DEBUG_KERNEL
119*4882a593Smuzhiyun	help
120*4882a593Smuzhiyun	  Say Y here if you want the Driver core to produce a bunch of
121*4882a593Smuzhiyun	  debug messages to the system log. Select this if you are having a
122*4882a593Smuzhiyun	  problem with the driver core and want to see more of what is
123*4882a593Smuzhiyun	  going on.
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun	  If you are unsure about this, say N here.
126*4882a593Smuzhiyun
127*4882a593Smuzhiyunconfig DEBUG_DEVRES
128*4882a593Smuzhiyun	bool "Managed device resources verbose debug messages"
129*4882a593Smuzhiyun	depends on DEBUG_KERNEL
130*4882a593Smuzhiyun	help
131*4882a593Smuzhiyun	  This option enables kernel parameter devres.log. If set to
132*4882a593Smuzhiyun	  non-zero, devres debug messages are printed. Select this if
133*4882a593Smuzhiyun	  you are having a problem with devres or want to debug
134*4882a593Smuzhiyun	  resource management for a managed device. devres.log can be
135*4882a593Smuzhiyun	  switched on and off from sysfs node.
136*4882a593Smuzhiyun
137*4882a593Smuzhiyun	  If you are unsure about this, Say N here.
138*4882a593Smuzhiyun
139*4882a593Smuzhiyunconfig DEBUG_TEST_DRIVER_REMOVE
140*4882a593Smuzhiyun	bool "Test driver remove calls during probe (UNSTABLE)"
141*4882a593Smuzhiyun	depends on DEBUG_KERNEL
142*4882a593Smuzhiyun	help
143*4882a593Smuzhiyun	  Say Y here if you want the Driver core to test driver remove functions
144*4882a593Smuzhiyun	  by calling probe, remove, probe. This tests the remove path without
145*4882a593Smuzhiyun	  having to unbind the driver or unload the driver module.
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun	  This option is expected to find errors and may render your system
148*4882a593Smuzhiyun	  unusable. You should say N here unless you are explicitly looking to
149*4882a593Smuzhiyun	  test this functionality.
150*4882a593Smuzhiyun
151*4882a593Smuzhiyunconfig PM_QOS_KUNIT_TEST
152*4882a593Smuzhiyun	bool "KUnit Test for PM QoS features" if !KUNIT_ALL_TESTS
153*4882a593Smuzhiyun	depends on KUNIT=y
154*4882a593Smuzhiyun	default KUNIT_ALL_TESTS
155*4882a593Smuzhiyun
156*4882a593Smuzhiyunconfig HMEM_REPORTING
157*4882a593Smuzhiyun	bool
158*4882a593Smuzhiyun	default n
159*4882a593Smuzhiyun	depends on NUMA
160*4882a593Smuzhiyun	help
161*4882a593Smuzhiyun	  Enable reporting for heterogenous memory access attributes under
162*4882a593Smuzhiyun	  their non-uniform memory nodes.
163*4882a593Smuzhiyun
164*4882a593Smuzhiyunsource "drivers/base/test/Kconfig"
165*4882a593Smuzhiyun
166*4882a593Smuzhiyunconfig SYS_HYPERVISOR
167*4882a593Smuzhiyun	bool
168*4882a593Smuzhiyun	default n
169*4882a593Smuzhiyun
170*4882a593Smuzhiyunconfig GENERIC_CPU_DEVICES
171*4882a593Smuzhiyun	bool
172*4882a593Smuzhiyun	default n
173*4882a593Smuzhiyun
174*4882a593Smuzhiyunconfig GENERIC_CPU_AUTOPROBE
175*4882a593Smuzhiyun	bool
176*4882a593Smuzhiyun
177*4882a593Smuzhiyunconfig GENERIC_CPU_VULNERABILITIES
178*4882a593Smuzhiyun	bool
179*4882a593Smuzhiyun
180*4882a593Smuzhiyunconfig SOC_BUS
181*4882a593Smuzhiyun	bool
182*4882a593Smuzhiyun	select GLOB
183*4882a593Smuzhiyun
184*4882a593Smuzhiyunsource "drivers/base/regmap/Kconfig"
185*4882a593Smuzhiyun
186*4882a593Smuzhiyunsource "drivers/base/arm/Kconfig"
187*4882a593Smuzhiyun
188*4882a593Smuzhiyunconfig DMA_SHARED_BUFFER
189*4882a593Smuzhiyun	bool
190*4882a593Smuzhiyun	default n
191*4882a593Smuzhiyun	select IRQ_WORK
192*4882a593Smuzhiyun	help
193*4882a593Smuzhiyun	  This option enables the framework for buffer-sharing between
194*4882a593Smuzhiyun	  multiple drivers. A buffer is associated with a file using driver
195*4882a593Smuzhiyun	  APIs extension; the file's descriptor can then be passed on to other
196*4882a593Smuzhiyun	  driver.
197*4882a593Smuzhiyun
198*4882a593Smuzhiyunconfig DMA_FENCE_TRACE
199*4882a593Smuzhiyun	bool "Enable verbose DMA_FENCE_TRACE messages"
200*4882a593Smuzhiyun	depends on DMA_SHARED_BUFFER
201*4882a593Smuzhiyun	help
202*4882a593Smuzhiyun	  Enable the DMA_FENCE_TRACE printks. This will add extra
203*4882a593Smuzhiyun	  spam to the console log, but will make it easier to diagnose
204*4882a593Smuzhiyun	  lockup related problems for dma-buffers shared across multiple
205*4882a593Smuzhiyun	  devices.
206*4882a593Smuzhiyun
207*4882a593Smuzhiyunconfig GENERIC_ARCH_TOPOLOGY
208*4882a593Smuzhiyun	bool
209*4882a593Smuzhiyun	help
210*4882a593Smuzhiyun	  Enable support for architectures common topology code: e.g., parsing
211*4882a593Smuzhiyun	  CPU capacity information from DT, usage of such information for
212*4882a593Smuzhiyun	  appropriate scaling, sysfs interface for reading capacity values at
213*4882a593Smuzhiyun	  runtime.
214*4882a593Smuzhiyun
215*4882a593Smuzhiyunendmenu
216