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