[openwrt/openwrt] ath79: add support for TP-Link TL-WPA8630P (EU) v2.1
LEDE Commits
lede-commits at lists.infradead.org
Sun Oct 4 09:44:13 EDT 2020
adrian pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/7422c7a6fa2eb5f02f9bd7fa9d63ebe8514f88ff
commit 7422c7a6fa2eb5f02f9bd7fa9d63ebe8514f88ff
Author: Joe Mullally <jwmullally at gmail.com>
AuthorDate: Sat Sep 12 19:46:28 2020 +0100
ath79: add support for TP-Link TL-WPA8630P (EU) v2.1
This adds support for the TP-Link TL-WPA8630P (EU) in its v2.1
version. The only unique aspect for the firmware compared to v2
layout is the partition layout.
Note that while the EU version has different partitioning for
v2.0 and v2.1, the v2.1 (AU) is supported by the v2-int image.
If you plan to use this device, make sure you have a look at
the Wiki page to check whether the device is supported and
which image needs to be taken.
Specifications
--------------
- QCA9563 750MHz, 2.4GHz WiFi
- QCA9888 5GHz WiFi
- 8MiB SPI Flash
- 128MiB RAM
- 3 GBit Ports (QCA8337)
- PLC (QCA7550)
Installation
------------
Installation is possible from the OEM web interface. Make sure to
install the latest OEM firmware first, so that the PLC firmware is
at the latest version. However, please also check the Wiki page
for hints according to altered partitioning between OEM firmware
revisions.
Notes
-----
The OEM firmware has 0x620000 to 0x680000 unassigned, so we leave
this empty as well. It is complicated enough already ...
Signed-off-by: Joe Mullally <jwmullally at gmail.com>
[improve partitions, use v2 DTSI, add entry in 02_network, rewrite
and extend commit message]
Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
---
.../ath79/dts/qca9563_tplink_tl-wpa8630p-v2-eu.dts | 6 ++++
.../dts/qca9563_tplink_tl-wpa8630p-v2-int.dts | 6 ++++
....dts => qca9563_tplink_tl-wpa8630p-v2.1-eu.dts} | 10 ++++---
.../ath79/dts/qca9563_tplink_tl-wpa8630p-v2.dtsi | 6 ----
.../ath79/generic/base-files/etc/board.d/01_leds | 3 +-
.../generic/base-files/etc/board.d/02_network | 3 +-
.../etc/hotplug.d/firmware/11-ath10k-caldata | 3 +-
target/linux/ath79/image/generic-tp-link.mk | 7 +++++
tools/firmware-utils/Makefile | 2 +-
tools/firmware-utils/src/tplink-safeloader.c | 35 ++++++++++++++++++++++
10 files changed, 67 insertions(+), 14 deletions(-)
diff --git a/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2-eu.dts b/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2-eu.dts
index 4c04d4f96e..48cc5ed32f 100644
--- a/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2-eu.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2-eu.dts
@@ -8,6 +8,12 @@
};
&partitions {
+ partition at 620000 {
+ label = "partition-table";
+ reg = <0x620000 0x010000>;
+ read-only;
+ };
+
info: partition at 630000 {
label = "info";
reg = <0x630000 0x010000>;
diff --git a/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2-int.dts b/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2-int.dts
index 22a8082011..50a88f344a 100644
--- a/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2-int.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2-int.dts
@@ -8,6 +8,12 @@
};
&partitions {
+ partition at 620000 {
+ label = "partition-table";
+ reg = <0x620000 0x010000>;
+ read-only;
+ };
+
partition at 630000 {
label = "tplink";
reg = <0x630000 0x1b0000>;
diff --git a/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2-int.dts b/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2.1-eu.dts
similarity index 62%
copy from target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2-int.dts
copy to target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2.1-eu.dts
index 22a8082011..e8d92419c6 100644
--- a/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2-int.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2.1-eu.dts
@@ -3,14 +3,16 @@
#include "qca9563_tplink_tl-wpa8630p-v2.dtsi"
/ {
- compatible = "tplink,tl-wpa8630p-v2-int", "qca,qca9563";
- model = "TP-Link WPA8630P v2 (Int.)";
+ compatible = "tplink,tl-wpa8630p-v2.1-eu", "qca,qca9563";
+ model = "TP-Link WPA8630P v2.1 (EU)";
};
&partitions {
- partition at 630000 {
+ /* 0x620000 to 0x680000 is empty in OEM partitioning */
+
+ partition at 680000 {
label = "tplink";
- reg = <0x630000 0x1b0000>;
+ reg = <0x680000 0x160000>;
read-only;
};
diff --git a/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2.dtsi b/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2.dtsi
index be691a843b..9e6d23de4e 100644
--- a/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2.dtsi
+++ b/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2.dtsi
@@ -26,12 +26,6 @@
label = "firmware";
reg = <0x040000 0x5e0000>;
};
-
- partition at 620000 {
- label = "partition-table";
- reg = <0x620000 0x010000>;
- read-only;
- };
};
ð0 {
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
index b759bfb5f6..c812f283af 100755
--- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
@@ -324,7 +324,8 @@ tplink,tl-mr6400-v1)
;;
tplink,tl-wpa8630-v1|\
tplink,tl-wpa8630p-v2-eu|\
-tplink,tl-wpa8630p-v2-int)
+tplink,tl-wpa8630p-v2-int|\
+tplink,tl-wpa8630p-v2.1-eu)
ucidef_set_led_switch "lan" "LAN" "green:lan" "switch0" "0x3c"
;;
tplink,tl-wr842n-v2)
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
index 5d23e0589e..58ff2aa6eb 100755
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -324,7 +324,8 @@ ath79_setup_interfaces()
;;
tplink,tl-wpa8630-v1|\
tplink,tl-wpa8630p-v2-eu|\
- tplink,tl-wpa8630p-v2-int)
+ tplink,tl-wpa8630p-v2-int|\
+ tplink,tl-wpa8630p-v2.1-eu)
# port 5 (internal) is the power-line port
ucidef_add_switch "switch0" \
"0 at eth0" "2:lan:3" "3:lan:2" "4:lan:1" "5:lan:4"
diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index 89a64fbf35..248b436c72 100644
--- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -198,7 +198,8 @@ case "$FIRMWARE" in
;;
tplink,eap225-wall-v2|\
tplink,tl-wpa8630p-v2-eu|\
- tplink,tl-wpa8630p-v2-int)
+ tplink,tl-wpa8630p-v2-int|\
+ tplink,tl-wpa8630p-v2.1-eu)
caldata_extract "art" 0x5000 0x2f20
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary info 0x8) +1)
ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
diff --git a/target/linux/ath79/image/generic-tp-link.mk b/target/linux/ath79/image/generic-tp-link.mk
index 22d1ac8a9e..a2fbf712db 100644
--- a/target/linux/ath79/image/generic-tp-link.mk
+++ b/target/linux/ath79/image/generic-tp-link.mk
@@ -564,6 +564,13 @@ define Device/tplink_tl-wpa8630p-v2-int
endef
TARGET_DEVICES += tplink_tl-wpa8630p-v2-int
+define Device/tplink_tl-wpa8630p-v2.1-eu
+ $(Device/tplink_tl-wpa8630p-v2)
+ DEVICE_VARIANT := v2.1 (EU)
+ TPLINK_BOARD_ID := TL-WPA8630P-V2.1-EU
+endef
+TARGET_DEVICES += tplink_tl-wpa8630p-v2.1-eu
+
define Device/tplink_tl-wr1043nd-v1
$(Device/tplink-8m)
SOC := ar9132
diff --git a/tools/firmware-utils/Makefile b/tools/firmware-utils/Makefile
index 39c3503886..7f1754a347 100644
--- a/tools/firmware-utils/Makefile
+++ b/tools/firmware-utils/Makefile
@@ -7,7 +7,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME := firmware-utils
-PKG_RELEASE := 3
+PKG_RELEASE := 4
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/kernel.mk
diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c
index 82166a9ebb..eececeaf61 100644
--- a/tools/firmware-utils/src/tplink-safeloader.c
+++ b/tools/firmware-utils/src/tplink-safeloader.c
@@ -1513,6 +1513,41 @@ static struct device_info boards[] = {
.last_sysupgrade_partition = "file-system"
},
+ /** Firmware layout for the TL-WPA8630P v2.1 (EU)*/
+ {
+ .id = "TL-WPA8630P-V2.1-EU",
+ .vendor = "",
+ .support_list =
+ "SupportList:\n"
+ "{product_name:TL-WPA8630P,product_ver:2.1.0,special_id:45550000}\n",
+ .support_trail = '\x00',
+ .soft_ver = NULL,
+
+ .partitions = {
+ {"factory-uboot", 0x00000, 0x20000},
+ {"fs-uboot", 0x20000, 0x20000},
+ {"firmware", 0x40000, 0x5e0000},
+ {"extra-para", 0x680000, 0x01000},
+ {"product-info", 0x690000, 0x01000},
+ {"partition-table", 0x6a0000, 0x02000},
+ {"soft-version", 0x6b0000, 0x01000},
+ {"support-list", 0x6b1000, 0x01000},
+ {"profile", 0x6b2000, 0x08000},
+ {"user-config", 0x6c0000, 0x10000},
+ {"default-config", 0x6d0000, 0x10000},
+ {"default-nvm", 0x6e0000, 0xc0000},
+ {"default-pib", 0x7a0000, 0x40000},
+ {"default-mac", 0x7e0000, 0x00020},
+ {"pin", 0x7e0100, 0x00020},
+ {"device-id", 0x7e0200, 0x00030},
+ {"radio", 0x7f0000, 0x10000},
+ {NULL, 0, 0}
+ },
+
+ .first_sysupgrade_partition = "os-image",
+ .last_sysupgrade_partition = "file-system"
+ },
+
/** Firmware layout for the TL-WR1043 v5 */
{
.id = "TLWR1043NV5",
More information about the lede-commits
mailing list