ramips: allow JCG_MAXSIZE in kiB in Build/jcg-header
[openwrt/openwrt.git] / target / linux / ramips / image / Makefile
index 36f95b6d1cea8d46c3753dbeebcaf0622ca36bdb..4f65583f13d228cfcc0704de14e2d764c512f285 100644 (file)
@@ -7,7 +7,7 @@
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/image.mk
 
-DEVICE_VARS += DTS IMAGE_SIZE NETGEAR_BOARD_ID NETGEAR_HW_ID
+DEVICE_VARS += IMAGE_SIZE NETGEAR_BOARD_ID NETGEAR_HW_ID
 DEVICE_VARS += BUFFALO_TAG_PLATFORM BUFFALO_TAG_VERSION BUFFALO_TAG_MINOR
 DEVICE_VARS += SEAMA_SIGNATURE SEAMA_MTDBLOCK
 DEVICE_VARS += SERCOMM_HWID SERCOMM_HWVER SERCOMM_SWVER
@@ -48,7 +48,9 @@ define Device/seama
 endef
 
 define Build/jcg-header
-       $(STAGING_DIR_HOST)/bin/jcgimage -v $(1) $(if $(JCG_MAXSIZE), -m $(JCG_MAXSIZE),) -u $@ -o $@.new
+       $(STAGING_DIR_HOST)/bin/jcgimage -v $(1) \
+               $(if $(JCG_MAXSIZE), -m $$(($(subst k, * 1024,$(JCG_MAXSIZE)))),) \
+               -u $@ -o $@.new
        mv $@.new $@
 endef
 
@@ -89,6 +91,26 @@ define Build/relocate-kernel
        rm -rf $@.relocate
 endef
 
+define Build/elx-header
+       $(eval hw_id=$(word 1,$(1)))
+       $(eval xor_pattern=$(word 2,$(1)))
+       ( \
+               echo -ne "\x00\x00\x00\x00\x00\x00\x00\x03" | \
+                       dd bs=42 count=1 conv=sync; \
+               hw_id="$(hw_id)"; \
+               echo -ne "\x$${hw_id:0:2}\x$${hw_id:2:2}\x$${hw_id:4:2}\x$${hw_id:6:2}" | \
+                       dd bs=20 count=1 conv=sync; \
+               echo -ne "$$(printf '%08x' $$(stat -c%s $@) | fold -s2 | xargs -I {} echo \\x{} | tr -d '\n')" | \
+                       dd bs=8 count=1 conv=sync; \
+               echo -ne "$$($(STAGING_DIR_HOST)/bin/mkhash md5 $@ | fold -s2 | xargs -I {} echo \\x{} | tr -d '\n')" | \
+                       dd bs=58 count=1 conv=sync; \
+       ) > $(KDIR)/tmp/$(DEVICE_NAME).header
+       $(call Build/xor-image,-p $(xor_pattern) -x)
+       cat $(KDIR)/tmp/$(DEVICE_NAME).header $@ > $@.new
+       mv $@.new $@
+       rm -rf $(KDIR)/tmp/$(DEVICE_NAME).header
+endef
+
 define Build/umedia-header
        fix-u-media-header -T 0x46 -B $(1) -i $@ -o $@.new && mv $@.new $@
 endef
@@ -147,6 +169,11 @@ define Build/sercom-footer
        $(call Build/sercom-seal,-f)
 endef
 
+define Build/fonfxcimage
+       uimage_padhdr -i $@ -o $@.new
+       mv $@.new $@
+endef
+
 ifeq ($(SUBTARGET),rt288x)
 include rt288x.mk
 endif