From 8110f3461b1fa0cbcd101cf43c8255a68dc6e918 Mon Sep 17 00:00:00 2001 From: Denis Date: Mon, 21 Apr 2025 14:42:13 +0300 Subject: [PATCH] The file linux.mk changed so that the BR2_EXTERNAL extension can be applied. Namely, using the BR2_LINUX_KERNEL_CUSTOM_DTS_PATH option, apply a custom device-tree file. --- linux/linux.mk | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/linux/linux.mk b/linux/linux.mk index 438fda3e..fe98db36 100644 --- a/linux/linux.mk +++ b/linux/linux.mk @@ -207,7 +207,7 @@ LINUX_DTS_NAME += $(call qstrip,$(BR2_LINUX_KERNEL_INTREE_DTS_NAME)) # and .dtsi files in BR2_LINUX_KERNEL_CUSTOM_DTS_PATH. Both will be # copied to arch//boot/dts, but only the .dts files will # actually be generated as .dtb. -LINUX_DTS_NAME += $(basename $(filter %.dts,$(notdir $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH))))) +LINUX_DTS_NAME += $(addprefix nuvoton/,$(basename $(filter %.dts,$(notdir $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH)))))) LINUX_DTBS = $(addsuffix .dtb,$(LINUX_DTS_NAME)) @@ -344,6 +344,12 @@ define LINUX_TRY_PATCH_TIMECONST endef LINUX_POST_PATCH_HOOKS += LINUX_TRY_PATCH_TIMECONST +define LINUX_ADD_DTB_MAKE_RULES + $(foreach dts,$(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH)), \ + echo "dtb-y += $(patsubst %.dts,%.dtb,$(notdir $(dts)))" >> $(LINUX_ARCH_PATH)/boot/dts/nuvoton/Makefile + ) +endef + LINUX_KERNEL_CUSTOM_LOGO_PATH = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_LOGO_PATH)) ifneq ($(LINUX_KERNEL_CUSTOM_LOGO_PATH),) LINUX_DEPENDENCIES += host-imagemagick @@ -539,13 +545,14 @@ endif # The call to disable gcc-plugins is a stop-gap measure: # http://lists.busybox.net/pipermail/buildroot/2020-May/282727.html define LINUX_BUILD_CMDS - $(if $(BR2_NUVOTON_MA35D1), $(if $(BR2_TARGET_KERNEL_DRM_MA35_VERSION),`sed -i "s/ma35d1\.dtsi/ma35d1-drm\.dtsi/" $(LINUX_ARCH_PATH)/boot/dts/$(addsuffix .dts,$(LINUX_DTS_NAME))`,`sed -i "s/ma35d1-drm\.dtsi/ma35d1\.dtsi/" $(LINUX_ARCH_PATH)/boot/dts/$(addsuffix .dts,$(LINUX_DTS_NAME))`)) + $(if $(BR2_TARGET_ARM_TRUSTED_FIRMWARE_LOAD_A35), \ - $(call KCONFIG_ENABLE_OPT,CONFIG_COMMON_CLK_FIXED_UNUSED), \ - $(call KCONFIG_DISABLE_OPT,CONFIG_COMMON_CLK_FIXED_UNUSED)) + $(call KCONFIG_ENABLE_OPT,CONFIG_COMMON_CLK_FIXED_UNUSED), \ + $(call KCONFIG_DISABLE_OPT,CONFIG_COMMON_CLK_FIXED_UNUSED) + ) $(call KCONFIG_DISABLE_OPT,CONFIG_GCC_PLUGINS) $(foreach dts,$(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH)), \ - cp -f $(dts) $(LINUX_ARCH_PATH)/boot/dts/ + cp -f $(dts) $(LINUX_ARCH_PATH)/boot/dts/nuvoton/ ) if grep -q "CONFIG_ARCH_NUC980=y" $(@D)/.config; then \ mkdir -p $(@D)/../image; \ @@ -556,8 +563,13 @@ define LINUX_BUILD_CMDS if grep -q "BR2_TARGET_OPTEE_OS=y" .config; then \ cat board/nuvoton/$(MA35)/optee.config >> $(@D)/.config; \ fi + $(if $(BR2_NUVOTON_MA35D1), \ + $(if $(BR2_TARGET_KERNEL_DRM_MA35_VERSION), \ + `sed -i "s/ma35d1\.dtsi/ma35d1-drm\.dtsi/" $(LINUX_ARCH_PATH)/boot/dts/$(addsuffix .dts,$(LINUX_DTS_NAME))`, \ + `sed -i "s/ma35d1-drm\.dtsi/ma35d1\.dtsi/" $(LINUX_ARCH_PATH)/boot/dts/$(addsuffix .dts,$(LINUX_DTS_NAME))`)) $(LINUX_MAKE_ENV) $(BR2_MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) all $(LINUX_MAKE_ENV) $(BR2_MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME) + $(LINUX_ADD_DTB_MAKE_RULES) $(LINUX_BUILD_DTB) $(LINUX_APPEND_DTB) endef