aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target/linux/ramips/dts/mt7620a_tplink_re200-v1.dts158
-rw-r--r--target/linux/ramips/image/mt7620.mk36
-rwxr-xr-xtarget/linux/ramips/mt7620/base-files/etc/board.d/01_leds3
-rwxr-xr-xtarget/linux/ramips/mt7620/base-files/etc/board.d/02_network1
-rw-r--r--tools/firmware-utils/src/mktplinkfw.c6
5 files changed, 204 insertions, 0 deletions
diff --git a/target/linux/ramips/dts/mt7620a_tplink_re200-v1.dts b/target/linux/ramips/dts/mt7620a_tplink_re200-v1.dts
new file mode 100644
index 0000000000..39fdc0af53
--- /dev/null
+++ b/target/linux/ramips/dts/mt7620a_tplink_re200-v1.dts
@@ -0,0 +1,158 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "mt7620a.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "tplink,re200-v1", "ralink,mt7620a-soc";
+ model = "TP-Link RE200 v1";
+
+ aliases {
+ led-boot = &led_power;
+ led-failsafe = &led_power;
+ led-running = &led_power;
+ led-upgrade = &led_power;
+ label-mac-device = &ethernet;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600n8";
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_power: power {
+ label = "re200-v1:green:power";
+ gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
+ };
+
+ lan {
+ label = "re200-v1:green:lan";
+ gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan {
+ label = "re200-v1:green:wlan";
+ gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
+ };
+
+ qss {
+ label = "re200-v1:green:qss";
+ gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan2g_red {
+ label = "re200-v1:red:wlan2g";
+ gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan2g_green {
+ label = "re200-v1:green:wlan2g";
+ gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy1radio";
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+};
+
+
+&state_default {
+ gpio {
+ ralink,group = "i2c", "uartf", "ephy", "wled", "rgmii1", "spi refclk";
+ ralink,function = "gpio";
+ };
+};
+
+&spi0 {
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <50000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ uboot: partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ compatible = "tplink,firmware";
+ label = "firmware";
+ reg = <0x20000 0x7c0000>;
+ };
+
+ partition@7e0000 {
+ label = "userconfig";
+ reg = <0x7e0000 0x10000>;
+ read-only;
+ };
+
+ radio: partition@7f0000 {
+ label = "radio";
+ reg = <0x7f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&gpio1 {
+ status = "okay";
+};
+
+&gpio2 {
+ status = "okay";
+};
+
+&gpio3 {
+ status = "okay";
+};
+
+&ethernet {
+ mtd-mac-address = <&uboot 0x1fc00>;
+};
+
+&wmac {
+ ralink,mtd-eeprom = <&radio 0x0>;
+ mtd-mac-address = <&uboot 0x1fc00>;
+};
+
+&pcie {
+ status = "okay";
+};
+
+&pcie0 {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ mediatek,mtd-eeprom = <&radio 0x8000>;
+ mtd-mac-address = <&uboot 0x1fc00>;
+ mtd-mac-address-increment = <2>;
+ ieee80211-freq-limit = <5000000 6000000>;
+ };
+};
diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk
index 291495ec0d..cbf35f804a 100644
--- a/target/linux/ramips/image/mt7620.mk
+++ b/target/linux/ramips/image/mt7620.mk
@@ -16,6 +16,23 @@ define Build/elecom-header
--owner=0 --group=0 -f $@ -C $(KDIR) v_0.0.0.bin v_0.0.0.md5
endef
+# combine kernel and rootfs into one image
+# mktplinkfw <type> <optional extra arguments to mktplinkfw binary>
+# <type> is "sysupgrade" or "factory"
+#
+# -a align the rootfs start on an <align> bytes boundary
+# -j add jffs2 end-of-filesystem markers
+# -s strip padding from end of the image
+# -X reserve <size> bytes in the firmware image (hexval prefixed with 0x)
+define Build/mktplinkfw
+ -$(STAGING_DIR_HOST)/bin/mktplinkfw \
+ -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) \
+ -N OpenWrt -V $(REVISION) -m $(TPLINK_HEADER_VERSION) \
+ -k $(IMAGE_KERNEL) -r $(IMAGE_ROOTFS) -o $@.new -j -X 0x40000 -a 0x4 \
+ $(wordlist 2,$(words $(1)),$(1)) \
+ $(if $(findstring sysupgrade,$(word 1,$(1))),-s) && mv $@.new $@ || rm -f $@
+endef
+
define Device/aigale_ai-br100
SOC := mt7620a
IMAGE_SIZE := 7936k
@@ -938,6 +955,25 @@ define Device/tplink_archer-mr200
endef
TARGET_DEVICES += tplink_archer-mr200
+define Device/tplink_re200-v1
+ SOC := mt7620a
+ DEVICE_VENDOR := TP-Link
+ DEVICE_MODEL := RE200
+ DEVICE_VARIANT := v1
+ DEVICE_PACKAGES := kmod-mt76x0e
+ IMAGES += factory.bin
+ IMAGE/sysupgrade.bin := mktplinkfw sysupgrade -e -O
+ IMAGE/factory.bin := mktplinkfw factory -e -O
+ IMAGE_SIZE := 7936k
+ KERNEL := $(KERNEL_DTB)
+ KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-v1-header -e -O
+ TPLINK_HWID := 0x02000001
+ TPLINK_HWREV := 0x1
+ TPLINK_HEADER_VERSION := 1
+ TPLINK_FLASHLAYOUT := 8Mmtk
+endef
+TARGET_DEVICES += tplink_re200-v1
+
define Device/vonets_var11n-300
SOC := mt7620n
IMAGE_SIZE := 3776k
diff --git a/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds b/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds
index d88fdfb043..77a98fa095 100755
--- a/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds
@@ -198,6 +198,9 @@ tplink,archer-mr200)
ucidef_set_led_netdev "wan" "wan" "$boardname:white:wan" "usb0"
set_wifi_led "$boardname:white:wlan"
;;
+tplink,re200-v1)
+ ucidef_set_led_netdev "lan" "lan" "$boardname:green:lan" "eth0"
+ ;;
youku,yk1)
set_wifi_led "$boardname:blue:air"
ucidef_set_led_switch "wan" "wan" "$boardname:blue:wan" "switch0" "0x10"
diff --git a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network
index 852336f811..7397ddcc2c 100755
--- a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network
@@ -50,6 +50,7 @@ ramips_setup_interfaces()
planex,mzk-ex300np|\
planex,mzk-ex750np|\
ravpower,wd03|\
+ tplink,re200-v1|\
sercomm,na930)
ucidef_set_interface_lan "eth0"
;;
diff --git a/tools/firmware-utils/src/mktplinkfw.c b/tools/firmware-utils/src/mktplinkfw.c
index ce2acc20c9..ed785b48e5 100644
--- a/tools/firmware-utils/src/mktplinkfw.c
+++ b/tools/firmware-utils/src/mktplinkfw.c
@@ -145,6 +145,12 @@ static struct flash_layout layouts[] = {
.kernel_ep = 0x80060000,
.rootfs_ofs = 0x100000,
}, {
+ .id = "8Mmtk",
+ .fw_max_len = 0x7c0000,
+ .kernel_la = 0x80000000,
+ .kernel_ep = 0x8000c310,
+ .rootfs_ofs = 0x100000,
+ }, {
.id = "16M",
.fw_max_len = 0xf80000,
.kernel_la = 0x80060000,