aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ipq40xx
diff options
context:
space:
mode:
authorLeon M. George <leon@georgemail.eu>2019-11-07 13:24:40 +0100
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>2020-03-10 13:44:51 +0100
commit377e8942b247c8b3cc9d6dcf273ed86bc3d2c95a (patch)
tree5a9236a9b7f4998bcc79c9c52f572370a9f5c440 /target/linux/ipq40xx
parent8057b621d46fd5bd3c455c2687aaab869d998186 (diff)
downloadupstream-377e8942b247c8b3cc9d6dcf273ed86bc3d2c95a.tar.gz
upstream-377e8942b247c8b3cc9d6dcf273ed86bc3d2c95a.tar.bz2
upstream-377e8942b247c8b3cc9d6dcf273ed86bc3d2c95a.zip
ipq40xx: add cpximg to flash Compex WPJ428 via bootloader
Generate a cpximg that is compatible with the cpximg loader in Compex' u-boot. The cpximg loader can be started either by holding the reset button during power up or by entering the u-boot prompt and entering 'cpximg'. Once it's running, a TFTP-server under 192.168.1.1 will accept an image appropriate for the board revision that is etched on the board (e.g. 6A04). The image can be pushed using tftp: tftp -v -m binary 192.168.1.1 -c put openwrt-ipq40xx-generic-compex_wpj428-squashfs-cpximg-6a04.bin cpximg files can also be used with the sysupgrade utility in stock images. (add SSH key in luci for root access) In mkmylofw_32m, the calculation of the "partition size" has been preferred to just padding the partition as this will result in less block transfers during flashing (while the additional complexity is bearable). Signed-off-by: Leon M. George <leon@georgemail.eu> Co-developed-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Diffstat (limited to 'target/linux/ipq40xx')
-rw-r--r--target/linux/ipq40xx/image/Makefile19
1 files changed, 18 insertions, 1 deletions
diff --git a/target/linux/ipq40xx/image/Makefile b/target/linux/ipq40xx/image/Makefile
index 8097bf439a..50ea03d659 100644
--- a/target/linux/ipq40xx/image/Makefile
+++ b/target/linux/ipq40xx/image/Makefile
@@ -53,6 +53,22 @@ define Device/DniImage
endef
DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
+define Build/mkmylofw_32m
+ $(eval device_id=$(word 1,$(1)))
+ $(eval revision=$(word 2,$(1)))
+
+ let \
+ size="$$(stat -c%s $@)" \
+ pad="$(subst k,* 1024,$(BLOCKSIZE))" \
+ pad="(pad - (size % pad)) % pad" \
+ newsize='size + pad'; \
+ $(STAGING_DIR_HOST)/bin/mkmylofw \
+ -B WPE72 -i 0x11f6:$(device_id):0x11f6:$(device_id) -r $(revision) \
+ -s 0x2000000 -p0x180000:$$newsize:al:0x80208000:"OpenWrt":$@ \
+ $@.new
+ @mv $@.new $@
+endef
+
define Build/SenaoFW
-$(STAGING_DIR_HOST)/bin/mksenaofw \
-n $(BOARD_NAME) -r $(VENDOR_ID) -p $(1) \
@@ -243,8 +259,9 @@ define Device/compex_wpj428
BLOCKSIZE := 64k
IMAGE_SIZE := 31232k
KERNEL_SIZE := 4096k
- IMAGES = sysupgrade.bin
+ IMAGES = sysupgrade.bin cpximg-6a04.bin
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
+ IMAGE/cpximg-6a04.bin := append-kernel | append-rootfs | pad-rootfs | mkmylofw_32m 0x8A2 3
DEVICE_PACKAGES := kmod-gpio-beeper
endef
TARGET_DEVICES += compex_wpj428