diff options
author | John Crispin <john@openwrt.org> | 2016-02-25 10:14:19 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2016-02-25 10:14:19 +0000 |
commit | cb49742f995b6cea4970d74a5cc0f59c904bd3e3 (patch) | |
tree | c33c43969baf8df0dc915ed616cd113f43327281 /target/linux | |
parent | c0c3f2d4c9178925f66f6df9fb0e4fcb370a8890 (diff) | |
download | upstream-cb49742f995b6cea4970d74a5cc0f59c904bd3e3.tar.gz upstream-cb49742f995b6cea4970d74a5cc0f59c904bd3e3.tar.bz2 upstream-cb49742f995b6cea4970d74a5cc0f59c904bd3e3.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>
SVN-Revision: 48771
Diffstat (limited to 'target/linux')
-rw-r--r-- | target/linux/ramips/image/Makefile | 28 | ||||
-rw-r--r-- | target/linux/ramips/image/ex2700-fakeroot.uImage | bin | 0 -> 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 Binary files differnew file mode 100644 index 0000000000..340f736141 --- /dev/null +++ b/target/linux/ramips/image/ex2700-fakeroot.uImage |