Skip to content

Commit

Permalink
ath79: Move TPLink WPA8630Pv2 to ath79-tiny target
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
jwmullally authored and hauke committed Apr 9, 2022
1 parent 6461384 commit 44e1e5d
Show file tree
Hide file tree
Showing 9 changed files with 95 additions and 42 deletions.
5 changes: 1 addition & 4 deletions target/linux/ath79/generic/base-files/etc/board.d/01_leds
Expand Up @@ -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|\
Expand Down
5 changes: 1 addition & 4 deletions target/linux/ath79/generic/base-files/etc/board.d/02_network
Expand Up @@ -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"
Expand Down
Expand Up @@ -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 \
Expand Down
30 changes: 0 additions & 30 deletions target/linux/ath79/image/generic-tp-link.mk
Expand Up @@ -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
Expand Down
35 changes: 35 additions & 0 deletions target/linux/ath79/image/tiny-tp-link.mk
Expand Up @@ -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
Expand Down
5 changes: 5 additions & 0 deletions target/linux/ath79/tiny/base-files/etc/board.d/01_leds
Expand Up @@ -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)
Expand Down
7 changes: 7 additions & 0 deletions target/linux/ath79/tiny/base-files/etc/board.d/02_network
Expand Up @@ -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"
;;
Expand Down
20 changes: 20 additions & 0 deletions target/linux/ath79/tiny/base-files/etc/board.d/05_compat-version
@@ -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
@@ -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

0 comments on commit 44e1e5d

Please sign in to comment.