+define Build/mkdlinkfw-loader
+ -$(STAGING_DIR_HOST)/bin/mkdlinkfw \
+ -k $(KDIR)/loader-$(DEVICE_NAME).bin \
+ -r $@ \
+ -o $@.new \
+ $(if $(DLINK_IMAGE_OFFSET), -O $(DLINK_IMAGE_OFFSET)) \
+ -s $(DLINK_FIRMWARE_SIZE)
+ mv $@.new $@
+endef
+
+define Build/netis-tail
+ echo -n $(1) >> $@
+ echo -n $(UIMAGE_NAME)-yun | $(MKHASH) md5 | \
+ sed 's/../\\\\x&/g' | xargs echo -ne >> $@
+endef
+
+define Build/poray-header
+ $(STAGING_DIR_HOST)/bin/mkporayfw $(1) -f $@ -o $@.new
+ mv $@.new $@
+endef
+
+define Build/relocate-kernel
+ rm -rf $@.relocate
+ $(CP) ../../generic/image/relocate $@.relocate
+ $(MAKE) -C $@.relocate KERNEL_ADDR=$(if $(1),$(1),$(KERNEL_LOADADDR)) CROSS_COMPILE=$(TARGET_CROSS)
+ ( \
+ dd if=$@.relocate/loader.bin bs=32 conv=sync && \
+ perl -e '@s = stat("$@"); print pack("V", @s[7])' && \
+ cat $@ \
+ ) > $@.new
+ mv $@.new $@
+ rm -rf $@.relocate
+endef
+
+define Build/sercom-footer
+ $(call Build/sercom-seal,-f)