From 33391df56b5d81f56901976122a8c10ecec05bd4 Mon Sep 17 00:00:00 2001 From: Aaron Kling Date: Mon, 17 Feb 2025 00:06:57 -0600 Subject: [PATCH] Build dtbs --- BUILD.bazel | 76 ++++++++++++++++++++++++++- dts/.gitignore | 1 + dts/BUILD.bazel | 9 ++++ dts/Makefile | 119 +++++++++++++++++++++++++++++++++++++++++++ lineage.dependencies | 24 +++++++++ 5 files changed, 227 insertions(+), 2 deletions(-) create mode 100644 dts/.gitignore create mode 100644 dts/BUILD.bazel create mode 100644 dts/Makefile diff --git a/BUILD.bazel b/BUILD.bazel index 83efd70..c83f920 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -129,10 +129,67 @@ _TEGRA_AARCH64_MODULES_LIST = [ "sound/soc/tegra/snd-soc-tegra-pcm.ko", ] +_TEGRA_AARCH64_DTB_LIST = [ + # keep sorted + "tegra186-quill-p3310-1000-c03-00-base.dtb", + "tegra186-p3636-0001-p3509-0000-a01-android.dtb", + "tegra194-p2888-0001-p2822-0000.dtb", + "tegra194-p3668-0000-p3509-0000-android.dtb", + "tegra194-p3668-0001-p3509-0000-android.dtb", + "tegra194-p2888-0001-p2822-0000-overlay.dtbo", + "tegra194-p2888-0005-overlay.dtbo", + "tegra194-p3668-p3509-overlay.dtbo", + "tegra210-baracus.dtb", + "tegra210-darcy-p2894-0000-a00-00.dtb", + "tegra210-darcy-p2894-0050-a04-00.dtb", + "tegra210-darcy-p2894-0050-a08-00.dtb", + "tegra210-darcy-p2894-0052-a08-00.dtb", + "tegra210-foster-e-hdd-cpc-p2530-0933-e03-00.dtb", + "tegra210-foster-e-hdd-p2530-0932-e01-00.dtb", + "tegra210-foster-e-hdd-p2530-0932-e02-00.dtb", + "tegra210-foster-e-p2530-0930-e01-00.dtb", + "tegra210-foster-e-p2530-0930-e02-00.dtb", + "tegra210-jetson-tx1-p2597-2180-a01-android-devkit.dtb", + "tegra210-loki-e-p2530-0030-e01-00.dtb", + "tegra210-loki-e-p2530-0030-e02-00.dtb", + "tegra210-loki-e-p2530-0030-e03-00.dtb", + "tegra210-loki-e-p2530-0031-e01-00.dtb", + "tegra210-loki-e-p2530-0031-e02-00.dtb", + "tegra210-loki-e-p2530-0031-e03-00.dtb", + "tegra210-p3448-0000-p3449-0000-a02-android-devkit.dtb", + "tegra210-p3448-0000-p3449-0000-b00-android-devkit.dtb", + "tegra210-p3448-0002-p3449-0000-a02-android-devkit.dtb", + "tegra210-p3448-0002-p3449-0000-b00-android-devkit.dtb", + "tegra210-p3448-0003-p3542-0000-android-devkit.dtb", + "tegra210b01-darcy-p2894-0050-a08-00.dtb", + "tegra210b01-darcy-p2894-2551-b00-00.dtb", + "tegra210b01-darcy-p2894-3551-b03-00.dtb", + "tegra210b01-sif-p3425-0500-a01.dtb", + "tegra210b01-sif-p3425-0500-a02.dtb", + "tegra210b01-sif-p3425-0500-a04.dtb", + "tegra210-odin.dtb", + "tegra210b01-odin.dtb", + "tegra210b01-vali.dtb", + "tegra210b01-fric.dtb", + "tegra234-carveouts.dtbo", + "tegra234-p3701-0000-p3737-0000.dtb", + "tegra234-p3701-0004-p3737-0000.dtb", + "tegra234-p3767-0000-p3768-0000-a0-android.dtb", + "tegra234-p3767-0001-p3768-0000-a0-android.dtb", + "tegra234-p3767-0003-p3768-0000-a0-android.dtb", + "tegra234-p3767-0004-p3768-0000-a0-android.dtb", + "tegra234-p3737-audio-codec-rt5658-40pin.dtbo", + "tegra234-p3737-overlay.dtbo", + "tegra234-p3701-overlay.dtbo", + "tegra234-p3767-overlay.dtbo", + "tegra234-optee.dtb", +] + kernel_build( name = "kernel_aarch64_tegra", srcs = ["//vendor/nvidia/kernel:kernel_aarch64_sources",], - outs = [], + dtstree = "//vendor/nvidia/tegra/dts:tegra_dts", + outs = _TEGRA_AARCH64_DTB_LIST, arch = "arm64", # Enable mixed build. @@ -142,6 +199,7 @@ kernel_build( kmi_symbol_list = "//vendor/nvidia/kernel:gki/aarch64/symbols/tegra", make_goals = [ "modules", + "dtbs", ], makefile = "//vendor/nvidia/kernel:Makefile", module_outs = _TEGRA_AARCH64_MODULES_LIST, @@ -236,10 +294,23 @@ _TEGRA_ARM_MODULES_LIST = [ "sound/soc/tegra/snd-soc-tegra30-i2s.ko", ] +_TEGRA_ARM_DTB_LIST = [ + # keep sorted + "tegra124-ardbeg.dtb", + "tegra124-jetson-tk1-android.dtb", + "tegra124-loki-e2530-0000-a01.dtb", + "tegra124-loki-e2530-0000-c00.dtb", + "tegra124-loki-e2530-0100-a01.dtb", + "tegra124-loki-e2530-0100-c00.dtb", + "tegra124-tn8.dtb", + "tegra124-xiaomi-mocha-android.dtb", +] + kernel_build( name = "kernel_arm_tegra", srcs = ["//vendor/nvidia/kernel:kernel_arm_sources",], - outs = [], + dtstree = "//vendor/nvidia/tegra/dts:tegra_dts", + outs = _TEGRA_ARM_DTB_LIST, arch = "arm", # Enable mixed build. @@ -249,6 +320,7 @@ kernel_build( kmi_symbol_list = "//vendor/nvidia/kernel:gki/arm/symbols/tegra", make_goals = [ "modules", + "dtbs", ], makefile = "//vendor/nvidia/kernel:Makefile", module_outs = _TEGRA_ARM_MODULES_LIST, diff --git a/dts/.gitignore b/dts/.gitignore new file mode 100644 index 0000000..150f68c --- /dev/null +++ b/dts/.gitignore @@ -0,0 +1 @@ +*/* diff --git a/dts/BUILD.bazel b/dts/BUILD.bazel new file mode 100644 index 0000000..e591f74 --- /dev/null +++ b/dts/BUILD.bazel @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + +load("//build/kernel/kleaf:kernel.bzl", "kernel_dtstree") + +kernel_dtstree( + name = "tegra_dts", + + visibility = ["//visibility:public"], +) diff --git a/dts/Makefile b/dts/Makefile new file mode 100644 index 0000000..2126d86 --- /dev/null +++ b/dts/Makefile @@ -0,0 +1,119 @@ +# SPDX-FileCopyrightText: Copyright (c) 2022-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: GPL-2.0-only + +ifneq ($(TEGRA_TOP),) +SOURCE_TOP := $(TEGRA_TOP) +else ifneq ($(TOP),) +SOURCE_TOP := $(TOP) +else ifneq ($(ROOT_DIR),) +SOURCE_TOP := $(ROOT_DIR) +else +$(error TEGRA_TOP or TOP is not defined) +endif + +tegra-dtstree := $(SOURCE_TOP)/vendor/nvidia/tegra/dts + +null := +space :=$(null) $(null) + +DTC_INCLUDE := +# SOC independent common include +DTC_INCLUDE += $(tegra-dtstree)/tegra/nv-public + +ifeq ($(SRCARCH),arm64) +ifeq ($(CONFIG_ARCH_TEGRA_234_SOC),y) +# SOC T23X specific common include +DTC_INCLUDE += $(tegra-dtstree)/t23x/nv-public/include/kernel +DTC_INCLUDE += $(tegra-dtstree)/t23x/nv-public/include/nvidia-oot +DTC_INCLUDE += $(tegra-dtstree)/t23x/nv-public/include/platforms +DTC_INCLUDE += $(tegra-dtstree)/t23x/nv-public +endif +DTC_INCLUDE += $(srctree)/arch/arm64/boot/dts/nvidia +else ifeq ($(SRCARCH),arm) +DTC_INCLUDE += $(srctree)/arch/arm/boot/dts/nvidia +endif + +dtb-y := +dtbo-y := +fdts := +ifeq ($(CONFIG_ARCH_TEGRA_114_SOC),y) +fdts += $(tegra-dtstree)/t114 +endif +ifeq ($(CONFIG_ARCH_TEGRA_124_SOC),y) +fdts += $(tegra-dtstree)/t124 +endif +ifeq ($(CONFIG_ARCH_TEGRA_210_SOC),y) +fdts += $(tegra-dtstree)/t21x +endif +ifeq ($(CONFIG_ARCH_TEGRA_186_SOC),y) +fdts += $(tegra-dtstree)/t18x +endif +ifeq ($(CONFIG_ARCH_TEGRA_194_SOC),y) +fdts += $(tegra-dtstree)/t19x +endif +ifeq ($(CONFIG_ARCH_TEGRA_234_SOC),y) +fdts += $(tegra-dtstree)/t23x +endif + +# Add internal SOCs to scan the DT makefiles +ifneq ($(internal_soc_list),) +fdts += $(addprefix $(tegra-dtstree)/,$(internal_soc_list)) +endif + +# Remove the DTs from protected soc list +ifneq ($(protected_soc_list),) +kdts := $(foreach dt_path, $(fdts), $(if $(filter $(protected_soc_list),$(patsubst -,$(space),$(subst /, $(space),$(dt_path)))),,$(dt_path))) +kdts := $(filter-out $(space)$(space),$(kdts)) +else +kdts := $(fdts) +endif + +dts_makefile=$(foreach d,$(wildcard $1*), $(call dts_makefile,$(d)/,$(2)) $(if $(findstring Makefile,$(d)),$(d))) +dts_mfiles = $(call dts_makefile, $(kdts), Makefile) + +ifneq ($(dts_mfiles),) +dts-include := +include $(dts_mfiles) +ifneq ($(dts-include),) +DTC_INCLUDE += $(addprefix $(tegra-dtstree)/,$(dts-include)) +endif +endif + +# Add path of main Makefile to each dtb/dtbo list +DTB_OBJS := $(addprefix $(obj)/,$(dtb-y)) +DTBO_OBJS := $(addprefix $(obj)/,$(dtbo-y)) + +define _define_dtb_rule +$(obj)/$(1): $(tegra-dtstree)/$(patsubst %.dtb,%.dts,$(1)) FORCE +endef + +$(foreach _dtb, $(dtb-y), $(eval $(call _define_dtb_rule,$(_dtb)))) + +$(DTB_OBJS): + $(call if_changed_dep,dtc) + +define _define_dtbo_rule +$(obj)/$(1): $(tegra-dtstree)/$(patsubst %.dtbo,%.dts,$(1)) FORCE +endef + +$(foreach _dtbo, $(dtbo-y), $(eval $(call _define_dtbo_rule,$(_dtbo)))) + +$(DTBO_OBJS): + $(call if_changed_dep,dtc) + +DTBS_DTBOS := $(DTB_OBJS)$(DTBO_OBJS) + +dtbs: $(DTB_OBJS) $(DTBO_OBJS) FORCE + if [ ! -d $(obj)/dtbs/ ] ; then \ + mkdir -p $(obj)/dtbs/ ; \ + fi + if [ ! -z "$(DTBS_DTBOS)" ] ; then \ + cp -u $(DTB_OBJS) $(DTBO_OBJS) $(obj)/dtbs/ ; \ + fi + if [ -d $(obj)/hardware/ ] ; then \ + rm -rf $(obj)/hardware/ ; \ + fi + +dtb-y += $(dtbo-y) + +clean-files := *.dtb *.dtbo *.tmp diff --git a/lineage.dependencies b/lineage.dependencies index 2d84d15..e0db7c6 100644 --- a/lineage.dependencies +++ b/lineage.dependencies @@ -3,5 +3,29 @@ "repository": "android_kernel_nvidia_kernel", "target_path": "vendor/nvidia/kernel", "branch": "lineage-23.0_6.12" + }, + { + "repository": "android_hardware_nvidia_t18x_lineage", + "target_path": "vendor/nvidia/tegra/dts/t18x/lineage" + }, + { + "repository": "android_hardware_nvidia_t19x_lineage", + "target_path": "vendor/nvidia/tegra/dts/t19x/lineage" + }, + { + "repository": "android_hardware_nvidia_t21x_lineage", + "target_path": "vendor/nvidia/tegra/dts/t21x/lineage" + }, + { + "repository": "android_hardware_nvidia_t23x_lineage", + "target_path": "vendor/nvidia/tegra/dts/t23x/lineage" + }, + { + "repository": "android_hardware_nvidia_t23x_nv-tegra", + "target_path": "vendor/nvidia/tegra/dts/t23x/nv-tegra" + }, + { + "repository": "android_hardware_nvidia_tegra_nv-public", + "target_path": "vendor/nvidia/tegra/dts/t21x/nv-tegra" } ]