ANDROID: build: Add define_dpm_image macro
Currently, there's no way to generate a dpm.img file from the Bazel build. As this should be generated when a dpm overlay dtbo exists, generate it in that case. To make use of this macro, just set dpm_overlay = True when defining an LA target. Change-Id: I10222499737ffb9b43cb2bac235ada66c8cae2e5 Signed-off-by: John Moon <quic_johmoo@quicinc.com>
This commit is contained in:
parent
bfa0380f01
commit
5136a9f974
32
dpm_image.bzl
Normal file
32
dpm_image.bzl
Normal file
@ -0,0 +1,32 @@
|
||||
load("@//build/kernel/kleaf:hermetic_tools.bzl", "hermetic_genrule")
|
||||
|
||||
def define_dpm_image(tv):
|
||||
target = tv.split("_")[0]
|
||||
hermetic_genrule(
|
||||
name = "{}_dpm_image".format(tv),
|
||||
srcs = [
|
||||
"//msm-kernel:{}_build_config".format(tv),
|
||||
"//msm-kernel:{}/{}-dpm-overlay.dtbo".format(tv, target),
|
||||
],
|
||||
outs = ["{}/dpm.img".format(tv)],
|
||||
cmd = """
|
||||
# Stub out append_cmd
|
||||
append_cmd() {{
|
||||
:
|
||||
}}
|
||||
|
||||
set +u
|
||||
source "$(location //msm-kernel:{tv}_build_config)"
|
||||
set -u
|
||||
|
||||
$(location //prebuilts/kernel-build-tools:linux-x86/bin/mkdtboimg) \
|
||||
create "$@" --page_size="$$PAGE_SIZE" \
|
||||
"$(location //msm-kernel:{tv}/{target}-dpm-overlay.dtbo)"
|
||||
""".format(
|
||||
tv = tv,
|
||||
target = target,
|
||||
),
|
||||
tools = [
|
||||
"//prebuilts/kernel-build-tools:linux-x86/bin/mkdtboimg",
|
||||
],
|
||||
)
|
@ -28,6 +28,7 @@ load(":msm_common.bzl", "define_top_level_config", "gen_config_without_source_li
|
||||
load(":msm_dtc.bzl", "define_dtc_dist")
|
||||
load(":msm_abl.bzl", "define_abl_dist")
|
||||
load(":avb_boot_img.bzl", "avb_sign_boot_image")
|
||||
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")
|
||||
@ -195,7 +196,8 @@ def _define_image_build(
|
||||
dtbo_list = [],
|
||||
vendor_ramdisk_binaries = None,
|
||||
gki_ramdisk_prebuilt_binary = None,
|
||||
in_tree_module_list = []):
|
||||
in_tree_module_list = [],
|
||||
dpm_overlay = False):
|
||||
"""Creates a `kernel_images` target which will generate bootable device images
|
||||
|
||||
Args:
|
||||
@ -273,6 +275,9 @@ def _define_image_build(
|
||||
boot_partition_size = int(boot_image_opts.boot_partition_size),
|
||||
)
|
||||
|
||||
if dpm_overlay:
|
||||
define_dpm_image(target)
|
||||
|
||||
native.filegroup(
|
||||
name = "{}_system_dlkm_image_file".format(target),
|
||||
srcs = ["{}_images".format(base_kernel)],
|
||||
@ -303,7 +308,8 @@ def _define_kernel_dist(
|
||||
variant,
|
||||
base_kernel,
|
||||
define_abi_targets,
|
||||
boot_image_opts = boot_image_opts()):
|
||||
boot_image_opts = boot_image_opts(),
|
||||
dpm_overlay = False):
|
||||
"""Creates distribution targets for kernel builds
|
||||
|
||||
When Bazel builds everything, the outputs end up buried in `bazel-bin`.
|
||||
@ -339,6 +345,9 @@ def _define_kernel_dist(
|
||||
|
||||
msm_dist_targets.append("{}_avb_sign_boot_image".format(target))
|
||||
|
||||
if dpm_overlay:
|
||||
msm_dist_targets.append(":{}_dpm_image".format(target))
|
||||
|
||||
board_cmdline_extras = " ".join(boot_image_opts.board_kernel_cmdline_extras)
|
||||
if board_cmdline_extras:
|
||||
msm_dist_targets.append("{}_extra_cmdline".format(target))
|
||||
@ -404,6 +413,7 @@ def define_msm_la(
|
||||
variant,
|
||||
in_tree_module_list,
|
||||
kmi_enforced = True,
|
||||
dpm_overlay = False,
|
||||
boot_image_opts = boot_image_opts()):
|
||||
"""Top-level kernel build definition macro for an MSM platform
|
||||
|
||||
@ -412,6 +422,7 @@ def define_msm_la(
|
||||
variant: variant of kernel to build (e.g. "gki")
|
||||
in_tree_module_list: list of in-tree modules
|
||||
kmi_enforced: boolean determining if the KMI contract should be enforced
|
||||
dpm_overlay: boolean determining if a `dpm.img` should be generated
|
||||
boot_image_header_version: boot image header version (for `boot.img`)
|
||||
base_address: edk2 base address
|
||||
page_size: kernel page size
|
||||
@ -475,6 +486,7 @@ def define_msm_la(
|
||||
boot_image_opts = boot_image_opts,
|
||||
boot_image_outs = None if dtb_list else ["boot.img", "init_boot.img"],
|
||||
in_tree_module_list = in_tree_module_list,
|
||||
dpm_overlay = dpm_overlay,
|
||||
)
|
||||
|
||||
_define_kernel_dist(
|
||||
@ -484,6 +496,7 @@ def define_msm_la(
|
||||
base_kernel,
|
||||
define_abi_targets,
|
||||
boot_image_opts = boot_image_opts,
|
||||
dpm_overlay = dpm_overlay,
|
||||
)
|
||||
|
||||
_define_uapi_library(target)
|
||||
|
@ -316,4 +316,5 @@ def define_pineapple():
|
||||
board_kernel_cmdline_extras = board_kernel_cmdline_extras,
|
||||
board_bootconfig_extras = board_bootconfig_extras,
|
||||
),
|
||||
dpm_overlay = True,
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user