bazel: msm-kernel: Add LA-feature to add unprotected vendor_dlkm

Compile zram/zsmalloc as unprotected vendor_dlkm.
While at it update corresponding system_dlkm in blocklist
so that only vendor_dlkm modules are loaded.

Change-Id: I620215fa42e4b8009e3b504ac4e3db84ac178023
Signed-off-by: Wasim Nazir <quic_wasimn@quicinc.com>
This commit is contained in:
Wasim Nazir 2024-05-22 01:36:06 +05:30
parent cf9d60d242
commit f0c4a848da
3 changed files with 48 additions and 1 deletions

View File

@ -2,3 +2,5 @@
# Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved.
blocklist kheaders
blocklist zram
blocklist zsmalloc

23
modules_unprotected.bzl Normal file
View File

@ -0,0 +1,23 @@
# Add unprotected modules corresponding to each platform
_unprotected_modules_map = {
"pitti": [
# keep sorted
"drivers/block/zram/zram.ko",
"mm/zsmalloc.ko",
],
}
def get_unprotected_vendor_modules_list(msm_target = None):
""" Provides the list of unprotected vendor modules.
Args:
msm_target: name of target platform (e.g. "pitti").
Returns:
The list of unprotected vendor modules for the given msm_target.
"""
unprotected_modules_list = []
for t, m in _unprotected_modules_map.items():
if msm_target in t:
unprotected_modules_list = [] + _unprotected_modules_map[msm_target]
return unprotected_modules_list

View File

@ -32,6 +32,7 @@ load(":dpm_image.bzl", "define_dpm_image")
load(":image_opts.bzl", "boot_image_opts")
load(":target_variants.bzl", "la_variants")
load(":modules.bzl", "COMMON_GKI_MODULES_LIST")
load(":modules_unprotected.bzl", "get_unprotected_vendor_modules_list")
def _define_build_config(
msm_target,
@ -116,6 +117,7 @@ def _define_build_config(
def _define_kernel_build(
target,
msm_target,
base_kernel,
in_tree_module_list,
dtb_list,
@ -143,10 +145,14 @@ def _define_kernel_build(
if dtbo_list:
out_list += dtbo_list
common_gki_mod_list = [] + COMMON_GKI_MODULES_LIST
for mod in get_unprotected_vendor_modules_list(msm_target):
common_gki_mod_list.remove(mod)
kernel_build(
name = target,
module_outs = in_tree_module_list,
module_implicit_outs = COMMON_GKI_MODULES_LIST,
module_implicit_outs = common_gki_mod_list,
outs = out_list,
build_config = ":{}_build_config".format(target),
dtstree = dtstree,
@ -359,6 +365,10 @@ def _define_kernel_dist(
":{}_system_dlkm_module_blocklist".format(target),
])
vendor_unprotected_dlkm = " ".join(get_unprotected_vendor_modules_list(msm_target))
if vendor_unprotected_dlkm:
msm_dist_targets.extend(["{}_vendor_dlkm_module_unprotectedlist".format(target)])
msm_dist_targets.append("{}_avb_sign_boot_image".format(target))
if dpm_overlay:
@ -466,11 +476,22 @@ def define_msm_la(
vendor_ramdisk_binaries = get_vendor_ramdisk_binaries(target)
gki_ramdisk_prebuilt_binary = get_gki_ramdisk_prebuilt_binary()
build_config_fragments = get_build_config_fragments(msm_target)
vendor_dlkm_module_unprotected_list = get_unprotected_vendor_modules_list(msm_target)
# Can't enable dpm_overlay if no overlays are listed
if len(dtbo_list) == 0 and dpm_overlay:
dpm_overlay = False
vendor_unprotected_dlkm = " ".join(vendor_dlkm_module_unprotected_list)
if vendor_unprotected_dlkm:
write_file(
name = "{}_vendor_dlkm_module_unprotectedlist".format(target),
out = "{}/vendor_dlkm.modules.unprotectedlist".format(target),
content = [vendor_unprotected_dlkm, ""],
)
in_tree_module_list += vendor_dlkm_module_unprotected_list
_define_build_config(
msm_target,
target,
@ -481,6 +502,7 @@ def define_msm_la(
_define_kernel_build(
target,
msm_target,
base_kernel,
in_tree_module_list,
dtb_list,