blob: 3e24057c9ce1bb90d108ef787c036756e67fbd50 [file] [log] [blame]
Ulises Mendez Martinez599c03f2022-11-30 19:49:10 +00001# SPDX-License-Identifier: GPL-2.0
2# Copyright (C) 2022 The Android Open Source Project
3
4"""
5This module contains a full list of kernel modules
6 compiled by GKI.
7"""
8
Wanwei Jiangd7f442c2023-03-17 17:35:31 +08009load("//common:common_drivers/modules.bzl", "ALL_MODULES_REMOVE")
10
Ulises Mendez Martinez2c764152023-08-07 12:42:40 +000011_COMMON_GKI_MODULES_LIST = [
Yifan Hong718c4822022-11-15 15:32:17 -080012 # keep sorted
13 "drivers/block/zram/zram.ko",
14 "drivers/bluetooth/btbcm.ko",
15 "drivers/bluetooth/btqca.ko",
16 "drivers/bluetooth/btsdio.ko",
17 "drivers/bluetooth/hci_uart.ko",
18 "drivers/net/can/dev/can-dev.ko",
19 "drivers/net/can/slcan.ko",
20 "drivers/net/can/vcan.ko",
Ramji Jiyani319d27a2023-04-28 00:55:19 +000021 "drivers/net/mii.ko",
Ramji Jiyani01d9b232022-11-17 06:04:13 +000022 "drivers/net/ppp/bsd_comp.ko",
23 "drivers/net/ppp/ppp_deflate.ko",
24 "drivers/net/ppp/ppp_generic.ko",
25 "drivers/net/ppp/ppp_mppe.ko",
26 "drivers/net/ppp/pppox.ko",
27 "drivers/net/ppp/pptp.ko",
28 "drivers/net/slip/slhc.ko",
Ramji Jiyani319d27a2023-04-28 00:55:19 +000029 "drivers/net/usb/aqc111.ko",
30 "drivers/net/usb/asix.ko",
31 "drivers/net/usb/ax88179_178a.ko",
32 "drivers/net/usb/cdc_eem.ko",
33 "drivers/net/usb/cdc_ether.ko",
34 "drivers/net/usb/cdc_ncm.ko",
35 "drivers/net/usb/r8152.ko",
36 "drivers/net/usb/r8153_ecm.ko",
37 "drivers/net/usb/rtl8150.ko",
38 "drivers/net/usb/usbnet.ko",
Yifan Hong718c4822022-11-15 15:32:17 -080039 "drivers/usb/class/cdc-acm.ko",
40 "drivers/usb/serial/ftdi_sio.ko",
41 "drivers/usb/serial/usbserial.ko",
Yifan Hong267d3e12023-06-09 11:26:47 -070042 "kernel/kheaders.ko",
Ramji Jiyani01d9b232022-11-17 06:04:13 +000043 "lib/crypto/libarc4.ko",
Yifan Hong718c4822022-11-15 15:32:17 -080044 "mm/zsmalloc.ko",
Ramji Jiyanif2bd02a2022-11-16 19:39:38 +000045 "net/6lowpan/6lowpan.ko",
46 "net/6lowpan/nhc_dest.ko",
47 "net/6lowpan/nhc_fragment.ko",
48 "net/6lowpan/nhc_hop.ko",
49 "net/6lowpan/nhc_ipv6.ko",
50 "net/6lowpan/nhc_mobility.ko",
51 "net/6lowpan/nhc_routing.ko",
52 "net/6lowpan/nhc_udp.ko",
Yifan Hong718c4822022-11-15 15:32:17 -080053 "net/8021q/8021q.ko",
Ramji Jiyani0ff7ad62022-11-16 06:57:55 +000054 "net/bluetooth/bluetooth.ko",
Yifan Hong718c4822022-11-15 15:32:17 -080055 "net/bluetooth/hidp/hidp.ko",
56 "net/bluetooth/rfcomm/rfcomm.ko",
Ramji Jiyani6647fad2022-11-16 22:11:44 +000057 "net/can/can.ko",
Yifan Hong718c4822022-11-15 15:32:17 -080058 "net/can/can-bcm.ko",
59 "net/can/can-gw.ko",
60 "net/can/can-raw.ko",
Ramji Jiyanif2bd02a2022-11-16 19:39:38 +000061 "net/ieee802154/6lowpan/ieee802154_6lowpan.ko",
Ramji Jiyanie0f43e22022-11-16 23:45:57 +000062 "net/ieee802154/ieee802154.ko",
63 "net/ieee802154/ieee802154_socket.ko",
Ramji Jiyani7070a0e2022-11-17 01:12:56 +000064 "net/l2tp/l2tp_core.ko",
65 "net/l2tp/l2tp_ppp.ko",
Ramji Jiyanie0f43e22022-11-16 23:45:57 +000066 "net/mac802154/mac802154.ko",
Yifan Hong718c4822022-11-15 15:32:17 -080067 "net/nfc/nfc.ko",
Ramji Jiyani6a0f9b12022-11-16 07:41:29 +000068 "net/rfkill/rfkill.ko",
Yifan Hong718c4822022-11-15 15:32:17 -080069 "net/tipc/diag.ko",
70 "net/tipc/tipc.ko",
Yifan Hong718c4822022-11-15 15:32:17 -080071]
Ulises Mendez Martinez2c764152023-08-07 12:42:40 +000072
73# Deprecated - Use `get_gki_modules_list` function instead.
74COMMON_GKI_MODULES_LIST = _COMMON_GKI_MODULES_LIST
75
76_ARM64_GKI_MODULES_LIST = [
77 # keep sorted
78]
79
80_RISCV64_GKI_MODULES_LIST = [
81 # keep sorted
82]
83
84_X86_64_GKI_MODULES_LIST = [
85 # keep sorted
86]
87
88# buildifier: disable=unnamed-macro
89def get_gki_modules_list(arch = None):
90 """ Provides the list of GKI modules.
91
92 Args:
93 arch: One of [arm64, x86_64, riscv64].
94
95 Returns:
96 The list of GKI modules for the given |arch|.
97 """
98 gki_modules_list = [] + _COMMON_GKI_MODULES_LIST
99 if arch == "arm64":
100 gki_modules_list += _ARM64_GKI_MODULES_LIST
101 elif arch == "x86_64":
102 gki_modules_list += _X86_64_GKI_MODULES_LIST
103 elif arch == "riscv64":
104 gki_modules_list += _RISCV64_GKI_MODULES_LIST
105 else:
106 fail("{}: arch {} not supported. Use one of [arm64, x86_64, riscv64]".format(
107 str(native.package_relative_label(":x")).removesuffix(":x"),
108 arch,
109 ))
110
Wanwei Jiangd7f442c2023-03-17 17:35:31 +0800111 remove_modules_items = {module: None for module in depset(ALL_MODULES_REMOVE).to_list()}
112 gki_modules_list = [module for module in depset(gki_modules_list).to_list() if module not in remove_modules_items] \
113 if remove_modules_items else gki_modules_list
114
Ulises Mendez Martinez2c764152023-08-07 12:42:40 +0000115 return gki_modules_list