ramips: sercomm.mk: preparation for Sercomm s1500 devices support
authorMikhail Zhilkin <csharper2005@gmail.com>
Sun, 11 Jun 2023 20:48:49 +0000 (20:48 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 1 Jul 2023 14:05:01 +0000 (16:05 +0200)
This commit moves a part of the code from the "sercomm-factory-cqr" recipe
to the separate "sercomm-mkhash" recipe. This simplifies recipes and
allows insert additional recipes between these code blocks (required for
the future support for Beeline SmartBox PRO router).

dd automatically fills the file by 0x00 if the filesize is less than
offset where we start writing. We drop such dd command so we need to add
--extra-padding-size 0x190 to the sercomm-pid.py call.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
target/linux/ramips/image/common-sercomm.mk

index fbe29d701749be31ff004c3d5f2550d8f036e759..b743df440809f571a66523d2b6cce650a6e70bdd 100644 (file)
@@ -22,14 +22,12 @@ define Build/sercomm-factory-cqr
                --hw-version $(SERCOMM_HWVER) \
                --hw-id $(SERCOMM_HWID) \
                --sw-version $(SERCOMM_SWVER) \
-               --pid-file $@.fhdr
+               --pid-file $@.fhdr \
+               --extra-padding-size 0x190
        printf $$(stat -c%s $(IMAGE_KERNEL)) | \
                dd seek=$$((0x70)) of=$@.fhdr bs=1 conv=notrunc 2>/dev/null
        printf $$(($$(stat -c%s $@)-$$(stat -c%s $(IMAGE_KERNEL))-$$((0x200)))) | \
                dd seek=$$((0x80)) of=$@.fhdr bs=1 conv=notrunc 2>/dev/null
-       dd bs=$$((0x200)) skip=1 if=$@ conv=notrunc 2>/dev/null | \
-               $(MKHASH) md5 | awk '{print $$1}' | tr -d '\n' | \
-               dd seek=$$((0x1e0)) of=$@.fhdr bs=1 conv=notrunc 2>/dev/null
        dd if=$@ >> $@.fhdr 2>/dev/null
        mv $@.fhdr $@
 endef
@@ -60,6 +58,12 @@ define Build/sercomm-kernel-factory
        mv $@.khdr $@
 endef
 
+define Build/sercomm-mkhash
+       dd bs=$$((0x400)) skip=1 if=$@ conv=notrunc 2>/dev/null | \
+               $(MKHASH) md5 | awk '{print $$1}' | tr -d '\n' | \
+               dd seek=$$((0x1e0)) of=$@ bs=1 conv=notrunc 2>/dev/null
+endef
+
 define Build/sercomm-part-tag
        $(call Build/sercomm-part-tag-common,$(word 1,$(1)) $@)
 endef
@@ -118,7 +122,7 @@ define Device/sercomm_cxx
   IMAGE/sysupgrade.bin := append-kernel | sercomm-kernel | \
        sysupgrade-tar kernel=$$$$@ | append-metadata
   IMAGE/factory.img := append-kernel | sercomm-kernel-factory | \
-       append-ubi | sercomm-factory-cqr
+       append-ubi | sercomm-factory-cqr | sercomm-mkhash
 endef
 
 define Device/sercomm_dxx