ANDROID: enable pineapple kleaf build
Kleaf replaces build.sh. Define pineapple target in Bazel so it may be built with the following command: tools/bazel run //msm-kernel:pineapple_gki Change-Id: If78ea5482898f92b751cad8542401ba12d9663bf Signed-off-by: John Moon <quic_johmoo@quicinc.com>
This commit is contained in:
parent
2b0465b6c3
commit
59ff6820c9
@ -17,9 +17,12 @@ package(
|
||||
],
|
||||
)
|
||||
|
||||
load("//build/kernel/kleaf:common_kernels.bzl", "define_common_kernels", "define_db845c")
|
||||
load(":msm_platforms.bzl", "define_msm_platforms")
|
||||
define_msm_platforms()
|
||||
|
||||
define_common_kernels(target_configs = {
|
||||
load("//build/kernel/kleaf:common_kernels.bzl", "define_common_kernels", "define_db845c")
|
||||
load("@kernel_toolchain_info//:dict.bzl", "BRANCH")
|
||||
define_common_kernels(branch = BRANCH, target_configs = {
|
||||
"kernel_aarch64": {
|
||||
"module_implicit_outs": [
|
||||
"drivers/block/zram/zram.ko",
|
||||
|
148
BUILD.dtc
Normal file
148
BUILD.dtc
Normal file
@ -0,0 +1,148 @@
|
||||
cc_library(
|
||||
name = "libfdt",
|
||||
copts = [
|
||||
"-Werror",
|
||||
"-Wno-macro-redefined",
|
||||
"-Wno-sign-compare",
|
||||
],
|
||||
includes = ["libfdt"],
|
||||
srcs = glob([
|
||||
"libfdt/*.h",
|
||||
"libfdt/*.c",
|
||||
]),
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
copts = [
|
||||
"-Wall",
|
||||
"-Werror",
|
||||
"-Wno-sign-compare",
|
||||
"-Wno-missing-field-initializers",
|
||||
"-Wno-unused-parameter",
|
||||
]
|
||||
|
||||
genrule(
|
||||
name = "lexer",
|
||||
srcs = ["dtc-lexer.l"],
|
||||
outs = ["dtc-lexer.lex.c"],
|
||||
cmd = "lex -o$@ $(location dtc-lexer.l)"
|
||||
)
|
||||
|
||||
genrule(
|
||||
name = "parser",
|
||||
srcs = ["dtc-parser.y"],
|
||||
outs = ["dtc-parser.tab.c", "dtc-parser.tab.h"],
|
||||
cmd = """
|
||||
bison -b dtc-parser -d $(location dtc-parser.y)
|
||||
cp ./*.tab.c $(location dtc-parser.tab.c)
|
||||
cp ./*.tab.h $(location dtc-parser.tab.h)
|
||||
""",
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "dtc_gen",
|
||||
copts = copts,
|
||||
srcs = [
|
||||
":lexer",
|
||||
":parser",
|
||||
] + glob(["*.h"]),
|
||||
includes = ["."],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "dtc",
|
||||
copts = copts,
|
||||
defines = ["NO_YAML"],
|
||||
srcs = [
|
||||
"checks.c",
|
||||
"data.c",
|
||||
"dtc.c",
|
||||
"flattree.c",
|
||||
"fstree.c",
|
||||
"livetree.c",
|
||||
"srcpos.c",
|
||||
"treesource.c",
|
||||
"util.c",
|
||||
] + glob(["*.h"]),
|
||||
includes = ["."],
|
||||
deps = [":libfdt", ":dtc_gen"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "fdtget",
|
||||
copts = copts,
|
||||
defines = ["NO_YAML"],
|
||||
srcs = [
|
||||
"fdtget.c",
|
||||
"util.c",
|
||||
"util.h",
|
||||
"version_non_gen.h",
|
||||
],
|
||||
deps = [":libfdt"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "fdtput",
|
||||
copts = copts,
|
||||
defines = ["NO_YAML"],
|
||||
srcs = [
|
||||
"fdtput.c",
|
||||
"util.c",
|
||||
"util.h",
|
||||
"version_non_gen.h",
|
||||
],
|
||||
deps = [":libfdt"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "fdtdump",
|
||||
copts = copts,
|
||||
defines = ["NO_YAML"],
|
||||
srcs = [
|
||||
"fdtdump.c",
|
||||
"util.c",
|
||||
"util.h",
|
||||
"version_non_gen.h",
|
||||
],
|
||||
deps = [":libfdt"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "fdtoverlay",
|
||||
copts = copts,
|
||||
defines = ["NO_YAML"],
|
||||
srcs = [
|
||||
"fdtoverlay.c",
|
||||
"util.c",
|
||||
"util.h",
|
||||
"version_non_gen.h",
|
||||
],
|
||||
deps = [":libfdt"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "fdtoverlaymerge",
|
||||
copts = copts,
|
||||
defines = ["NO_YAML"],
|
||||
srcs = [
|
||||
"fdtoverlaymerge.c",
|
||||
"util.c",
|
||||
"util.h",
|
||||
"version_non_gen.h",
|
||||
],
|
||||
deps = [":libfdt"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
exports_files([
|
||||
"libfdt/fdt.h",
|
||||
"libfdt/libfdt.h",
|
||||
"libfdt/libfdt_env.h",
|
||||
])
|
||||
|
@ -19,6 +19,10 @@ CONFIG_TARGET=msm.${MSM_ARCH}
|
||||
function compile_external_dtc() {
|
||||
(
|
||||
OUT_DIR=${COMMON_OUT_DIR}/external/dtc
|
||||
if [ ! -d "$OUT_DIR" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
[ "${SKIP_MRPROPER}" != "1" ] && rm -rf ${OUT_DIR}
|
||||
cd ${ROOT_DIR}/external/dtc
|
||||
DTC_MAKE_ARGS=("CC=${HOSTCC}" "AR=${AR}")
|
||||
|
115
kalama.bzl
Normal file
115
kalama.bzl
Normal file
@ -0,0 +1,115 @@
|
||||
load(":target_variants.bzl", "targets", "variants")
|
||||
load(":msm_kernel.bzl", "define_msm")
|
||||
|
||||
target_name = "kalama"
|
||||
|
||||
def define_kalama():
|
||||
_kalama_in_tree_modules = [
|
||||
# keep sorted
|
||||
"arch/arm64/gunyah/gh_arm_drv.ko",
|
||||
"drivers/clk/qcom/camcc-kalama.ko",
|
||||
"drivers/clk/qcom/clk-dummy.ko",
|
||||
"drivers/clk/qcom/clk-qcom.ko",
|
||||
"drivers/clk/qcom/clk-rpmh.ko",
|
||||
"drivers/clk/qcom/debugcc-kalama.ko",
|
||||
"drivers/clk/qcom/dispcc-kalama.ko",
|
||||
"drivers/clk/qcom/gcc-kalama.ko",
|
||||
"drivers/clk/qcom/gdsc-regulator.ko",
|
||||
"drivers/clk/qcom/gpucc-kalama.ko",
|
||||
"drivers/clk/qcom/tcsrcc-kalama.ko",
|
||||
"drivers/clk/qcom/videocc-kalama.ko",
|
||||
"drivers/cpufreq/qcom-cpufreq-hw.ko",
|
||||
"drivers/cpufreq/qcom-cpufreq-hw-debug.ko",
|
||||
"drivers/cpuidle/governors/qcom_lpm.ko",
|
||||
"drivers/dma-buf/heaps/qcom_dma_heaps.ko",
|
||||
"drivers/firmware/qcom-scm.ko",
|
||||
"drivers/hwspinlock/qcom_hwspinlock.ko",
|
||||
"drivers/interconnect/icc-test.ko",
|
||||
"drivers/interconnect/qcom/icc-bcm-voter.ko",
|
||||
"drivers/interconnect/qcom/icc-debug.ko",
|
||||
"drivers/interconnect/qcom/icc-rpmh.ko",
|
||||
"drivers/interconnect/qcom/qnoc-kalama.ko",
|
||||
"drivers/interconnect/qcom/qnoc-qos.ko",
|
||||
"drivers/iommu/arm/arm-smmu/arm_smmu.ko",
|
||||
"drivers/iommu/msm_dma_iommu_mapping.ko",
|
||||
"drivers/iommu/qcom_iommu_util.ko",
|
||||
"drivers/irqchip/qcom-pdc.ko",
|
||||
"drivers/mailbox/qcom-ipcc.ko",
|
||||
"drivers/mfd/qcom-spmi-pmic.ko",
|
||||
"drivers/phy/qualcomm/phy-qcom-ufs.ko",
|
||||
"drivers/phy/qualcomm/phy-qcom-ufs-qmp-v4-kalama.ko",
|
||||
"drivers/pinctrl/qcom/pinctrl-kalama.ko",
|
||||
"drivers/pinctrl/qcom/pinctrl-msm.ko",
|
||||
"drivers/power/reset/qcom-dload-mode.ko",
|
||||
"drivers/power/reset/qcom-reboot-reason.ko",
|
||||
"drivers/regulator/debug-regulator.ko",
|
||||
"drivers/regulator/proxy-consumer.ko",
|
||||
"drivers/regulator/qti-fixed-regulator.ko",
|
||||
"drivers/regulator/rpmh-regulator.ko",
|
||||
"drivers/regulator/stub-regulator.ko",
|
||||
"drivers/soc/qcom/boot_stats.ko",
|
||||
"drivers/soc/qcom/cmd-db.ko",
|
||||
"drivers/soc/qcom/eud.ko",
|
||||
"drivers/soc/qcom/llcc-qcom.ko",
|
||||
"drivers/soc/qcom/llcc_perfmon.ko",
|
||||
"drivers/soc/qcom/mdt_loader.ko",
|
||||
"drivers/soc/qcom/mem_buf/mem_buf.ko",
|
||||
"drivers/soc/qcom/mem_buf/mem_buf_dev.ko",
|
||||
"drivers/soc/qcom/msm_performance.ko",
|
||||
"drivers/soc/qcom/qcom_aoss.ko",
|
||||
"drivers/soc/qcom/qcom_rpmh.ko",
|
||||
"drivers/soc/qcom/qcom_wdt_core.ko",
|
||||
"drivers/soc/qcom/secure_buffer.ko",
|
||||
"drivers/soc/qcom/smem.ko",
|
||||
"drivers/soc/qcom/smp2p.ko",
|
||||
"drivers/soc/qcom/smp2p_sleepstate.ko",
|
||||
"drivers/soc/qcom/socinfo.ko",
|
||||
"drivers/spmi/spmi-pmic-arb.ko",
|
||||
"drivers/tty/hvc/hvc_gunyah.ko",
|
||||
"drivers/ufs/host/ufs_qcom.ko",
|
||||
"drivers/usb/dwc3/dwc3-msm.ko",
|
||||
"drivers/usb/gadget/function/usb_f_ccid.ko",
|
||||
"drivers/usb/gadget/function/usb_f_cdev.ko",
|
||||
"drivers/usb/gadget/function/usb_f_qdss.ko",
|
||||
"drivers/usb/phy/phy-generic.ko",
|
||||
"drivers/usb/phy/phy-msm-snps-eusb2.ko",
|
||||
"drivers/usb/phy/phy-msm-snps-hs.ko",
|
||||
"drivers/usb/phy/phy-msm-ssusb-qmp.ko",
|
||||
"drivers/usb/repeater/repeater.ko",
|
||||
"drivers/usb/repeater/repeater-qti-pmic-eusb2.ko",
|
||||
"drivers/virt/gunyah/gh_ctrl.ko",
|
||||
"drivers/virt/gunyah/gh_dbl.ko",
|
||||
"drivers/virt/gunyah/gh_irq_lend.ko",
|
||||
"drivers/virt/gunyah/gh_mem_notifier.ko",
|
||||
"drivers/virt/gunyah/gh_msgq.ko",
|
||||
"drivers/virt/gunyah/gh_rm_drv.ko",
|
||||
"drivers/virt/gunyah/gh_virt_wdt.ko",
|
||||
"drivers/virt/gunyah/gunyah.ko",
|
||||
"kernel/trace/qcom_ipc_logging.ko",
|
||||
]
|
||||
|
||||
_kalama_consolidate_in_tree_modules = _kalama_in_tree_modules + [
|
||||
]
|
||||
|
||||
# Modules built but not copied to dist directory
|
||||
_kalama_module_implicit_outs = [
|
||||
# keep sorted
|
||||
"drivers/block/zram/zram.ko",
|
||||
"mm/zsmalloc.ko",
|
||||
]
|
||||
|
||||
if not target_name in targets:
|
||||
fail("{} not defined in target_variants.bzl".format(target_name))
|
||||
|
||||
for variant in variants:
|
||||
if variant == "consolidate":
|
||||
mod_list = _kalama_consolidate_in_tree_modules
|
||||
else:
|
||||
mod_list = _kalama_in_tree_modules
|
||||
|
||||
define_msm(
|
||||
msm_target = target_name,
|
||||
variant = variant,
|
||||
in_tree_module_list = mod_list,
|
||||
implicit_out_list = _kalama_module_implicit_outs,
|
||||
)
|
449
msm_kernel.bzl
Normal file
449
msm_kernel.bzl
Normal file
@ -0,0 +1,449 @@
|
||||
load("//build/bazel_common_rules/dist:dist.bzl", "copy_to_dist_dir")
|
||||
load(
|
||||
"//build/kernel/kleaf:kernel.bzl",
|
||||
"kernel_build_abi",
|
||||
"kernel_build_abi_dist",
|
||||
"kernel_build_config",
|
||||
"kernel_compile_commands",
|
||||
"kernel_images",
|
||||
"kernel_modules_install",
|
||||
"merged_kernel_uapi_headers",
|
||||
)
|
||||
load(
|
||||
"//build/bazel_extensions:msm_kernel_extensions.bzl",
|
||||
"define_extras",
|
||||
"get_build_config_fragments",
|
||||
"get_dtb_list",
|
||||
"get_dtbo_list",
|
||||
"get_dtstree",
|
||||
"get_vendor_ramdisk_binaries",
|
||||
)
|
||||
load(":super_image.bzl", "super_image")
|
||||
|
||||
def define_build_config(
|
||||
msm_target,
|
||||
target,
|
||||
variant,
|
||||
boot_image_header_version,
|
||||
base_address,
|
||||
page_size,
|
||||
super_image_size,
|
||||
lz4_ramdisk,
|
||||
build_config_fragments = []):
|
||||
"""Creates a kernel_build_config for an MSM target
|
||||
|
||||
Creates a `kernel_build_config` for input to a `kernel_build` rule.
|
||||
|
||||
Args:
|
||||
msm_target: name of target platform (e.g. "kalama")
|
||||
variant: variant of kernel to build (e.g. "gki")
|
||||
"""
|
||||
|
||||
# Remove sourcing lines from build config since we're just concatenating fragments below
|
||||
native.genrule(
|
||||
name = "{}_build_config_common_without_source".format(target),
|
||||
srcs = ["build.config.common"],
|
||||
outs = ["{}_build.config.common.generated".format(target)],
|
||||
cmd_bash = "sed -e '/^\\. /d' $(location build.config.common) > $@",
|
||||
)
|
||||
|
||||
# Generate the build config
|
||||
native.genrule(
|
||||
name = "{}_build_config_bazel".format(target),
|
||||
srcs = [],
|
||||
outs = ["build.config.msm.{}.generated".format(target)],
|
||||
cmd_bash = """
|
||||
cat << 'EOF' > $@
|
||||
KERNEL_DIR="msm-kernel"
|
||||
VARIANTS=(consolidate gki)
|
||||
MSM_ARCH=%s
|
||||
VARIANT=%s
|
||||
ABL_SRC=bootable/bootloader/edk2
|
||||
BOOT_IMAGE_HEADER_VERSION=%d
|
||||
BASE_ADDRESS=0x%X
|
||||
PAGE_SIZE=%d
|
||||
BUILD_VENDOR_DLKM=1
|
||||
PREPARE_SYSTEM_DLKM=1
|
||||
SUPER_IMAGE_SIZE=0x%X
|
||||
TRIM_UNUSED_MODULES=1
|
||||
BUILD_INIT_BOOT_IMG=1
|
||||
LZ4_RAMDISK=%d
|
||||
[ -z "$$DT_OVERLAY_SUPPORT" ] && DT_OVERLAY_SUPPORT=1
|
||||
|
||||
if [ "$$KERNEL_CMDLINE_CONSOLE_AUTO" != "0" ]; then
|
||||
KERNEL_VENDOR_CMDLINE+=' console=ttyMSM0,115200n8 earlycon=qcom_geni,0x00a9C000 qcom_geni_serial.con_enabled=1 '
|
||||
fi
|
||||
|
||||
KERNEL_VENDOR_CMDLINE+=' bootconfig '
|
||||
VENDOR_BOOTCONFIG+='androidboot.first_stage_console=1 androidboot.hardware=qcom_kp'
|
||||
EOF
|
||||
""" % (
|
||||
msm_target,
|
||||
variant,
|
||||
boot_image_header_version,
|
||||
base_address,
|
||||
page_size,
|
||||
super_image_size,
|
||||
int(lz4_ramdisk)
|
||||
),
|
||||
)
|
||||
|
||||
# Concatenate build config fragments to form the final config
|
||||
kernel_build_config(
|
||||
name = "{}_build_config".format(target),
|
||||
srcs = [
|
||||
# do not sort
|
||||
"build.config.constants",
|
||||
":{}_build_config_common_without_source".format(target),
|
||||
"build.config.aarch64",
|
||||
":{}_build_config_bazel".format(target),
|
||||
] + [fragment for fragment in build_config_fragments] + [
|
||||
"build.config.msm.common",
|
||||
"build.config.msm.gki",
|
||||
],
|
||||
)
|
||||
|
||||
def define_kernel_build(
|
||||
target,
|
||||
base_kernel,
|
||||
in_tree_module_list,
|
||||
implicit_out_list,
|
||||
dtb_list,
|
||||
dtbo_list,
|
||||
dtstree,
|
||||
define_abi_targets,
|
||||
define_compile_commands,
|
||||
kmi_enforced):
|
||||
"""Creates a `kernel_build_abi` and other associated definitions
|
||||
|
||||
This is where the main kernel build target is created (e.g. `//msm-kernel:kalama_gki`).
|
||||
Many other rules will take this `kernel_build_abi` as an input.
|
||||
|
||||
Args:
|
||||
target: name of main Bazel target (e.g. `kalama_gki`)
|
||||
base_kernel: base kernel to pass into `kernel_build` (e.g. `//common:kernel_aarch64`)
|
||||
in_tree_module_list: list of in-tree modules
|
||||
dtb_list: device tree blobs expected to be built
|
||||
dtbo_list: device tree overlay blobs expected to be built
|
||||
define_abi_targets: boolean determining if ABI targets should be defined
|
||||
define_compile_commands: boolean determining if `compile_commands.json` should be generated
|
||||
kmi_enforced: boolean determining if the KMI contract should be enforced
|
||||
"""
|
||||
out_list = [".config", "Module.symvers"]
|
||||
if dtb_list:
|
||||
out_list += dtb_list
|
||||
if dtbo_list:
|
||||
out_list += dtbo_list
|
||||
|
||||
kernel_build_abi(
|
||||
name = target,
|
||||
module_outs = in_tree_module_list,
|
||||
module_implicit_outs = implicit_out_list,
|
||||
outs = out_list,
|
||||
build_config = ":{}_build_config".format(target),
|
||||
dtstree = dtstree,
|
||||
base_kernel = base_kernel,
|
||||
kmi_symbol_list = "//msm-kernel:android/abi_gki_aarch64_qcom" if define_abi_targets else None,
|
||||
kmi_enforced = kmi_enforced,
|
||||
additional_kmi_symbol_lists = ["{}_all_kmi_symbol_lists".format(base_kernel)] if define_abi_targets else None,
|
||||
define_abi_targets = define_abi_targets,
|
||||
abi_definition = "//msm-kernel:android/abi_gki_aarch64.xml" if define_abi_targets else None,
|
||||
enable_interceptor = define_compile_commands,
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
kernel_modules_install(
|
||||
name = "{}_modules_install".format(target),
|
||||
kernel_build = ":{}".format(target),
|
||||
)
|
||||
|
||||
merged_kernel_uapi_headers(
|
||||
name = "{}_merged_kernel_uapi_headers".format(target),
|
||||
kernel_build = ":{}".format(target),
|
||||
)
|
||||
|
||||
if define_compile_commands:
|
||||
kernel_compile_commands(
|
||||
name = "{}_compile_commands".format(target),
|
||||
kernel_build = ":{}".format(target),
|
||||
)
|
||||
|
||||
def define_image_build(
|
||||
target,
|
||||
msm_target,
|
||||
base_kernel,
|
||||
build_boot = True,
|
||||
build_dtbo = False,
|
||||
build_initramfs = False,
|
||||
build_vendor_boot = False,
|
||||
build_vendor_kernel_boot = False,
|
||||
build_vendor_dlkm = True,
|
||||
build_system_dlkm = True,
|
||||
boot_image_outs = None,
|
||||
dtbo_list = [],
|
||||
vendor_ramdisk_binaries = None):
|
||||
"""Creates a `kernel_images` target which will generate bootable device images
|
||||
|
||||
Args:
|
||||
target: name of main Bazel target (e.g. `kalama_gki`)
|
||||
msm_target: name of target platform (e.g. "kalama")
|
||||
base_kernel: kernel_build base kernel
|
||||
build_boot: whether to build a boot image
|
||||
build_dtbo: whether to build a dtbo image
|
||||
build_initramfs: whether to build an initramfs image
|
||||
build_vendor_boot: whether to build a vendor boot image
|
||||
build_vendor_kernel_boot: whether to build a vendor kernel boot image
|
||||
build_vendor_dlkm: whether to build a vendor dlkm image
|
||||
build_system_dlkm: whether to build a system dlkm image
|
||||
boot_image_outs: boot image outputs,
|
||||
dtbo_list: list of device tree overlay blobs to be built into `dtbo.img`
|
||||
vendor_ramdisk_binaries: ramdisk binaries (cpio archives)
|
||||
"""
|
||||
kernel_images(
|
||||
name = "{}_images".format(target),
|
||||
kernel_modules_install = ":{}_modules_install".format(target),
|
||||
kernel_build = ":{}".format(target),
|
||||
base_kernel_images = "{}_images".format(base_kernel),
|
||||
build_boot = build_boot,
|
||||
build_dtbo = build_dtbo,
|
||||
build_initramfs = build_initramfs,
|
||||
build_vendor_boot = build_vendor_boot,
|
||||
build_vendor_kernel_boot = build_vendor_kernel_boot,
|
||||
build_vendor_dlkm = build_vendor_dlkm,
|
||||
build_system_dlkm = build_system_dlkm,
|
||||
modules_list = "modules.list.msm.{}".format(msm_target),
|
||||
vendor_dlkm_modules_blocklist = "modules.vendor_blocklist.msm.{}".format(msm_target),
|
||||
dtbo_srcs = [":{}/".format(target) + d for d in dtbo_list] if dtbo_list else None,
|
||||
vendor_ramdisk_binaries = vendor_ramdisk_binaries,
|
||||
boot_image_outs = boot_image_outs,
|
||||
deps = [
|
||||
"modules.list.msm.{}".format(msm_target),
|
||||
"modules.vendor_blocklist.msm.{}".format(msm_target),
|
||||
],
|
||||
)
|
||||
|
||||
# Defined separately because `super.img` is not generated by upstream kleaf
|
||||
super_image(
|
||||
name = "{}_super_image".format(target),
|
||||
kernel_modules_install = "{}_modules_install".format(target),
|
||||
deps = [
|
||||
":{}_images_system_dlkm_image".format(target),
|
||||
":{}_images_vendor_dlkm_image".format(target),
|
||||
],
|
||||
)
|
||||
|
||||
def define_kernel_dist(target, base_kernel):
|
||||
"""Creates distribution targets for kernel builds
|
||||
|
||||
When Bazel builds everything, the outputs end up buried in `bazel-bin`.
|
||||
These rules are used to copy the build artifacts to `out/msm-kernel-<target>/dist/`
|
||||
with proper permissions, etc.
|
||||
|
||||
Args:
|
||||
target: name of main Bazel target (e.g. `kalama_gki`)
|
||||
base_kernel: base kernel to fetch artifacts from (e.g. `//common:kernel_aarch64`)
|
||||
"""
|
||||
msm_dist_targets = [
|
||||
# do not sort
|
||||
base_kernel,
|
||||
"{}_headers".format(base_kernel),
|
||||
":{}".format(target),
|
||||
":{}_images".format(target),
|
||||
":{}_super_image".format(target),
|
||||
":{}_merged_kernel_uapi_headers".format(target),
|
||||
":{}_build_config".format(target),
|
||||
]
|
||||
|
||||
kernel_build_abi_dist(
|
||||
name = "{}_abi_dist".format(target),
|
||||
kernel_build_abi = ":{}".format(target),
|
||||
data = msm_dist_targets,
|
||||
dist_dir = "out/{}/dist".format(target),
|
||||
flat = True,
|
||||
log = "info",
|
||||
)
|
||||
|
||||
copy_to_dist_dir(
|
||||
name = "{}_dist".format(target),
|
||||
data = msm_dist_targets,
|
||||
dist_dir = "out/msm-kernel-{}/dist".format(target.replace("_", "-")),
|
||||
flat = True,
|
||||
wipe_dist_dir = True,
|
||||
allow_duplicate_filenames = True,
|
||||
mode_overrides = {
|
||||
# do not sort
|
||||
"**/*.elf": "755",
|
||||
"**/vmlinux": "755",
|
||||
"**/Image": "755",
|
||||
"**/*.dtb*": "755",
|
||||
"**/LinuxLoader*": "755",
|
||||
"**/*": "644",
|
||||
},
|
||||
log = "info",
|
||||
)
|
||||
|
||||
def define_dtc_dist(target):
|
||||
"""Create rules distribution target for device tree compiler and associated tools
|
||||
|
||||
Args:
|
||||
target: name of main Bazel target (e.g. `kalama_gki`)
|
||||
"""
|
||||
dtc_bin_targets = [
|
||||
"@dtc//:dtc",
|
||||
"@dtc//:fdtget",
|
||||
"@dtc//:fdtput",
|
||||
"@dtc//:fdtdump",
|
||||
"@dtc//:fdtoverlay",
|
||||
"@dtc//:fdtoverlaymerge",
|
||||
]
|
||||
dtc_lib_targets = [
|
||||
"@dtc//:dtc_gen",
|
||||
"@dtc//:libfdt",
|
||||
]
|
||||
dtc_inc_targets = [
|
||||
"@dtc//:libfdt/fdt.h",
|
||||
"@dtc//:libfdt/libfdt.h",
|
||||
"@dtc//:libfdt/libfdt_env.h",
|
||||
]
|
||||
|
||||
dtc_tar_cmd = "mkdir -p bin lib include\n"
|
||||
for label in dtc_bin_targets:
|
||||
dtc_tar_cmd += "cp $(locations {}) bin/\n".format(label)
|
||||
for label in dtc_lib_targets:
|
||||
dtc_tar_cmd += "cp $(locations {}) lib/\n".format(label)
|
||||
for label in dtc_inc_targets:
|
||||
dtc_tar_cmd += "cp $(locations {}) include/\n".format(label)
|
||||
dtc_tar_cmd += """
|
||||
chmod 755 bin/* lib/*
|
||||
chmod 644 include/*
|
||||
tar -czf "$@" bin lib include
|
||||
"""
|
||||
|
||||
native.genrule(
|
||||
name = "{}_dtc_tarball".format(target),
|
||||
srcs = dtc_bin_targets + dtc_lib_targets + dtc_inc_targets,
|
||||
outs = ["{}_dtc.tar.gz".format(target)],
|
||||
cmd = dtc_tar_cmd,
|
||||
)
|
||||
|
||||
native.alias(
|
||||
name = "{}_dtc".format(target),
|
||||
actual = ":{}_dtc_tarball".format(target),
|
||||
)
|
||||
|
||||
copy_to_dist_dir(
|
||||
name = "{}_dtc_dist".format(target),
|
||||
archives = [":{}_dtc_tarball".format(target)],
|
||||
dist_dir = "out/msm-kernel-{}/host".format(target.replace("_", "-")),
|
||||
flat = True,
|
||||
wipe_dist_dir = True,
|
||||
log = "info",
|
||||
)
|
||||
|
||||
def define_abl_dist(target):
|
||||
"""Creates ABL distribution target
|
||||
|
||||
Args:
|
||||
target: name of main Bazel target (e.g. `kalama_gki`)
|
||||
"""
|
||||
native.alias(
|
||||
name = "{}_abl".format(target),
|
||||
actual = "//bootable/bootloader/edk2:{}_abl".format(target),
|
||||
)
|
||||
|
||||
copy_to_dist_dir(
|
||||
name = "{}_abl_dist".format(target),
|
||||
archives = ["{}_abl".format(target)],
|
||||
dist_dir = "out/msm-kernel-{}/dist".format(target.replace("_", "-")),
|
||||
flat = True,
|
||||
wipe_dist_dir = False,
|
||||
log = "info",
|
||||
)
|
||||
|
||||
def define_msm(
|
||||
msm_target,
|
||||
variant,
|
||||
in_tree_module_list,
|
||||
implicit_out_list = [],
|
||||
define_compile_commands = False,
|
||||
kmi_enforced = True,
|
||||
boot_image_header_version = 4,
|
||||
base_address = 0x80000000,
|
||||
page_size = 4096,
|
||||
super_image_size = 0x10000000,
|
||||
lz4_ramdisk = True):
|
||||
"""Top-level kernel build definition macro for an MSM platform
|
||||
|
||||
Args:
|
||||
msm_target: name of target platform (e.g. "kalama")
|
||||
variant: variant of kernel to build (e.g. "gki")
|
||||
in_tree_module_list: list of in-tree modules
|
||||
implicit_out_list: list of in-tree modules which are not copied to the dist directory
|
||||
define_compile_commands: boolean determining if `compile_commands.json` should be generated
|
||||
kmi_enforced: boolean determining if the KMI contract should be enforced
|
||||
boot_image_header_version: boot image header version (for `boot.img`)
|
||||
base_address: edk2 base address
|
||||
page_size: kernel page size
|
||||
super_image_size: size of super image partition
|
||||
lz4_ramdisk: whether to use an lz4-compressed ramdisk
|
||||
"""
|
||||
target = msm_target + "_" + variant
|
||||
|
||||
if variant == "consolidate":
|
||||
base_kernel = "//common:kernel_aarch64_consolidate"
|
||||
define_abi_targets = False
|
||||
else:
|
||||
base_kernel = "//common:kernel_aarch64"
|
||||
define_abi_targets = True
|
||||
|
||||
dtb_list = get_dtb_list(msm_target)
|
||||
dtbo_list = get_dtbo_list(msm_target)
|
||||
dtstree = get_dtstree(msm_target)
|
||||
vendor_ramdisk_binaries = get_vendor_ramdisk_binaries(msm_target)
|
||||
build_config_fragments = get_build_config_fragments(msm_target)
|
||||
|
||||
define_build_config(
|
||||
msm_target,
|
||||
target,
|
||||
variant,
|
||||
boot_image_header_version,
|
||||
base_address,
|
||||
page_size,
|
||||
super_image_size,
|
||||
lz4_ramdisk,
|
||||
build_config_fragments,
|
||||
)
|
||||
|
||||
define_kernel_build(
|
||||
target,
|
||||
base_kernel,
|
||||
in_tree_module_list,
|
||||
implicit_out_list,
|
||||
dtb_list,
|
||||
dtbo_list,
|
||||
dtstree,
|
||||
define_abi_targets,
|
||||
define_compile_commands,
|
||||
kmi_enforced,
|
||||
)
|
||||
|
||||
define_image_build(
|
||||
target,
|
||||
msm_target,
|
||||
base_kernel,
|
||||
build_boot = True,
|
||||
build_dtbo = True if dtbo_list else False,
|
||||
build_initramfs = True if vendor_ramdisk_binaries else False,
|
||||
build_vendor_boot = True if dtbo_list else False,
|
||||
dtbo_list = dtbo_list,
|
||||
vendor_ramdisk_binaries = vendor_ramdisk_binaries,
|
||||
boot_image_outs = None if dtb_list else ["boot.img"],
|
||||
)
|
||||
|
||||
define_kernel_dist(target, base_kernel)
|
||||
|
||||
define_abl_dist(target)
|
||||
|
||||
define_dtc_dist(target)
|
||||
|
||||
define_extras(target)
|
17
msm_kernel_extensions.bzl
Normal file
17
msm_kernel_extensions.bzl
Normal file
@ -0,0 +1,17 @@
|
||||
def define_extras(target):
|
||||
return
|
||||
|
||||
def get_build_config_fragments(target):
|
||||
return []
|
||||
|
||||
def get_dtb_list(target):
|
||||
return None
|
||||
|
||||
def get_dtbo_list(target):
|
||||
return None
|
||||
|
||||
def get_dtstree(target):
|
||||
return None
|
||||
|
||||
def get_vendor_ramdisk_binaries(target):
|
||||
return None
|
6
msm_platforms.bzl
Normal file
6
msm_platforms.bzl
Normal file
@ -0,0 +1,6 @@
|
||||
load(":kalama.bzl", "define_kalama")
|
||||
load(":pineapple.bzl", "define_pineapple")
|
||||
|
||||
def define_msm_platforms():
|
||||
define_kalama()
|
||||
define_pineapple()
|
199
pineapple.bzl
Normal file
199
pineapple.bzl
Normal file
@ -0,0 +1,199 @@
|
||||
load(":target_variants.bzl", "targets", "variants")
|
||||
load(":msm_kernel.bzl", "define_msm")
|
||||
|
||||
target_name = "pineapple"
|
||||
|
||||
def define_pineapple():
|
||||
_pineapple_in_tree_modules = [
|
||||
# keep sorted
|
||||
"arch/arm64/gunyah/gh_arm_drv.ko",
|
||||
"drivers/clk/qcom/camcc-pineapple.ko",
|
||||
"drivers/clk/qcom/clk-dummy.ko",
|
||||
"drivers/clk/qcom/clk-qcom.ko",
|
||||
"drivers/clk/qcom/clk-rpmh.ko",
|
||||
"drivers/clk/qcom/debugcc-pineapple.ko",
|
||||
"drivers/clk/qcom/dispcc-pineapple.ko",
|
||||
"drivers/clk/qcom/gcc-pineapple.ko",
|
||||
"drivers/clk/qcom/gdsc-regulator.ko",
|
||||
"drivers/clk/qcom/gpucc-pineapple.ko",
|
||||
"drivers/clk/qcom/tcsrcc-pineapple.ko",
|
||||
"drivers/clk/qcom/videocc-pineapple.ko",
|
||||
"drivers/cpufreq/qcom-cpufreq-hw.ko",
|
||||
"drivers/cpufreq/qcom-cpufreq-hw-debug.ko",
|
||||
"drivers/cpuidle/governors/qcom_lpm.ko",
|
||||
"drivers/dma-buf/heaps/qcom_dma_heaps.ko",
|
||||
"drivers/dma/qcom/msm_gpi.ko",
|
||||
"drivers/firmware/qcom-scm.ko",
|
||||
"drivers/hwspinlock/qcom_hwspinlock.ko",
|
||||
"drivers/hwtracing/coresight/coresight.ko",
|
||||
"drivers/hwtracing/coresight/coresight-csr.ko",
|
||||
"drivers/hwtracing/coresight/coresight-cti.ko",
|
||||
"drivers/hwtracing/coresight/coresight-dummy.ko",
|
||||
"drivers/hwtracing/coresight/coresight-funnel.ko",
|
||||
"drivers/hwtracing/coresight/coresight-hwevent.ko",
|
||||
"drivers/hwtracing/coresight/coresight-remote-etm.ko",
|
||||
"drivers/hwtracing/coresight/coresight-replicator.ko",
|
||||
"drivers/hwtracing/coresight/coresight-stm.ko",
|
||||
"drivers/hwtracing/coresight/coresight-tgu.ko",
|
||||
"drivers/hwtracing/coresight/coresight-tmc.ko",
|
||||
"drivers/hwtracing/coresight/coresight-tpda.ko",
|
||||
"drivers/hwtracing/coresight/coresight-tpdm.ko",
|
||||
"drivers/hwtracing/coresight/coresight-trace-noc.ko",
|
||||
"drivers/hwtracing/stm/stm_console.ko",
|
||||
"drivers/hwtracing/stm/stm_core.ko",
|
||||
"drivers/hwtracing/stm/stm_ftrace.ko",
|
||||
"drivers/hwtracing/stm/stm_p_ost.ko",
|
||||
"drivers/i2c/busses/i2c-msm-geni.ko",
|
||||
"drivers/i3c/master/i3c-master-msm-geni.ko",
|
||||
"drivers/input/misc/pm8941-pwrkey.ko",
|
||||
"drivers/input/misc/qcom-hv-haptics.ko",
|
||||
"drivers/interconnect/icc-test.ko",
|
||||
"drivers/interconnect/qcom/icc-bcm-voter.ko",
|
||||
"drivers/interconnect/qcom/icc-debug.ko",
|
||||
"drivers/interconnect/qcom/icc-rpmh.ko",
|
||||
"drivers/interconnect/qcom/qnoc-pineapple.ko",
|
||||
"drivers/interconnect/qcom/qnoc-qos.ko",
|
||||
"drivers/iommu/arm/arm-smmu/arm_smmu.ko",
|
||||
"drivers/iommu/msm_dma_iommu_mapping.ko",
|
||||
"drivers/iommu/qcom_iommu_debug.ko",
|
||||
"drivers/iommu/qcom_iommu_util.ko",
|
||||
"drivers/irqchip/msm_show_resume_irq.ko",
|
||||
"drivers/irqchip/qcom-pdc.ko",
|
||||
"drivers/leds/leds-qti-flash.ko",
|
||||
"drivers/leds/leds-qti-tri-led.ko",
|
||||
"drivers/mailbox/msm_qmp.ko",
|
||||
"drivers/mailbox/qcom-ipcc.ko",
|
||||
"drivers/mfd/qcom-spmi-pmic.ko",
|
||||
"drivers/nvmem/nvmem_qcom-spmi-sdam.ko",
|
||||
"drivers/pci/controller/pci-msm-drv.ko",
|
||||
"drivers/perf/qcom_llcc_pmu.ko",
|
||||
"drivers/phy/qualcomm/phy-qcom-ufs.ko",
|
||||
"drivers/phy/qualcomm/phy-qcom-ufs-qmp-v4-kalama.ko",
|
||||
"drivers/phy/qualcomm/phy-qcom-ufs-qrbtc-sdm845.ko",
|
||||
"drivers/pinctrl/qcom/pinctrl-msm.ko",
|
||||
"drivers/pinctrl/qcom/pinctrl-pineapple.ko",
|
||||
"drivers/pinctrl/qcom/pinctrl-spmi-gpio.ko",
|
||||
"drivers/pinctrl/qcom/pinctrl-spmi-mpp.ko",
|
||||
"drivers/power/reset/qcom-pon.ko",
|
||||
"drivers/power/reset/qcom-reboot-reason.ko",
|
||||
"drivers/power/reset/reboot-mode.ko",
|
||||
"drivers/power/supply/qti_battery_charger.ko",
|
||||
"drivers/pwm/pwm-qti-lpg.ko",
|
||||
"drivers/regulator/debug-regulator.ko",
|
||||
"drivers/regulator/proxy-consumer.ko",
|
||||
"drivers/regulator/qti-fixed-regulator.ko",
|
||||
"drivers/regulator/rpmh-regulator.ko",
|
||||
"drivers/regulator/stub-regulator.ko",
|
||||
"drivers/remoteproc/qcom_pil_info.ko",
|
||||
"drivers/remoteproc/qcom_q6v5.ko",
|
||||
"drivers/remoteproc/qcom_q6v5_pas.ko",
|
||||
"drivers/remoteproc/qcom_spss.ko",
|
||||
"drivers/remoteproc/rproc_qcom_common.ko",
|
||||
"drivers/rpmsg/qcom_glink.ko",
|
||||
"drivers/rpmsg/qcom_glink_smem.ko",
|
||||
"drivers/rpmsg/qcom_glink_spss.ko",
|
||||
"drivers/rpmsg/qcom_smd.ko",
|
||||
"drivers/rtc/rtc-pm8xxx.ko",
|
||||
"drivers/slimbus/slim-qcom-ngd-ctrl.ko",
|
||||
"drivers/slimbus/slimbus.ko",
|
||||
"drivers/soc/qcom/altmode-glink.ko",
|
||||
"drivers/soc/qcom/boot_stats.ko",
|
||||
"drivers/soc/qcom/charger-ulog-glink.ko",
|
||||
"drivers/soc/qcom/cmd-db.ko",
|
||||
"drivers/soc/qcom/core_hang_detect.ko",
|
||||
"drivers/soc/qcom/cpucp_log.ko",
|
||||
"drivers/soc/qcom/crm.ko",
|
||||
"drivers/soc/qcom/dcc_v2.ko",
|
||||
"drivers/soc/qcom/dcvs/bwmon.ko",
|
||||
"drivers/soc/qcom/dcvs/dcvs_fp.ko",
|
||||
"drivers/soc/qcom/dcvs/memlat.ko",
|
||||
"drivers/soc/qcom/dcvs/qcom-dcvs.ko",
|
||||
"drivers/soc/qcom/dcvs/qcom-pmu-lib.ko",
|
||||
"drivers/soc/qcom/llcc-qcom.ko",
|
||||
"drivers/soc/qcom/llcc_perfmon.ko",
|
||||
"drivers/soc/qcom/mdt_loader.ko",
|
||||
"drivers/soc/qcom/mem_buf/mem_buf.ko",
|
||||
"drivers/soc/qcom/mem_buf/mem_buf_dev.ko",
|
||||
"drivers/soc/qcom/mem_buf/mem_buf_msgq.ko",
|
||||
"drivers/soc/qcom/memory_dump_v2.ko",
|
||||
"drivers/soc/qcom/msm_performance.ko",
|
||||
"drivers/soc/qcom/pdr_interface.ko",
|
||||
"drivers/soc/qcom/pmic-pon-log.ko",
|
||||
"drivers/soc/qcom/pmic_glink.ko",
|
||||
"drivers/soc/qcom/qcom_aoss.ko",
|
||||
"drivers/soc/qcom/qcom_cpucp.ko",
|
||||
"drivers/soc/qcom/qcom_cpuss_sleep_stats.ko",
|
||||
"drivers/soc/qcom/qcom_ramdump.ko",
|
||||
"drivers/soc/qcom/qcom_rpmh.ko",
|
||||
"drivers/soc/qcom/qcom_stats.ko",
|
||||
"drivers/soc/qcom/qmi_helpers.ko",
|
||||
"drivers/soc/qcom/qti_battery_debug.ko",
|
||||
"drivers/soc/qcom/rq_stats.ko",
|
||||
"drivers/soc/qcom/secure_buffer.ko",
|
||||
"drivers/soc/qcom/smem.ko",
|
||||
"drivers/soc/qcom/smp2p.ko",
|
||||
"drivers/soc/qcom/smp2p_sleepstate.ko",
|
||||
"drivers/soc/qcom/socinfo.ko",
|
||||
"drivers/soc/qcom/sys_pm_vx.ko",
|
||||
"drivers/spi/spi-msm-geni.ko",
|
||||
"drivers/spmi/spmi-glink-debug.ko",
|
||||
"drivers/spmi/spmi-pmic-arb.ko",
|
||||
"drivers/tty/hvc/hvc_gunyah.ko",
|
||||
"drivers/tty/serial/msm_geni_serial.ko",
|
||||
"drivers/ufs/host/ufs_qcom.ko",
|
||||
"drivers/usb/dwc3/dwc3-msm.ko",
|
||||
"drivers/usb/gadget/function/usb_f_ccid.ko",
|
||||
"drivers/usb/gadget/function/usb_f_cdev.ko",
|
||||
"drivers/usb/gadget/function/usb_f_qdss.ko",
|
||||
"drivers/usb/phy/phy-generic.ko",
|
||||
"drivers/usb/phy/phy-msm-snps-eusb2.ko",
|
||||
"drivers/usb/phy/phy-msm-ssusb-qmp.ko",
|
||||
"drivers/usb/phy/phy-qcom-emu.ko",
|
||||
"drivers/usb/repeater/repeater.ko",
|
||||
"drivers/usb/repeater/repeater-qti-pmic-eusb2.ko",
|
||||
"drivers/usb/typec/ucsi/ucsi_glink.ko",
|
||||
"drivers/virt/gunyah/gh_ctrl.ko",
|
||||
"drivers/virt/gunyah/gh_dbl.ko",
|
||||
"drivers/virt/gunyah/gh_irq_lend.ko",
|
||||
"drivers/virt/gunyah/gh_mem_notifier.ko",
|
||||
"drivers/virt/gunyah/gh_msgq.ko",
|
||||
"drivers/virt/gunyah/gh_rm_drv.ko",
|
||||
"drivers/virt/gunyah/gunyah.ko",
|
||||
"kernel/trace/qcom_ipc_logging.ko",
|
||||
"net/qrtr/qrtr.ko",
|
||||
"net/qrtr/qrtr-smd.ko",
|
||||
]
|
||||
|
||||
_pineapple_consolidate_in_tree_modules = _pineapple_in_tree_modules + [
|
||||
# keep sorted
|
||||
"drivers/hwtracing/coresight/coresight-etm4x.ko",
|
||||
"drivers/misc/lkdtm/lkdtm.ko",
|
||||
"kernel/locking/locktorture.ko",
|
||||
"kernel/rcu/rcutorture.ko",
|
||||
"kernel/torture.ko",
|
||||
"lib/atomic64_test.ko",
|
||||
"lib/test_user_copy.ko",
|
||||
]
|
||||
|
||||
# Modules built but not copied to dist directory
|
||||
_pineapple_module_implicit_outs = [
|
||||
# keep sorted
|
||||
"drivers/block/zram/zram.ko",
|
||||
"mm/zsmalloc.ko",
|
||||
]
|
||||
|
||||
if not target_name in targets:
|
||||
fail("{} not defined in target_variants.bzl".format(target_name))
|
||||
|
||||
for variant in variants:
|
||||
if variant == "consolidate":
|
||||
mod_list = _pineapple_consolidate_in_tree_modules
|
||||
else:
|
||||
mod_list = _pineapple_in_tree_modules
|
||||
|
||||
define_msm(
|
||||
msm_target = target_name,
|
||||
variant = variant,
|
||||
in_tree_module_list = mod_list,
|
||||
implicit_out_list = _pineapple_module_implicit_outs,
|
||||
)
|
61
super_image.bzl
Normal file
61
super_image.bzl
Normal file
@ -0,0 +1,61 @@
|
||||
load("//build/kernel/kleaf/impl:image/image_utils.bzl", "image_utils")
|
||||
|
||||
def _super_image_impl(ctx):
|
||||
super_img = ctx.actions.declare_file("{}/super.img".format(ctx.label.name))
|
||||
super_img_size = ctx.attr.super_img_size
|
||||
super_unsparsed_img = ctx.actions.declare_file("{}/super_unsparsed.img".format(ctx.label.name))
|
||||
staging_dir = super_img.dirname + "/staging"
|
||||
|
||||
# Create a s bash array of input images
|
||||
super_img_contents = "("
|
||||
for dep in ctx.attr.deps:
|
||||
for f in dep.files.to_list():
|
||||
if f.extension == "img":
|
||||
super_img_contents += f.path + " "
|
||||
super_img_contents += ")"
|
||||
|
||||
command = """
|
||||
# Build super
|
||||
(
|
||||
SUPER_IMAGE_CONTENTS={super_img_contents}
|
||||
SUPER_IMAGE_SIZE={super_img_size}
|
||||
build_super
|
||||
)
|
||||
# Move output files into place
|
||||
mv "${{DIST_DIR}}/super.img" {super_img}
|
||||
mv "${{DIST_DIR}}/super_unsparsed.img" {super_unsparsed_img}
|
||||
""".format(
|
||||
super_img = super_img.path,
|
||||
super_img_size = super_img_size,
|
||||
super_unsparsed_img = super_unsparsed_img.path,
|
||||
super_img_contents = super_img_contents,
|
||||
)
|
||||
|
||||
return image_utils.build_modules_image_impl_common(
|
||||
ctx = ctx,
|
||||
what = "super",
|
||||
outputs = [super_img, super_unsparsed_img],
|
||||
build_command = command,
|
||||
modules_staging_dir = staging_dir,
|
||||
mnemonic = "SuperImage",
|
||||
)
|
||||
|
||||
super_image = rule(
|
||||
implementation = _super_image_impl,
|
||||
doc = """Build super image.
|
||||
|
||||
Execute `build_super` in `build_utils.sh`.
|
||||
|
||||
When included in a `copy_to_dist_dir` rule, this rule copies a `super.img` to `DIST_DIR`.
|
||||
""",
|
||||
attrs = image_utils.build_modules_image_attrs_common({
|
||||
"deps": attr.label_list(
|
||||
allow_files = True,
|
||||
mandatory = True,
|
||||
),
|
||||
"super_img_size": attr.int(
|
||||
default = 0x10000000,
|
||||
doc = "Size of super.img",
|
||||
),
|
||||
}),
|
||||
)
|
14
target_variants.bzl
Normal file
14
target_variants.bzl
Normal file
@ -0,0 +1,14 @@
|
||||
targets = [
|
||||
# keep sorted
|
||||
"kalama",
|
||||
"pineapple",
|
||||
]
|
||||
|
||||
variants = [
|
||||
# keep sorted
|
||||
"consolidate",
|
||||
"gki",
|
||||
]
|
||||
|
||||
def get_all_variants():
|
||||
return [(t, v) for t in targets for v in variants]
|
Loading…
Reference in New Issue
Block a user