openwrt/target/linux/ramips/image/mt7621.mk
Andrew Yong faf94d926e ramips: add support for MikroTik hEX v3 (RB750Gr3)
The MikroTik hEX v3 (RB750Gr3) is a MT7621AT board which is similar to most MT7621 reference designs, it can be easily supported by this patch; however, the stock RouterBOOT bootloader has to be replaced by a MT7621 SDK U-Boot such as https://github.com/ndoo/RB750Gr3-U-Boot - U-Boot configured for the RB750Gr3 (16MiB SPI flash, 256MiB DDR3 RAM at 1200MHz).

RouterBOOT, the stock bootloader, does not initialize the UART and boots silently, making it preferable to replace it with a MT7621 SDK U-Boot with UART (57600 8N1) that supports HTTP, TFTP or serial upload of sysupgrade firmware and U-Boot.

Furthermore, RouterOS, the stock firmware, is contained in a proprietary modification of SquashFS without GPL sources; UART is also disabled in stock firmware.

The combination of LEDE firmware generated by this PR and MT7621 SDK U-Boot expects the printed MAC address to reside at offset `0xe000` of the factory partition (absolute offset is `0x4e000`); this is similar to the factory MAC address offset for several other MT7621 devices.

A 16MiB flash dump suitable for use with flashrom will be provided if/once this patch is accepted and binaries are built by LEDE buildbot. Alternatively, writing the U-Boot to the SPI flash starting at 0x0 offset and booting the board with serial console attached will allow TFTP, HTTP or serial upload of sysupgrade firmware.

Signed-off-by: Andrew Yong <me@ndoo.sg>
2016-11-02 10:25:44 +01:00

210 lines
6.1 KiB
Makefile

#
# MT7621 Profiles
#
define Build/ubnt-erx-factory-image
if [ -e $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) -a "$$(stat -c%s $@)" -lt "$(KERNEL_SIZE)" ]; then \
echo '21001:6' > $(1).compat; \
$(TAR) -cf $(1) --transform='s/^.*/compat/' $(1).compat; \
\
$(TAR) -rf $(1) --transform='s/^.*/vmlinux.tmp/' $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE); \
md5sum --binary $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) | awk '{print $$1}'> $(1).md5; \
$(TAR) -rf $(1) --transform='s/^.*/vmlinux.tmp.md5/' $(1).md5; \
\
echo "dummy" > $(1).rootfs; \
$(TAR) -rf $(1) --transform='s/^.*/squashfs.tmp/' $(1).rootfs; \
\
md5sum --binary $(1).rootfs | awk '{print $$1}'> $(1).md5; \
$(TAR) -rf $(1) --transform='s/^.*/squashfs.tmp.md5/' $(1).md5; \
\
echo '$(BOARD) $(VERSION_CODE) $(VERSION_NUMBER)' > $(1).version; \
$(TAR) -rf $(1) --transform='s/^.*/version.tmp/' $(1).version; \
\
$(CP) $(1) $(BIN_DIR)/; \
else \
echo "WARNING: initramfs kernel image too big, cannot generate factory image" >&2; \
fi
endef
define Device/mt7621
DTS := MT7621
BLOCKSIZE := 64k
IMAGE_SIZE := $(ralink_default_fw_size_4M)
DEVICE_TITLE := MediaTek MT7621 EVB
endef
TARGET_DEVICES += mt7621
define Device/wsr-600
DTS := WSR-600
IMAGE_SIZE := $(ralink_default_fw_size_16M)
DEVICE_TITLE := Buffalo WSR-600
endef
TARGET_DEVICES += wsr-600
define Device/re6500
DTS := RE6500
DEVICE_TITLE := Linksys RE6500
endef
TARGET_DEVICES += re6500
define Device/wsr-1166
DTS := WSR-1166
IMAGE/sysupgrade.bin := trx | pad-rootfs
IMAGE_SIZE := $(ralink_default_fw_size_16M)
DEVICE_TITLE := Buffalo WSR-1166
endef
TARGET_DEVICES += wsr-1166
define Device/dir-860l-b1
DTS := DIR-860L-B1
BLOCKSIZE := 64k
IMAGES += factory.bin
KERNEL := kernel-bin | patch-dtb | relocate-kernel | lzma | uImage lzma
IMAGE_SIZE := $(ralink_default_fw_size_16M)
IMAGE/sysupgrade.bin := \
append-kernel | pad-offset $$$$(BLOCKSIZE) 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 $$$$(BLOCKSIZE) 64 | \
append-rootfs | pad-rootfs -x 64 | \
seama -m "dev=/dev/mtdblock/2" -m "type=firmware" | \
seama-seal -m "signature=wrgac13_dlink.2013gui_dir860lb" | \
check-size $$$$(IMAGE_SIZE)
DEVICE_TITLE := D-Link DIR-860L B1
DEVICE_PACKAGES := kmod-usb3 kmod-usb-ledtrig-usbport
endef
TARGET_DEVICES += dir-860l-b1
define Device/firewrt
DTS := FIREWRT
IMAGE_SIZE := $(ralink_default_fw_size_16M)
DEVICE_TITLE := Firefly FireWRT
DEVICE_PACKAGES := kmod-usb3 kmod-usb-ledtrig-usbport
endef
TARGET_DEVICES += firewrt
define Device/newifi-d1
DTS := Newifi-D1
IMAGE_SIZE := $(ralink_default_fw_size_16M)
DEVICE_TITLE := Newifi D1
DEVICE_PACKAGES := kmod-usb3 kmod-usb-ledtrig-usbport kmod-i2c-mt7621
endef
TARGET_DEVICES += newifi-d1
define Device/pbr-m1
DTS := PBR-M1
IMAGE_SIZE := $(ralink_default_fw_size_16M)
DEVICE_TITLE := PBR-M1
DEVICE_PACKAGES := kmod-usb3 kmod-usb-ledtrig-usbport kmod-ata-core kmod-ata-ahci \
kmod-i2c-mt7621
endef
TARGET_DEVICES += pbr-m1
define Device/sap-g3200u3
DTS := SAP-G3200U3
DEVICE_TITLE := STORYLiNK SAP-G3200U3
DEVICE_PACKAGES := kmod-usb3 kmod-usb-ledtrig-usbport
endef
TARGET_DEVICES += sap-g3200u3
define Device/timecloud
DTS := Timecloud
DEVICE_TITLE := Thunder Timecloud
DEVICE_PACKAGES := kmod-usb3
endef
TARGET_DEVICES += timecloud
define Device/witi
DTS := WITI
IMAGE_SIZE := $(ralink_default_fw_size_16M)
DEVICE_TITLE := MQmaker WiTi
DEVICE_PACKAGES := kmod-usb3 kmod-usb-ledtrig-usbport kmod-ata-core kmod-ata-ahci \
kmod-i2c-mt7621
endef
TARGET_DEVICES += witi
define Device/wndr3700v5
DTS := WNDR3700V5
IMAGE_SIZE := $(ralink_default_fw_size_16M)
DEVICE_TITLE := Netgear WNDR3700v5
DEVICE_PACKAGES := kmod-usb3
endef
TARGET_DEVICES += wndr3700v5
define Device/zbt-wg2626
DTS := ZBT-WG2626
IMAGE_SIZE := $(ralink_default_fw_size_16M)
DEVICE_TITLE := ZBT WG2626
DEVICE_PACKAGES := kmod-usb3 kmod-usb-ledtrig-usbport kmod-ata-core kmod-ata-ahci
endef
TARGET_DEVICES += zbt-wg2626
define Device/zbt-wg3526
DTS := ZBT-WG3526
IMAGE_SIZE := $(ralink_default_fw_size_16M)
DEVICE_TITLE := ZBT WG3526
DEVICE_PACKAGES := kmod-usb3 kmod-usb-ledtrig-usbport kmod-ata-core kmod-ata-ahci
endef
TARGET_DEVICES += zbt-wg3526
define Device/wf-2881
DTS := WF-2881
BLOCKSIZE := 128k
PAGESIZE := 2048
FILESYSTEMS := squashfs
IMAGE_SIZE := 129280k
KERNEL := $(KERNEL_DTB) | pad-offset $$(BLOCKSIZE) 64 | uImage lzma
UBINIZE_OPTS := -E 5
IMAGE/sysupgrade.bin := append-kernel | append-ubi | check-size $$$$(IMAGE_SIZE)
DEVICE_TITLE := NETIS WF-2881
DEVICE_PACKAGES := kmod-usb3 kmod-usb-ledtrig-usbport
endef
TARGET_DEVICES += wf-2881
define Device/ubnt-erx
DTS := UBNT-ERX
FILESYSTEMS := squashfs
KERNEL_SIZE := 3145728
KERNEL := $(KERNEL_DTB) | uImage lzma
IMAGES := sysupgrade.tar
KERNEL_INITRAMFS := $$(KERNEL) | ubnt-erx-factory-image $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.tar
IMAGE/sysupgrade.tar := sysupgrade-tar
DEVICE_TITLE := Ubiquiti EdgeRouter X
DEVICE_PACKAGES := -kmod-mt76 -kmod-rt2x00-lib -kmod-mac80211 -kmod-cfg80211 -wpad-mini -iwinfo
endef
TARGET_DEVICES += ubnt-erx
define Device/sk-wb8
DTS := SK-WB8
IMAGE_SIZE := $(ralink_default_fw_size_16M)
DEVICE_TITLE := SamKnows Whitebox 8
DEVICE_PACKAGES := kmod-usb3 kmod-usb-ledtrig-usbport uboot-envtools
endef
TARGET_DEVICES += sk-wb8
define Device/vr500
DTS := VR500
IMAGE_SIZE := 66453504
DEVICE_TITLE := Planex VR500
DEVICE_PACKAGES := kmod-usb3
endef
TARGET_DEVICES += vr500
define Device/rb750gr3
DTS := RB750Gr3
IMAGE_SIZE := $(ralink_default_fw_size_16M)
DEVICE_TITLE := MikroTik RB750Gr3
DEVICE_PACKAGES := kmod-usb3 kmod-ledtrig-usbdev uboot-envtools -kmod-mt76 -kmod-rt2x00-lib -kmod-mac80211 -kmod-cfg80211 -wpad-mini -iwinfo
endef
TARGET_DEVICES += rb750gr3
# FIXME: is this still needed?
define Image/Prepare
#define Build/Compile
rm -rf $(KDIR)/relocate
$(CP) ../../generic/image/relocate $(KDIR)
$(MAKE) -C $(KDIR)/relocate KERNEL_ADDR=$(KERNEL_LOADADDR) CROSS_COMPILE=$(TARGET_CROSS)
$(CP) $(KDIR)/relocate/loader.bin $(KDIR)/loader.bin
endef