diff options
author | Daniel Golle <daniel@makrotopia.org> | 2021-03-17 17:30:48 +0000 |
---|---|---|
committer | Daniel Golle <daniel@makrotopia.org> | 2021-03-17 17:45:34 +0000 |
commit | 6890f6fe13bb8dfc40dbca89703d4ab1116dd4bc (patch) | |
tree | 1f691e43baa12995f3307f3e04a00575ae99d628 | |
parent | 4e6de4f0938de24f407b85b6328f5114103bd45a (diff) | |
download | upstream-6890f6fe13bb8dfc40dbca89703d4ab1116dd4bc.tar.gz upstream-6890f6fe13bb8dfc40dbca89703d4ab1116dd4bc.tar.bz2 upstream-6890f6fe13bb8dfc40dbca89703d4ab1116dd4bc.zip |
include/image*: add support for device-tree overlays
Add new target feature 'dt-overlay' which makes DTC keep the symbol
names in the generated dtb.
Make sure additional DT overlay sources specified by the new device
variable DEVICE_DTS_OVERLAY get compiled together with the main DTS
(currently overlays got to be in the same folder). Let Build/fit pass
the generated DT overlay blobs to mkits.sh.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
-rw-r--r-- | include/image-commands.mk | 5 | ||||
-rw-r--r-- | include/image.mk | 8 | ||||
-rwxr-xr-x | scripts/target-metadata.pl | 1 | ||||
-rw-r--r-- | target/Config.in | 3 |
4 files changed, 13 insertions, 4 deletions
diff --git a/include/image-commands.mk b/include/image-commands.mk index daa01a3d09..684646e233 100644 --- a/include/image-commands.mk +++ b/include/image-commands.mk @@ -207,13 +207,16 @@ endef define Build/fit $(TOPDIR)/scripts/mkits.sh \ -D $(DEVICE_NAME) -o $@.its -k $@ \ - $(if $(word 2,$(1)),-d $(word 2,$(1))) -C $(word 1,$(1)) \ + -C $(word 1,$(1)) $(if $(word 2,$(1)),\ + $(if $(DEVICE_DTS_OVERLAY),-d $(KERNEL_BUILD_DIR)/image-$$(basename $(word 2,$(1))),\ + -d $(word 2,$(1)))) \ $(if $(findstring with-rootfs,$(word 3,$(1))),-r $(IMAGE_ROOTFS)) \ $(if $(findstring with-initrd,$(word 3,$(1))), \ $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE), \ -i $(KERNEL_BUILD_DIR)/initrd.cpio$(strip $(call Build/initrd_compression)))) \ -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \ $(if $(DEVICE_FDT_NUM),-n $(DEVICE_FDT_NUM)) \ + $(if $(DEVICE_DTS_OVERLAY),$(foreach dtso,$(DEVICE_DTS_OVERLAY), -O $(dtso):$(KERNEL_BUILD_DIR)/image-$(dtso).dtb)) \ -c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config-1") \ -A $(LINUX_KARCH) -v $(LINUX_VERSION) PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage $(if $(findstring external,$(word 3,$(1))),\ diff --git a/include/image.mk b/include/image.mk index cae3e73438..29df0938bc 100644 --- a/include/image.mk +++ b/include/image.mk @@ -190,6 +190,7 @@ define Image/BuildDTB -o $(2).tmp $(1) $(LINUX_DIR)/scripts/dtc/dtc -O dtb \ -i$(dir $(1)) $(DTC_FLAGS) $(4) \ + $(if $(CONFIG_HAS_DT_OVERLAY_SUPPORT),-@) \ -o $(2) $(2).tmp $(RM) $(2).tmp endef @@ -393,6 +394,7 @@ define Device/Init DEVICE_DTS := DEVICE_DTS_CONFIG := DEVICE_DTS_DIR := + DEVICE_DTS_OVERLAY := DEVICE_FDT_NUM := SOC := @@ -416,8 +418,8 @@ DEFAULT_DEVICE_VARS := \ DEVICE_NAME KERNEL KERNEL_INITRAMFS KERNEL_INITRAMFS_IMAGE KERNEL_SIZE \ CMDLINE UBOOTENV_IN_UBI KERNEL_IN_UBI BLOCKSIZE PAGESIZE SUBPAGESIZE \ VID_HDR_OFFSET UBINIZE_OPTS UBINIZE_PARTS MKUBIFS_OPTS DEVICE_DTS \ - DEVICE_DTS_CONFIG DEVICE_DTS_DIR DEVICE_FDT_NUM SOC BOARD_NAME \ - UIMAGE_MAGIC UIMAGE_NAME \ + DEVICE_DTS_CONFIG DEVICE_DTS_DIR DEVICE_DTS_OVERLAY DEVICE_FDT_NUM \ + SOC BOARD_NAME UIMAGE_MAGIC UIMAGE_NAME \ SUPPORTED_DEVICES IMAGE_METADATA KERNEL_ENTRY KERNEL_LOADADDR \ UBOOT_PATH IMAGE_SIZE \ DEVICE_COMPAT_VERSION DEVICE_COMPAT_MESSAGE \ @@ -539,7 +541,7 @@ endef endif define Device/Build/kernel - $$(eval $$(foreach dts,$$(DEVICE_DTS), \ + $$(eval $$(foreach dts,$$(DEVICE_DTS) $$(DEVICE_DTS_OVERLAY), \ $$(call Device/Build/dtb,$$(notdir $$(dts)), \ $$(if $$(DEVICE_DTS_DIR),$$(DEVICE_DTS_DIR),$$(DTS_DIR)), \ $$(dts) \ diff --git a/scripts/target-metadata.pl b/scripts/target-metadata.pl index 09a2d993c1..990235182d 100755 --- a/scripts/target-metadata.pl +++ b/scripts/target-metadata.pl @@ -45,6 +45,7 @@ sub target_config_features(@) { /^rootfs-part$/ and $ret .= "\tselect USES_ROOTFS_PART\n"; /^boot-part$/ and $ret .= "\tselect USES_BOOT_PART\n"; /^testing-kernel$/ and $ret .= "\tselect HAS_TESTING_KERNEL\n"; + /^dt-overlay$/ and $ret .= "\tselect HAS_DT_OVERLAY_SUPPORT\n"; } return $ret; } diff --git a/target/Config.in b/target/Config.in index 86d39ce07c..51a278cae9 100644 --- a/target/Config.in +++ b/target/Config.in @@ -13,6 +13,9 @@ config HAS_SPE_FPU config HAS_FPU bool +config HAS_DT_OVERLAY_SUPPORT + bool + config AUDIO_SUPPORT bool |