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_dtc.bzl", "define_dtc_dist")
|
||||||
load(":msm_abl.bzl", "define_abl_dist")
|
load(":msm_abl.bzl", "define_abl_dist")
|
||||||
load(":avb_boot_img.bzl", "avb_sign_boot_image")
|
load(":avb_boot_img.bzl", "avb_sign_boot_image")
|
||||||
|
load(":dpm_image.bzl", "define_dpm_image")
|
||||||
load(":image_opts.bzl", "boot_image_opts")
|
load(":image_opts.bzl", "boot_image_opts")
|
||||||
load(":target_variants.bzl", "la_variants")
|
load(":target_variants.bzl", "la_variants")
|
||||||
load(":modules.bzl", "COMMON_GKI_MODULES_LIST")
|
load(":modules.bzl", "COMMON_GKI_MODULES_LIST")
|
||||||
@ -195,7 +196,8 @@ def _define_image_build(
|
|||||||
dtbo_list = [],
|
dtbo_list = [],
|
||||||
vendor_ramdisk_binaries = None,
|
vendor_ramdisk_binaries = None,
|
||||||
gki_ramdisk_prebuilt_binary = 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
|
"""Creates a `kernel_images` target which will generate bootable device images
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
@ -273,6 +275,9 @@ def _define_image_build(
|
|||||||
boot_partition_size = int(boot_image_opts.boot_partition_size),
|
boot_partition_size = int(boot_image_opts.boot_partition_size),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if dpm_overlay:
|
||||||
|
define_dpm_image(target)
|
||||||
|
|
||||||
native.filegroup(
|
native.filegroup(
|
||||||
name = "{}_system_dlkm_image_file".format(target),
|
name = "{}_system_dlkm_image_file".format(target),
|
||||||
srcs = ["{}_images".format(base_kernel)],
|
srcs = ["{}_images".format(base_kernel)],
|
||||||
@ -303,7 +308,8 @@ def _define_kernel_dist(
|
|||||||
variant,
|
variant,
|
||||||
base_kernel,
|
base_kernel,
|
||||||
define_abi_targets,
|
define_abi_targets,
|
||||||
boot_image_opts = boot_image_opts()):
|
boot_image_opts = boot_image_opts(),
|
||||||
|
dpm_overlay = False):
|
||||||
"""Creates distribution targets for kernel builds
|
"""Creates distribution targets for kernel builds
|
||||||
|
|
||||||
When Bazel builds everything, the outputs end up buried in `bazel-bin`.
|
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))
|
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)
|
board_cmdline_extras = " ".join(boot_image_opts.board_kernel_cmdline_extras)
|
||||||
if board_cmdline_extras:
|
if board_cmdline_extras:
|
||||||
msm_dist_targets.append("{}_extra_cmdline".format(target))
|
msm_dist_targets.append("{}_extra_cmdline".format(target))
|
||||||
@ -404,6 +413,7 @@ def define_msm_la(
|
|||||||
variant,
|
variant,
|
||||||
in_tree_module_list,
|
in_tree_module_list,
|
||||||
kmi_enforced = True,
|
kmi_enforced = True,
|
||||||
|
dpm_overlay = False,
|
||||||
boot_image_opts = boot_image_opts()):
|
boot_image_opts = boot_image_opts()):
|
||||||
"""Top-level kernel build definition macro for an MSM platform
|
"""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")
|
variant: variant of kernel to build (e.g. "gki")
|
||||||
in_tree_module_list: list of in-tree modules
|
in_tree_module_list: list of in-tree modules
|
||||||
kmi_enforced: boolean determining if the KMI contract should be enforced
|
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`)
|
boot_image_header_version: boot image header version (for `boot.img`)
|
||||||
base_address: edk2 base address
|
base_address: edk2 base address
|
||||||
page_size: kernel page size
|
page_size: kernel page size
|
||||||
@ -475,6 +486,7 @@ def define_msm_la(
|
|||||||
boot_image_opts = boot_image_opts,
|
boot_image_opts = boot_image_opts,
|
||||||
boot_image_outs = None if dtb_list else ["boot.img", "init_boot.img"],
|
boot_image_outs = None if dtb_list else ["boot.img", "init_boot.img"],
|
||||||
in_tree_module_list = in_tree_module_list,
|
in_tree_module_list = in_tree_module_list,
|
||||||
|
dpm_overlay = dpm_overlay,
|
||||||
)
|
)
|
||||||
|
|
||||||
_define_kernel_dist(
|
_define_kernel_dist(
|
||||||
@ -484,6 +496,7 @@ def define_msm_la(
|
|||||||
base_kernel,
|
base_kernel,
|
||||||
define_abi_targets,
|
define_abi_targets,
|
||||||
boot_image_opts = boot_image_opts,
|
boot_image_opts = boot_image_opts,
|
||||||
|
dpm_overlay = dpm_overlay,
|
||||||
)
|
)
|
||||||
|
|
||||||
_define_uapi_library(target)
|
_define_uapi_library(target)
|
||||||
|
@ -316,4 +316,5 @@ def define_pineapple():
|
|||||||
board_kernel_cmdline_extras = board_kernel_cmdline_extras,
|
board_kernel_cmdline_extras = board_kernel_cmdline_extras,
|
||||||
board_bootconfig_extras = board_bootconfig_extras,
|
board_bootconfig_extras = board_bootconfig_extras,
|
||||||
),
|
),
|
||||||
|
dpm_overlay = True,
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user