From 71ae0792bad1b0eeb476513e15b326409f15ccb0 Mon Sep 17 00:00:00 2001 From: Lucian Cristian Date: Sat, 16 Jun 2018 13:37:55 +0300 Subject: [PATCH] ath79: add tl-wr1043nd-v4 support everything is working tplink-safeloader: resize kernel partition kernel 4.14 is much bigger, resize the partition Signed-off-by: Lucian Cristian --- .../ath79/base-files/etc/board.d/01_leds | 7 + .../ath79/base-files/etc/board.d/02_network | 4 + .../linux/ath79/dts/qca9563_tl-wr1043n.dtsi | 223 ++++++++++++++++++ .../ath79/dts/qca9563_tl-wr1043nd-v4.dts | 12 + target/linux/ath79/image/generic-tp-link.mk | 36 ++- tools/firmware-utils/src/tplink-safeloader.c | 4 +- 6 files changed, 273 insertions(+), 13 deletions(-) create mode 100644 target/linux/ath79/dts/qca9563_tl-wr1043n.dtsi create mode 100644 target/linux/ath79/dts/qca9563_tl-wr1043nd-v4.dts diff --git a/target/linux/ath79/base-files/etc/board.d/01_leds b/target/linux/ath79/base-files/etc/board.d/01_leds index d1906f9231c..92b7e7da3ea 100755 --- a/target/linux/ath79/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/base-files/etc/board.d/01_leds @@ -25,6 +25,13 @@ case "$board" in "tplink,tl-mr3020-v1") ucidef_set_led_switch "lan" "LAN" "tp-link:green:lan" "switch0" "0x02" ;; +"tplink,tl-wr1043nd-v4") + ucidef_set_led_switch "wan" "WAN" "tp-link:green:wan" "switch0" "0x20" + ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x10" + ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08" + ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x04" + ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02" + ;; "tplink,tl-wr740n-v2") ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth0" ucidef_set_led_switch "lan1" "LAN1" "$boardname:green:lan1" "switch0" "0x02" diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network index 6a344b7467e..88cdd4f1f23 100755 --- a/target/linux/ath79/base-files/etc/board.d/02_network +++ b/target/linux/ath79/base-files/etc/board.d/02_network @@ -48,6 +48,10 @@ ath79_setup_interfaces() ucidef_add_switch "switch0" \ "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0" ;; + "tplink,tl-wr1043nd-v4") + ucidef_add_switch "switch0" \ + "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" + ;; "netgear,wndr3800") ucidef_set_interfaces_lan_wan "eth0" "eth1" ucidef_add_switch "switch0" \ diff --git a/target/linux/ath79/dts/qca9563_tl-wr1043n.dtsi b/target/linux/ath79/dts/qca9563_tl-wr1043n.dtsi new file mode 100644 index 00000000000..136a6f8a76c --- /dev/null +++ b/target/linux/ath79/dts/qca9563_tl-wr1043n.dtsi @@ -0,0 +1,223 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include +#include + +#include "qca956x.dtsi" + +/ { + memory@0 { + device_type = "memory"; + reg = <0x0 0x4000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; + + aliases { + led-status = &system; + }; + + leds { + compatible = "gpio-leds"; + + system: system { + label = "tp-link:green:system"; + gpios = <&gpio 6 GPIO_ACTIVE_LOW>; + linux,default-trigger = "heartbeat"; + }; + + usb { + label = "tp-link:green:usb"; + gpios = <&gpio 7 GPIO_ACTIVE_LOW>; + default-state = "off"; + trigger-sources = <&hub_port0>; + linux,default-trigger = "usbport"; + }; + + wifi_green { + label = "tp-link:green:wlan"; + gpios = <&gpio 19 GPIO_ACTIVE_LOW>; + default-state = "off"; + linux,default-trigger = "phy0tpt"; + }; + + wifi_wps { + label = "tp-link:green:wps"; + gpios = <&gpio 1 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + + wan { + label = "tp-link:green:wan"; + gpios = <&gpio 15 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + + lan1 { + label = "tp-link:green:lan1"; + gpios = <&gpio 9 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + + lan2 { + label = "tp-link:green:lan2"; + gpios = <&gpio 14 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + + lan3 { + label = "tp-link:green:lan3"; + gpios = <&gpio 21 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + + lan4 { + label = "tp-link:green:lan4"; + gpios = <&gpio 20 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + }; + + keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + + reset { + label = "Reset button"; + linux,code = ; + gpios = <&gpio 2 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + + wifi { + label = "RFKILL button"; + linux,code = ; + gpios = <&gpio 5 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + gpio-export { + compatible = "gpio-export"; + #size-cells = <0>; + + gpio_usb_power { + gpio-export,name = "tp-link:power:usb"; + gpio-export,output = <1>; + gpios = <&gpio 8 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&uart { + status = "okay"; +}; + +&gpio { + status = "okay"; +}; + +&usb_phy0 { + status = "okay"; +}; + +&usb0 { + status = "okay"; + + hub_port0: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; +}; + +&spi { + status = "okay"; + num-cs = <1>; + + flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <25000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x000000 0x020000>; + read-only; + }; + + partition@20000 { + label = "firmware"; + reg = <0x020000 0xf30000>; + }; + + info: partition@f50000 { + label = "product-info"; + reg = <0xf50000 0x020000>; + read-only; + }; + + partition@f70000 { + label = "config"; + reg = <0xf70000 0x050000>; + read-only; + }; + + partition@fc0000 { + label = "partition-table"; + reg = <0xfc0000 0x010000>; + read-only; + }; + + partition@fd0000 { + label = "logs"; + reg = <0xfd0000 0x020000>; + read-only; + }; + + art: partition@ff0000 { + label = "ART"; + reg = <0xff0000 0x010000>; + read-only; + }; + }; + }; +}; + +&mdio0 { + status = "okay"; + + phy-mask = <0>; + phy0: ethernet-phy@0 { + reg = <0>; + phy-mode = "sgmii"; + + qca,ar8327-initvals = < + 0x04 0x00080080 /* PORT0 PAD MODE CTRL */ + 0x7c 0x0000007e /* PORT0_STATUS */ + >; + }; +}; + +ð0 { + status = "okay"; + + mtd-mac-address = <&info 0x8>; + phy-handle = <&phy0>; +}; + +&wmac { + status = "okay"; + mtd-cal-data = <&art 0x1000>; + mtd-mac-address = <&info 0x8>; +}; diff --git a/target/linux/ath79/dts/qca9563_tl-wr1043nd-v4.dts b/target/linux/ath79/dts/qca9563_tl-wr1043nd-v4.dts new file mode 100644 index 00000000000..e187de7a236 --- /dev/null +++ b/target/linux/ath79/dts/qca9563_tl-wr1043nd-v4.dts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include +#include + +#include "qca9563_tl-wr1043n.dtsi" + +/ { + compatible = "tplink,tl-wr1043nd-v4", "qca,qca9563"; + model = "TP-Link TL-WR1043ND Version 4"; +}; diff --git a/target/linux/ath79/image/generic-tp-link.mk b/target/linux/ath79/image/generic-tp-link.mk index 0b4659abeab..c9469708181 100644 --- a/target/linux/ath79/image/generic-tp-link.mk +++ b/target/linux/ath79/image/generic-tp-link.mk @@ -1,16 +1,5 @@ include ./common-tp-link.mk - -define Device/tl-wr1043nd-v1 - $(Device/tplink-8m) - ATH_SOC := ar9132 - DEVICE_TITLE := TP-LINK TL-WR1043N/ND v1 - DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport - TPLINK_HWID := 0x10430001 - SUPPORTED_DEVICES := tplink,tl-wr1043nd-v1 tl-wr1043nd -endef -TARGET_DEVICES += tl-wr1043nd-v1 - define Device/tl-wdr3600 $(Device/tplink-8mlzma) ATH_SOC := ar9344 @@ -28,3 +17,28 @@ define Device/tl-wdr4300 SUPPORTED_DEVICES := tplink,tl-wdr4300 tl-wdr4300 endef TARGET_DEVICES += tl-wdr4300 + +define Device/tl-wr1043nd-v1 + $(Device/tplink-8m) + ATH_SOC := ar9132 + DEVICE_TITLE := TP-LINK TL-WR1043N/ND v1 + DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport + TPLINK_HWID := 0x10430001 + SUPPORTED_DEVICES := tplink,tl-wr1043nd-v1 tl-wr1043nd +endef +TARGET_DEVICES += tl-wr1043nd-v1 + +define Device/tl-wr1043nd-v4 + $(Device/tplink) + ATH_SOC := qca9563 + IMAGE_SIZE := 15552k + DEVICE_TITLE := TP-LINK TL-WR1043N/ND v4 + DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport + TPLINK_HWID := 0x10430004 + TPLINK_BOARD_ID := TLWR1043NDV4 + KERNEL := kernel-bin | append-dtb | lzma | tplink-v1-header + IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade + IMAGE/factory.bin := append-rootfs | tplink-safeloader factory + SUPPORTED_DEVICES := tplink,tl-wr1043nd-v4 tl-wr1043nd-v4 +endef +TARGET_DEVICES += tl-wr1043nd-v4 diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c index 22bbc17d07b..27c5aa84979 100644 --- a/tools/firmware-utils/src/tplink-safeloader.c +++ b/tools/firmware-utils/src/tplink-safeloader.c @@ -779,8 +779,8 @@ static struct device_info boards[] = { */ .partitions = { {"fs-uboot", 0x00000, 0x20000}, - {"os-image", 0x20000, 0x180000}, - {"file-system", 0x1a0000, 0xdb0000}, + {"os-image", 0x20000, 0x200000}, + {"file-system", 0x220000, 0xd30000}, {"default-mac", 0xf50000, 0x00200}, {"pin", 0xf50200, 0x00200}, {"product-info", 0xf50400, 0x0fc00}, -- 2.30.2