From d6b9f4f150483183d6b1e15dc99960f3feb8299d Mon Sep 17 00:00:00 2001 From: Aaron Kling Date: Mon, 17 Feb 2025 23:51:21 -0600 Subject: [PATCH] Build modules --- BUILD.bazel | 147 +++++++++++++++++++++++++++++++++++++++++++ lineage.dependencies | 20 ++++++ 2 files changed, 167 insertions(+) diff --git a/BUILD.bazel b/BUILD.bazel index c83f920..96ddd3c 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -2,9 +2,14 @@ load("@rules_pkg//pkg:install.bzl", "pkg_install") load("@rules_pkg//pkg:mappings.bzl", "pkg_files", "strip_prefix") +load("//build/kernel/kleaf:hermetic_tools.bzl", "hermetic_genrule") load( "//build/kernel/kleaf:kernel.bzl", + "ddk_uapi_headers", + "kernel_abi", "kernel_build", + "kernel_module_group", + "kernel_modules_install", ) config_setting( @@ -337,6 +342,140 @@ alias( visibility = ["//visibility:public"], ) +alias( + name = "kernel_tegra_headers", + actual = select({ + "config_arm": ":kernel_arm_tegra_headers", + "//conditions:default": ":kernel_aarch64_tegra_headers", + }), + visibility = ["//visibility:public"], +) + +alias( + name = "kernel_tegra_uapi_headers", + actual = select({ + "config_arm": ":kernel_arm_tegra_uapi_headers", + "//conditions:default": ":kernel_aarch64_tegra_uapi_headers", + }), +) + +kernel_module_group( + name = "tegra_aarch64_external_modules", + srcs = [ + "//vendor/nvidia/hwpm:nvhwpm", + "//vendor/nvidia/nvidia-oot:host1x", + "//vendor/nvidia/nvidia-oot:host1x-nvhost", + "//vendor/nvidia/nvidia-oot:tegra-drm", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra-utils", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra210-ahub", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra210-dmic", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra210-i2s", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra210-admaif", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra210-amx", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra210-adx", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra210-mixer", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra210-sfc", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra210-afc", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra210-mvc", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra210-iqc", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra210-ope", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra186-dspk", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra186-arad", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra186-asrc", + "//vendor/nvidia/nvidia-oot:snd-soc-tegra-machine-driver", + "//vendor/nvidia/nvidia-oot:governor_pod_scaling", + "//vendor/nvidia/nvidia-oot:pwm-tegra-tachometer", + "//vendor/nvidia/nvidia-oot:nvpmodel-clk-cap", + "//vendor/nvidia/nvidia-oot:tegra_bpmp", + "//vendor/nvidia/nvidia-oot:nvidia-vrs-pseq", + "//vendor/nvidia/nvidia-oot:mc-utils", + "//vendor/nvidia/nvidia-oot:tegra-dce", + "//vendor/nvidia/nvidia-oot:tegra-se", + "//vendor/nvidia/nvidia-oot:tsecriscv", + "//vendor/nvidia/nvidia-oot:fusb301", + "//vendor/nvidia/nvidia-oot:nvsciipc", + "//vendor/nvidia/nvidia-oot:nvmap", + "//vendor/nvidia/lineage-oot:hid-nvidia-shield-oot", + "//vendor/nvidia/lineage-oot:panel-jdi-58-1440-810", + "//vendor/nvidia/lineage-oot:rm31080a_ctrl", + "//vendor/nvidia/lineage-oot:rm31080a_ts", + "//vendor/nvidia/lineage-oot:max77620-restart", + "//vendor/nvidia/lineage-oot:snd-soc-es755", + "//vendor/nvidia/display:openrm", + "//vendor/nvidia/nvgpu:nvgpu", + ], +) + +kernel_module_group( + name = "tegra_arm_external_modules", + srcs = [ + "//vendor/nvidia/lineage-oot:hid-nvidia-shield-oot", + "//vendor/nvidia/lineage-oot:panel-jdi-58-1440-810", + "//vendor/nvidia/lineage-oot:rm31080a_ctrl", + "//vendor/nvidia/lineage-oot:rm31080a_ts", + "//vendor/nvidia/lineage-oot:lc709203f_battery", + "//vendor/nvidia/lineage-oot:palmas-poweroff", + ], +) + +alias( + name = "tegra_external_modules", + actual = select({ + "config_arm": ":tegra_arm_external_modules", + "//conditions:default": ":tegra_aarch64_external_modules", + }), + visibility = ["//visibility:public"], +) + +kernel_modules_install( + name = "tegra_modules_install", + kernel_build = ":kernel_tegra", + outs = [ "modules.dep", "modules.alias", ], + kernel_modules = [ + ":tegra_external_modules", + ], +) + +ddk_uapi_headers( + name = "tegra_ddk_uapi_headers", + srcs = [ + "//vendor/nvidia/hwpm:uapi_headers", + "//vendor/nvidia/nvidia-oot:uapi_headers", + ], + out = "ddk-uapi-headers.tar.gz", + kernel_build = ":kernel_tegra", +) + +hermetic_genrule( + name = "tegra_merged_kernel_uapi_headers", + srcs = [ + ":kernel_tegra_uapi_headers", + ":tegra_ddk_uapi_headers", + ], + outs = [ + "kernel-uapi-headers.tar.gz", + ], + cmd = """ + mkdir -p out + mkdir -p vendor/nvidia/tegra + tar -xzf $$(find bazel-out/ -name kernel-uapi-headers.tar.gz -print -quit) -C out + tar -xzf $$(find bazel-out/ -name ddk-uapi-headers.tar.gz -print -quit) -C out + tar -czf $(@D)/kernel-uapi-headers.tar.gz . -C out + """, +) +pkg_files( + name = "tegra_uapi_headers_dist_files", + srcs = [ + ":tegra_merged_kernel_uapi_headers", + ], + strip_prefix = strip_prefix.files_only(), +) +pkg_install( + name = "tegra_uapi_headers_dist", + srcs = [":tegra_uapi_headers_dist_files"], + destdir = "out/tegra/dist", +) + filegroup( name = "tegra_gki_files", srcs = select({ @@ -357,6 +496,8 @@ pkg_files( name = "tegra_dist_files", srcs = [ ":kernel_tegra", + ":tegra_modules_install", + ":tegra_merged_kernel_uapi_headers", # Mixed build: Additional GKI artifacts. ":tegra_gki_files", ], @@ -367,3 +508,9 @@ pkg_install( srcs = [":tegra_dist_files"], destdir = "out/tegra/dist", ) + +kernel_abi( + name = "tegra_abi", + kernel_build = ":kernel_tegra", + kernel_modules = [":tegra_external_modules"], +) diff --git a/lineage.dependencies b/lineage.dependencies index e0db7c6..e4ed3a8 100644 --- a/lineage.dependencies +++ b/lineage.dependencies @@ -1,9 +1,29 @@ [ + { + "repository": "android_kernel_nvidia_display", + "target_path": "vendor/nvidia/display", + }, + { + "repository": "android_kernel_nvidia_hwpm", + "target_path": "vendor/nvidia/hwpm", + }, { "repository": "android_kernel_nvidia_kernel", "target_path": "vendor/nvidia/kernel", "branch": "lineage-23.0_6.12" }, + { + "repository": "android_kernel_nvidia_lineage-oot", + "target_path": "vendor/nvidia/lineage-oot", + }, + { + "repository": "android_kernel_nvidia_nvidia-oot", + "target_path": "vendor/nvidia/nvidia-oot", + }, + { + "repository": "android_kernel_nvidia_nvgpu", + "target_path": "vendor/nvidia/nvgpu", + }, { "repository": "android_hardware_nvidia_t18x_lineage", "target_path": "vendor/nvidia/tegra/dts/t18x/lineage"