blob: 696f01293afd9867c50236dac06574a635392bdc [file] [edit]
# SPDX-License-Identifier: GPL-2.0-or-later
load("//build/bazel_common_rules/dist:dist.bzl", "copy_to_dist_dir")
load(
"//build/kernel/kleaf:kernel.bzl",
"kernel_abi",
"kernel_build",
"kernel_build_config",
"kernel_dtstree",
"kernel_images",
"kernel_module_group",
"kernel_modules_install",
"kernel_unstripped_modules_archive",
"merged_kernel_uapi_headers",
)
load("//private/devices/google/common/kleaf:create_file.bzl", "create_file")
load("//private/devices/google/zuma:constants.bzl", "ZUMA_DPM_DTBOS", "ZUMA_DTBS")
load("//private/devices/google/zumapro:constants.bzl", "ZUMAPRO_DPM_DTBOS", "ZUMAPRO_DTBS", "ZUMAPRO_MODULE_OUTS")
load(":constants.bzl", "CAIMITO_DTBOS")
kernel_build_config(
name = "build_config",
srcs = [
# do not sort
"//private/devices/google/zumapro:build_config",
"build.config.caimito",
],
)
kernel_dtstree(
name = "dtstree",
srcs = glob(["dts/**"]) + [
"//private/google-modules/soc/gs:gs.dt-bindings",
],
makefile = "dts/Makefile",
)
create_file(
name = "kconfig_ext",
srcs = [
# do not sort
"//private/devices/google/zumapro:kconfig_ext",
"Kconfig.ext.caimito",
],
out = "Kconfig.ext",
)
filegroup(
name = "defconfig_fragments",
srcs = [
# do not sort
"//private/devices/google/zumapro:defconfig_fragments",
"caimito_defconfig",
],
)
filegroup(
name = "kernel_sources",
srcs = [
# keep sorted
"//private/devices/google/zumapro:kernel_sources",
"//private/google-modules/display/common:common.kconfig",
"//private/google-modules/fingerprint/qcom/qfs4008:qbt_handler.kconfig",
"//private/google-modules/radio/samsung/s5400:cpif.kconfig",
"//private/google-modules/touch/common:touch.common.kconfig",
"//private/google-modules/touch/sec:sec.kconfig",
],
)
kernel_build(
name = "kernel",
srcs = [":kernel_sources"],
outs = [
".config",
] + [
"zuma/{}".format(dtb)
for dtb in ZUMA_DTBS + ZUMA_DPM_DTBOS
] + [
"zumapro/{}".format(dtb)
for dtb in ZUMAPRO_DTBS + ZUMAPRO_DPM_DTBOS
] + CAIMITO_DTBOS,
base_kernel = "//common:kernel_aarch64",
build_config = ":build_config",
collect_unstripped_modules = True,
defconfig_fragments = [":defconfig_fragments"],
dtstree = ":dtstree",
kconfig_ext = ":kconfig_ext",
kmi_symbol_list = "//common:android/abi_gki_aarch64_pixel",
make_goals = [
"modules",
"dtbs",
],
module_outs = ZUMAPRO_MODULE_OUTS,
strip_modules = True,
)
kernel_module_group(
name = "kernel_ext_modules",
srcs = [
# FIXME: SoC modules need to be loaded first or the device will crash.
# Module dependencies should not rely on the order. This needs be fixed.
"//private/devices/google/zumapro:kernel_ext_modules",
] + [
# keep sorted
"//private/google-modules/amplifiers/cs35l41",
"//private/google-modules/amplifiers/cs40l26",
"//private/google-modules/amplifiers/snd_soc_wm_adsp:snd-soc-wm-adsp",
"//private/google-modules/bluetooth/broadcom:bluetooth.broadcom",
"//private/google-modules/display/common/panel_tests",
"//private/google-modules/display/common/panels",
"//private/google-modules/display/panels/caimito:panel-gs-cm4",
"//private/google-modules/display/panels/caimito:panel-gs-km4",
"//private/google-modules/display/panels/caimito:panel-gs-tk4a",
"//private/google-modules/display/panels/caimito:panel-gs-tk4b",
"//private/google-modules/display/panels/caimito:panel-gs-tk4c",
"//private/google-modules/display/panels/caimito:panel-gs-tk4c-test",
"//private/google-modules/fingerprint/qcom/qfs4008:qbt_handler",
"//private/google-modules/gps/broadcom/bcm47765",
"//private/google-modules/nfc",
"//private/google-modules/radio/samsung/s5400:cpif",
"//private/google-modules/touch/common:touch.common",
"//private/google-modules/touch/sec",
"//private/google-modules/touch/synaptics/syna_gtd:syna_touch",
"//private/google-modules/uwb/qorvo/qm35/qm35s:uwb.qm35",
"//private/google-modules/wlan/bcm4390:bcmdhd4390",
"//private/google-modules/wlan/wlan_ptracker",
],
)
kernel_modules_install(
name = "kernel_modules_install",
kernel_build = ":kernel",
kernel_modules = [":kernel_ext_modules"],
)
kernel_unstripped_modules_archive(
name = "kernel_unstripped_modules_archive",
kernel_build = ":kernel",
kernel_modules = [":kernel_ext_modules"],
)
merged_kernel_uapi_headers(
name = "merged_kernel_uapi_headers",
kernel_build = ":kernel",
kernel_modules = [":kernel_ext_modules"],
)
create_file(
name = "vendor_ramdisk_modules_list",
srcs = [
# do not sort
"//private/devices/google/zumapro:vendor_ramdisk_modules_list",
"vendor_ramdisk.modules.caimito",
],
out = "vendor_ramdisk.modules",
)
create_file(
name = "system_dlkm_modules_list",
srcs = ["//private/devices/google/zumapro:system_dlkm_modules_list"],
out = "system_dlkm.modules",
)
create_file(
name = "system_dlkm_props",
srcs = ["//private/devices/google/zumapro:system_dlkm_props"],
out = "system_dlkm.props",
)
create_file(
name = "vendor_dlkm_modules_list",
srcs = ["//private/devices/google/zumapro:vendor_dlkm_modules_list"],
out = "vendor_dlkm.modules",
)
create_file(
name = "vendor_dlkm_modules_blocklist",
srcs = [
# do not sort
"//private/devices/google/zumapro:vendor_dlkm_modules_blocklist",
"vendor_dlkm.blocklist.caimito",
],
out = "vendor_dlkm.blocklist",
)
create_file(
name = "vendor_dlkm_props",
srcs = ["//private/devices/google/zumapro:vendor_dlkm_props"],
out = "vendor_dlkm.props",
)
filegroup(
name = "insmod_cfgs",
srcs = glob(["insmod_cfg/*.cfg"]),
)
kernel_images(
name = "kernel_images",
base_kernel_images = "//common:kernel_aarch64_images",
# TODO: b/362627953 - Remove dtb.img
boot_image_outs = [
"dtb.img",
"vendor_kernel_boot.img",
],
build_dtbo = True,
build_initramfs = True,
build_system_dlkm = True,
build_vendor_dlkm = True,
build_vendor_kernel_boot = True,
dtbo_srcs = [":kernel/" + dtbo for dtbo in CAIMITO_DTBOS],
kernel_build = ":kernel",
kernel_modules_install = ":kernel_modules_install",
modules_list = ":vendor_ramdisk_modules_list",
ramdisk_compression = "lz4",
system_dlkm_modules_list = ":system_dlkm_modules_list",
system_dlkm_props = ":system_dlkm_props",
vendor_dlkm_archive = True,
vendor_dlkm_etc_files = [":insmod_cfgs"],
vendor_dlkm_modules_blocklist = ":vendor_dlkm_modules_blocklist",
vendor_dlkm_modules_list = ":vendor_dlkm_modules_list",
vendor_dlkm_props = ":vendor_dlkm_props",
deps = ["//private/devices/google/common:sepolicy"],
)
copy_to_dist_dir(
name = "dist",
data = [
# keep sorted
":insmod_cfgs",
":kernel",
":kernel_images",
":kernel_modules_install",
":kernel_unstripped_modules_archive",
":merged_kernel_uapi_headers",
"//common:android/abi_gki_aarch64_pixel",
"//common:kernel_aarch64",
"//common:kernel_aarch64_gki_boot_image",
"//common:kernel_aarch64_headers",
"//private/devices/google/common:kernel_gki_modules",
] + select({
"//private/devices/google/common:enable_download_fips140": ["@gki_prebuilt_fips140//fips140.ko"],
"//private/devices/google/common:disable_download_fips140": [],
}),
dist_dir = "out/caimito/dist",
flat = True,
log = "info",
)
# For ABI monitoring
kernel_abi(
name = "kernel_abi",
kernel_build = ":kernel",
kernel_modules = [":kernel_ext_modules"],
kmi_symbol_list_add_only = True,
module_grouping = False,
)
# For compatibility
alias(
name = "zumapro_soc.caimito",
actual = "//private/devices/google/zumapro:zumapro_soc",
)
alias(
name = "zumapro_caimito_dist",
actual = ":dist",
)
alias(
name = "zumapro_caimito_abi_update_symbol_list",
actual = ":kernel_abi_update_symbol_list",
)