| # 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", |
| ) |