X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=include%2Fimage-commands.mk;h=083a3890316c633e9a1ffaab6bd7790ebb29ea34;hb=2d4c42ad49cc50d17703374cbd7ba16afd228565;hp=17ab46d859e38954350afb031eaab317e513b56b;hpb=b8fddb8912dfe1d2405b685680f7bb1a0b10937a;p=openwrt%2Fstaging%2Fblogic.git diff --git a/include/image-commands.mk b/include/image-commands.mk index 17ab46d859e3..083a3890316c 100644 --- a/include/image-commands.mk +++ b/include/image-commands.mk @@ -1,10 +1,13 @@ # Build commands that can be called from Device/* templates +IMAGE_KERNEL = $(word 1,$^) +IMAGE_ROOTFS = $(word 2,$^) + define Build/uImage mkimage -A $(LINUX_KARCH) \ -O linux -T kernel \ -C $(1) -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \ - -n '$(call toupper,$(LINUX_KARCH)) LEDE Linux-$(LINUX_VERSION)' -d $@ $@.new + -n '$(if $(UIMAGE_NAME),$(UIMAGE_NAME),$(call toupper,$(LINUX_KARCH)) LEDE Linux-$(LINUX_VERSION))' -d $@ $@.new @mv $@.new $@ endef @@ -30,7 +33,7 @@ define Build/tplink-safeloader -$(STAGING_DIR_HOST)/bin/tplink-safeloader \ -B $(TPLINK_BOARD_NAME) \ -V $(REVISION) \ - -k $(word 1,$^) \ + -k $(IMAGE_KERNEL) \ -r $@ \ -o $@.new \ -j \ @@ -39,8 +42,16 @@ define Build/tplink-safeloader endef define Build/append-dtb - $(if $(DEVICE_DTS_DIR),$(call Image/BuildDTB,$(DEVICE_DTS_DIR)/$(DEVICE_DTS).dts,$(DTS_DIR)/$(DEVICE_DTS).dtb)) - cat $(DTS_DIR)/$(DEVICE_DTS).dtb >> $@ + $(call Image/BuildDTB,$(if $(DEVICE_DTS_DIR),$(DEVICE_DTS_DIR),$(DTS_DIR))/$(DEVICE_DTS).dts,$@.dtb) + cat $@.dtb >> $@ +endef + +define Build/install-dtb + $(foreach dts,$(DEVICE_DTS), \ + $(CP) \ + $(DTS_DIR)/$(dts).dtb \ + $(BIN_DIR)/$(IMG_PREFIX)-$(dts).dtb; \ + ) endef define Build/fit @@ -92,21 +103,23 @@ define Build/patch-cmdline endef define Build/append-kernel - dd if=$(word 1,$^) $(if $(1),bs=$(1) conv=sync) >> $@ + dd if=$(IMAGE_KERNEL) >> $@ endef define Build/append-rootfs - dd if=$(word 2,$^) $(if $(1),bs=$(1) conv=sync) >> $@ + dd if=$(IMAGE_ROOTFS) >> $@ endef define Build/append-ubi sh $(TOPDIR)/scripts/ubinize-image.sh \ $(if $(UBOOTENV_IN_UBI),--uboot-env) \ - $(if $(KERNEL_IN_UBI),--kernel $(word 1,$^)) \ - $(word 2,$^) \ + $(if $(KERNEL_IN_UBI),--kernel $(IMAGE_KERNEL)) \ + $(foreach part,$(UBINIZE_PARTS),--part $(part)) \ + $(IMAGE_ROOTFS) \ $@.tmp \ - -p $(BLOCKSIZE) -m $(PAGESIZE) \ + -p $(BLOCKSIZE:%k=%KiB) -m $(PAGESIZE) \ $(if $(SUBPAGESIZE),-s $(SUBPAGESIZE)) \ + $(if $(VID_HDR_OFFSET),-O $(VID_HDR_OFFSET)) \ $(UBINIZE_OPTS) cat $@.tmp >> $@ rm $@.tmp @@ -117,15 +130,20 @@ define Build/pad-to mv $@.new $@ endef +define Build/pad-extra + dd if=/dev/zero bs=$(1) count=1 >> $@ +endef + define Build/pad-rootfs - $(STAGING_DIR_HOST)/bin/padjffs2 $@ $(1) 4 8 16 64 128 256 + $(STAGING_DIR_HOST)/bin/padjffs2 $@ $(1) \ + $(if $(BLOCKSIZE),$(BLOCKSIZE:%k=%),4 8 16 64 128 256) endef define Build/pad-offset let \ size="$$(stat -c%s $@)" \ - pad="$(word 1, $(1))" \ - offset="$(word 2, $(1))" \ + pad="$(subst k,* 1024,$(word 1, $(1)))" \ + offset="$(subst k,* 1024,$(word 2, $(1)))" \ pad="(pad - ((size + offset) % pad)) % pad" \ newsize='size + pad'; \ dd if=$@ of=$@.new bs=$$newsize count=1 conv=sync @@ -141,16 +159,34 @@ endef define Build/combined-image -sh $(TOPDIR)/scripts/combined-image.sh \ - "$(word 1,$^)" \ + "$(IMAGE_KERNEL)" \ "$@" \ "$@.new" @mv $@.new $@ endef -define Build/sysupgrade-nand - sh $(TOPDIR)/scripts/sysupgrade-nand.sh \ +define Build/sysupgrade-tar + sh $(TOPDIR)/scripts/sysupgrade-tar.sh \ --board $(if $(BOARD_NAME),$(BOARD_NAME),$(DEVICE_NAME)) \ - --kernel $(word 1,$^) \ - --rootfs $(word 2,$^) \ + --kernel $(call param_get_default,kernel,$(1),$(IMAGE_KERNEL)) \ + --rootfs $(call param_get_default,rootfs,$(1),$(IMAGE_ROOTFS)) \ $@ endef + +json_quote=$(subst ','\'',$(subst ",\",$(1))) +#")') +metadata_devices=$(if $(1),$(subst "$(space)","$(comma)",$(strip $(foreach v,$(1),"$(call json_quote,$(v))")))) +metadata_json = \ + '{ $(if $(IMAGE_METADATA),$(IMAGE_METADATA)$(comma)) \ + "supported_devices":[$(call metadata_devices,$(1))], \ + "version": { \ + "dist": "$(call json_quote,$(VERSION_DIST))", \ + "version": "$(call json_quote,$(VERSION_NUMBER))", \ + "revision": "$(call json_quote,$(REVISION))", \ + "board": "$(call json_quote,$(BOARD))" \ + } \ + }' + +define Build/append-metadata + $(if $(SUPPORTED_DEVICES),echo $(call metadata_json,$(SUPPORTED_DEVICES)) | fwtool -I - $@) +endef