xref: /OK3568_Linux_fs/kernel/drivers/android/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyunmenu "Android"
3*4882a593Smuzhiyun
4*4882a593Smuzhiyunconfig ANDROID
5*4882a593Smuzhiyun	bool "Android Drivers"
6*4882a593Smuzhiyun	help
7*4882a593Smuzhiyun	  Enable support for various drivers needed on the Android platform
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunif ANDROID
10*4882a593Smuzhiyun
11*4882a593Smuzhiyunconfig ANDROID_BINDER_IPC
12*4882a593Smuzhiyun	bool "Android Binder IPC Driver"
13*4882a593Smuzhiyun	depends on MMU
14*4882a593Smuzhiyun	default n
15*4882a593Smuzhiyun	help
16*4882a593Smuzhiyun	  Binder is used in Android for both communication between processes,
17*4882a593Smuzhiyun	  and remote method invocation.
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun	  This means one Android process can call a method/routine in another
20*4882a593Smuzhiyun	  Android process, using Binder to identify, invoke and pass arguments
21*4882a593Smuzhiyun	  between said processes.
22*4882a593Smuzhiyun
23*4882a593Smuzhiyunconfig ANDROID_BINDERFS
24*4882a593Smuzhiyun	bool "Android Binderfs filesystem"
25*4882a593Smuzhiyun	depends on ANDROID_BINDER_IPC
26*4882a593Smuzhiyun	default n
27*4882a593Smuzhiyun	help
28*4882a593Smuzhiyun	  Binderfs is a pseudo-filesystem for the Android Binder IPC driver
29*4882a593Smuzhiyun	  which can be mounted per-ipc namespace allowing to run multiple
30*4882a593Smuzhiyun	  instances of Android.
31*4882a593Smuzhiyun	  Each binderfs mount initially only contains a binder-control device.
32*4882a593Smuzhiyun	  It can be used to dynamically allocate new binder IPC devices via
33*4882a593Smuzhiyun	  ioctls.
34*4882a593Smuzhiyun
35*4882a593Smuzhiyunconfig ANDROID_BINDER_DEVICES
36*4882a593Smuzhiyun	string "Android Binder devices"
37*4882a593Smuzhiyun	depends on ANDROID_BINDER_IPC
38*4882a593Smuzhiyun	default "binder,hwbinder,vndbinder"
39*4882a593Smuzhiyun	help
40*4882a593Smuzhiyun	  Default value for the binder.devices parameter.
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun	  The binder.devices parameter is a comma-separated list of strings
43*4882a593Smuzhiyun	  that specifies the names of the binder device nodes that will be
44*4882a593Smuzhiyun	  created. Each binder device has its own context manager, and is
45*4882a593Smuzhiyun	  therefore logically separated from the other devices.
46*4882a593Smuzhiyun
47*4882a593Smuzhiyunconfig ANDROID_BINDER_IPC_SELFTEST
48*4882a593Smuzhiyun	bool "Android Binder IPC Driver Selftest"
49*4882a593Smuzhiyun	depends on ANDROID_BINDER_IPC
50*4882a593Smuzhiyun	help
51*4882a593Smuzhiyun	  This feature allows binder selftest to run.
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun	  Binder selftest checks the allocation and free of binder buffers
54*4882a593Smuzhiyun	  exhaustively with combinations of various buffer sizes and
55*4882a593Smuzhiyun	  alignments.
56*4882a593Smuzhiyun
57*4882a593Smuzhiyunconfig ANDROID_DEBUG_SYMBOLS
58*4882a593Smuzhiyun	bool "Android Debug Symbols"
59*4882a593Smuzhiyun	help
60*4882a593Smuzhiyun	  Enables export of debug symbols that are useful for offline debugging
61*4882a593Smuzhiyun	  of a kernel. These symbols would be used in vendor modules to find
62*4882a593Smuzhiyun	  addresses of the core kernel symbols for vendor extensions.
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun	  This driver is statically compiled into kernel and maintains all the
65*4882a593Smuzhiyun	  required symbol addresses for vendor modules and provides necessary
66*4882a593Smuzhiyun	  interface vendor modules.
67*4882a593Smuzhiyun
68*4882a593Smuzhiyunconfig ANDROID_VENDOR_HOOKS
69*4882a593Smuzhiyun	bool "Android Vendor Hooks"
70*4882a593Smuzhiyun	depends on TRACEPOINTS
71*4882a593Smuzhiyun	help
72*4882a593Smuzhiyun	  Enable vendor hooks implemented as tracepoints
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun	  Allow vendor modules to attach to tracepoint "hooks" defined via
75*4882a593Smuzhiyun	  DECLARE_HOOK or DECLARE_RESTRICTED_HOOK.
76*4882a593Smuzhiyun
77*4882a593Smuzhiyunconfig ANDROID_KABI_RESERVE
78*4882a593Smuzhiyun	bool "Android KABI reserve padding"
79*4882a593Smuzhiyun	default y if !NO_GKI
80*4882a593Smuzhiyun	help
81*4882a593Smuzhiyun	  This option enables the padding that the Android GKI kernel adds
82*4882a593Smuzhiyun	  to many different kernel structures to support an in-kernel stable ABI
83*4882a593Smuzhiyun	  over the lifespan of support for the kernel.
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun	  Only disable this option if you have a system that needs the Android
86*4882a593Smuzhiyun	  kernel drivers, but is NOT an Android GKI kernel image. If disabled
87*4882a593Smuzhiyun	  it has the possibility to make the kernel static and runtime image
88*4882a593Smuzhiyun	  slightly smaller but will NOT be supported by the Google Android
89*4882a593Smuzhiyun	  kernel team.
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun	  If even slightly unsure, say Y.
92*4882a593Smuzhiyun
93*4882a593Smuzhiyunconfig ANDROID_VENDOR_OEM_DATA
94*4882a593Smuzhiyun	bool "Android vendor and OEM data padding"
95*4882a593Smuzhiyun	default y if !NO_GKI
96*4882a593Smuzhiyun	help
97*4882a593Smuzhiyun	  This option enables the padding that the Android GKI kernel adds
98*4882a593Smuzhiyun	  to many different kernel structures to support an in-kernel stable ABI
99*4882a593Smuzhiyun	  over the lifespan of support for the kernel as well as OEM additional
100*4882a593Smuzhiyun	  fields that are needed by some of the Android kernel tracepoints. The
101*4882a593Smuzhiyun	  macros enabled by this option are used to enable padding in vendor modules
102*4882a593Smuzhiyun	  used for the above specified purposes.
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun	  Only disable this option if you have a system that needs the Android
105*4882a593Smuzhiyun	  kernel drivers, but is NOT an Android GKI kernel image and you do NOT
106*4882a593Smuzhiyun	  use the Android kernel tracepoints. If disabled it has the possibility
107*4882a593Smuzhiyun	  to make the kernel static and runtime image slightly smaller but will
108*4882a593Smuzhiyun	  NOT be supported by the Google Android kernel team.
109*4882a593Smuzhiyun
110*4882a593Smuzhiyun	  If even slightly unsure, say Y.
111*4882a593Smuzhiyun
112*4882a593Smuzhiyunendif # if ANDROID
113*4882a593Smuzhiyun
114*4882a593Smuzhiyunendmenu
115