aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/image
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2016-02-25 10:14:19 +0000
committerJohn Crispin <blogic@openwrt.org>2016-02-25 10:14:19 +0000
commitff7b62f34827b788fb82b42c06731f6096dadc75 (patch)
tree604575dd2fd386535fa60a684d0a4b5896dbd59a /target/linux/ramips/image
parent85981ea1a3f47dfd8178e2d57f1d14d91fcfe37e (diff)
downloadmaster-187ad058-ff7b62f34827b788fb82b42c06731f6096dadc75.tar.gz
master-187ad058-ff7b62f34827b788fb82b42c06731f6096dadc75.tar.bz2
master-187ad058-ff7b62f34827b788fb82b42c06731f6096dadc75.zip
ramips: build factory images for Netgear EX2700
This patch adds support for building factory and sysupgrade images for the Netgear EX2700 that don't require modification of u-boot environment variables. The bootloader on this device expects the kernel partition to end on a 64k block boundary. The last 64 byte of the kernel partition must contain a valid uImage header - in the stock firmware, this is the uImage header of the root filesystem. For this patch, we're using the uImage header of a 0 byte partition (ex2700-fakeroot.uImage). Signed-off-by: Joseph C. Lehner <joseph.c.lehner@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@48771 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ramips/image')
-rw-r--r--target/linux/ramips/image/Makefile28
-rw-r--r--target/linux/ramips/image/ex2700-fakeroot.uImagebin0 -> 64 bytes
2 files changed, 27 insertions, 1 deletions
diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile
index 8bdd76a35c..307c3f93e6 100644
--- a/target/linux/ramips/image/Makefile
+++ b/target/linux/ramips/image/Makefile
@@ -912,8 +912,34 @@ endif
# MT7620A Profiles
#
+# $(1): (ignored)
+# $(2): lowercase board name
+# $(3): uppercase board name (must match DTS filename w/o extension)
+# $(4): erase block size
+# $(5): hardware id for mkdniimg
+# $(6): maximum image size
+define BuildFirmware/Netgear/squashfs
+ $(call PatchKernelLzmaDtb,$(2),$(3))
+ # Pad kernel to eraseblock boundary, minus 2 uImage headers (=128 bytes):
+ # bs = (eraseblock * (1 + (128 + kernelsize)/eraseblock)) - 128
+ dd if=$(KDIR)/vmlinux-$(2).bin.lzma \
+ of=$(KDIR)/vmlinux-$(2).bin.lzma.tmp \
+ bs=`expr \( $(4) \* \( 1 + \( 128 + \`wc -c < $(KDIR)/vmlinux-$(2).bin.lzma\` \) / $(4) \) \) - 128` \
+ count=1 conv=sync
+
+ $(call MkImage,lzma,$(KDIR)/vmlinux-$(2).bin.lzma.tmp,$(KDIR)/vmlinux-$(2).uImage)
+ cat ex2700-fakeroot.uImage >> $(KDIR)/vmlinux-$(2).uImage
+ $(call MkImageSysupgrade/squashfs,squashfs,$(2),$(6))
+
+ $(STAGING_DIR_HOST)/bin/mkdniimg \
+ -B $(3) -H $(5) -v OpenWrt \
+ -i $(call imgname,squashfs,$(2))-sysupgrade.bin \
+ -o $(call imgname,squashfs,$(2))-factory.bin
+endef
+
Image/Build/Profile/E1700=$(call BuildFirmware/UMedia/$(1),$(1),e1700,E1700,0x013326)
-Image/Build/Profile/EX2700=$(call BuildFirmware/Default4M/$(1),$(1),ex2700,EX2700)
+ex2700_mtd_size=3866624
+Image/Build/Profile/EX2700=$(call BuildFirmware/Netgear/$(1),$(1),ex2700,EX2700,65536,29764623+4+0+32+2x2+0,$(ex2700_mtd_size))
Image/Build/Profile/MT7620a=$(call BuildFirmware/Default8M/$(1),$(1),mt7620a,MT7620a)
Image/Build/Profile/MT7620a_MT7610e=$(call BuildFirmware/Default8M/$(1),$(1),mt7620a_mt7610e,MT7620a_MT7610e)
Image/Build/Profile/MT7620a_MT7530=$(call BuildFirmware/Default8M/$(1),$(1),mt7620a_mt7530,MT7620a_MT7530)
diff --git a/target/linux/ramips/image/ex2700-fakeroot.uImage b/target/linux/ramips/image/ex2700-fakeroot.uImage
new file mode 100644
index 0000000000..340f736141
--- /dev/null
+++ b/target/linux/ramips/image/ex2700-fakeroot.uImage
Binary files differ