Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2a0d4179 authored by SGCMarkus's avatar SGCMarkus Committed by Bruno Martins
Browse files

kernel: Allow to limit the used .dtb files for the final DTB image

On some devices too many .dtb files are generated. Instead of taking
all of them, allow to only take selected .dtb files for the final
DTB image.

Example: Motorola Edge 40 Pro (rtwo, sm8550) generates the following:
obj/DTB_OBJ/out/kaka-rumi.dtb
obj/DTB_OBJ/out/kalama-rtwo-base-kalama-rtwo-evb1-overlay.dtb
obj/DTB_OBJ/out/kalama-rtwo-base-kalama-rtwo-evt1-overlay.dtb
obj/DTB_OBJ/out/kalama-rtwo-base-kalama-rtwo-na-vzw-evt2-overlay.dtb
obj/DTB_OBJ/out/kalama-rtwo-base-kalama-rtwo-prc-dvt1b-overlay.dtb
obj/DTB_OBJ/out/kalama-rtwo-base-kalama-rtwo-prc-pvt-overlay.dtb
obj/DTB_OBJ/out/kalama-rtwo-base-kalama-rtwo-row-dvt1b-overlay.dtb
obj/DTB_OBJ/out/kalama-rtwo-base.dtb
obj/DTB_OBJ/out/kalama-v2-rtwo-base-kalama-rtwo-evb1-overlay.dtb
obj/DTB_OBJ/out/kalama-v2-rtwo-base-kalama-rtwo-evt1-overlay.dtb
obj/DTB_OBJ/out/kalama-v2-rtwo-base-kalama-rtwo-na-vzw-evt2-overlay.dtb
obj/DTB_OBJ/out/kalama-v2-rtwo-base-kalama-rtwo-prc-dvt1b-overlay.dtb
obj/DTB_OBJ/out/kalama-v2-rtwo-base-kalama-rtwo-prc-pvt-overlay.dtb
obj/DTB_OBJ/out/kalama-v2-rtwo-base-kalama-rtwo-row-dvt1b-overlay.dtb
obj/DTB_OBJ/out/kalama-v2-rtwo-base.dtb

with only kalama-rtwo-base.dtb and kalama-v2-rtwo-base.dtb needed.
Disabling compilation of the other kalama.dtb isn't possible, as this
would also disable the compilation of the needed .dtbo files.
Because they are earlier in alphabetical order, and the matching
board ids, the bootloader ends up selecting those, instead of the
correct ones. This results in USB (and possible other things) to
not work.

Change-Id: I486b6ec538a3e4906b5b8aa5ecb355b480b60de7
parent 3056928d
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -67,6 +67,9 @@
#
#   TARGET_FORCE_PREBUILT_KERNEL       = Optional, use TARGET_PREBUILT_KERNEL even if
#                                          kernel sources are present
#
#   TARGET_MERGE_DTBS_WILDCARD         = Optional, limits the .dtb files used to generate the
#                                          final DTB image when using QCOM's merge_dtbs script.

ifneq ($(TARGET_NO_KERNEL),true)
ifneq ($(TARGET_NO_KERNEL_OVERRIDE),true)
@@ -78,6 +81,8 @@ KERNEL_DEFCONFIG := $(TARGET_KERNEL_CONFIG)
RECOVERY_DEFCONFIG := $(TARGET_KERNEL_RECOVERY_CONFIG)
VARIANT_DEFCONFIG := $(TARGET_KERNEL_VARIANT_CONFIG)
SELINUX_DEFCONFIG := $(TARGET_KERNEL_SELINUX_CONFIG)
# dtb generation - optional
TARGET_MERGE_DTBS_WILDCARD ?= *

## Internal variables
DTC := $(HOST_OUT_EXECUTABLES)/dtc
@@ -581,7 +586,7 @@ ifeq ($(BOARD_USES_QCOM_MERGE_DTBS_SCRIPT),true)
	$(hide) find $(DTBS_OUT) -type f -name "*.dtb*" | xargs rm -f
	mv $(DTB_OUT)/arch/$(KERNEL_ARCH)/boot/dts/vendor/qcom/*.dtb $(DTB_OUT)/arch/$(KERNEL_ARCH)/boot/dts/vendor/*/*.dtbo $(DTBS_BASE)/
	PATH=$(abspath $(HOST_OUT_EXECUTABLES)):$${PATH} python3 $(BUILD_TOP)/vendor/lineage/build/tools/merge_dtbs.py $(DTBS_BASE) $(DTB_OUT)/arch/$(KERNEL_ARCH)/boot/dts/vendor/qcom $(DTBS_OUT)
	cat $(shell find $(DTB_OUT)/out -type f -name "*.dtb" | sort) > $@
	cat $(shell find $(DTB_OUT)/out -type f -name "${TARGET_MERGE_DTBS_WILDCARD}.dtb" | sort) > $@
else
	cat $(shell find $(DTB_OUT)/arch/$(KERNEL_ARCH)/boot/dts -type f -name "*.dtb" | sort) > $@
endif # BOARD_USES_QCOM_MERGE_DTBS_SCRIPT