ath79: Move TPLink WPA8630Pv2 to ath79-tiny target
authorJoe Mullally <jwmullally@gmail.com>
Mon, 30 Aug 2021 21:35:05 +0000 (22:35 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 9 Apr 2022 17:31:46 +0000 (19:31 +0200)
These devices only have 6MiB available for firmware, which is not
enough for recent release images, so move these to the tiny target.

Note for users sysupgrading from the previous ath79-generic snapshot
images:

The tiny target kernel has a 4Kb flash erase block size instead
of the generic target's 64kb. This means the JFFS2 overlay partition
containing settings must be reformatted with the new block size or else
there will be data corruption.

To do this, backup your settings before upgrading, then during the
sysupgrade, de-select "Keep Settings". On the CLI, use "sysupgrade -n".

If you forget to do this and your system becomes unstable after
upgrading, you can do this to format the partition and recover:

* Reboot
* Press RESET when Power LED blinks during boot to enter Failsafe mode
* SSH to 192.168.1.1
* Run "firstboot" and reboot

Signed-off-by: Joe Mullally <jwmullally@gmail.com>
Tested-by: Robert Högberg <robert.hogberg@gmail.com>
target/linux/ath79/generic/base-files/etc/board.d/01_leds
target/linux/ath79/generic/base-files/etc/board.d/02_network
target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
target/linux/ath79/image/generic-tp-link.mk
target/linux/ath79/image/tiny-tp-link.mk
target/linux/ath79/tiny/base-files/etc/board.d/01_leds
target/linux/ath79/tiny/base-files/etc/board.d/02_network
target/linux/ath79/tiny/base-files/etc/board.d/05_compat-version [new file with mode: 0644]
target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/11-ath10k-caldata [new file with mode: 0644]

index 2ce489b0d1a28897a5ce3e4734c67151253e235b..e22cee51a3e54d875b586c66be983377fffaa743 100644 (file)
@@ -401,10 +401,7 @@ tplink,tl-mr6400-v1)
        ucidef_set_led_netdev "wan" "WAN" "white:wan" "eth1"
        ucidef_set_led_netdev "4g" "4G" "white:4g" "usb0"
        ;;
-tplink,tl-wpa8630-v1|\
-tplink,tl-wpa8630p-v2-int|\
-tplink,tl-wpa8630p-v2.0-eu|\
-tplink,tl-wpa8630p-v2.1-eu)
+tplink,tl-wpa8630-v1)
        ucidef_set_led_switch "lan" "LAN" "green:lan" "switch0" "0x3c"
        ;;
 tplink,tl-wr841hp-v2|\
index bc32081910f86b73dea07f5d857e7601f52dd0a2..2f0208b288a17009c8a729ce215d06ec07eccbfb 100644 (file)
@@ -440,10 +440,7 @@ ath79_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "0@eth0" "1:lan:1" "2:lan:3" "3:lan:2"
                ;;
-       tplink,tl-wpa8630-v1|\
-       tplink,tl-wpa8630p-v2-int|\
-       tplink,tl-wpa8630p-v2.0-eu|\
-       tplink,tl-wpa8630p-v2.1-eu)
+       tplink,tl-wpa8630-v1)
                # port 5 (internal) is the power-line port
                ucidef_add_switch "switch0" \
                        "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "5:lan:4"
index b8e99a661f3e4b0ff6a98c61cdd6d5db39e36e1b..348b8839b6d59b4592ff8b44279dd79402b0a976 100644 (file)
@@ -249,10 +249,7 @@ case "$FIRMWARE" in
                ;;
        tplink,eap225-outdoor-v1|\
        tplink,eap225-v3|\
-       tplink,eap225-wall-v2|\
-       tplink,tl-wpa8630p-v2-int|\
-       tplink,tl-wpa8630p-v2.0-eu|\
-       tplink,tl-wpa8630p-v2.1-eu)
+       tplink,eap225-wall-v2)
                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 \
index 37a0fcc16928a7ad1b7467bb5698a18b21ff1a15..6479f6e26a8523c2275e3172368319c58f882c7a 100644 (file)
@@ -640,36 +640,6 @@ define Device/tplink_tl-wpa8630-v1
 endef
 TARGET_DEVICES += tplink_tl-wpa8630-v1
 
-define Device/tplink_tl-wpa8630p-v2
-  $(Device/tplink-safeloader)
-  SOC := qca9563
-  DEVICE_MODEL := TL-WPA8630P
-  IMAGE_SIZE := 6016k
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
-endef
-
-define Device/tplink_tl-wpa8630p-v2-int
-  $(Device/tplink_tl-wpa8630p-v2)
-  DEVICE_VARIANT := v2 (Int.)
-  TPLINK_BOARD_ID := TL-WPA8630P-V2-INT
-endef
-TARGET_DEVICES += tplink_tl-wpa8630p-v2-int
-
-define Device/tplink_tl-wpa8630p-v2.0-eu
-  $(Device/tplink_tl-wpa8630p-v2)
-  DEVICE_VARIANT := v2.0 (EU)
-  TPLINK_BOARD_ID := TL-WPA8630P-V2.0-EU
-  SUPPORTED_DEVICES += tplink,tl-wpa8630p-v2-eu
-endef
-TARGET_DEVICES += tplink_tl-wpa8630p-v2.0-eu
-
-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
index c918c6baa682e78b2b1c204fb9a55dc0a5aef1e7..2110f08b524822aa8ce507fa466032c4a7fc8a4c 100644 (file)
@@ -223,6 +223,41 @@ define Device/tplink_tl-wa901nd-v5
 endef
 TARGET_DEVICES += tplink_tl-wa901nd-v5
 
+define Device/tplink_tl-wpa8630p-v2
+  $(Device/tplink-safeloader)
+  SOC := qca9563
+  DEVICE_MODEL := TL-WPA8630P
+  IMAGE_SIZE := 6016k
+  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
+  DEVICE_COMPAT_VERSION := 2.0
+  DEVICE_COMPAT_MESSAGE := The flash erase blocksize has changed to 4k from the 64k in previous versions, \
+    so the JFFS2 settings partition MUST be reformatted to avoid data corruption. \
+    Backup your settings before upgrading, then during sysupgrade, \
+    de-select "Keep settings" and select "Force" to continue (equivilant to "sysupgrade -n -F").
+endef
+
+define Device/tplink_tl-wpa8630p-v2-int
+  $(Device/tplink_tl-wpa8630p-v2)
+  DEVICE_VARIANT := v2 (Int.)
+  TPLINK_BOARD_ID := TL-WPA8630P-V2-INT
+endef
+TARGET_DEVICES += tplink_tl-wpa8630p-v2-int
+
+define Device/tplink_tl-wpa8630p-v2.0-eu
+  $(Device/tplink_tl-wpa8630p-v2)
+  DEVICE_VARIANT := v2.0 (EU)
+  TPLINK_BOARD_ID := TL-WPA8630P-V2.0-EU
+  SUPPORTED_DEVICES += tplink,tl-wpa8630p-v2-eu
+endef
+TARGET_DEVICES += tplink_tl-wpa8630p-v2.0-eu
+
+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-wr703n
   $(Device/tplink-4mlzma)
   SOC := ar9331
index 72df8b3dea02de4b33036c95e1a2befd313354cc..f705c5c718e541513ad59ceec384cb2b12b14053 100644 (file)
@@ -93,6 +93,11 @@ tplink,tl-wa850re-v2)
        ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "blue:signal4" "wlan0" "60" "100"
        ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "blue:signal5" "wlan0" "80" "100"
        ;;
+tplink,tl-wpa8630p-v2-int|\
+tplink,tl-wpa8630p-v2.0-eu|\
+tplink,tl-wpa8630p-v2.1-eu)
+       ucidef_set_led_switch "lan" "LAN" "green:lan" "switch0" "0x3c"
+       ;;
 tplink,tl-wr940n-v3|\
 tplink,tl-wr940n-v4|\
 tplink,tl-wr941nd-v6)
index 45335c7c89554b2f2a96b213cb00a12988f118e9..77b2444819f0cea5377ca915f89f0d2b4a55b5cc 100644 (file)
@@ -82,6 +82,13 @@ ath79_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "0@eth0" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
                ;;
+       tplink,tl-wpa8630p-v2-int|\
+       tplink,tl-wpa8630p-v2.0-eu|\
+       tplink,tl-wpa8630p-v2.1-eu)
+               # port 5 (internal) is the power-line port
+               ucidef_add_switch "switch0" \
+                       "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "5:lan:4"
+               ;;
        tplink,tl-wr941-v2)
                ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
                ;;
diff --git a/target/linux/ath79/tiny/base-files/etc/board.d/05_compat-version b/target/linux/ath79/tiny/base-files/etc/board.d/05_compat-version
new file mode 100644 (file)
index 0000000..b6c2ae4
--- /dev/null
@@ -0,0 +1,20 @@
+#
+# Copyright (C) 2020 OpenWrt.org
+#
+
+. /lib/functions.sh
+. /lib/functions/uci-defaults.sh
+
+board_config_update
+
+case "$(board_name)" in
+       tplink,tl-wpa8630p-v2-int|\
+       tplink,tl-wpa8630p-v2.0-eu|\
+       tplink,tl-wpa8630p-v2.1-eu)
+               ucidef_set_compat_version "2.0"
+               ;;
+esac
+
+board_config_flush
+
+exit 0
diff --git a/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
new file mode 100644 (file)
index 0000000..8e3e142
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+[ -e /lib/firmware/$FIRMWARE ] && exit 0
+
+. /lib/functions/caldata.sh
+
+board=$(board_name)
+
+case "$FIRMWARE" in
+"ath10k/pre-cal-pci-0000:00:00.0.bin")
+       case $board in
+       tplink,tl-wpa8630p-v2-int|\
+       tplink,tl-wpa8630p-v2.0-eu|\
+       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 \
+                       /lib/firmware/ath10k/QCA9888/hw2.0/board.bin
+               ;;
+       esac
+       ;;
+*)
+       exit 1
+       ;;
+esac