diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network index 1c8505e8c7..62b41233c4 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -171,6 +171,7 @@ ramips_setup_interfaces() rb750gr3|\ rt-n14u|\ tl-wr840n-v4|\ + tl-wr840n-v5|\ tl-wr841n-v13|\ ubnt-erx|\ ubnt-erx-sfp|\ diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index 3b3c455ba5..dc89e456e6 100644 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -37,6 +37,7 @@ get_status_led() { pwh2004|\ r6220|\ tl-wr840n-v4|\ + tl-wr840n-v5|\ tl-wr841n-v13|\ vr500|\ wnce2001|\ diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 07e776cb0c..43c0f56f49 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -502,6 +502,9 @@ ramips_board_detect() { *"TL-WR840N v4") name="tl-wr840n-v4" ;; + *"TL-WR840N v5") + name="tl-wr840n-v5" + ;; *"TL-WR841N v13") name="tl-wr841n-v13" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index 99ebe35b44..84ff11a63b 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -236,6 +236,7 @@ platform_check_image() { c50|\ mr200|\ tl-wr840n-v4|\ + tl-wr840n-v5|\ tl-wr841n-v13) [ "$magic" != "03000000" ] && { echo "Invalid image type." diff --git a/target/linux/ramips/dts/TL-WR840NV5.dts b/target/linux/ramips/dts/TL-WR840NV5.dts new file mode 100644 index 0000000000..340f2bbd83 --- /dev/null +++ b/target/linux/ramips/dts/TL-WR840NV5.dts @@ -0,0 +1,111 @@ +/dts-v1/; + +#include "mt7628an.dtsi" + +#include +#include + +/ { + compatible = "tplink,tl-wr840n-v5", "mediatek,mt7628an-soc"; + model = "TP-Link TL-WR840N v5"; + + chosen { + bootargs = "console=ttyS0,115200"; + }; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x4000000>; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + + reset { + label = "reset"; + gpios = <&gpio1 6 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + /* LED used is dual-color,dual lead LED */ + gpio-leds { + compatible = "gpio-leds"; + + power { + label = "tl-wr840n-v5:green:power"; + gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; + }; + + orange { + label = "tl-wr840n-v5:orange:power"; + gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&spi0 { + status = "okay"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <10000000>; + m25p,chunked-io = <32>; + + partition@0 { + label = "boot"; + reg = <0x0 0x20000>; + read-only; + }; + + partition@20000 { + label = "firmware"; + reg = <0x20000 0x3c0000>; + }; + + partition@3e0000 { + label = "config"; + reg = <0x3e0000 0x10000>; + read-only; + }; + + factory: partition@3f0000 { + label = "factory"; + reg = <0x3f0000 0x10000>; + read-only; + }; + }; +}; + +&ehci { + status = "disabled"; +}; + +&ohci { + status = "disabled"; +}; + +&wmac { + status = "okay"; + mtd-mac-address = <&factory 0xf100>; + mediatek,mtd-eeprom = <&factory 0x10000>; +}; + +ðernet { + mtd-mac-address = <&factory 0xf100>; + mediatek,portmap = "wllll"; +}; + +&pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "p0led_an", "p2led_an", "perst"; + ralink,function = "gpio"; + }; + }; +}; diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk index 56da7b1049..248f45eebd 100644 --- a/target/linux/ramips/image/mt76x8.mk +++ b/target/linux/ramips/image/mt76x8.mk @@ -99,6 +99,21 @@ define Device/tl-wr840n-v4 check-size $$$$(IMAGE_SIZE) endef +define Device/tl-wr840n-v5 + DTS := TL-WR840NV5 + IMAGE_SIZE := 3840k + DEVICE_TITLE := TP-Link TL-WR840N v5 + TPLINK_FLASHLAYOUT := 4Mmtk + TPLINK_HWID := 0x08400005 + TPLINK_HWREV := 0x1 + TPLINK_HWREVADD := 0x5 + TPLINK_HVERSION := 3 + KERNEL := $(KERNEL_DTB) + KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-v2-header -e + IMAGE/sysupgrade.bin := tplink-v2-image -s -e | append-metadata | \ + check-size $$$$(IMAGE_SIZE) +endef + define Device/tl-wr841n-v13 $(Device/tl-wr840n-v4) DTS := TL-WR841NV13 @@ -107,7 +122,7 @@ define Device/tl-wr841n-v13 TPLINK_HWREV := 0x268 TPLINK_HWREVADD := 0x13 endef -TARGET_DEVICES += tl-wr840n-v4 tl-wr841n-v13 +TARGET_DEVICES += tl-wr840n-v4 tl-wr840n-v5 tl-wr841n-v13 define Device/vocore2 DTS := VOCORE2 diff --git a/tools/firmware-utils/src/mktplinkfw2.c b/tools/firmware-utils/src/mktplinkfw2.c index b6caf8a0e5..3cb5ba0835 100644 --- a/tools/firmware-utils/src/mktplinkfw2.c +++ b/tools/firmware-utils/src/mktplinkfw2.c @@ -123,6 +123,12 @@ char md5salt_boot[MD5SUM_LEN] = { static struct flash_layout layouts[] = { { + .id = "4Mmtk", + .fw_max_len = 0x3c0000, + .kernel_la = 0x80000000, + .kernel_ep = 0x80000000, + .rootfs_ofs = 0x140000, + }, { .id = "8Mltq", .fw_max_len = 0x7a0000, .kernel_la = 0x80002000,