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