Browse Source

build: add elecom-product-header for ELECOM devices

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 <[email protected]>
Reviewed-by: Sungbo Eo <[email protected]>
INAGAKI Hiroshi 5 years ago
parent
commit
0071c7cd82
2 changed files with 15 additions and 7 deletions
  1. 12 0
      include/image-commands.mk
  2. 3 7
      target/linux/ath79/image/generic.mk

+ 12 - 0
include/image-commands.mk

@@ -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) $@ [email protected]
 	mv [email protected] $@

+ 3 - 7
target/linux/ath79/image/generic.mk

@@ -19,14 +19,10 @@ define Build/add-elecom-factory-initramfs
 	-f 0x70000 -S 0x01100000 \
 	-i $@ -o [email protected]
 
-  ( \
-	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 [email protected]; \
-  ) > [email protected]
+  $(call Build/elecom-product-header,$(product) [email protected])
 
-  if [ "$$(stat -c%s [email protected].new)" -le $$(($(subst k,* 1024,$(subst m, * 1024k,$(IMAGE_SIZE))))) ]; then \
-	mv [email protected].new $(BIN_DIR)/$(KERNEL_INITRAMFS_PREFIX)-factory.bin; \
+  if [ "$$(stat -c%s [email protected])" -le $$(($(subst k,* 1024,$(subst m, * 1024k,$(IMAGE_SIZE))))) ]; then \
+	mv [email protected] $(BIN_DIR)/$(KERNEL_INITRAMFS_PREFIX)-factory.bin; \
   else \
 	echo "WARNING: initramfs kernel image too big, cannot generate factory image" >&2; \
   fi