$(if $(DEVICE_FDT_NUM),-n $(DEVICE_FDT_NUM)) \
$(if $(DEVICE_DTS_DELIMITER),-l $(DEVICE_DTS_DELIMITER)) \
$(if $(DEVICE_DTS_LOADADDR),-s $(DEVICE_DTS_LOADADDR)) \
- $(if $(DEVICE_DTS_OVERLAY),$(foreach dtso,$(DEVICE_DTS_OVERLAY), -O $(dtso):$(KERNEL_BUILD_DIR)/image-$(dtso).dtb)) \
+ $(if $(DEVICE_DTS_OVERLAY),$(foreach dtso,$(DEVICE_DTS_OVERLAY), -O $(dtso):$(KERNEL_BUILD_DIR)/image-$(dtso).dtbo)) \
-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))),\
image_prepare: $(KDIR)/image-$(1).dtb
endif
+endef
+
+define Device/Build/dtbo
+ ifndef BUILD_DTS_$(1)
+ BUILD_DTS_$(1) := 1
+ $(KDIR)/image-$(1).dtbo: FORCE
+ $(call Image/BuildDTB,$(strip $(2))/$(strip $(3)).dtso,$$@)
+
+ image_prepare: $(KDIR)/image-$(1).dtbo
+ endif
+
endef
endif
define Device/Build/kernel
- $$(eval $$(foreach dts,$$(DEVICE_DTS) $$(DEVICE_DTS_OVERLAY), \
+ $$(eval $$(foreach dts,$$(DEVICE_DTS), \
$$(call Device/Build/dtb,$$(notdir $$(dts)), \
$$(if $$(DEVICE_DTS_DIR),$$(DEVICE_DTS_DIR),$$(DTS_DIR)), \
$$(dts) \
) \
))
+ $$(eval $$(foreach dtso,$$(DEVICE_DTS_OVERLAY), \
+ $$(call Device/Build/dtbo,$$(notdir $$(dtso)), \
+ $$(if $$(DEVICE_DTS_DIR),$$(DEVICE_DTS_DIR),$$(DTS_DIR)), \
+ $$(dtso) \
+ ) \
+ ))
$(KDIR)/$$(KERNEL_NAME):: image_prepare
$$(_TARGET): $$(if $$(KERNEL_INSTALL),$(BIN_DIR)/$$(KERNEL_IMAGE))
"
OVCONFIGS="$OVCONFIGS
- config-$ovname {
- description = \"OpenWrt ${DEVICE} with $ovname\";
- kernel = \"kernel${REFERENCE_CHAR}1\";
- fdt = \"fdt${REFERENCE_CHAR}$FDTNUM\", \"$ovnode\";
- ${LOADABLES:+loadables = ${LOADABLES};}
+ $ovname {
+ description = \"OpenWrt ${DEVICE} overlay $ovname\";
+ fdt = \"$ovnode\";
${COMPATIBLE_PROP}
- ${INITRD_PROP}
};
"
done