2009-08-30 19:15:51 +00:00
|
|
|
#
|
2011-10-31 09:23:44 +00:00
|
|
|
# Copyright (C) 2008-2011 OpenWrt.org
|
2009-08-30 19:15:51 +00:00
|
|
|
#
|
|
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
|
|
# See /LICENSE for more information.
|
|
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
include $(INCLUDE_DIR)/image.mk
|
|
|
|
|
|
|
|
define imgname
|
2010-07-31 11:42:17 +00:00
|
|
|
$(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1)
|
2009-08-30 19:15:51 +00:00
|
|
|
endef
|
|
|
|
|
2012-02-23 19:58:03 +00:00
|
|
|
define sysupname
|
|
|
|
$(call imgname,$(1),$(2))-sysupgrade.bin
|
|
|
|
endef
|
|
|
|
|
2010-04-12 23:15:56 +00:00
|
|
|
VMLINUX:=$(IMG_PREFIX)-vmlinux
|
|
|
|
UIMAGE:=$(IMG_PREFIX)-uImage
|
2013-04-03 09:59:51 +00:00
|
|
|
|
|
|
|
define Image/Build/Initramfs
|
|
|
|
$(call Image/Build/Profile/$(PROFILE),initramfs)
|
|
|
|
endef
|
2009-08-30 19:15:51 +00:00
|
|
|
|
2016-02-01 17:41:29 +00:00
|
|
|
DEVICE_VARS += DTS IMAGE_SIZE
|
2015-01-10 15:26:53 +00:00
|
|
|
|
2015-01-10 15:26:38 +00:00
|
|
|
loadaddr-y := 0x80000000
|
|
|
|
loadaddr-$(CONFIG_TARGET_ramips_rt288x) := 0x88000000
|
|
|
|
loadaddr-$(CONFIG_TARGET_ramips_mt7621) := 0x80001000
|
2009-08-30 19:15:51 +00:00
|
|
|
|
2015-01-10 15:26:53 +00:00
|
|
|
KERNEL_LOADADDR := $(loadaddr-y)
|
|
|
|
|
|
|
|
KERNEL_DTB = kernel-bin | patch-dtb | lzma
|
|
|
|
define Device/Default
|
2016-01-06 18:39:06 +00:00
|
|
|
KERNEL_DEPENDS = $$(wildcard ../dts/$$(DTS).dts)
|
2015-01-10 15:26:53 +00:00
|
|
|
KERNEL := $(KERNEL_DTB) | uImage lzma
|
|
|
|
IMAGES := sysupgrade.bin
|
|
|
|
IMAGE_SIZE := $(ralink_default_fw_size_8M)
|
2015-05-27 14:56:22 +00:00
|
|
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
|
2015-01-10 15:26:53 +00:00
|
|
|
endef
|
|
|
|
|
|
|
|
define Build/patch-dtb
|
2015-12-10 12:39:32 +00:00
|
|
|
$(call Image/BuildDTB,../dts/$(DTS).dts,$@.dtb)
|
2015-01-10 15:26:53 +00:00
|
|
|
$(STAGING_DIR_HOST)/bin/patch-dtb $@ $@.dtb
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Build/trx
|
|
|
|
$(STAGING_DIR_HOST)/bin/trx \
|
|
|
|
-o $@ \
|
|
|
|
-m $(IMAGE_SIZE) \
|
|
|
|
-f $(word 1,$^) \
|
|
|
|
-a 4 -f $(word 2,$^)
|
|
|
|
endef
|
|
|
|
|
2015-01-17 21:20:05 +00:00
|
|
|
define Build/seama
|
|
|
|
$(STAGING_DIR_HOST)/bin/seama -i $@ $(1)
|
|
|
|
mv $@.seama $@
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Build/seama-seal
|
|
|
|
$(call Build/seama,-s $@.seama $(1))
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Build/relocate-kernel
|
|
|
|
( \
|
2015-05-29 11:28:10 +00:00
|
|
|
dd if=$(KDIR)/loader.bin bs=32 conv=sync && \
|
2015-01-17 21:20:05 +00:00
|
|
|
perl -e '@s = stat("$@"); print pack("V", @s[7])' && \
|
|
|
|
cat $@ \
|
|
|
|
) > $@.new
|
|
|
|
mv $@.new $@
|
|
|
|
endef
|
|
|
|
|
ramips: add support for Ubiquiti EdgeRouter X (UBNT-ERX)
This router is based on MT7621 SoC, no wifi, no usb, nand.
Works:
* Boots.
* Ethernet.
* Switch.
* Button (reset).
* Flashing OpenWrt from stock firmware.
* Upgrading OpenWrt.
Doesn't work:
* No GPIO leds. All leds are controlled by switch,
but stock firmware was able to control them.
* SoC has crypto engine but no open driver.
* SoC has nat acceleration, but no open driver.
* This router has 2MB spi flash soldered in but MT
nand/spi drivers do not support pin sharing,
so it is not accessable and disabled. Stock
firmware could read it and it was empty.
* PoE out.
Router has serial pins populated. If looking at the top
of the router, then counting from Eth sockets pins go as:
'GND, RX, TX, GND'. 3.3v, 57600.
U-boot bootloader supports tftpboot, controlled from serial.
This router has two kernel partitions: 'live' and 'backup'.
They are swapped during flashing (on both stock and OpenWrt).
Active partition is controlled by a flag in a factory partition.
U-boot has custom command to switch active kernel partition.
Kernel partitions are 'bare flash' 3MB. Stock bootloader has
no UBI support. Stock rootfs is UBIFS.
Flashing procedure.
Stock firmware uses custom kernel patch to mount squashfs
from a file that is located on UBIFS volume. This makes wiping
out this volume from within stock firmware difficult.
Instead this patch builds image that is flashable by stock firmware
and contains initrams image (with minimal set of packages
to fit into kernel partition). Once this is flashed one can reboot
into initramfs OpenWrt and use sysupgrade to flash OpenWrt including
rootfs into nand.
Note: factory image is only built if initramfs image is enabled.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
SVN-Revision: 47881
2015-12-12 07:38:06 +00:00
|
|
|
define Build/ubnt-erx-factory-compat
|
|
|
|
echo '21001:6' > $@.compat
|
|
|
|
$(TAR) -cf $@ --transform='s/^.*/compat/' $@.compat
|
|
|
|
$(RM) $@.compat
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Build/ubnt-erx-factory-kernel
|
2016-01-06 18:39:13 +00:00
|
|
|
if [ -e $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) ]; then \
|
|
|
|
$(TAR) -rf $@ --transform='s/^.*/vmlinux.tmp/' $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE); \
|
ramips: add support for Ubiquiti EdgeRouter X (UBNT-ERX)
This router is based on MT7621 SoC, no wifi, no usb, nand.
Works:
* Boots.
* Ethernet.
* Switch.
* Button (reset).
* Flashing OpenWrt from stock firmware.
* Upgrading OpenWrt.
Doesn't work:
* No GPIO leds. All leds are controlled by switch,
but stock firmware was able to control them.
* SoC has crypto engine but no open driver.
* SoC has nat acceleration, but no open driver.
* This router has 2MB spi flash soldered in but MT
nand/spi drivers do not support pin sharing,
so it is not accessable and disabled. Stock
firmware could read it and it was empty.
* PoE out.
Router has serial pins populated. If looking at the top
of the router, then counting from Eth sockets pins go as:
'GND, RX, TX, GND'. 3.3v, 57600.
U-boot bootloader supports tftpboot, controlled from serial.
This router has two kernel partitions: 'live' and 'backup'.
They are swapped during flashing (on both stock and OpenWrt).
Active partition is controlled by a flag in a factory partition.
U-boot has custom command to switch active kernel partition.
Kernel partitions are 'bare flash' 3MB. Stock bootloader has
no UBI support. Stock rootfs is UBIFS.
Flashing procedure.
Stock firmware uses custom kernel patch to mount squashfs
from a file that is located on UBIFS volume. This makes wiping
out this volume from within stock firmware difficult.
Instead this patch builds image that is flashable by stock firmware
and contains initrams image (with minimal set of packages
to fit into kernel partition). Once this is flashed one can reboot
into initramfs OpenWrt and use sysupgrade to flash OpenWrt including
rootfs into nand.
Note: factory image is only built if initramfs image is enabled.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
SVN-Revision: 47881
2015-12-12 07:38:06 +00:00
|
|
|
\
|
2016-01-06 18:39:13 +00:00
|
|
|
md5sum --binary $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) | awk '{print $$1}'> $@.md5; \
|
ramips: add support for Ubiquiti EdgeRouter X (UBNT-ERX)
This router is based on MT7621 SoC, no wifi, no usb, nand.
Works:
* Boots.
* Ethernet.
* Switch.
* Button (reset).
* Flashing OpenWrt from stock firmware.
* Upgrading OpenWrt.
Doesn't work:
* No GPIO leds. All leds are controlled by switch,
but stock firmware was able to control them.
* SoC has crypto engine but no open driver.
* SoC has nat acceleration, but no open driver.
* This router has 2MB spi flash soldered in but MT
nand/spi drivers do not support pin sharing,
so it is not accessable and disabled. Stock
firmware could read it and it was empty.
* PoE out.
Router has serial pins populated. If looking at the top
of the router, then counting from Eth sockets pins go as:
'GND, RX, TX, GND'. 3.3v, 57600.
U-boot bootloader supports tftpboot, controlled from serial.
This router has two kernel partitions: 'live' and 'backup'.
They are swapped during flashing (on both stock and OpenWrt).
Active partition is controlled by a flag in a factory partition.
U-boot has custom command to switch active kernel partition.
Kernel partitions are 'bare flash' 3MB. Stock bootloader has
no UBI support. Stock rootfs is UBIFS.
Flashing procedure.
Stock firmware uses custom kernel patch to mount squashfs
from a file that is located on UBIFS volume. This makes wiping
out this volume from within stock firmware difficult.
Instead this patch builds image that is flashable by stock firmware
and contains initrams image (with minimal set of packages
to fit into kernel partition). Once this is flashed one can reboot
into initramfs OpenWrt and use sysupgrade to flash OpenWrt including
rootfs into nand.
Note: factory image is only built if initramfs image is enabled.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
SVN-Revision: 47881
2015-12-12 07:38:06 +00:00
|
|
|
$(TAR) -rf $@ --transform='s/^.*/vmlinux.tmp.md5/' $@.md5; \
|
|
|
|
$(RM) $@.md5; \
|
|
|
|
fi
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Build/ubnt-erx-factory-rootfs
|
|
|
|
echo "dummy" > $@.rootfs
|
|
|
|
$(TAR) -rf $@ --transform='s/^.*/squashfs.tmp/' $@.rootfs
|
|
|
|
|
|
|
|
md5sum --binary $@.rootfs | awk '{print $$1}'> $@.md5
|
|
|
|
$(TAR) -rf $@ --transform='s/^.*/squashfs.tmp.md5/' $@.md5
|
|
|
|
$(RM) $@.md5
|
|
|
|
$(RM) $@.rootfs
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Build/ubnt-erx-factory-version
|
|
|
|
echo '$(BOARD) $(VERSION_CODE) $(VERSION_NUMBER)' > $@.version
|
|
|
|
$(TAR) -rf $@ --transform='s/^.*/version.tmp/' $@.version
|
|
|
|
$(RM) $@.version
|
|
|
|
endef
|
|
|
|
|
|
|
|
#We need kernel+initrams fit into kernel partition
|
|
|
|
define Build/ubnt-erx-factory-check-size
|
|
|
|
@[ $$(($(subst k,* 1024,$(subst m, * 1024k,$(1))))) -ge "$$($(TAR) -xf $@ vmlinux.tmp -O | wc -c)" ] || { \
|
|
|
|
echo "WARNING: Initramfs kernel for image $@ is too big (kernel size: $$($(TAR) -xf $@ vmlinux.tmp -O | wc -c), max size $(1))" >&2; \
|
|
|
|
$(RM) -f $@; \
|
|
|
|
}
|
|
|
|
|
|
|
|
@[ "$$($(TAR) -xf $@ vmlinux.tmp -O | wc -c)" -gt 0 ] || { \
|
|
|
|
echo "WARNING: Kernel for image $@ not found" >&2; \
|
|
|
|
$(RM) -f $@; \
|
|
|
|
}
|
|
|
|
endef
|
|
|
|
|
2012-08-17 17:56:07 +00:00
|
|
|
define MkCombineduImage
|
|
|
|
$(call PatchKernelLzma,$(2),$(3))
|
|
|
|
if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.lzma"` -gt `expr $(4) - 64` ]; then \
|
2013-02-21 11:45:33 +00:00
|
|
|
echo "Warning: $(KDIR)/vmlinux-$(2).bin.lzma is too big" >&2; \
|
2012-08-17 17:56:07 +00:00
|
|
|
else if [ `stat -c%s "$(KDIR)/root.$(1)"` -gt $(5) ]; then \
|
2013-02-21 11:45:33 +00:00
|
|
|
echo "Warning: $(KDIR)/root.$(1) is too big" >&2; \
|
2012-08-17 17:56:07 +00:00
|
|
|
else \
|
|
|
|
( dd if=$(KDIR)/vmlinux-$(2).bin.lzma bs=`expr $(4) - 64` conv=sync ; dd if=$(KDIR)/root.$(1) ) > $(KDIR)/vmlinux-$(2).bin.lzma.combined ; \
|
|
|
|
fi ; fi
|
|
|
|
$(call MkImage,lzma,$(KDIR)/vmlinux-$(2).bin.lzma.combined,$(call sysupname,$(1),$(2)),$(6))
|
|
|
|
endef
|
|
|
|
|
2012-02-23 19:58:01 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
#
|
|
|
|
# The real magic happens inside these templates
|
|
|
|
#
|
2014-10-20 06:29:51 +00:00
|
|
|
# $(1), compression method
|
|
|
|
# $(2), filename of image data
|
|
|
|
# $(3), output filename
|
2013-04-03 09:59:51 +00:00
|
|
|
define MkImage
|
|
|
|
$(eval imagename=$(if $(4),$(4),MIPS OpenWrt Linux-$(LINUX_VERSION)))
|
2015-01-10 15:26:38 +00:00
|
|
|
-mkimage -A mips -O linux -T kernel -C $(1) -a $(loadaddr-y) -e $(loadaddr-y) \
|
2013-04-03 09:59:51 +00:00
|
|
|
-n "$(imagename)" \
|
|
|
|
-d $(2) $(3)
|
2012-12-10 14:13:01 +00:00
|
|
|
endef
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
define CompressLzma
|
|
|
|
$(STAGING_DIR_HOST)/bin/lzma e $(1) -lc1 -lp2 -pb2 $(2)
|
2012-12-10 14:13:01 +00:00
|
|
|
endef
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
define MkImageSysupgrade/squashfs
|
|
|
|
$(eval output_name=$(IMG_PREFIX)-$(2)-$(1)-$(if $(4),$(4),sysupgrade).bin)
|
|
|
|
cat $(KDIR)/vmlinux-$(2).uImage $(KDIR)/root.$(1) > $(KDIR)/$(output_name)
|
|
|
|
$(call prepare_generic_squashfs,$(KDIR)/$(output_name))
|
|
|
|
if [ `stat -c%s "$(KDIR)/$(output_name)"` -gt $(3) ]; then \
|
|
|
|
echo "Warning: $(KDIR)/$(output_name) is too big" >&2; \
|
|
|
|
else \
|
|
|
|
$(CP) $(KDIR)/$(output_name) $(BIN_DIR)/$(output_name); \
|
2012-02-23 19:58:03 +00:00
|
|
|
fi
|
2011-07-06 08:04:52 +00:00
|
|
|
endef
|
|
|
|
|
2015-01-09 15:40:51 +00:00
|
|
|
define MkImageTpl/squashfs
|
|
|
|
$(eval output_name=$(IMG_PREFIX)-$(2)-$(1)-$(if $(4),$(4),sysupgrade).bin)
|
2016-01-28 14:13:01 +00:00
|
|
|
-$(STAGING_DIR_HOST)/bin/mktplinkfw2 -V "ver. 2.0" -B "$(2)" -j \
|
2015-01-09 15:40:51 +00:00
|
|
|
-o $(KDIR)/$(output_name) \
|
|
|
|
-k $(KDIR)/vmlinux-$(1)$(4).bin.lzma \
|
2016-01-28 14:13:01 +00:00
|
|
|
-r $(KDIR)/root.$(1) && \
|
|
|
|
$(CP) $(KDIR)/$(output_name) $(BIN_DIR)/$(output_name)
|
2015-01-09 15:40:51 +00:00
|
|
|
endef
|
|
|
|
|
|
|
|
define MkImageTpl/initramfs
|
|
|
|
$(eval output_name=$(IMG_PREFIX)-$(2)-$(1).bin)
|
2016-01-28 14:13:01 +00:00
|
|
|
-$(STAGING_DIR_HOST)/bin/mktplinkfw2 -V "ver. 2.0" -B "$(2)" -c \
|
2015-01-09 15:40:51 +00:00
|
|
|
-o $(KDIR)/$(output_name) \
|
2016-01-28 14:13:01 +00:00
|
|
|
-k $(KDIR)/vmlinux-$(1).bin.lzma && \
|
|
|
|
$(CP) $(KDIR)/$(output_name) $(BIN_DIR)/$(output_name)
|
2015-01-09 15:40:51 +00:00
|
|
|
endef
|
|
|
|
|
2014-10-20 06:29:51 +00:00
|
|
|
# $(1), lowercase board name like "mt7620a_v22sg"
|
|
|
|
# $(2), DTS filename without .dts extension
|
|
|
|
# $(3), optional filename suffix, e.g. "-initramfs"
|
2013-04-03 09:59:51 +00:00
|
|
|
define PatchKernelLzmaDtb
|
2013-06-29 08:41:03 +00:00
|
|
|
cp $(KDIR)/vmlinux$(3) $(KDIR)/vmlinux-$(1)$(3)
|
2013-04-03 09:59:51 +00:00
|
|
|
$(LINUX_DIR)/scripts/dtc/dtc -O dtb -o $(KDIR)/$(2).dtb ../dts/$(2).dts
|
2013-06-29 08:41:03 +00:00
|
|
|
$(STAGING_DIR_HOST)/bin/patch-dtb $(KDIR)/vmlinux-$(1)$(3) $(KDIR)/$(2).dtb
|
|
|
|
$(call CompressLzma,$(KDIR)/vmlinux-$(1)$(3),$(KDIR)/vmlinux-$(1)$(3).bin.lzma)
|
2012-08-17 17:56:05 +00:00
|
|
|
endef
|
|
|
|
|
2014-10-20 06:29:51 +00:00
|
|
|
# $(1), lowercase board name
|
|
|
|
# $(2), DTS filename without .dts extension
|
|
|
|
# $(3), ih_name field of uImage header
|
|
|
|
# $(4), optional filename suffix, e.g. "-initramfs"
|
2013-04-03 09:59:51 +00:00
|
|
|
define MkImageLzmaDtb
|
2013-06-29 08:41:03 +00:00
|
|
|
$(call PatchKernelLzmaDtb,$(1),$(2),$(4))
|
|
|
|
$(call MkImage,lzma,$(KDIR)/vmlinux-$(1)$(4).bin.lzma,$(KDIR)/vmlinux-$(1)$(4).uImage,$(3))
|
2012-07-24 20:38:43 +00:00
|
|
|
endef
|
|
|
|
|
2014-10-20 06:29:51 +00:00
|
|
|
# $(1), Rootfs type, e.g. squashfs
|
|
|
|
# $(2), lowercase board name
|
|
|
|
# $(3), DTS filename without .dts extension
|
|
|
|
# $(4), maximum size of sysupgrade image
|
|
|
|
# $(5), uImage header's ih_name field
|
2013-04-03 09:59:51 +00:00
|
|
|
define BuildFirmware/OF
|
|
|
|
$(call MkImageLzmaDtb,$(2),$(3),$(5))
|
|
|
|
$(call MkImageSysupgrade/$(1),$(1),$(2),$(4),$(6))
|
2012-07-24 20:38:43 +00:00
|
|
|
endef
|
|
|
|
|
2015-01-09 15:40:51 +00:00
|
|
|
define BuildFirmware/OF/tplink
|
|
|
|
$(call PatchKernelLzmaDtb,$(1),$(2),$(4))
|
|
|
|
$(call MkImageTpl/$(1),$(1),$(2),$(4),$(5))
|
|
|
|
endef
|
|
|
|
|
|
|
|
define BuildFirmware/OF/tplink/initramfs
|
|
|
|
$(call PatchKernelLzmaDtb,$(2),$(3),-initramfs)
|
|
|
|
$(call MkImageTpl/$(1),$(1),$(2),$(4),$(5))
|
|
|
|
endef
|
|
|
|
|
2014-10-20 06:29:51 +00:00
|
|
|
# $(1), squashfs/initramfs
|
|
|
|
# $(2), lowercase board name
|
|
|
|
# $(3), DTS filename without .dts extension
|
|
|
|
# $(4), ih_name field of uImage header
|
2013-04-03 09:59:51 +00:00
|
|
|
define BuildFirmware/OF/initramfs
|
2013-06-29 08:41:03 +00:00
|
|
|
$(call MkImageLzmaDtb,$(2),$(3),$(4),-initramfs)
|
|
|
|
$(CP) $(KDIR)/vmlinux-$(2)-initramfs.uImage $(call imgname,$(1),$(2))-uImage.bin
|
2012-08-12 12:48:24 +00:00
|
|
|
endef
|
|
|
|
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
# Build images for default ralink layout for 4MB flash
|
|
|
|
# kernel + roots = 0x3b0000
|
|
|
|
# $(1) = squashfs/initramfs
|
|
|
|
# $(2) = lowercase board name
|
|
|
|
# $(3) = dts file
|
|
|
|
ralink_default_fw_size_4M=3866624
|
2014-01-12 12:07:40 +00:00
|
|
|
BuildFirmware/Default4M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_4M),$(4))
|
|
|
|
BuildFirmware/Default4M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4))
|
2013-04-03 09:59:51 +00:00
|
|
|
|
|
|
|
# Build images for default ralink layout for 8MB flash
|
|
|
|
# kernel + roots = 0x7b0000
|
|
|
|
# $(1) = squashfs/initramfs
|
|
|
|
# $(2) = lowercase board name
|
|
|
|
# $(3) = dts file
|
2014-10-20 06:29:51 +00:00
|
|
|
# $(4) = uImage header name field
|
2013-04-03 09:59:51 +00:00
|
|
|
ralink_default_fw_size_8M=8060928
|
2013-06-10 08:24:56 +00:00
|
|
|
BuildFirmware/Default8M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_8M),$(4))
|
|
|
|
BuildFirmware/Default8M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4))
|
2015-01-09 15:40:51 +00:00
|
|
|
BuildFirmware/Tplink/squashfs=$(call BuildFirmware/OF/tplink,$(1),$(2),$(3),$(4))
|
|
|
|
BuildFirmware/Tplink/initramfs=$(call BuildFirmware/OF/tplink/initramfs,$(1),$(2),$(3),$(4))
|
2013-04-03 09:59:51 +00:00
|
|
|
|
2013-07-25 16:01:58 +00:00
|
|
|
ralink_default_fw_size_16M=16121856
|
2013-07-22 15:36:39 +00:00
|
|
|
BuildFirmware/Default16M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_16M),$(4))
|
|
|
|
BuildFirmware/Default16M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4))
|
|
|
|
|
2015-10-19 10:07:38 +00:00
|
|
|
ralink_default_fw_size_32M=33226752
|
|
|
|
BuildFirmware/Default32M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_32M),$(4))
|
|
|
|
BuildFirmware/Default32M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4))
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
# Build images for a custom sized flash layout
|
|
|
|
# $(1) = squashfs/initramfs
|
|
|
|
# $(2) = lowercase board name
|
|
|
|
# $(3) = dts file
|
|
|
|
# $(4) = kernel + rootfs size
|
|
|
|
BuildFirmware/CustomFlash/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(4),$(5),$(6))
|
|
|
|
BuildFirmware/CustomFlash/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
|
|
|
|
|
|
|
|
# wrappers for boards that have 4MB and 8MB versions
|
|
|
|
define BuildFirmware/DefaultDualSize/squashfs
|
|
|
|
$(call BuildFirmware/Default4M/$(1),$(1),$(2)-4M,$(3)-4M)
|
|
|
|
$(call BuildFirmware/Default8M/$(1),$(1),$(2)-8M,$(3)-8M)
|
|
|
|
endef
|
|
|
|
define BuildFirmware/DefaultDualSize/initramfs
|
|
|
|
$(call BuildFirmware/OF/initramfs,$(1),$(2)-4M,$(3)-4M)
|
|
|
|
$(call BuildFirmware/OF/initramfs,$(1),$(2)-8M,$(3)-8M)
|
|
|
|
endef
|
|
|
|
|
|
|
|
# Some boards need a special header inside the uImage to make them bootable
|
|
|
|
define BuildFirmware/CustomFlashFactory/squashfs
|
|
|
|
$(call BuildFirmware/CustomFlash/$(1),$(1),$(2),$(3),$(4))
|
|
|
|
$(call BuildFirmware/CustomFlash/$(1),$(1),$(2),$(3),$(4),$(5),$(6))
|
|
|
|
endef
|
|
|
|
BuildFirmware/CustomFlashFactory/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
|
|
|
|
|
|
|
|
# sign an image to make it work with edimax tftp recovery
|
|
|
|
define BuildFirmware/Edimax/squashfs
|
|
|
|
$(call BuildFirmware/OF,$(1),$(2),$(3),$(4))
|
2012-02-24 16:18:46 +00:00
|
|
|
if [ -e "$(call sysupname,$(1),$(2))" ]; then \
|
|
|
|
mkedimaximg -i $(call sysupname,$(1),$(2)) \
|
|
|
|
-o $(call imgname,$(1),$(2))-factory.bin \
|
2013-04-03 09:59:51 +00:00
|
|
|
-s $(5) -m $(6) -f $(7) -S $(8); \
|
2012-02-24 16:18:46 +00:00
|
|
|
fi
|
2012-02-23 19:58:15 +00:00
|
|
|
endef
|
2013-04-03 09:59:51 +00:00
|
|
|
BuildFirmware/Edimax/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
|
2012-02-23 19:58:15 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
# build Seama header images
|
|
|
|
define BuildFirmware/Seama/squashfs
|
2014-06-02 12:43:49 +00:00
|
|
|
$(call MkImageLzmaDtb,$(2),$(3),$(5))
|
|
|
|
$(eval output_name=$(IMG_PREFIX)-$(2)-$(1)-sysupgrade.bin)
|
2013-04-03 09:59:51 +00:00
|
|
|
cat $(KDIR)/vmlinux-$(2).bin.lzma $(KDIR)/root.$(1) > $(KDIR)/img_$(2).$(1).tmp
|
2013-08-23 17:07:26 +00:00
|
|
|
if [ `stat -c%s "$(KDIR)/img_$(2).$(1).tmp"` -gt $$$$(($(5) - 64)) ]; then \
|
2013-04-03 09:59:51 +00:00
|
|
|
echo "Warning: $(KDIR)/img_$(2).$(1).tmp is too big" >&2; \
|
2012-10-18 07:23:04 +00:00
|
|
|
else \
|
2013-04-03 09:59:51 +00:00
|
|
|
dd if=$(KDIR)/vmlinux-$(2).bin.lzma of=$(KDIR)/vmlinux-$(2).bin.lzma.padded bs=64k conv=sync; \
|
2012-10-18 07:23:04 +00:00
|
|
|
( \
|
2013-04-03 09:59:51 +00:00
|
|
|
dd if=$(KDIR)/vmlinux-$(2).bin.lzma.padded bs=1 count=`expr \`stat -c%s $(KDIR)/vmlinux-$(2).bin.lzma.padded\` - 64`; \
|
2012-10-18 07:23:04 +00:00
|
|
|
dd if=$(KDIR)/root.$(1) bs=64k conv=sync; \
|
|
|
|
) > $(KDIR)/vmlinux-$(2).tmp; \
|
|
|
|
$(STAGING_DIR_HOST)/bin/seama \
|
|
|
|
-i $(KDIR)/vmlinux-$(2).tmp \
|
|
|
|
-m "dev=/dev/mtdblock/2" -m "type=firmware"; \
|
|
|
|
$(STAGING_DIR_HOST)/bin/seama \
|
|
|
|
-s $(call imgname,$(1),$(2))-factory.bin \
|
2013-04-03 09:59:51 +00:00
|
|
|
-m "signature=$(4)" \
|
2012-10-18 07:23:04 +00:00
|
|
|
-i $(KDIR)/vmlinux-$(2).tmp.seama; \
|
2014-06-02 12:43:49 +00:00
|
|
|
dd if=$(KDIR)/vmlinux-$(2).bin.lzma.padded bs=1 count=`expr \`stat -c%s $(KDIR)/vmlinux-$(2).bin.lzma.padded\` - 64` of=$(KDIR)/vmlinux-$(2)-sysupgrade.tmp; \
|
|
|
|
$(STAGING_DIR_HOST)/bin/seama \
|
|
|
|
-i $(KDIR)/vmlinux-$(2)-sysupgrade.tmp \
|
|
|
|
-m "dev=/dev/mtdblock/2" -m "type=firmware"; \
|
|
|
|
( \
|
|
|
|
dd if=$(KDIR)/vmlinux-$(2)-sysupgrade.tmp.seama; \
|
|
|
|
dd if=$(KDIR)/root.$(1) bs=64k conv=sync; \
|
|
|
|
) > $(BIN_DIR)/$(output_name); \
|
2013-04-03 09:59:51 +00:00
|
|
|
fi
|
2012-10-18 07:23:04 +00:00
|
|
|
endef
|
2013-04-03 09:59:51 +00:00
|
|
|
BuildFirmware/Seama/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
|
2012-10-18 07:23:04 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
# sign Buffalo images
|
|
|
|
define BuildFirmware/Buffalo
|
|
|
|
if [ -e "$(call sysupname,$(1),$(2))" ]; then \
|
|
|
|
buffalo-enc -p $(3) -v 1.76 \
|
|
|
|
-i $(KDIR)/vmlinux-$(2).uImage \
|
|
|
|
-o $(KDIR)/vmlinux-$(2).uImage.enc; \
|
|
|
|
buffalo-enc -p $(3) -v 1.76 \
|
|
|
|
-i $(KDIR)/root.$(1) \
|
|
|
|
-o $(KDIR)/root.$(2).enc; \
|
|
|
|
buffalo-tag -b $(3) -p $(3) -a ram -v 1.76 -m 1.01 \
|
|
|
|
-l mlang8 -f 1 -r EU \
|
|
|
|
-i $(KDIR)/vmlinux-$(2).uImage.enc \
|
|
|
|
-i $(KDIR)/root.$(2).enc \
|
|
|
|
-o $(call imgname,$(1),$(2))-factory-EU.bin; \
|
|
|
|
fi
|
2012-10-18 07:23:04 +00:00
|
|
|
endef
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
# sign trednet / UMedia images
|
|
|
|
define BuildFirmware/UMedia/squashfs
|
|
|
|
$(call BuildFirmware/Default8M/$(1),$(1),$(2),$(3))
|
2012-10-18 07:23:10 +00:00
|
|
|
if [ -e "$(call sysupname,$(1),$(2))" ]; then \
|
|
|
|
fix-u-media-header -T 0x46 -B $(4) \
|
|
|
|
-i $(call sysupname,$(1),$(2)) \
|
|
|
|
-o $(call imgname,$(1),$(2))-factory.bin; \
|
|
|
|
fi
|
|
|
|
endef
|
2013-04-03 09:59:51 +00:00
|
|
|
BuildFirmware/UMedia/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
|
2012-10-18 07:23:10 +00:00
|
|
|
|
2013-04-03 10:00:12 +00:00
|
|
|
# sign dap 1350 based images
|
|
|
|
dap1350_mtd_size=7667712
|
|
|
|
define BuildFirmware/dap1350/squashfs
|
|
|
|
$(call BuildFirmware/CustomFlash/$(1),$(1),$(2),$(3),$(dap1350_mtd_size))
|
|
|
|
-mkdapimg -s $(4) \
|
|
|
|
-i $(call sysupname,$(1),$(2)) \
|
|
|
|
-o $(call imgname,$(1),$(2))-factory.bin
|
|
|
|
endef
|
|
|
|
BuildFirmware/dap1350/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
|
2010-04-11 17:47:28 +00:00
|
|
|
|
2013-08-01 14:30:46 +00:00
|
|
|
# Sign Poray images
|
|
|
|
define BuildFirmware/Poray4M/squashfs
|
|
|
|
$(call BuildFirmware/Default4M/$(1),$(1),$(2),$(3))
|
|
|
|
if [ -e "$(call sysupname,$(1),$(2))" ]; then \
|
|
|
|
mkporayfw -B $(3) -F 4M \
|
|
|
|
-f $(call sysupname,$(1),$(2)) \
|
|
|
|
-o $(call imgname,$(1),$(2))-factory.bin; \
|
|
|
|
fi
|
|
|
|
endef
|
|
|
|
BuildFirmware/Poray4M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
|
|
|
|
|
|
|
|
define BuildFirmware/Poray8M/squashfs
|
|
|
|
$(call BuildFirmware/Default8M/$(1),$(1),$(2),$(3))
|
|
|
|
if [ -e "$(call sysupname,$(1),$(2))" ]; then \
|
|
|
|
mkporayfw -B $(3) -F 8M \
|
|
|
|
-f $(call sysupname,$(1),$(2)) \
|
|
|
|
-o $(call imgname,$(1),$(2))-factory.bin; \
|
|
|
|
fi
|
|
|
|
endef
|
|
|
|
BuildFirmware/Poray8M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
|
|
|
|
|
|
|
|
define BuildFirmware/PorayDualSize/squashfs
|
|
|
|
$(call BuildFirmware/DefaultDualSize/$(1),$(1),$(2),$(3))
|
|
|
|
if [ -e "$(call sysupname,$(1),$(2)-4M)" ]; then \
|
|
|
|
mkporayfw -B $(3) -F 4M \
|
|
|
|
-f $(call sysupname,$(1),$(2)-4M) \
|
2014-10-26 17:18:45 +00:00
|
|
|
-o $(call imgname,$(1),$(2)-4M)-factory.bin; \
|
2013-08-01 14:30:46 +00:00
|
|
|
fi
|
|
|
|
if [ -e "$(call sysupname,$(1),$(2)-8M)" ]; then \
|
|
|
|
mkporayfw -B $(3) -F 8M \
|
|
|
|
-f $(call sysupname,$(1),$(2)-8M) \
|
2014-10-26 17:18:45 +00:00
|
|
|
-o $(call imgname,$(1),$(2)-8M)-factory.bin; \
|
2013-08-01 14:30:46 +00:00
|
|
|
fi
|
|
|
|
endef
|
|
|
|
BuildFirmware/PorayDualSize/initramfs=$(call BuildFirmware/DefaultDualSize/initramfs,$(1),$(2),$(3))
|
|
|
|
|
2014-04-22 08:08:42 +00:00
|
|
|
define BuildFirmware/Gemtek/squashfs
|
|
|
|
$(call BuildFirmware/Default4M/$(1),$(1),$(2),$(3))
|
|
|
|
if [ -e "$(call sysupname,$(1),$(2))" ]; then \
|
|
|
|
mkheader_gemtek "$(call sysupname,$(1),$(2))" \
|
|
|
|
"$(call imgname,$(1),$(2))-factory.bin" $(2) || \
|
|
|
|
rm -f "$(call imgname,$(1),$(2))-factory.bin"; \
|
|
|
|
fi
|
|
|
|
endef
|
|
|
|
BuildFirmware/Gemtek/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
|
|
|
|
|
2014-11-03 08:00:13 +00:00
|
|
|
# Airlink101 AR670W -- LZMA without uImage header
|
|
|
|
define BuildFirmware/AR670W/squashfs
|
|
|
|
$(call PatchKernelLzmaDtb,$(2),$(3),$(5))
|
|
|
|
|
|
|
|
$(eval output_name=$(IMG_PREFIX)-$(2)-$(1)-$(if $(4),$(4),sysupgrade).bin)
|
|
|
|
$(eval factory_name=$(IMG_PREFIX)-$(2)-$(1)-factory.bin)
|
|
|
|
|
|
|
|
( dd if=$(KDIR)/vmlinux-$(2).bin.lzma bs=65536 \
|
|
|
|
conv=sync; dd if=$(KDIR)/root.$(1) ) > $(KDIR)/$(output_name)
|
|
|
|
|
|
|
|
$(call prepare_generic_squashfs,$(KDIR)/$(output_name))
|
|
|
|
|
|
|
|
if [ `stat -c%s "$(KDIR)/$(output_name)"` \
|
|
|
|
-gt $(ralink_default_fw_size_4M) ]; then \
|
|
|
|
echo "Warning: $(KDIR)/$(output_name) is too big" >&2; \
|
|
|
|
else \
|
|
|
|
mkwrgimg -i $(KDIR)/$(output_name) \
|
|
|
|
-d "/dev/mtdblock/2" \
|
|
|
|
-s "wrgn16a_airlink_ar670w" \
|
|
|
|
-o $(BIN_DIR)/$(factory_name); \
|
|
|
|
$(CP) $(KDIR)/$(output_name) $(BIN_DIR)/$(output_name); \
|
|
|
|
fi
|
|
|
|
endef
|
|
|
|
|
2012-02-23 19:58:15 +00:00
|
|
|
#
|
|
|
|
# RT288X Profiles
|
|
|
|
#
|
2012-02-23 19:58:01 +00:00
|
|
|
|
2014-11-03 08:00:13 +00:00
|
|
|
Image/Build/Profile/AR670W=$(call BuildFirmware/AR670W/$(1),$(1),ar670w,AR670W)
|
|
|
|
|
2014-04-22 08:08:42 +00:00
|
|
|
Image/Build/Profile/AR725W=$(call BuildFirmware/Gemtek/$(1),$(1),ar725w,AR725W)
|
2014-04-22 08:08:31 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
# 0x790000
|
|
|
|
belkin_f5d8235v1_mtd_size=7929856
|
|
|
|
Image/Build/Profile/F5D8235V1=$(call BuildFirmware/CustomFlash/$(1),$(1),f5d8235v1,F5D8235_V1,$(belkin_f5d8235v1_mtd_size))
|
2013-01-06 11:11:42 +00:00
|
|
|
|
2013-04-12 18:56:44 +00:00
|
|
|
Image/Build/Profile/RTN15=$(call BuildFirmware/Default4M/$(1),$(1),rt-n15,RT-N15)
|
2012-02-23 19:58:01 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/V11STFE=$(call BuildFirmware/Default4M/$(1),$(1),v11st-fe,V11STFE)
|
|
|
|
|
|
|
|
Image/Build/Profile/WLITX4AG300N=$(call BuildFirmware/Default4M/$(1),$(1),wli-tx4-ag300n,WLI-TX4-AG300N)
|
2011-07-03 15:01:52 +00:00
|
|
|
|
2015-02-16 21:19:18 +00:00
|
|
|
Image/Build/Profile/WZRAGL300NH=$(call BuildFirmware/Default4M/$(1),$(1),wzr-agl300nh,WZR-AGL300NH)
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
ifeq ($(SUBTARGET),rt288x)
|
2012-02-23 19:58:15 +00:00
|
|
|
define Image/Build/Profile/Default
|
2014-11-03 08:00:13 +00:00
|
|
|
$(call Image/Build/Profile/AR670W,$(1))
|
2014-04-22 08:08:31 +00:00
|
|
|
$(call Image/Build/Profile/AR725W,$(1))
|
2012-02-23 19:58:15 +00:00
|
|
|
$(call Image/Build/Profile/F5D8235V1,$(1))
|
|
|
|
$(call Image/Build/Profile/RTN15,$(1))
|
|
|
|
$(call Image/Build/Profile/V11STFE,$(1))
|
|
|
|
$(call Image/Build/Profile/WLITX4AG300N,$(1))
|
2015-02-16 21:19:18 +00:00
|
|
|
$(call Image/Build/Profile/WZRAGL300NH,$(1))
|
2011-07-28 10:56:32 +00:00
|
|
|
endef
|
2012-02-23 19:58:15 +00:00
|
|
|
endif
|
2011-07-28 10:56:32 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
|
|
|
|
|
2012-02-23 19:58:15 +00:00
|
|
|
#
|
|
|
|
# RT305X Profiles
|
|
|
|
#
|
2012-07-12 13:29:46 +00:00
|
|
|
|
2013-08-23 17:07:27 +00:00
|
|
|
Image/Build/Profile/DIR610A1=$(call BuildFirmware/Seama/$(1),$(1),dir-610-a1,DIR-610-A1,wrgn59_dlob.hans_dir610,$(ralink_default_fw_size_4M))
|
2013-08-14 19:35:27 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
edimax_3g6200n_mtd_size=3735552
|
2013-04-03 10:00:03 +00:00
|
|
|
Image/Build/Profile/3G6200N=$(call BuildFirmware/Edimax/$(1),$(1),3g-6200n,3G-6200N,$(edimax_3g6200n_mtd_size),CSYS,3G62,0x50000,0xc0000)
|
|
|
|
|
|
|
|
Image/Build/Profile/3G6200NL=$(call BuildFirmware/Edimax/$(1),$(1),3g-6200nl,3G-6200NL,$(edimax_3g6200n_mtd_size),CSYS,3G62,0x50000,0xc0000)
|
2013-01-19 17:05:07 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/3G300M=$(call BuildFirmware/CustomFlashFactory/$(1),$(1),3g300m,3G300M,$(ralink_default_fw_size_4M),3G150M_SPI Kernel Image,factory)
|
|
|
|
|
2014-10-29 11:01:17 +00:00
|
|
|
Image/Build/Profile/A5-V11=$(call BuildFirmware/Poray4M/$(1),$(1),a5-v11,A5-V11)
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/AIR3GII=$(call BuildFirmware/Default4M/$(1),$(1),air3gii,AIR3GII)
|
2012-12-29 17:50:34 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
define BuildFirmware/UIMAGE_8M
|
|
|
|
$(call MkCombineduImage,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_8M)),$(kernel_size_8M),$(rootfs_size_8M),$(7))
|
|
|
|
endef
|
2012-08-17 17:56:07 +00:00
|
|
|
define Image/Build/Profile/ALL02393G
|
2013-04-03 09:59:51 +00:00
|
|
|
$(call Image/Build/Template/$(image_type)/$(1),UIMAGE_8M,all0239-3g,ALL0239-3G,ttyS1,57600,phys)
|
2012-08-17 17:56:07 +00:00
|
|
|
endef
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/ALL0256N=$(call BuildFirmware/DefaultDualSize/$(1),$(1),all0256n,ALL0256N)
|
2011-12-14 20:51:26 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
allnet_all5002_mtd_size=33226752
|
|
|
|
Image/Build/Profile/ALL5002=$(call BuildFirmware/CustomFlash/$(1),$(1),all5002,ALL5002,$(allnet_all5002_mtd_size))
|
2013-04-25 19:03:01 +00:00
|
|
|
Image/Build/Profile/ALL5003=$(call BuildFirmware/CustomFlash/$(1),$(1),all5003,ALL5003,$(allnet_all5002_mtd_size))
|
2012-07-24 20:38:03 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
argus_atp52b_mtd_size=7995392
|
2015-08-17 05:58:57 +00:00
|
|
|
Image/Build/Profile/ATP-52B=$(call BuildFirmware/CustomFlash/$(1),$(1),atp-52b,ATP-52B,$(argus_atp52b_mtd_size))
|
2012-01-26 10:44:23 +00:00
|
|
|
|
2013-04-25 19:02:53 +00:00
|
|
|
asl26555_8mb_mtd_size=7929856
|
|
|
|
asl26555_16mb_mtd_size=16252928
|
|
|
|
define BuildFirmware/ASL26555/squashfs
|
|
|
|
$(call BuildFirmware/CustomFlash/$(1),$(1),$(2)-8M,$(3)-8M,$(asl26555_8mb_mtd_size))
|
|
|
|
$(call BuildFirmware/CustomFlash/$(1),$(1),$(2)-16M,$(3)-16M,$(asl26555_16mb_mtd_size))
|
|
|
|
endef
|
|
|
|
define BuildFirmware/ASL26555/initramfs
|
|
|
|
$(call BuildFirmware/OF/initramfs,$(1),$(2)-8M,$(3)-8M)
|
|
|
|
$(call BuildFirmware/OF/initramfs,$(1),$(2)-16M,$(3)-16M)
|
|
|
|
endef
|
|
|
|
Image/Build/Profile/ASL26555=$(call BuildFirmware/ASL26555/$(1),$(1),asl26555,ASL26555)
|
|
|
|
|
2013-10-07 15:02:44 +00:00
|
|
|
Image/Build/Profile/AWM002EVB=$(call BuildFirmware/DefaultDualSize/$(1),$(1),awm002-evb,AWM002-EVB)
|
2014-07-22 09:58:21 +00:00
|
|
|
Image/Build/Profile/AWM003EVB=$(call BuildFirmware/Default8M/$(1),$(1),awm003-evb,AWM003-EVB)
|
2014-06-13 09:16:15 +00:00
|
|
|
Image/Build/Profile/AWAPN2403=$(call BuildFirmware/Default4M/$(1),$(1),awmapn2403,AWAPN2403)
|
2013-07-24 08:54:41 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/BC2=$(call BuildFirmware/Default8M/$(1),$(1),bc2,BC2)
|
2012-01-26 10:44:23 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
broadway_mtd_size=7929856
|
|
|
|
Image/Build/Profile/BROADWAY=$(call BuildFirmware/CustomFlashFactory/$(1),$(1),broadway,BROADWAY,$(broadway_mtd_size),Broadway Kernel Image,factory)
|
2012-12-10 14:13:01 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/CARAMBOLA=$(call BuildFirmware/Default8M/$(1),$(1),carambola,CARAMBOLA)
|
2012-08-29 10:37:43 +00:00
|
|
|
|
2013-04-03 10:00:08 +00:00
|
|
|
Image/Build/Profile/D105=$(call BuildFirmware/Default4M/$(1),$(1),d105,D105)
|
|
|
|
|
2016-03-04 08:33:12 +00:00
|
|
|
define BuildFirmware/JCG/squashfs
|
|
|
|
$(call BuildFirmware/Default4M/$(1),$(1),$(2),$(3))
|
|
|
|
-jcgimage -o $(call imgname,$(1),$(2))-factory.bin \
|
|
|
|
-u $(call sysupname,$(1),$(2)) -v $(4)
|
|
|
|
endef
|
|
|
|
Image/Build/Profile/JHR-N805R=$(call BuildFirmware/JCG/$(1),$(1),jhr-n805r,JHR-N805R,29.24)
|
|
|
|
Image/Build/Profile/JHR-N825R=$(call BuildFirmware/JCG/$(1),$(1),jhr-n825r,JHR-N825R,23.24)
|
|
|
|
Image/Build/Profile/JHR-N926R=$(call BuildFirmware/JCG/$(1),$(1),jhr-n926r,JHR-N926R,25.24)
|
|
|
|
define Image/Build/Profile/JCG
|
|
|
|
$(call Image/Build/Profile/JHR-N805R,$(1))
|
|
|
|
$(call Image/Build/Profile/JHR-N825R,$(1))
|
|
|
|
$(call Image/Build/Profile/JHR-N926R,$(1))
|
|
|
|
endef
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
define BuildFirmware/DIR300B1/squashfs
|
|
|
|
$(call BuildFirmware/Default4M/$(1),$(1),$(2),$(3))
|
|
|
|
-mkwrgimg -s $(4) -d /dev/mtdblock/2 \
|
|
|
|
-i $(call sysupname,$(1),$(2)) \
|
|
|
|
-o $(call imgname,$(1),$(2))-factory.bin
|
2010-04-11 17:47:28 +00:00
|
|
|
endef
|
2013-04-03 09:59:51 +00:00
|
|
|
BuildFirmware/DIR300B1/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
|
|
|
|
Image/Build/Profile/DIR-300-B1=$(call BuildFirmware/DIR300B1/$(1),$(1),dir-300-b1,DIR-300-B1,wrgn23_dlwbr_dir300b)
|
|
|
|
Image/Build/Profile/DIR-600-B1=$(call BuildFirmware/DIR300B1/$(1),$(1),dir-600-b1,DIR-600-B1,wrgn23_dlwbr_dir600b)
|
|
|
|
Image/Build/Profile/DIR-600-B2=$(call BuildFirmware/DIR300B1/$(1),$(1),dir-600-b2,DIR-600-B2,wrgn23_dlwbr_dir600b)
|
|
|
|
Image/Build/Profile/DIR-615-D=$(call BuildFirmware/DIR300B1/$(1),$(1),dir-615-d,DIR-615-D,wrgn23_dlwbr_dir615d)
|
2010-04-11 17:47:28 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/DIR-620-A1=$(call BuildFirmware/Default8M/$(1),$(1),dir-620-a1,DIR-620-A1)
|
2013-04-25 19:02:48 +00:00
|
|
|
Image/Build/Profile/DIR-620-D1=$(call BuildFirmware/Default8M/$(1),$(1),dir-620-d1,DIR-620-D1)
|
2012-08-17 17:56:05 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
define BuildFirmware/DIR615H1/squashfs
|
|
|
|
$(call BuildFirmware/Default4M/$(1),$(1),dir-615-h1,DIR-615-H1)
|
2014-08-03 11:13:58 +00:00
|
|
|
-mksenaofw -e $(call sysupname,$(1),dir-615-h1) \
|
|
|
|
-o $(call imgname,$(1),dir-615-h1)-factory.bin \
|
|
|
|
-r 0x218 -p 0x30 -t 3
|
2012-07-24 20:38:43 +00:00
|
|
|
endef
|
2013-04-03 09:59:51 +00:00
|
|
|
BuildFirmware/DIR615H1/initramfs=$(call BuildFirmware/OF/initramfs,$(1),dir-615-h1,DIR-615-H1)
|
|
|
|
Image/Build/Profile/DIR615H1=$(call BuildFirmware/DIR615H1/$(1),$(1))
|
2012-07-24 20:38:43 +00:00
|
|
|
|
2013-04-03 10:00:12 +00:00
|
|
|
Image/Build/Profile/DAP1350=$(call BuildFirmware/dap1350/$(1),$(1),dap-1350,DAP-1350,RT3052-AP-DAP1350-3)
|
|
|
|
|
|
|
|
Image/Build/Profile/DAP1350WW=$(call BuildFirmware/dap1350/$(1),$(1),dap-1350WW,DAP-1350,RT3052-AP-DAP1350WW-3)
|
2011-12-23 14:27:10 +00:00
|
|
|
|
2013-10-07 15:02:35 +00:00
|
|
|
define BuildFirmware/DCS930/squashfs
|
|
|
|
$(call BuildFirmware/Default4M/squashfs,squashfs,$(2),$(3))
|
|
|
|
dd if=$(KDIR)/vmlinux-$(2).bin.lzma of=$(KDIR)/image.$(2).combined bs=1048512 count=1 conv=sync
|
|
|
|
cat $(KDIR)/root.squashfs >> $(KDIR)/image.$(2).combined
|
|
|
|
$(call MkImage,lzma,$(KDIR)/image.$(2).combined,$(KDIR)/image.$(2))
|
|
|
|
$(call prepare_generic_squashfs,$(KDIR)/image.$(2))
|
|
|
|
if [ `stat -c%s "$(KDIR)/image.$(2)"` -gt $(ralink_default_fw_size_4M) ]; then \
|
|
|
|
echo "Warning: $(KDIR)/image.$(2) is too big" >&2; \
|
|
|
|
else \
|
|
|
|
dd if=$(KDIR)/image.$(2) of=$(KDIR)/dcs.tmp bs=64K count=5 conv=sync ;\
|
|
|
|
cat $(KDIR)/image.$(2) >> $(KDIR)/dcs.tmp ; \
|
2013-11-14 19:16:04 +00:00
|
|
|
dd if=$(KDIR)/dcs.tmp of=$(call imgname,$(1),$(2))-factory.bin bs=4096k count=1 conv=sync ;\
|
2013-10-07 15:02:35 +00:00
|
|
|
$(STAGING_DIR_HOST)/bin/mkdcs932 $(call imgname,$(1),$(2))-factory.bin ; \
|
|
|
|
fi
|
|
|
|
endef
|
|
|
|
BuildFirmware/DCS930/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
|
|
|
|
Image/Build/Profile/DCS930=$(call BuildFirmware/DCS930/$(1),$(1),dcs-930,DCS-930)
|
2015-06-18 18:20:46 +00:00
|
|
|
Image/Build/Profile/DCS930LB1=$(call BuildFirmware/DCS930/$(1),$(1),dcs-930l-b1,DCS-930L-B1)
|
2013-09-19 05:56:46 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/ESR-9753=$(call BuildFirmware/Default4M/$(1),$(1),esr-9753,ESR-9753)
|
2010-04-11 17:47:28 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/HW550-3G=$(call BuildFirmware/Default8M/$(1),$(1),hw550-3g,HW550-3G)
|
2012-02-23 19:58:01 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
belkin_f5d8235v2_mtd_size=7929856
|
|
|
|
Image/Build/Profile/F5D8235V2=$(call BuildFirmware/CustomFlash/$(1),$(1),f5d8235v2,F5D8235_V2,$(belkin_f5d8235v2_mtd_size))
|
2011-10-24 21:49:36 +00:00
|
|
|
|
2013-06-10 08:24:50 +00:00
|
|
|
# 0x770000
|
|
|
|
belkin_f7c027_mtd_size=7798784
|
2015-08-17 05:58:44 +00:00
|
|
|
Image/Build/Profile/F7C027=$(call BuildFirmware/CustomFlash/$(1),$(1),f7c027,F7C027,$(belkin_f7c027_mtd_size))
|
2013-06-10 08:24:50 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/FONERA20N=$(call BuildFirmware/Edimax/$(1),$(1),fonera20n,FONERA20N,$(ralink_default_fw_size_8M),RSDK,NL1T,0x50000,0xc0000)
|
2012-11-29 17:37:14 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/RT-N13U=$(call BuildFirmware/Default8M/$(1),$(1),rt-n13u,RT-N13U)
|
2012-03-29 16:03:04 +00:00
|
|
|
|
2013-07-25 17:03:08 +00:00
|
|
|
#Image/Build/Profile/HG255D=$(call BuildFirmware/Default16M/$(1),$(1),hg255d,HG255D)
|
2013-07-22 15:36:39 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/FREESTATION5=$(call BuildFirmware/Default8M/$(1),$(1),freestation5,FREESTATION5)
|
2012-02-23 19:58:01 +00:00
|
|
|
|
2013-08-01 14:31:15 +00:00
|
|
|
Image/Build/Profile/IP2202=$(call BuildFirmware/Default8M/$(1),$(1),ip2202,IP2202)
|
|
|
|
|
2014-01-12 12:07:40 +00:00
|
|
|
BuildFirmware/HLKRM04/squashfs=$(call BuildFirmware/Default4M/squashfs,$(1),$(2),$(3),$(4))
|
|
|
|
define BuildFirmware/HLKRM04/initramfs
|
|
|
|
$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4))
|
2014-10-20 06:29:38 +00:00
|
|
|
mkhilinkfw -e -i$(call imgname,$(1),$(2))-uImage.bin -o $(call imgname,$(1),$(2))-factory.bin;
|
2014-01-12 12:07:40 +00:00
|
|
|
endef
|
2016-01-19 10:15:44 +00:00
|
|
|
Image/Build/Profile/HLKRM04=$(call BuildFirmware/HLKRM04/$(1),$(1),hlk-rm04,HLKRM04,HLK-RM04)
|
2014-01-12 12:07:40 +00:00
|
|
|
|
2014-10-06 04:52:07 +00:00
|
|
|
Image/Build/Profile/HT-TM02=$(call BuildFirmware/Default8M/$(1),$(1),ht-tm02,HT-TM02)
|
|
|
|
|
2013-08-01 14:30:53 +00:00
|
|
|
Image/Build/Profile/M3=$(call BuildFirmware/Poray4M/$(1),$(1),m3,M3)
|
|
|
|
|
2013-08-01 14:30:58 +00:00
|
|
|
Image/Build/Profile/M4=$(call BuildFirmware/PorayDualSize/$(1),$(1),m4,M4)
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/MOFI3500-3GN=$(call BuildFirmware/Default8M/$(1),$(1),mofi3500-3gn,MOFI3500-3GN)
|
2011-08-22 20:41:49 +00:00
|
|
|
|
2013-06-10 08:24:56 +00:00
|
|
|
# Kernel name should be "Linux Kernel Image" to make the OpenWrt image installable from factory Web UI
|
2015-01-22 09:35:22 +00:00
|
|
|
Image/Build/Profile/3G150B=$(call BuildFirmware/Default4M/$(1),$(1),3g150b,3G150B,Linux Kernel Image)
|
|
|
|
|
2015-05-23 15:27:05 +00:00
|
|
|
Image/Build/Profile/MR102N=$(call BuildFirmware/Default8M/$(1),$(1),mr-102n,MR-102N)
|
|
|
|
|
2013-07-27 09:23:52 +00:00
|
|
|
Image/Build/Profile/MPRA1=$(call BuildFirmware/Default4M/$(1),$(1),mpr-a1,MPRA1,Linux Kernel Image)
|
2013-06-10 08:24:56 +00:00
|
|
|
Image/Build/Profile/MPRA2=$(call BuildFirmware/Default8M/$(1),$(1),mpr-a2,MPRA2,Linux Kernel Image)
|
|
|
|
|
2013-09-18 16:31:37 +00:00
|
|
|
Image/Build/Profile/DIR-300-B7=$(call BuildFirmware/Default4M/$(1),$(1),dir-300-b7,DIR-300-B7)
|
2013-09-30 20:48:27 +00:00
|
|
|
Image/Build/Profile/DIR-320-B1=$(call BuildFirmware/Default8M/$(1),$(1),dir-320-b1,DIR-320-B1)
|
2013-09-18 16:31:37 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/NBG-419N=$(call BuildFirmware/Default4M/$(1),$(1),nbg-419n,NBG-419N)
|
2012-12-29 17:50:40 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/MZKW300NH2=$(call BuildFirmware/Edimax/$(1),$(1),mzk-w300nh2,MZK-W300NH2,$(mzkw300nh2_mtd_size),CSYS,RN52,0x50000,0xc0000)
|
2011-07-28 10:56:32 +00:00
|
|
|
|
2016-03-08 18:11:59 +00:00
|
|
|
Image/Build/Profile/MZKWDPR=$(call BuildFirmware/Default8M/$(1),$(1),mzk-wdpr,MZK-WDPR)
|
|
|
|
|
2014-07-02 07:42:44 +00:00
|
|
|
Image/Build/Profile/NCS601W=$(call BuildFirmware/Default8M/$(1),$(1),ncs601W,NCS601W)
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
nw718_mtd_size=3801088
|
|
|
|
Image/Build/Profile/NW718=$(call BuildFirmware/CustomFlashFactory/$(1),$(1),nw718m,NW718,$(nw718_mtd_size),ARA1B4NCRNW718;1,factory)
|
2011-12-14 20:51:26 +00:00
|
|
|
|
2015-01-17 14:06:13 +00:00
|
|
|
Image/Build/Profile/M2M=$(call BuildFirmware/Default8M/$(1),$(1),m2m,M2M,Linux Kernel Image)
|
|
|
|
|
2015-08-17 06:00:11 +00:00
|
|
|
Image/Build/Profile/MINIEMBPLUG=$(call BuildFirmware/Default8M/$(1),$(1),miniembplug,MINIEMBPLUG)
|
2012-06-19 09:52:15 +00:00
|
|
|
|
2015-08-17 06:00:11 +00:00
|
|
|
Image/Build/Profile/MINIEMBWIFI=$(call BuildFirmware/Default8M/$(1),$(1),miniembwifi,MINIEMBWIFI)
|
2014-08-18 16:06:48 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/PSR-680W=$(call BuildFirmware/Default4M/$(1),$(1),psr-680w,PSR-680W)
|
2010-09-27 14:43:34 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/PWH2004=$(call BuildFirmware/Default8M/$(1),$(1),pwh2004,PWH2004)
|
2011-03-13 16:34:52 +00:00
|
|
|
|
2015-08-17 06:01:06 +00:00
|
|
|
Image/Build/Profile/PX-4885=$(call BuildFirmware/DefaultDualSize/$(1),$(1),px-4885,PX-4885)
|
2014-04-22 08:08:51 +00:00
|
|
|
|
2015-08-17 05:59:29 +00:00
|
|
|
Image/Build/Profile/RT5350F-OLINUXINO=$(call BuildFirmware/Default8M/$(1),$(1),rt5350f-olinuxino,RT5350F-OLINUXINO)
|
|
|
|
|
|
|
|
Image/Build/Profile/RT5350F-OLINUXINO-EVB=$(call BuildFirmware/Default8M/$(1),$(1),rt5350f-olinuxino-evb,RT5350F-OLINUXINO-EVB)
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/RTG32B1=$(call BuildFirmware/Default4M/$(1),$(1),rt-g32-b1,RT-G32-B1)
|
2012-03-04 16:09:11 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/RTN10PLUS=$(call BuildFirmware/Default4M/$(1),$(1),rt-n10-plus,RT-N10-PLUS)
|
2010-08-15 09:43:07 +00:00
|
|
|
|
2014-06-02 12:42:48 +00:00
|
|
|
Image/Build/Profile/RUT5XX=$(call BuildFirmware/Default8M/$(1),$(1),rut5xx,RUT5XX)
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/SL-R7205=$(call BuildFirmware/Default4M/$(1),$(1),sl-r7205,SL-R7205)
|
2010-08-15 09:43:07 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/V22RW-2X2=$(call BuildFirmware/Default4M/$(1),$(1),v22rw-2x2,V22RW-2X2)
|
2012-04-21 12:30:40 +00:00
|
|
|
|
2015-10-05 10:27:00 +00:00
|
|
|
vocore_8mb_mtd_size=8060928
|
|
|
|
vocore_16mb_mtd_size=16449536
|
|
|
|
define BuildFirmware/VOCORE/squashfs
|
|
|
|
$(call BuildFirmware/CustomFlash/$(1),$(1),$(2)-8M,$(3)-8M,$(vocore_8mb_mtd_size))
|
|
|
|
$(call BuildFirmware/CustomFlash/$(1),$(1),$(2)-16M,$(3)-16M,$(vocore_16mb_mtd_size))
|
|
|
|
endef
|
|
|
|
define BuildFirmware/VOCORE/initramfs
|
|
|
|
$(call BuildFirmware/OF/initramfs,$(1),$(2)-8M,$(3)-8M)
|
|
|
|
$(call BuildFirmware/OF/initramfs,$(1),$(2)-16M,$(3)-16M)
|
|
|
|
endef
|
|
|
|
Image/Build/Profile/VOCORE=$(call BuildFirmware/VOCORE/$(1),$(1),vocore,VOCORE)
|
2014-08-01 20:51:24 +00:00
|
|
|
|
2013-04-03 10:00:21 +00:00
|
|
|
Image/Build/Profile/W150M=$(call BuildFirmware/CustomFlashFactory/$(1),$(1),w150m,W150M,$(ralink_default_fw_size_4M),W150M Kernel Image,factory)
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/W306R_V20=$(call BuildFirmware/CustomFlashFactory/$(1),$(1),w306r-v20,W306R_V20,$(ralink_default_fw_size_4M),linkn Kernel Image,factory)
|
2012-02-23 19:58:01 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/W502U=$(call BuildFirmware/Default8M/$(1),$(1),w502u,W502U)
|
2011-08-15 14:11:45 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/WCR150GN=$(call BuildFirmware/Default4M/$(1),$(1),wcr150gn,WCR150GN)
|
2011-08-15 14:11:45 +00:00
|
|
|
|
2015-07-17 12:51:08 +00:00
|
|
|
Image/Build/Profile/MZK-DP150N=$(call BuildFirmware/Default4M/$(1),$(1),mzk-dp150n,MZK-DP150N)
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
buffalo_whrg300n_mtd_size=3801088
|
|
|
|
define BuildFirmware/WHRG300N/squashfs
|
|
|
|
$(call BuildFirmware/Default4M/$(1),$(1),whr-g300n,WHR-G300N)
|
|
|
|
# the following line has a bad argument 3 ... the old Makefile was already broken
|
|
|
|
$(call BuildFirmware/Buffalo,$(1),whr-g300n,whr-g300n)
|
2014-04-12 21:21:44 +00:00
|
|
|
if [ -e "$(call sysupname,$(1),$(2))" ]; then \
|
|
|
|
( \
|
|
|
|
echo -n -e "# Airstation FirmWare\nrun u_fw\nreset\n\n" | \
|
|
|
|
dd bs=512 count=1 conv=sync; \
|
|
|
|
dd if=$(call sysupname,$(1),whr-g300n); \
|
|
|
|
) > $(KDIR)/whr-g300n-tftp.tmp && \
|
|
|
|
buffalo-tftp -i $(KDIR)/whr-g300n-tftp.tmp \
|
|
|
|
-o $(call imgname,$(1),whr-g300n)-tftp.bin; \
|
|
|
|
fi
|
2012-03-27 19:29:57 +00:00
|
|
|
endef
|
2013-04-03 09:59:51 +00:00
|
|
|
BuildFirmware/WHRG300N/initramfs=$(call BuildFirmware/OF/initramfs,$(1),whr-g300n,WHR-G300N)
|
|
|
|
Image/Build/Profile/WHRG300N=$(call BuildFirmware/WHRG300N/$(1),$(1))
|
2012-03-27 19:29:57 +00:00
|
|
|
|
2014-08-01 11:19:50 +00:00
|
|
|
Image/Build/Profile/WIZARD8800=$(call BuildFirmware/Default8M/$(1),$(1),wizard-8800,WIZARD8800,Linux Kernel Image)
|
|
|
|
|
2015-09-14 20:09:31 +00:00
|
|
|
Image/Build/Profile/WIZFI630A=$(call BuildFirmware/Default16M/$(1),$(1),wizfi630a,WIZFI630A)
|
|
|
|
|
2015-08-17 05:57:55 +00:00
|
|
|
Image/Build/Profile/WL-330N=$(call BuildFirmware/Default4M/$(1),$(1),wl-330n,WL-330N)
|
2012-04-23 16:56:05 +00:00
|
|
|
|
2015-08-17 05:57:55 +00:00
|
|
|
Image/Build/Profile/WL-330N3G=$(call BuildFirmware/Default4M/$(1),$(1),wl-330n3g,WL-330N3G)
|
2010-11-24 10:01:23 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
kernel_size_wl341v3=917504
|
|
|
|
rootfs_size_wl341v3=2949120
|
2015-08-17 05:59:12 +00:00
|
|
|
define BuildFirmware/WL-341V3/squashfs
|
|
|
|
$(call BuildFirmware/Default4M/$(1),$(1),wl-341v3,WL-341V3)
|
2013-04-03 09:59:51 +00:00
|
|
|
# This code looks broken and really needs to be converted to C
|
|
|
|
if [ -e "$(call sysupname,$(1),$(2))" ]; then \
|
|
|
|
( \
|
|
|
|
dd if=/dev/zero bs=195936 count=1; \
|
|
|
|
echo "1.01"; \
|
|
|
|
dd if=/dev/zero bs=581 count=1; \
|
|
|
|
echo -n -e "\x73\x45\x72\x43\x6F\x4D\x6D\x00\x01\x00\x00\x59\x4E\x37\x95\x58\x10\x00\x20\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x03\x00\x00\x80\x00\x00\x00\x00\x03\x00\x00\x10\x12\x00\x00\x00\x10\x73\x45\x72\x43\x6F\x4D\x6D"; \
|
|
|
|
dd if=/dev/zero bs=65552 count=1; \
|
|
|
|
dd if=$(KDIR)/vmlinux-$(2).uImage bs=$(kernel_size_wl341v3) conv=sync; \
|
|
|
|
dd if=$(KDIR)/root.$(1) bs=64k conv=sync; \
|
|
|
|
dd if=/dev/zero bs=`expr 4194304 - 262144 - 16 - $(kernel_size_wl341v3) - \( \( \( \`stat -c%s $(KDIR)/root.$(1)\` / 65536 \) + 1 \) \* 65536 \)` count=1; \
|
|
|
|
echo -n -e "\x11\x03\x80\x00\x10\x12\x90\xF7\x65\x52\x63\x4F\x6D\x4D\x00\x00"; \
|
|
|
|
) > $(call imgname,$(1),$(2))-factory.bin; \
|
|
|
|
fi
|
2011-12-28 08:43:43 +00:00
|
|
|
endef
|
2015-08-17 05:59:12 +00:00
|
|
|
BuildFirmware/WL-341V3/initramfs=$(call BuildFirmware/OF/initramfs,$(1),wl-341v3,WL-341V3)
|
|
|
|
Image/Build/Profile/WL-341V3=$(call BuildFirmware/WL-341V3/$(1),$(1))
|
2011-12-28 08:43:43 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/WL-351=$(call BuildFirmware/Default4M/$(1),$(1),wl-351,WL-351)
|
2011-08-19 15:55:10 +00:00
|
|
|
|
2013-04-09 14:19:33 +00:00
|
|
|
define BuildFirmware/WNCE2001/squashfs
|
|
|
|
$(call BuildFirmware/Default4M/$(1),$(1),$(2),$(3))
|
|
|
|
-mkdapimg -s RT3052-AP-WNCE2001-3 -r WW -v 1.0.0.99 \
|
|
|
|
-i $(call sysupname,$(1),$(2)) \
|
|
|
|
-o $(call imgname,$(1),$(2))-factory-worldwide.bin
|
|
|
|
-mkdapimg -s RT3052-AP-WNCE2001-3 -r NA -v 1.0.0.99 \
|
|
|
|
-i $(call sysupname,$(1),$(2)) \
|
|
|
|
-o $(call imgname,$(1),$(2))-factory-northamerica.bin
|
|
|
|
endef
|
|
|
|
BuildFirmware/WNCE2001/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
|
|
|
|
Image/Build/Profile/WNCE2001=$(call BuildFirmware/WNCE2001/$(1),$(1),wnce2001,WNCE2001)
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/WR512-3GN=$(call BuildFirmware/DefaultDualSize/$(1),$(1),wr512-3ng,WR512-3GN)
|
2012-04-23 16:56:06 +00:00
|
|
|
|
2014-12-07 16:53:22 +00:00
|
|
|
Image/Build/Profile/WT1520=$(call BuildFirmware/PorayDualSize/$(1),$(1),wt1520,WT1520)
|
2014-10-10 08:56:43 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/UR-326N4G=$(call BuildFirmware/Default4M/$(1),$(1),ur-326n4g,UR-326N4G)
|
2012-04-23 16:56:06 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/UR-336UN=$(call BuildFirmware/Default8M/$(1),$(1),ur-336un,UR-336UN)
|
2012-02-19 16:44:49 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/WR6202=$(call BuildFirmware/Default8M/$(1),$(1),wr6202,WR6202)
|
|
|
|
|
2013-08-01 14:31:04 +00:00
|
|
|
Image/Build/Profile/X5=$(call BuildFirmware/Poray8M/$(1),$(1),x5,X5)
|
|
|
|
|
2013-08-01 14:31:09 +00:00
|
|
|
Image/Build/Profile/X8=$(call BuildFirmware/Poray8M/$(1),$(1),x8,X8)
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/XDXRN502J=$(call BuildFirmware/Default4M/$(1),$(1),xdxrn502j,XDXRN502J)
|
2012-03-04 16:09:13 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
ifeq ($(SUBTARGET),rt305x)
|
2010-04-11 17:47:28 +00:00
|
|
|
define Image/Build/Profile/Default
|
2012-07-12 13:29:46 +00:00
|
|
|
$(call Image/Build/Profile/3G6200N,$(1))
|
2013-04-03 10:00:03 +00:00
|
|
|
$(call Image/Build/Profile/3G6200NL,$(1))
|
2015-01-22 09:35:22 +00:00
|
|
|
$(call Image/Build/Profile/3G150B,$(1))
|
2013-01-19 17:05:07 +00:00
|
|
|
$(call Image/Build/Profile/3G300M,$(1))
|
2015-11-24 19:29:56 +00:00
|
|
|
$(call Image/Build/Profile/A5-V11,$(1))
|
2012-12-29 17:50:34 +00:00
|
|
|
$(call Image/Build/Profile/AIR3GII,$(1))
|
2012-08-17 17:56:07 +00:00
|
|
|
$(call Image/Build/Profile/ALL02393G,$(1))
|
2012-02-23 19:58:15 +00:00
|
|
|
$(call Image/Build/Profile/ALL0256N,$(1))
|
2012-07-24 20:38:03 +00:00
|
|
|
$(call Image/Build/Profile/ALL5002,$(1))
|
2013-04-25 19:03:01 +00:00
|
|
|
$(call Image/Build/Profile/ALL5003,$(1))
|
2013-04-25 19:02:53 +00:00
|
|
|
$(call Image/Build/Profile/ASL26555,$(1))
|
2015-08-17 05:58:57 +00:00
|
|
|
$(call Image/Build/Profile/ATP-52B,$(1))
|
2013-10-07 15:02:44 +00:00
|
|
|
$(call Image/Build/Profile/AWM002EVB,$(1))
|
2014-06-13 09:16:15 +00:00
|
|
|
$(call Image/Build/Profile/AWAPN2403,$(1))
|
2011-10-24 21:49:36 +00:00
|
|
|
$(call Image/Build/Profile/BC2,$(1))
|
2012-12-10 14:13:01 +00:00
|
|
|
$(call Image/Build/Profile/BROADWAY,$(1))
|
2012-08-29 10:37:43 +00:00
|
|
|
$(call Image/Build/Profile/CARAMBOLA,$(1))
|
2013-04-03 10:00:08 +00:00
|
|
|
$(call Image/Build/Profile/D105,$(1))
|
2013-04-03 09:59:51 +00:00
|
|
|
$(call Image/Build/Profile/DIR-300-B1,$(1))
|
|
|
|
$(call Image/Build/Profile/DIR-600-B1,$(1))
|
2013-09-18 16:31:37 +00:00
|
|
|
$(call Image/Build/Profile/DIR-300-B7,$(1))
|
|
|
|
$(call Image/Build/Profile/DIR-320-B1,$(1))
|
2013-04-03 09:59:51 +00:00
|
|
|
$(call Image/Build/Profile/DIR-600-B2,$(1))
|
2013-08-14 19:35:27 +00:00
|
|
|
$(call Image/Build/Profile/DIR610A1,$(1))
|
2013-04-03 09:59:51 +00:00
|
|
|
$(call Image/Build/Profile/DIR-615-D,$(1))
|
|
|
|
$(call Image/Build/Profile/DIR-620-A1,$(1))
|
2013-04-25 19:02:48 +00:00
|
|
|
$(call Image/Build/Profile/DIR-620-D1,$(1))
|
2012-08-17 17:56:05 +00:00
|
|
|
$(call Image/Build/Profile/DIR615H1,$(1))
|
2012-07-24 20:38:43 +00:00
|
|
|
$(call Image/Build/Profile/DAP1350,$(1))
|
2013-04-03 10:00:12 +00:00
|
|
|
$(call Image/Build/Profile/DAP1350WW,$(1))
|
2013-09-19 05:56:46 +00:00
|
|
|
$(call Image/Build/Profile/DCS930,$(1))
|
2015-06-18 18:20:46 +00:00
|
|
|
$(call Image/Build/Profile/DCS930LB1,$(1))
|
2013-04-03 09:59:51 +00:00
|
|
|
$(call Image/Build/Profile/ESR-9753,$(1))
|
2013-06-10 08:24:50 +00:00
|
|
|
$(call Image/Build/Profile/F7C027,$(1))
|
2012-02-23 19:58:15 +00:00
|
|
|
$(call Image/Build/Profile/F5D8235V2,$(1))
|
2010-04-11 17:47:28 +00:00
|
|
|
$(call Image/Build/Profile/FONERA20N,$(1))
|
2012-03-29 16:03:04 +00:00
|
|
|
$(call Image/Build/Profile/FREESTATION5,$(1))
|
2013-07-25 16:55:48 +00:00
|
|
|
# $(call Image/Build/Profile/HG255D,$(1))
|
2014-01-12 12:07:40 +00:00
|
|
|
$(call Image/Build/Profile/HLKRM04,$(1))
|
2014-10-06 04:52:07 +00:00
|
|
|
$(call Image/Build/Profile/HT-TM02,$(1))
|
2013-04-03 09:59:51 +00:00
|
|
|
$(call Image/Build/Profile/HW550-3G,$(1))
|
2013-08-01 14:31:15 +00:00
|
|
|
$(call Image/Build/Profile/IP2202,$(1))
|
2016-03-04 08:33:12 +00:00
|
|
|
$(call Image/Build/Profile/JHR-N805R,$(1))
|
|
|
|
$(call Image/Build/Profile/JHR-N825R,$(1))
|
|
|
|
$(call Image/Build/Profile/JHR-N926R,$(1))
|
2015-01-17 14:06:13 +00:00
|
|
|
$(call Image/Build/Profile/M2M,$(1))
|
2013-08-01 14:30:53 +00:00
|
|
|
$(call Image/Build/Profile/M3,$(1))
|
2013-08-01 14:30:58 +00:00
|
|
|
$(call Image/Build/Profile/M4,$(1))
|
2013-04-03 09:59:51 +00:00
|
|
|
$(call Image/Build/Profile/MOFI3500-3GN,$(1))
|
2015-05-23 15:27:05 +00:00
|
|
|
$(call Image/Build/Profile/MR102N,$(1))
|
2014-08-18 13:09:43 +00:00
|
|
|
$(call Image/Build/Profile/MPRA1,$(1))
|
2013-06-10 08:24:56 +00:00
|
|
|
$(call Image/Build/Profile/MPRA2,$(1))
|
2013-04-03 09:59:51 +00:00
|
|
|
$(call Image/Build/Profile/MZKW300NH2,$(1))
|
2016-03-08 18:11:59 +00:00
|
|
|
$(call Image/Build/Profile/MZKWDPR,$(1))
|
2013-04-03 09:59:51 +00:00
|
|
|
$(call Image/Build/Profile/NBG-419N,$(1))
|
2014-07-02 07:42:44 +00:00
|
|
|
$(call Image/Build/Profile/NCS601W,$(1))
|
2011-07-28 10:56:32 +00:00
|
|
|
$(call Image/Build/Profile/NW718,$(1))
|
2015-08-17 06:00:11 +00:00
|
|
|
$(call Image/Build/Profile/MINIEMBWIFI,$(1))
|
|
|
|
$(call Image/Build/Profile/MINIEMBPLUG,$(1))
|
2013-04-03 09:59:51 +00:00
|
|
|
$(call Image/Build/Profile/PSR-680W,$(1))
|
2010-09-27 14:43:34 +00:00
|
|
|
$(call Image/Build/Profile/PWH2004,$(1))
|
2015-08-17 06:01:06 +00:00
|
|
|
$(call Image/Build/Profile/PX-4885,$(1))
|
2015-08-17 05:59:29 +00:00
|
|
|
$(call Image/Build/Profile/RT5350F-OLINUXINO,$(1))
|
|
|
|
$(call Image/Build/Profile/RT5350F-OLINUXINO-EVB,$(1))
|
2012-02-23 19:58:15 +00:00
|
|
|
$(call Image/Build/Profile/RTG32B1,$(1))
|
2013-04-03 09:59:51 +00:00
|
|
|
$(call Image/Build/Profile/RTN10PLUS,$(1))
|
|
|
|
$(call Image/Build/Profile/RT-N13U,$(1))
|
2014-06-02 12:42:48 +00:00
|
|
|
$(call Image/Build/Profile/RUT5XX,$(1))
|
2013-04-03 09:59:51 +00:00
|
|
|
$(call Image/Build/Profile/SL-R7205,$(1))
|
|
|
|
$(call Image/Build/Profile/UR-326N4G,$(1))
|
|
|
|
$(call Image/Build/Profile/V22RW-2X2,$(1))
|
2014-08-01 20:51:24 +00:00
|
|
|
$(call Image/Build/Profile/VOCORE,$(1))
|
2013-04-03 10:00:21 +00:00
|
|
|
$(call Image/Build/Profile/W150M,$(1))
|
2012-04-21 12:30:40 +00:00
|
|
|
$(call Image/Build/Profile/W306R_V20,$(1))
|
2011-12-28 08:43:32 +00:00
|
|
|
$(call Image/Build/Profile/W502U,$(1))
|
2012-02-23 19:58:15 +00:00
|
|
|
$(call Image/Build/Profile/WCR150GN,$(1))
|
|
|
|
$(call Image/Build/Profile/WHRG300N,$(1))
|
2014-08-01 11:19:50 +00:00
|
|
|
$(call Image/Build/Profile/WIZARD8800,$(1))
|
2015-09-14 20:09:31 +00:00
|
|
|
$(call Image/Build/Profile/WIZFI630A,$(1))
|
2015-08-17 05:57:55 +00:00
|
|
|
$(call Image/Build/Profile/WL-330N,$(1))
|
|
|
|
$(call Image/Build/Profile/WL-330N3G,$(1))
|
2015-08-17 05:59:12 +00:00
|
|
|
$(call Image/Build/Profile/WL-341V3,$(1))
|
2013-04-03 09:59:51 +00:00
|
|
|
$(call Image/Build/Profile/WL-351,$(1))
|
2013-04-09 14:19:33 +00:00
|
|
|
$(call Image/Build/Profile/WNCE2001,$(1))
|
2013-04-03 09:59:51 +00:00
|
|
|
$(call Image/Build/Profile/WR512-3GN,$(1))
|
2012-02-11 15:11:36 +00:00
|
|
|
$(call Image/Build/Profile/WR6202,$(1))
|
2014-10-10 08:56:43 +00:00
|
|
|
$(call Image/Build/Profile/WT1520,$(1))
|
2013-08-01 14:31:04 +00:00
|
|
|
$(call Image/Build/Profile/X5,$(1))
|
2013-08-01 14:31:09 +00:00
|
|
|
$(call Image/Build/Profile/X8,$(1))
|
2012-03-04 16:09:13 +00:00
|
|
|
$(call Image/Build/Profile/XDXRN502J,$(1))
|
2015-07-17 12:51:08 +00:00
|
|
|
$(call Image/Build/Profile/MZK-DP150N,$(1))
|
2015-06-05 14:12:25 +00:00
|
|
|
|
2010-04-11 17:47:28 +00:00
|
|
|
endef
|
|
|
|
endif
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
|
|
|
|
|
2012-04-21 12:30:44 +00:00
|
|
|
#
|
|
|
|
# RT3662/RT3883 Profiles
|
|
|
|
#
|
2014-01-15 18:29:51 +00:00
|
|
|
|
|
|
|
# $(1) = squashfs/initramfs
|
|
|
|
# $(2) = lowercase board name
|
|
|
|
# $(3) = dts file
|
|
|
|
# $(4) = kernel size
|
|
|
|
# $(5) = rootfs size
|
|
|
|
# $(6) = signature
|
|
|
|
# $(7) = model
|
|
|
|
# $(8) = flash address
|
|
|
|
# $(9) = start address
|
|
|
|
define BuildFirmware/EdimaxCombined/squashfs
|
|
|
|
$(call PatchKernelLzmaDtb,$(2),$(3))
|
|
|
|
$(call MkImage,lzma,$(KDIR)/vmlinux-$(2).bin.lzma,$(KDIR)/vmlinux-$(2).bin.uImage)
|
|
|
|
if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.uImage"` -gt `expr $(4) - 20` ]; then \
|
|
|
|
echo "Warning: $(KDIR)/vmlinux-$(2).bin.uImage is too big" >&2; \
|
|
|
|
exit 1; \
|
|
|
|
else if [ `stat -c%s "$(KDIR)/root.$(1)"` -gt $(5) ]; then \
|
|
|
|
echo "Warning: $(KDIR)/root.$(1) is too big" >&2; \
|
|
|
|
exit 1; \
|
|
|
|
else \
|
|
|
|
( dd if=$(KDIR)/vmlinux-$(2).bin.uImage bs=`expr $(4) - 20` conv=sync ; dd if=$(KDIR)/root.$(1) ) > $(KDIR)/vmlinux-$(2).bin.uImage.combined ; \
|
|
|
|
fi ; fi
|
|
|
|
mkedimaximg -i "$(KDIR)/vmlinux-$(2).bin.uImage.combined" \
|
|
|
|
-o $(call imgname,$(1),$(2)).bin \
|
|
|
|
-s $(6) -m $(7) -f $(8) -S $(9)
|
|
|
|
endef
|
|
|
|
|
2014-06-02 12:42:52 +00:00
|
|
|
Image/Build/Profile/CYSWR1100=$(call BuildFirmware/Seama/$(1),$(1),cy-swr1100,CY-SWR1100,wrgnd10_samsung_ss815,$(ralink_default_fw_size_8M))
|
|
|
|
|
2013-08-05 12:35:22 +00:00
|
|
|
Image/Build/Profile/DIR645=$(call BuildFirmware/Seama/$(1),$(1),dir-645,DIR-645,wrgn39_dlob.hans_dir645,$(ralink_default_fw_size_8M))
|
2012-10-18 07:23:04 +00:00
|
|
|
|
2015-08-17 06:00:11 +00:00
|
|
|
hpm_mtd_size=16449536
|
|
|
|
Image/Build/Profile/HPM=$(call BuildFirmware/CustomFlash/$(1),$(1),hpm,HPM,$(hpm_mtd_size))
|
2013-02-02 17:21:06 +00:00
|
|
|
|
2014-06-16 18:57:20 +00:00
|
|
|
define BuildFirmware/RTN56U/squashfs
|
2015-08-17 05:58:35 +00:00
|
|
|
$(call BuildFirmware/Default8M/$(1),$(1),rt-n56u,RT-N56U)
|
2014-06-16 18:57:20 +00:00
|
|
|
-mkrtn56uimg -s $(call sysupname,$(1),rt-n56u)
|
|
|
|
-cp $(call sysupname,$(1),rt-n56u) $(call imgname,$(1),rt-n56u)-factory.bin
|
|
|
|
-mkrtn56uimg -f $(call imgname,$(1),rt-n56u)-factory.bin
|
|
|
|
endef
|
2015-08-17 05:58:35 +00:00
|
|
|
Image/Build/Profile/RTN56U=$(call BuildFirmware/RTN56U/$(1),$(1),rt-n56u,RT-N56U)
|
2012-04-21 12:30:44 +00:00
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
Image/Build/Profile/TEW691GR=$(call BuildFirmware/UMedia/$(1),$(1),tew-691gr,TEW-691GR,0x026910)
|
2012-10-18 07:23:13 +00:00
|
|
|
|
2013-10-30 07:06:24 +00:00
|
|
|
Image/Build/Profile/TEW692GR=$(call BuildFirmware/UMedia/$(1),$(1),tew-692gr,TEW-692GR,0x026920)
|
2012-10-18 07:23:10 +00:00
|
|
|
|
2014-01-15 18:29:51 +00:00
|
|
|
kernel_size_BR6475ND:=2097152
|
|
|
|
rootfs_size_BR6475ND:=5832704
|
|
|
|
Image/Build/Profile/BR6475ND=$(call BuildFirmware/EdimaxCombined/$(1),$(1),br-6475nd,BR-6475ND,$(kernel_size_BR6475ND),$(rootfs_size_BR6475ND),CSYS,RN54,0x70000,0x01100000)
|
|
|
|
|
2013-04-03 09:59:51 +00:00
|
|
|
ifeq ($(SUBTARGET),rt3883)
|
2012-04-21 12:30:44 +00:00
|
|
|
define Image/Build/Profile/Default
|
2014-06-02 12:42:52 +00:00
|
|
|
$(call Image/Build/Profile/CYSWR1100,$(1))
|
2012-10-18 07:23:04 +00:00
|
|
|
$(call Image/Build/Profile/DIR645,$(1))
|
2015-08-17 06:00:11 +00:00
|
|
|
$(call Image/Build/Profile/HPM,$(1))
|
2012-04-21 12:30:44 +00:00
|
|
|
$(call Image/Build/Profile/RTN56U,$(1))
|
2014-01-15 18:29:51 +00:00
|
|
|
$(call Image/Build/Profile/BR6475ND,$(1))
|
2012-10-18 07:23:13 +00:00
|
|
|
$(call Image/Build/Profile/TEW691GR,$(1))
|
2012-10-18 07:23:10 +00:00
|
|
|
$(call Image/Build/Profile/TEW692GR,$(1))
|
2012-04-21 12:30:44 +00:00
|
|
|
endef
|
|
|
|
endif
|
|
|
|
|
2013-06-23 15:50:49 +00:00
|
|
|
#
|
|
|
|
# MT7620A Profiles
|
|
|
|
#
|
|
|
|
|
2016-02-25 10:14:19 +00:00
|
|
|
# $(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
|
|
|
|
|
2014-11-05 14:37:13 +00:00
|
|
|
Image/Build/Profile/E1700=$(call BuildFirmware/UMedia/$(1),$(1),e1700,E1700,0x013326)
|
2016-02-25 10:14:19 +00:00
|
|
|
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))
|
2013-06-23 15:50:49 +00:00
|
|
|
Image/Build/Profile/MT7620a=$(call BuildFirmware/Default8M/$(1),$(1),mt7620a,MT7620a)
|
2013-08-01 14:30:33 +00:00
|
|
|
Image/Build/Profile/MT7620a_MT7610e=$(call BuildFirmware/Default8M/$(1),$(1),mt7620a_mt7610e,MT7620a_MT7610e)
|
2013-10-08 21:10:15 +00:00
|
|
|
Image/Build/Profile/MT7620a_MT7530=$(call BuildFirmware/Default8M/$(1),$(1),mt7620a_mt7530,MT7620a_MT7530)
|
2013-11-18 09:35:41 +00:00
|
|
|
Image/Build/Profile/MT7620a_V22SG=$(call BuildFirmware/Default8M/$(1),$(1),mt7620a_v22sg,MT7620a_V22SG)
|
2014-12-13 08:07:03 +00:00
|
|
|
br100_mtd_size=8126464
|
2015-08-17 05:59:36 +00:00
|
|
|
Image/Build/Profile/AI-BR100=$(call BuildFirmware/CustomFlash/$(1),$(1),ai-br100,AI-BR100,$(br100_mtd_size),Ai-BR)
|
2015-08-17 05:58:07 +00:00
|
|
|
Image/Build/Profile/RP-N53=$(call BuildFirmware/Default8M/$(1),$(1),rp-n53,RP-N53)
|
2013-10-28 06:47:31 +00:00
|
|
|
whr_300hp2_mtd_size=7012352
|
2014-01-12 12:12:58 +00:00
|
|
|
Image/Build/Profile/WHR300HP2=$(call BuildFirmware/CustomFlash/$(1),$(1),whr-300hp2,WHR-300HP2,$(whr_300hp2_mtd_size))
|
|
|
|
Image/Build/Profile/WHR600D=$(call BuildFirmware/CustomFlash/$(1),$(1),whr-600d,WHR-600D,$(whr_300hp2_mtd_size))
|
2014-07-01 10:26:42 +00:00
|
|
|
whr_1166d_mtd_size=15400960
|
2015-07-07 13:43:28 +00:00
|
|
|
Image/Build/Profile/WHR1166D=$(call BuildFirmware/CustomFlash/$(1),$(1),whr-1166d,WHR-1166D,$(whr_1166d_mtd_size))
|
2013-08-14 18:15:35 +00:00
|
|
|
dlink810l_mtd_size=6881280
|
2015-05-23 15:26:39 +00:00
|
|
|
Image/Build/Profile/CF-WR800N=$(call BuildFirmware/Default8M/$(1),$(1),cf-wr800n,CF-WR800N)
|
2013-08-14 18:15:35 +00:00
|
|
|
Image/Build/Profile/DIR-810L=$(call BuildFirmware/CustomFlash/$(1),$(1),dir-810l,DIR-810L,$(dlink810l_mtd_size))
|
2014-02-18 13:33:25 +00:00
|
|
|
na930_mtd_size=20971520
|
|
|
|
Image/Build/Profile/NA930=$(call BuildFirmware/CustomFlash/$(1),$(1),na930,NA930,$(na930_mtd_size))
|
2015-09-14 20:08:55 +00:00
|
|
|
Image/Build/Profile/DB-WRT01=$(call BuildFirmware/Default8M/$(1),$(1),db-wrt01,DB-WRT01)
|
2014-07-14 17:10:39 +00:00
|
|
|
Image/Build/Profile/MZK-750DHP=$(call BuildFirmware/Default8M/$(1),$(1),mzk-750dhp,MZK-750DHP)
|
2015-10-05 10:26:02 +00:00
|
|
|
Image/Build/Profile/HC5661=$(call BuildFirmware/Default16M/$(1),$(1),hc5661,HC5661)
|
|
|
|
Image/Build/Profile/HC5761=$(call BuildFirmware/Default16M/$(1),$(1),hc5761,HC5761)
|
|
|
|
Image/Build/Profile/HC5861=$(call BuildFirmware/Default16M/$(1),$(1),hc5861,HC5861)
|
2015-07-14 07:40:22 +00:00
|
|
|
Image/Build/Profile/OY-0001=$(call BuildFirmware/Default16M/$(1),$(1),oy-0001,OY-0001)
|
2016-02-15 18:45:22 +00:00
|
|
|
Image/Build/Profile/PSG1208=$(call BuildFirmware/Default8M/$(1),$(1),psg1208,PSG1208)
|
2015-08-17 05:58:07 +00:00
|
|
|
Image/Build/Profile/Y1=$(call BuildFirmware/Default16M/$(1),$(1),y1,Y1)
|
|
|
|
Image/Build/Profile/Y1S=$(call BuildFirmware/Default16M/$(1),$(1),y1s,Y1S)
|
2014-11-19 09:19:38 +00:00
|
|
|
Image/Build/Profile/MLW221=$(call BuildFirmware/Default16M/$(1),$(1),mlw221,MLW221)
|
2015-01-17 07:07:36 +00:00
|
|
|
Image/Build/Profile/MLWG2=$(call BuildFirmware/Default16M/$(1),$(1),mlwg2,MLWG2)
|
2015-08-17 06:00:49 +00:00
|
|
|
Image/Build/Profile/WMR-300=$(call BuildFirmware/Default8M/$(1),$(1),wmr-300,WMR-300)
|
2014-11-19 09:19:38 +00:00
|
|
|
Image/Build/Profile/RT-N14U=$(call BuildFirmware/Default8M/$(1),$(1),rt-n14u,RT-N14U)
|
|
|
|
Image/Build/Profile/WRTNODE=$(call BuildFirmware/Default16M/$(1),$(1),wrtnode,WRTNODE)
|
2014-12-07 16:53:22 +00:00
|
|
|
Image/Build/Profile/WT3020=$(call BuildFirmware/PorayDualSize/$(1),$(1),wt3020,WT3020)
|
2015-08-17 05:58:15 +00:00
|
|
|
Image/Build/Profile/MIWIFI-MINI=$(call BuildFirmware/Default16M/$(1),$(1),miwifi-mini,MIWIFI-MINI)
|
2015-04-01 08:31:46 +00:00
|
|
|
Image/Build/Profile/ZTE-Q7=$(call BuildFirmware/Default8M/$(1),$(1),zte-q7,ZTE-Q7)
|
2015-11-24 18:29:02 +00:00
|
|
|
Image/Build/Profile/YOUKU-YK1=$(call BuildFirmware/Default16M/$(1),$(1),youku-yk1,YOUKU-YK1)
|
2014-11-19 09:19:38 +00:00
|
|
|
Image/Build/Profile/ZBT-WA05=$(call BuildFirmware/Default8M/$(1),$(1),zbt-wa05,ZBT-WA05)
|
2016-03-01 09:17:06 +00:00
|
|
|
Image/Build/Profile/ZBT-WE826=$(call BuildFirmware/Default16M/$(1),$(1),zbt-we826,ZBT-WE826)
|
2015-08-17 05:57:41 +00:00
|
|
|
Image/Build/Profile/ZBT-WR8305RT=$(call BuildFirmware/Default8M/$(1),$(1),zbt-wr8305rt,ZBT-WR8305RT)
|
2015-01-09 15:40:51 +00:00
|
|
|
Image/Build/Profile/ArcherC20i=$(call BuildFirmware/Tplink/$(1),$(1),ArcherC20i,ArcherC20i)
|
2015-04-09 10:32:37 +00:00
|
|
|
microwrt_mtd_size=16515072
|
|
|
|
Image/Build/Profile/MicroWRT=$(call BuildFirmware/CustomFlash/$(1),$(1),microwrt,MicroWRT,$(microwrt_mtd_size))
|
2015-11-02 10:17:51 +00:00
|
|
|
Image/Build/Profile/TINY-AC=$(call BuildFirmware/Default8M/$(1),$(1),tiny-ac,TINY-AC)
|
2013-06-23 15:50:49 +00:00
|
|
|
|
2014-11-19 09:19:38 +00:00
|
|
|
|
|
|
|
ifeq ($(SUBTARGET),mt7620)
|
2013-06-23 15:50:49 +00:00
|
|
|
define Image/Build/Profile/Default
|
2014-11-05 14:37:13 +00:00
|
|
|
$(call Image/Build/Profile/E1700,$(1))
|
2016-02-12 08:29:33 +00:00
|
|
|
$(call Image/Build/Profile/EX2700,$(1))
|
2013-06-23 15:50:49 +00:00
|
|
|
$(call Image/Build/Profile/MT7620a,$(1))
|
2013-08-01 14:30:33 +00:00
|
|
|
$(call Image/Build/Profile/MT7620a_MT7610e,$(1))
|
2013-10-08 21:10:15 +00:00
|
|
|
$(call Image/Build/Profile/MT7620a_MT7530,$(1))
|
2013-11-18 09:35:41 +00:00
|
|
|
$(call Image/Build/Profile/MT7620a_V22SG,$(1))
|
2015-08-17 05:59:36 +00:00
|
|
|
$(call Image/Build/Profile/AI-BR100,$(1))
|
2015-05-23 15:26:39 +00:00
|
|
|
$(call Image/Build/Profile/CF-WR800N,$(1))
|
2013-08-14 18:15:35 +00:00
|
|
|
$(call Image/Build/Profile/RP-N53,$(1))
|
|
|
|
$(call Image/Build/Profile/DIR-810L,$(1))
|
2014-01-12 12:12:58 +00:00
|
|
|
$(call Image/Build/Profile/WHR300HP2,$(1))
|
|
|
|
$(call Image/Build/Profile/WHR600D,$(1))
|
2014-07-01 10:26:42 +00:00
|
|
|
$(call Image/Build/Profile/WHR1166D,$(1))
|
2015-09-14 20:08:55 +00:00
|
|
|
$(call Image/Build/Profile/DB-WRT01,$(1))
|
2014-07-14 17:10:39 +00:00
|
|
|
$(call Image/Build/Profile/MZK-750DHP,$(1))
|
2014-02-18 13:33:25 +00:00
|
|
|
$(call Image/Build/Profile/NA930,$(1))
|
2015-10-05 10:26:02 +00:00
|
|
|
$(call Image/Build/Profile/HC5661,$(1))
|
|
|
|
$(call Image/Build/Profile/HC5761,$(1))
|
|
|
|
$(call Image/Build/Profile/HC5861,$(1))
|
2015-07-14 07:40:22 +00:00
|
|
|
$(call Image/Build/Profile/OY-0001,$(1))
|
2016-02-15 18:45:22 +00:00
|
|
|
$(call Image/Build/Profile/PSG1208,$(1))
|
2014-08-03 11:13:52 +00:00
|
|
|
$(call Image/Build/Profile/Y1,$(1))
|
|
|
|
$(call Image/Build/Profile/Y1S,$(1))
|
2014-07-26 20:36:22 +00:00
|
|
|
$(call Image/Build/Profile/MLW221,$(1))
|
2015-01-17 07:07:36 +00:00
|
|
|
$(call Image/Build/Profile/MLWG2,$(1))
|
2015-08-17 06:00:49 +00:00
|
|
|
$(call Image/Build/Profile/WMR-300,$(1))
|
2013-12-25 17:04:50 +00:00
|
|
|
$(call Image/Build/Profile/RT-N14U,$(1))
|
2014-03-07 09:54:59 +00:00
|
|
|
$(call Image/Build/Profile/WRTNODE,$(1))
|
2014-10-20 06:28:48 +00:00
|
|
|
$(call Image/Build/Profile/WT3020,$(1))
|
2015-08-17 05:58:15 +00:00
|
|
|
$(call Image/Build/Profile/MIWIFI-MINI,$(1))
|
2015-04-01 08:31:46 +00:00
|
|
|
$(call Image/Build/Profile/ZTE-Q7,$(1))
|
2015-11-24 18:29:02 +00:00
|
|
|
$(call Image/Build/Profile/YOUKU-YK1,$(1))
|
2014-07-10 22:02:28 +00:00
|
|
|
$(call Image/Build/Profile/ZBT-WA05,$(1))
|
2016-03-01 09:17:06 +00:00
|
|
|
$(call Image/Build/Profile/ZBT-WE826,$(1))
|
2015-08-17 05:57:41 +00:00
|
|
|
$(call Image/Build/Profile/ZBT-WR8305RT,$(1))
|
2015-01-09 15:40:51 +00:00
|
|
|
$(call Image/Build/Profile/ArcherC20i,$(1))
|
2015-04-09 10:32:37 +00:00
|
|
|
$(call Image/Build/Profile/MicroWRT,$(1))
|
2015-11-02 10:17:51 +00:00
|
|
|
$(call Image/Build/Profile/TINY-AC,$(1))
|
2013-11-16 20:28:52 +00:00
|
|
|
endef
|
|
|
|
endif
|
|
|
|
|
2013-12-13 10:53:34 +00:00
|
|
|
#
|
|
|
|
# MT7621 Profiles
|
|
|
|
#
|
|
|
|
|
|
|
|
ifeq ($(SUBTARGET),mt7621)
|
ramips: add support for Ubiquiti EdgeRouter X (UBNT-ERX)
This router is based on MT7621 SoC, no wifi, no usb, nand.
Works:
* Boots.
* Ethernet.
* Switch.
* Button (reset).
* Flashing OpenWrt from stock firmware.
* Upgrading OpenWrt.
Doesn't work:
* No GPIO leds. All leds are controlled by switch,
but stock firmware was able to control them.
* SoC has crypto engine but no open driver.
* SoC has nat acceleration, but no open driver.
* This router has 2MB spi flash soldered in but MT
nand/spi drivers do not support pin sharing,
so it is not accessable and disabled. Stock
firmware could read it and it was empty.
* PoE out.
Router has serial pins populated. If looking at the top
of the router, then counting from Eth sockets pins go as:
'GND, RX, TX, GND'. 3.3v, 57600.
U-boot bootloader supports tftpboot, controlled from serial.
This router has two kernel partitions: 'live' and 'backup'.
They are swapped during flashing (on both stock and OpenWrt).
Active partition is controlled by a flag in a factory partition.
U-boot has custom command to switch active kernel partition.
Kernel partitions are 'bare flash' 3MB. Stock bootloader has
no UBI support. Stock rootfs is UBIFS.
Flashing procedure.
Stock firmware uses custom kernel patch to mount squashfs
from a file that is located on UBIFS volume. This makes wiping
out this volume from within stock firmware difficult.
Instead this patch builds image that is flashable by stock firmware
and contains initrams image (with minimal set of packages
to fit into kernel partition). Once this is flashed one can reboot
into initramfs OpenWrt and use sysupgrade to flash OpenWrt including
rootfs into nand.
Note: factory image is only built if initramfs image is enabled.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
SVN-Revision: 47881
2015-12-12 07:38:06 +00:00
|
|
|
TARGET_DEVICES += mt7621 wsr-600 wsr-1166 dir-860l-b1 firewrt pbr-m1 re6500 sap-g3200u3 ubnt-erx witi wf-2881 zbt-wg2626
|
2013-12-13 10:53:34 +00:00
|
|
|
endif
|
|
|
|
|
2015-01-10 15:26:53 +00:00
|
|
|
define Device/mt7621
|
|
|
|
DTS := MT7621
|
|
|
|
IMAGE_SIZE := $(ralink_default_fw_size_4M)
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Device/wsr-600
|
|
|
|
DTS := WSR-600
|
2016-01-26 16:45:11 +00:00
|
|
|
IMAGE_SIZE := $(ralink_default_fw_size_16M)
|
2015-01-10 15:26:53 +00:00
|
|
|
endef
|
|
|
|
|
2015-06-18 18:20:56 +00:00
|
|
|
define Device/re6500
|
|
|
|
DTS := RE6500
|
|
|
|
endef
|
|
|
|
|
2015-01-10 15:26:53 +00:00
|
|
|
define Device/wsr-1166
|
|
|
|
DTS := WSR-1166
|
|
|
|
IMAGE/sysupgrade.bin := trx | pad-rootfs
|
2016-01-26 16:45:11 +00:00
|
|
|
IMAGE_SIZE := $(ralink_default_fw_size_16M)
|
2015-01-10 15:26:53 +00:00
|
|
|
endef
|
|
|
|
|
2015-01-17 21:20:05 +00:00
|
|
|
define Device/dir-860l-b1
|
|
|
|
DTS := DIR-860L-B1
|
|
|
|
IMAGES += factory.bin
|
|
|
|
KERNEL := kernel-bin | patch-dtb | relocate-kernel | lzma | uImage lzma
|
|
|
|
IMAGE/sysupgrade.bin := \
|
|
|
|
append-kernel | pad-offset 65536 64 | append-rootfs | \
|
|
|
|
seama -m "dev=/dev/mtdblock/2" -m "type=firmware" | \
|
|
|
|
pad-rootfs | check-size $$$$(IMAGE_SIZE)
|
|
|
|
IMAGE/factory.bin := \
|
|
|
|
append-kernel | pad-offset 65536 64 | append-rootfs | pad-rootfs -x 64 | \
|
|
|
|
seama -m "dev=/dev/mtdblock/2" -m "type=firmware" | \
|
2016-02-08 19:18:21 +00:00
|
|
|
seama-seal -m "signature=wrgac13_dlink.2013gui_dir860lb" | \
|
|
|
|
check-size $$$$(IMAGE_SIZE)
|
2015-01-17 21:20:05 +00:00
|
|
|
endef
|
|
|
|
|
2015-01-20 06:34:28 +00:00
|
|
|
define Device/firewrt
|
|
|
|
DTS := FIREWRT
|
2015-03-11 15:55:28 +00:00
|
|
|
IMAGE_SIZE := $(ralink_default_fw_size_16M)
|
2015-01-20 06:34:28 +00:00
|
|
|
endef
|
|
|
|
|
2015-06-18 18:20:40 +00:00
|
|
|
define Device/pbr-m1
|
|
|
|
DTS := PBR-M1
|
|
|
|
IMAGE_SIZE := $(ralink_default_fw_size_16M)
|
|
|
|
endef
|
|
|
|
|
2015-07-24 09:09:22 +00:00
|
|
|
define Device/sap-g3200u3
|
|
|
|
DTS := SAP-G3200U3
|
|
|
|
endef
|
|
|
|
|
2015-12-11 15:04:13 +00:00
|
|
|
define Device/witi
|
|
|
|
DTS := WITI
|
|
|
|
IMAGE_SIZE := $(ralink_default_fw_size_16M)
|
|
|
|
endef
|
|
|
|
|
2015-11-02 10:18:19 +00:00
|
|
|
define Device/zbt-wg2626
|
|
|
|
DTS := ZBT-WG2626
|
|
|
|
IMAGE_SIZE := $(ralink_default_fw_size_16M)
|
|
|
|
endef
|
|
|
|
|
2015-11-24 18:29:26 +00:00
|
|
|
define Device/wf-2881
|
|
|
|
DTS := WF-2881
|
|
|
|
BLOCKSIZE := 128KiB
|
|
|
|
PAGESIZE := 2048
|
|
|
|
FILESYSTEMS := squashfs
|
2016-03-04 08:33:17 +00:00
|
|
|
IMAGE_SIZE := 132382720
|
|
|
|
KERNEL := $(KERNEL_DTB) | pad-offset 131072 64 | uImage lzma
|
|
|
|
IMAGE/sysupgrade.bin := append-kernel | append-ubi | check-size $$$$(IMAGE_SIZE)
|
2015-11-24 18:29:26 +00:00
|
|
|
endef
|
|
|
|
|
ramips: add support for Ubiquiti EdgeRouter X (UBNT-ERX)
This router is based on MT7621 SoC, no wifi, no usb, nand.
Works:
* Boots.
* Ethernet.
* Switch.
* Button (reset).
* Flashing OpenWrt from stock firmware.
* Upgrading OpenWrt.
Doesn't work:
* No GPIO leds. All leds are controlled by switch,
but stock firmware was able to control them.
* SoC has crypto engine but no open driver.
* SoC has nat acceleration, but no open driver.
* This router has 2MB spi flash soldered in but MT
nand/spi drivers do not support pin sharing,
so it is not accessable and disabled. Stock
firmware could read it and it was empty.
* PoE out.
Router has serial pins populated. If looking at the top
of the router, then counting from Eth sockets pins go as:
'GND, RX, TX, GND'. 3.3v, 57600.
U-boot bootloader supports tftpboot, controlled from serial.
This router has two kernel partitions: 'live' and 'backup'.
They are swapped during flashing (on both stock and OpenWrt).
Active partition is controlled by a flag in a factory partition.
U-boot has custom command to switch active kernel partition.
Kernel partitions are 'bare flash' 3MB. Stock bootloader has
no UBI support. Stock rootfs is UBIFS.
Flashing procedure.
Stock firmware uses custom kernel patch to mount squashfs
from a file that is located on UBIFS volume. This makes wiping
out this volume from within stock firmware difficult.
Instead this patch builds image that is flashable by stock firmware
and contains initrams image (with minimal set of packages
to fit into kernel partition). Once this is flashed one can reboot
into initramfs OpenWrt and use sysupgrade to flash OpenWrt including
rootfs into nand.
Note: factory image is only built if initramfs image is enabled.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
SVN-Revision: 47881
2015-12-12 07:38:06 +00:00
|
|
|
define Device/ubnt-erx
|
|
|
|
DTS := UBNT-ERX
|
|
|
|
FILESYSTEMS := squashfs
|
|
|
|
KERNEL_SIZE := 3145728
|
|
|
|
KERNEL := $(KERNEL_DTB) | uImage lzma
|
2016-01-06 18:38:44 +00:00
|
|
|
IMAGES := sysupgrade.tar $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),factory-initramfs.tar)
|
ramips: add support for Ubiquiti EdgeRouter X (UBNT-ERX)
This router is based on MT7621 SoC, no wifi, no usb, nand.
Works:
* Boots.
* Ethernet.
* Switch.
* Button (reset).
* Flashing OpenWrt from stock firmware.
* Upgrading OpenWrt.
Doesn't work:
* No GPIO leds. All leds are controlled by switch,
but stock firmware was able to control them.
* SoC has crypto engine but no open driver.
* SoC has nat acceleration, but no open driver.
* This router has 2MB spi flash soldered in but MT
nand/spi drivers do not support pin sharing,
so it is not accessable and disabled. Stock
firmware could read it and it was empty.
* PoE out.
Router has serial pins populated. If looking at the top
of the router, then counting from Eth sockets pins go as:
'GND, RX, TX, GND'. 3.3v, 57600.
U-boot bootloader supports tftpboot, controlled from serial.
This router has two kernel partitions: 'live' and 'backup'.
They are swapped during flashing (on both stock and OpenWrt).
Active partition is controlled by a flag in a factory partition.
U-boot has custom command to switch active kernel partition.
Kernel partitions are 'bare flash' 3MB. Stock bootloader has
no UBI support. Stock rootfs is UBIFS.
Flashing procedure.
Stock firmware uses custom kernel patch to mount squashfs
from a file that is located on UBIFS volume. This makes wiping
out this volume from within stock firmware difficult.
Instead this patch builds image that is flashable by stock firmware
and contains initrams image (with minimal set of packages
to fit into kernel partition). Once this is flashed one can reboot
into initramfs OpenWrt and use sysupgrade to flash OpenWrt including
rootfs into nand.
Note: factory image is only built if initramfs image is enabled.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
SVN-Revision: 47881
2015-12-12 07:38:06 +00:00
|
|
|
IMAGE/factory-initramfs.tar := ubnt-erx-factory-compat | \
|
|
|
|
ubnt-erx-factory-kernel | \
|
|
|
|
ubnt-erx-factory-rootfs | \
|
|
|
|
ubnt-erx-factory-version | \
|
2015-12-17 09:27:09 +00:00
|
|
|
ubnt-erx-factory-check-size $$(KERNEL_SIZE)
|
ramips: add support for Ubiquiti EdgeRouter X (UBNT-ERX)
This router is based on MT7621 SoC, no wifi, no usb, nand.
Works:
* Boots.
* Ethernet.
* Switch.
* Button (reset).
* Flashing OpenWrt from stock firmware.
* Upgrading OpenWrt.
Doesn't work:
* No GPIO leds. All leds are controlled by switch,
but stock firmware was able to control them.
* SoC has crypto engine but no open driver.
* SoC has nat acceleration, but no open driver.
* This router has 2MB spi flash soldered in but MT
nand/spi drivers do not support pin sharing,
so it is not accessable and disabled. Stock
firmware could read it and it was empty.
* PoE out.
Router has serial pins populated. If looking at the top
of the router, then counting from Eth sockets pins go as:
'GND, RX, TX, GND'. 3.3v, 57600.
U-boot bootloader supports tftpboot, controlled from serial.
This router has two kernel partitions: 'live' and 'backup'.
They are swapped during flashing (on both stock and OpenWrt).
Active partition is controlled by a flag in a factory partition.
U-boot has custom command to switch active kernel partition.
Kernel partitions are 'bare flash' 3MB. Stock bootloader has
no UBI support. Stock rootfs is UBIFS.
Flashing procedure.
Stock firmware uses custom kernel patch to mount squashfs
from a file that is located on UBIFS volume. This makes wiping
out this volume from within stock firmware difficult.
Instead this patch builds image that is flashable by stock firmware
and contains initrams image (with minimal set of packages
to fit into kernel partition). Once this is flashed one can reboot
into initramfs OpenWrt and use sysupgrade to flash OpenWrt including
rootfs into nand.
Note: factory image is only built if initramfs image is enabled.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
SVN-Revision: 47881
2015-12-12 07:38:06 +00:00
|
|
|
IMAGE/sysupgrade.tar := sysupgrade-nand
|
|
|
|
endef
|
|
|
|
|
2014-11-06 09:31:31 +00:00
|
|
|
#
|
|
|
|
# MT7628 Profiles
|
|
|
|
#
|
|
|
|
|
|
|
|
Image/Build/Profile/MT7628=$(call BuildFirmware/Default4M/$(1),$(1),mt7628,MT7628)
|
2016-01-01 21:19:50 +00:00
|
|
|
Image/Build/Profile/WRTNODE2P=$(call BuildFirmware/Default16M/$(1),$(1),wrtnode2p,WRTNODE2P)
|
2014-11-06 09:31:31 +00:00
|
|
|
|
|
|
|
ifeq ($(SUBTARGET),mt7628)
|
|
|
|
define Image/Build/Profile/Default
|
|
|
|
$(call Image/Build/Profile/MT7628,$(1))
|
2016-01-01 21:19:50 +00:00
|
|
|
$(call Image/Build/Profile/WRTNODE2P,$(1))
|
2014-11-06 09:31:31 +00:00
|
|
|
endef
|
|
|
|
endif
|
|
|
|
|
2015-07-24 09:11:56 +00:00
|
|
|
|
|
|
|
#
|
|
|
|
# MT7688 Profiles
|
|
|
|
#
|
|
|
|
|
2015-10-19 10:07:38 +00:00
|
|
|
Image/Build/Profile/LinkIt7688=$(call BuildFirmware/Default32M/$(1),$(1),LinkIt7688,LINKIT7688)
|
2016-01-01 21:19:50 +00:00
|
|
|
Image/Build/Profile/WRTNODE2R=$(call BuildFirmware/Default16M/$(1),$(1),wrtnode2r,WRTNODE2R)
|
2015-07-24 09:11:56 +00:00
|
|
|
|
|
|
|
ifeq ($(SUBTARGET),mt7688)
|
|
|
|
define Image/Build/Profile/Default
|
2015-10-19 10:07:38 +00:00
|
|
|
$(call Image/Build/Profile/LinkIt7688,$(1))
|
2016-01-01 21:19:50 +00:00
|
|
|
$(call Image/Build/Profile/WRTNODE2R,$(1))
|
2015-07-24 09:11:56 +00:00
|
|
|
endef
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
2015-01-10 15:26:53 +00:00
|
|
|
ifndef TARGET_DEVICES
|
2013-04-03 09:59:51 +00:00
|
|
|
#
|
2015-01-10 15:26:53 +00:00
|
|
|
# Generic Targets - only needed for legacy image building code
|
2013-04-03 09:59:51 +00:00
|
|
|
#
|
|
|
|
define Image/BuildKernel
|
|
|
|
cp $(KDIR)/vmlinux.elf $(BIN_DIR)/$(VMLINUX).elf
|
|
|
|
cp $(KDIR)/vmlinux $(BIN_DIR)/$(VMLINUX).bin
|
|
|
|
$(call CompressLzma,$(KDIR)/vmlinux,$(KDIR)/vmlinux.bin.lzma)
|
|
|
|
$(call MkImage,lzma,$(KDIR)/vmlinux.bin.lzma,$(KDIR)/uImage.lzma)
|
|
|
|
cp $(KDIR)/uImage.lzma $(BIN_DIR)/$(UIMAGE).bin
|
2014-11-08 15:40:17 +00:00
|
|
|
endef
|
|
|
|
|
|
|
|
define Image/BuildKernel/Initramfs
|
2013-06-27 19:58:31 +00:00
|
|
|
cp $(KDIR)/vmlinux-initramfs.elf $(BIN_DIR)/$(VMLINUX)-initramfs.elf
|
|
|
|
cp $(KDIR)/vmlinux-initramfs $(BIN_DIR)/$(VMLINUX)-initramfs.bin
|
|
|
|
$(call CompressLzma,$(KDIR)/vmlinux-initramfs,$(KDIR)/vmlinux-initramfs.bin.lzma)
|
|
|
|
$(call MkImage,lzma,$(KDIR)/vmlinux-initramfs.bin.lzma,$(KDIR)/uImage-initramfs.lzma)
|
|
|
|
cp $(KDIR)/uImage-initramfs.lzma $(BIN_DIR)/$(UIMAGE)-initramfs.bin
|
2013-04-03 09:59:51 +00:00
|
|
|
$(call Image/Build/Initramfs)
|
|
|
|
endef
|
|
|
|
|
2009-08-30 19:15:51 +00:00
|
|
|
define Image/Build
|
|
|
|
$(call Image/Build/$(1))
|
2010-04-12 23:15:56 +00:00
|
|
|
dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) bs=128k conv=sync
|
2010-04-11 17:47:28 +00:00
|
|
|
$(call Image/Build/Profile/$(PROFILE),$(1))
|
2009-08-30 19:15:51 +00:00
|
|
|
endef
|
2015-01-10 15:26:53 +00:00
|
|
|
endif
|
2009-08-30 19:15:51 +00:00
|
|
|
|
2015-01-17 21:20:05 +00:00
|
|
|
ifeq ($(SUBTARGET),mt7621)
|
2015-05-29 11:28:10 +00:00
|
|
|
define Image/Prepare
|
|
|
|
#define Build/Compile
|
2015-01-17 21:20:05 +00:00
|
|
|
rm -rf $(KDIR)/relocate
|
2015-03-30 20:20:08 +00:00
|
|
|
$(CP) ../../generic/image/relocate $(KDIR)
|
2015-01-17 21:20:05 +00:00
|
|
|
$(MAKE) -C $(KDIR)/relocate KERNEL_ADDR=$(KERNEL_LOADADDR) CROSS_COMPILE=$(TARGET_CROSS)
|
2015-05-29 11:28:10 +00:00
|
|
|
$(CP) $(KDIR)/relocate/loader.bin $(KDIR)/loader.bin
|
2015-01-17 21:20:05 +00:00
|
|
|
endef
|
|
|
|
endif
|
|
|
|
|
2009-08-30 19:15:51 +00:00
|
|
|
$(eval $(call BuildImage))
|