Hi there,
A few months ago, I added a new device from TP-Link, and it would be nice if OpenWrt officially supported it. Therefore, I will post updates here on adding support for it.
Info & photos https://wikidevi.wi-cat.ru/TP-LINK_TL-WR850N_v2
This router is very similar to TP-Link TL-WR840 v4 and TP-Link TL-WR841 v13
tl-wr850n-v2.patch for current master:
--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
@@ -81,7 +81,8 @@
ucidef_set_led_switch "lan" "lan" "$boardname:green:lan" "switch0" "0x1e"
ucidef_set_led_switch "wan" "wan" "$boardname:green:wan" "switch0" "0x01"
;;
-tplink,tl-wr840n-v4)
+tplink,tl-wr840n-v4|\
+tplink,tl-wr850n-v2)
ucidef_set_led_wlan "wlan2g" "wlan2g" "$boardname:green:wlan" "phy0tpt"
ucidef_set_led_switch "lan" "lan" "$boardname:green:lan" "switch0" "0x1e"
ucidef_set_led_switch "wan" "wan" "$boardname:green:wan" "switch0" "0x01"
--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
@@ -72,6 +72,7 @@
tplink,tl-wr841n-v13|\
tplink,tl-wr841n-v14|\
tplink,tl-wr842n-v5|\
+ tplink,tl-wr850n-v2|\
unielec,u7628-01-16m|\
wrtnode,wrtnode2p|\
wrtnode,wrtnode2r|\
@@ -195,7 +196,8 @@
tplink,tl-wr840n-v5|\
tplink,tl-wr841n-v13|\
tplink,tl-wr841n-v14|\
- tplink,tl-wr842n-v5)
+ tplink,tl-wr842n-v5|\
+ tplink,tl-wr850n-v2)
wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0xf100)" 1)
;;
tplink,archer-c20-v5|\
--- a/target/linux/ramips/dts/mt7628an_tplink_tl-wr850n-v2.dts
+++ b/target/linux/ramips/dts/mt7628an_tplink_tl-wr850n-v2.dts
@@ -0,0 +1,65 @@
+/dts-v1/;
+
+#include "mt7628an_tplink_8m.dtsi"
+
+/ {
+ compatible = "tplink,tl-wr850n-v2", "mediatek,mt7628an-soc";
+ model = "TP-Link TL-WR850N v2";
+
+ aliases {
+ led-boot = &led_power;
+ led-failsafe = &led_power;
+ led-running = &led_power;
+ led-upgrade = &led_power;
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ lan {
+ label = "tl-wr850n-v2:green:lan";
+ gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
+ };
+
+ led_power: power {
+ label = "tl-wr850n-v2:green:power";
+ gpios = <&gpio 36 GPIO_ACTIVE_LOW>;
+ };
+
+ wan {
+ label = "tl-wr850n-v2:green:wan";
+ gpios = <&gpio 43 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan {
+ label = "tl-wr850n-v2:green:wlan";
+ gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+ };
+
+ wps {
+ label = "tl-wr850n-v2:green:wps";
+ gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&state_default {
+ gpio {
+ groups = "p0led_an", "p2led_an", "perst", "refclk", "wdt", "wled_an";
+ function = "gpio";
+ };
+};
+
+&esw {
+ mediatek,portmap = <0x3e>;
+};
--- a/target/linux/ramips/image/mt76x8.mk
+++ b/target/linux/ramips/image/mt76x8.mk
@@ -474,6 +474,20 @@
endef
TARGET_DEVICES += tplink_tl-wr842n-v5
+define Device/tplink_tl-wr850n-v2
+ $(Device/tplink-v2)
+ IMAGE_SIZE := 7808k
+ DEVICE_MODEL := TL-WR850N
+ DEVICE_VARIANT := v2
+ TPLINK_FLASHLAYOUT := 8Mmtk
+ TPLINK_HWID := 0x08500002
+ TPLINK_HWREVADD := 0x2
+ IMAGES := sysupgrade.bin tftp-recovery.bin
+ IMAGE/tftp-recovery.bin := pad-extra 128k | $$(IMAGE/factory.bin)
+ SUPPORTED_DEVICES += tl-wr850n-v2
+endef
+TARGET_DEVICES += tplink_tl-wr850n-v2
+
define Device/tplink_tl-wr902ac-v3
$(Device/tplink-v2)
IMAGE_SIZE := 7808k
Serial uart 115200n8
tftp server 192.168.0.66/255.255.255.0
openwrt-ramips-mt76x8-tplink_tl-wr850n-v2-squashfs-tftp-recovery.bin rename to tp_recovery.bin
press RESET button & power on
change computer ip to dhcp client
[04040D08][04040C0E]
DDR Calibration DQS reg = 0000898A
U-Boot 1.1.3 (Apr 15 2019 - 17:56:43)
Board: Ralink APSoC DRAM: 64 MB
relocate_code Pointer at: 83fb8000
gpiomode2 05540554.
gpiomode2 00000000.
gpiomode2 05550555.
flash manufacture id: c8, device id 40 17
find flash: GD25Q64B
============================================
Ralink UBoot Version: 4.3.0.0
--------------------------------------------
ASIC 7628_MP (Port5<->None)
DRAM component: 512 Mbits DDR, width 16
DRAM bus: 16 bit
Total memory: 64 MBytes
Flash component: SPI Flash
Date:Apr 15 2019 Time:17:56:43
============================================
icache: sets:512, ways:4, linesz:32 ,total:65536
dcache: sets:256, ways:4, linesz:32 ,total:32768
##### The CPU freq = 580 MHZ ####
estimate memory size =64 Mbytes
RESET MT7628 PHY!!!!!!..................................................
starting recovery...
TODO, Read MAC Address from Flash
netboot_common, argc= 3
NetTxPacket = 0x83FE7840
KSEG1ADDR(NetTxPacket) = 0xA3FE7840
NetLoop,call eth_halt !
NetLoop,call eth_init !
Trying Eth0 (10/100-M)
Waitting for RX_DMA_BUSY status Start... done
ETH_STATE_ACTIVE!!
TFTP from server 192.168.0.66; our IP address is 192.168.0.2
Filename 'tp_recovery.bin'.
TIMEOUT_COUNT=10,Load address: 0x80060000
Loading: checksum bad
checksum bad
Got ARP REPLY, set server/gtwy eth addr (00:1d:60:b9:50:f4)
Got it
#################checksum bad
########checksum bad
########################################
#################################################################
#################################################################
######################################checksum bad
###########################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################checksum bad
#############checksum bad
###################
#################################################################
#################################################################
#################################################################
#######checksum bad
##########################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
############################
done
Bytes transferred = 8126464 (7c0000 hex)
NetBootFileXferSize= 007c0000
Erase flash !!
From 0x20000 length 0x7A0000
..........................................................................................................................
Copy 0x80080000 to 0x00020000, count 0x7A0000....
..........................................................................................................................
[04040D07][04040C0D]
DDR Calibration DQS reg = 00008889
U-Boot 1.1.3 (Apr 15 2019 - 17:56:43)
Board: Ralink APSoC DRAM: 64 MB
relocate_code Pointer at: 83fb8000
******************************
Software System Reset Occurred
******************************
gpiomode2 05540554.
gpiomode2 00000000.
gpiomode2 05550555.
flash manufacture id: c8, device id 40 17
find flash: GD25Q64B
============================================
Ralink UBoot Version: 4.3.0.0
--------------------------------------------
ASIC 7628_MP (Port5<->None)
DRAM component: 512 Mbits DDR, width 16
DRAM bus: 16 bit
Total memory: 64 MBytes
Flash component: SPI Flash
Date:Apr 15 2019 Time:17:56:43
============================================
icache: sets:512, ways:4, linesz:32 ,total:65536
dcache: sets:256, ways:4, linesz:32 ,total:32768
##### The CPU freq = 580 MHZ ####
estimate memory size =64 Mbytes
RESET MT7628 PHY!!!!!!
continue to starting system. 0
disable switch phyport...
3: System Boot system code via Flash.(0xbc020000)
do_bootm:argc=2, addr=0xbc020000
## Booting image at bc020000 ...
Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80000000) ...
## Giving linux memsize in MB, 64
Starting kernel ...
[ 0.000000] Linux version 5.4.45 (inflabz@PC) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r12974-75f19deb3a)) #0 Sun Jun 14 22:04:35 2020
[ 0.000000] Board has DDR2
[ 0.000000] Analog PMU set to hw control
[ 0.000000] Digital PMU set to hw control
[ 0.000000] SoC Type: MediaTek MT7628AN ver:1 eco:2
[ 0.000000] printk: bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 00019655 (MIPS 24KEc)
[ 0.000000] MIPS: machine is TP-Link TL-WR850N v2
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000000000000-0x0000000003ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x0000000003ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff]
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 16240
[ 0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[ 0.000000] Writing ErrCtl register=00030f40
[ 0.000000] Readback ErrCtl register=00030f40
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 57644K/65536K available (4543K kernel code, 193K rwdata, 1024K rodata, 1208K init, 197K bss, 7892K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS: 256
[ 0.000000] intc: using register map from devicetree
[ 0.000000] random: get_random_bytes called from start_kernel+0x32c/0x518 with crng_init=0
[ 0.000000] CPU Clock: 580MHz
[ 0.000000] timer_probe: no matching timers found
[ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6590553264 ns
[ 0.000009] sched_clock: 32 bits at 290MHz, resolution 3ns, wraps every 7405115902ns
[ 0.007541] Calibrating delay loop... 385.02 BogoMIPS (lpj=770048)
[ 0.045450] pid_max: default: 32768 minimum: 301
[ 0.050102] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.057124] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.070670] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.080097] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[ 0.086776] pinctrl core: initialized pinctrl subsystem
[ 0.092995] NET: Registered protocol family 16
[ 0.132362] clocksource: Switched to clocksource MIPS
[ 0.138646] NET: Registered protocol family 2
[ 0.143791] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[ 0.151909] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.159281] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.166078] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.172400] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 0.178693] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 0.185739] NET: Registered protocol family 1
[ 0.189965] PCI: CLS 0 bytes, default 32
[ 0.198282] workingset: timestamp_bits=14 max_order=14 bucket_order=0
[ 0.213287] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.218920] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.245140] mt7621_gpio 10000600.gpio: registering 32 gpios
[ 0.250837] mt7621_gpio 10000600.gpio: registering 32 gpios
[ 0.256541] mt7621_gpio 10000600.gpio: registering 32 gpios
[ 0.262216] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
[ 0.269585] printk: console [ttyS0] disabled
[ 0.273780] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 28, base_baud = 2500000) is a 16550A
[ 0.282508] printk: console [ttyS0] enabled
[ 0.282508] printk: console [ttyS0] enabled
[ 0.290915] printk: bootconsole [early0] disabled
[ 0.290915] printk: bootconsole [early0] disabled
[ 0.301737] spi-mt7621 10000b00.spi: sys_freq: 193333333
[ 0.316562] spi-nor spi0.0: gd25q64 (8192 Kbytes)
[ 0.321421] 4 fixed-partitions partitions found on MTD device spi0.0
[ 0.327876] Creating 4 MTD partitions on "spi0.0":
[ 0.332759] 0x000000000000-0x000000020000 : "boot"
[ 0.338689] 0x000000020000-0x0000007c0000 : "firmware"
[ 0.347260] 2 tplink-fw partitions found on MTD device firmware
[ 0.353354] Creating 2 MTD partitions on "firmware":
[ 0.358417] 0x000000000000-0x0000001d619a : "kernel"
[ 0.364596] 0x0000001d619c-0x0000007a0000 : "rootfs"
[ 0.370588] mtd: device 3 (rootfs) set to be root filesystem
[ 0.378117] 1 squashfs-split partitions found on MTD device rootfs
[ 0.384485] 0x000000450000-0x0000007a0000 : "rootfs_data"
[ 0.391021] 0x0000007c0000-0x0000007d0000 : "config"
[ 0.397177] 0x0000007d0000-0x000000800000 : "factory"
[ 0.404165] libphy: Fixed MDIO Bus: probed
[ 0.420968] rt3050-esw 10110000.esw: link changed 0x00
[ 0.427471] mtk_soc_eth 10100000.ethernet: generated random MAC address ee:40:85:41:16:31
[ 0.436620] mtk_soc_eth 10100000.ethernet eth0: mediatek frame engine at 0xb0100000, irq 5
[ 0.446930] NET: Registered protocol family 10
[ 0.455965] Segment Routing with IPv6
[ 0.459917] NET: Registered protocol family 17
[ 0.464529] 8021q: 802.1Q VLAN Support v1.8
[ 0.480046] VFS: Mounted root (squashfs filesystem) readonly on device 31:3.
[ 0.494078] Freeing unused kernel memory: 1208K
[ 0.498702] This architecture does not have kernel memory protection.
[ 0.505238] Run /sbin/init as init process
[ 1.108367] random: fast init done
[ 1.539681] init: Console is alive
[ 1.543511] init: - watchdog -
[ 2.688139] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[ 2.871407] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[ 2.889342] init: - preinit -
[ 4.292708] random: jshn: uninitialized urandom read (4 bytes read)
[ 4.382749] random: jshn: uninitialized urandom read (4 bytes read)
[ 4.653889] random: jshn: uninitialized urandom read (4 bytes read)
[ 5.279838] rt3050-esw 10110000.esw: link changed 0x00
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[ 5.506119] urandom_read: 2 callbacks suppressed
[ 5.506129] random: procd: uninitialized urandom read (4 bytes read)
[ 8.872384] rt3050-esw 10110000.esw: link changed 0x04
[ 9.722913] mount_root: jffs2 not ready yet, using temporary tmpfs overlay
[ 9.756099] urandom-seed: Seed file not found (/etc/urandom.seed)
[ 9.880500] procd: - early -
[ 9.883554] procd: - watchdog -
[ 10.532509] procd: - watchdog -
[ 10.536034] procd: - ubus -
[ 10.704143] random: ubusd: uninitialized urandom read (4 bytes read)
[ 10.733072] random: ubusd: uninitialized urandom read (4 bytes read)
[ 10.740165] random: ubusd: uninitialized urandom read (4 bytes read)
[ 10.751083] procd: - init -
Please press Enter to activate this console.
[ 11.584016] kmodloader: loading kernel modules from /etc/modules.d/*
[ 11.635216] Loading modules backported from Linux version v5.7-rc3-0-g6a8b55ed4056
[ 11.642980] Backport generated by backports.git v5.7-rc3-1-0-gc0c7d2bb
[ 11.714973] xt_time: kernel timezone is -0000
[ 11.839820] mt76_wmac 10300000.wmac: ASIC revision: 76280001
[ 12.052022] urngd: v1.0.2 started.
[ 12.252793] random: crng init done
[ 12.256247] random: 1 urandom warning(s) missed due to ratelimiting
[ 12.886582] mt76_wmac 10300000.wmac: Firmware Version: 20151201
[ 12.892676] mt76_wmac 10300000.wmac: Build Time: 20151201183641
[ 12.912372] mt76_wmac 10300000.wmac: firmware init done
[ 13.199473] PPP generic driver version 2.4.2
[ 13.213442] NET: Registered protocol family 24
[ 13.252910] kmodloader: done loading kernel modules from /etc/modules.d/*
[ 39.302297] rt3050-esw 10110000.esw: link changed 0x00
[ 42.871301] rt3050-esw 10110000.esw: link changed 0x04
[ 45.137595] jffs2_scan_eraseblock(): End of filesystem marker found at 0x0
[ 45.156469] jffs2_build_filesystem(): unlocking the mtd device...
[ 45.156539] done.
[ 45.164797] jffs2_build_filesystem(): erasing all blocks after the end marker...
[ 46.109057] br-lan: port 1(eth0.1) entered blocking state
[ 46.122204] br-lan: port 1(eth0.1) entered disabled state
[ 46.128146] device eth0.1 entered promiscuous mode
[ 46.133070] device eth0 entered promiscuous mode
[ 46.215460] br-lan: port 1(eth0.1) entered blocking state
[ 46.221021] br-lan: port 1(eth0.1) entered forwarding state
[ 47.144552] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[ 53.115395] done.
[ 53.117426] jffs2: notice: (1335) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[ 53.347125] overlayfs: upper fs does not support tmpfile.