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