build: add elecom-product-header for ELECOM devices
authorINAGAKI Hiroshi <musashino.open@gmail.com>
Fri, 11 Dec 2020 14:14:03 +0000 (23:14 +0900)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Fri, 29 Jan 2021 14:28:12 +0000 (15:28 +0100)
A header used in ELECOM WRC-300GHBK2-I and WRC-1750GHBK2-I/C is also
used in ELECOM WRC-2533GHBK-I, so split the code to generate the header
and move it to image-commands.mk to use from ramips target.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Reviewed-by: Sungbo Eo <mans0n@gorani.run>
include/image-commands.mk
target/linux/ath79/image/generic.mk

index 3beec80c8b3f7bb7c45cc9610bce25cab2914154..70fa0b8357a2226e36232de4db5765733e578167 100644 (file)
@@ -155,6 +155,18 @@ define Build/check-size
        }
 endef
 
+define Build/elecom-product-header
+       $(eval product=$(word 1,$(1)))
+       $(eval fw=$(word 2,$(1)))
+
+       ( \
+               echo -n -e "ELECOM\x00\x00$(product)" | dd bs=40 count=1 conv=sync; \
+               echo -n "0.00" | dd bs=16 count=1 conv=sync; \
+               dd if=$(fw); \
+       ) > $(fw).new
+       mv $(fw).new $(fw)
+endef
+
 define Build/eva-image
        $(STAGING_DIR_HOST)/bin/lzma2eva $(KERNEL_LOADADDR) $(KERNEL_LOADADDR) $@ $@.new
        mv $@.new $@
index 7432607fcd3e8e7c0d1b362aad6bfc48c14adde1..c43d396db5d631ea77a863b54784e99182da0485 100644 (file)
@@ -19,14 +19,10 @@ define Build/add-elecom-factory-initramfs
        -f 0x70000 -S 0x01100000 \
        -i $@ -o $@.factory
 
-  ( \
-       echo -n -e "ELECOM\x00\x00$(product)" | dd bs=40 count=1 conv=sync; \
-       echo -n "0.00" | dd bs=16 count=1 conv=sync; \
-       dd if=$@.factory; \
-  ) > $@.factory.new
+  $(call Build/elecom-product-header,$(product) $@.factory)
 
-  if [ "$$(stat -c%s $@.factory.new)" -le $$(($(subst k,* 1024,$(subst m, * 1024k,$(IMAGE_SIZE))))) ]; then \
-       mv $@.factory.new $(BIN_DIR)/$(KERNEL_INITRAMFS_PREFIX)-factory.bin; \
+  if [ "$$(stat -c%s $@.factory)" -le $$(($(subst k,* 1024,$(subst m, * 1024k,$(IMAGE_SIZE))))) ]; then \
+       mv $@.factory $(BIN_DIR)/$(KERNEL_INITRAMFS_PREFIX)-factory.bin; \
   else \
        echo "WARNING: initramfs kernel image too big, cannot generate factory image" >&2; \
   fi