From 06874171d125f0a69d6fb8cfd12213b7913d317e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibaut=20VAR=C3=88NE?= Date: Fri, 15 Apr 2022 13:17:49 +0200 Subject: [PATCH 1/5] ath79: add support for Yuncore XD3200 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Specification: - QCA9563 (775MHz), 128MB RAM, 16MB SPI NOR - 2T2R 802.11b/g/n 2.4GHz - 2T2R 802.11n/ac 5GHz - 2x 10/100/1000 Mbps Ethernet, with 802.3at PoE support (WAN port) LED for 5 GHz WLAN is currently not supported as it is connected directly to the QCA9882 radio chip. Flash instructions: If your device comes with generic QSDK based firmware, you can login over telnet (login: root, empty password, default IP: 192.168.188.253), issue first (important!) 'fw_setenv' command and then perform regular upgrade, using 'sysupgrade -n -F ...' (you can use 'wget' to download image to the device, SSH server is not available): fw_setenv bootcmd "bootm 0x9f050000 || bootm 0x9fe80000" sysupgrade -n -F openwrt-...-yuncore_...-squashfs-sysupgrade.bin In case your device runs firmware with YunCore custom GUI, you can use U-Boot recovery mode: 1. Set a static IP 192.168.0.141/24 on PC and start TFTP server with 'tftp' image renamed to 'upgrade.bin' 2. Power the device with reset button pressed and release it after 5-7 seconds, recovery mode should start downloading image from server (unfortunately, there is no visible indication that recovery got enabled - in case of problems check TFTP server logs) Signed-off-by: Thibaut VARÈNE (cherry-picked from commit c91df224f54fdd44c9c0487a8c91876f5d273164) --- package/boot/uboot-envtools/files/ath79 | 1 + .../ath79/dts/qca9563_yuncore_xd3200.dts | 32 +++++++++++++++++++ .../generic/base-files/etc/board.d/01_leds | 3 +- .../generic/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/firmware/11-ath10k-caldata | 3 +- target/linux/ath79/image/generic.mk | 11 +++++++ 6 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 target/linux/ath79/dts/qca9563_yuncore_xd3200.dts diff --git a/package/boot/uboot-envtools/files/ath79 b/package/boot/uboot-envtools/files/ath79 index abcb99663d..8d9536f95e 100644 --- a/package/boot/uboot-envtools/files/ath79 +++ b/package/boot/uboot-envtools/files/ath79 @@ -61,6 +61,7 @@ samsung,wam250|\ ubnt,nanostation-m|\ yuncore,a770|\ yuncore,a782|\ +yuncore,xd3200|\ yuncore,xd4200|\ zyxel,nbg6616) ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x10000" diff --git a/target/linux/ath79/dts/qca9563_yuncore_xd3200.dts b/target/linux/ath79/dts/qca9563_yuncore_xd3200.dts new file mode 100644 index 0000000000..5c87752585 --- /dev/null +++ b/target/linux/ath79/dts/qca9563_yuncore_xd3200.dts @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qca9563_yuncore_xd4200.dtsi" + +/ { + compatible = "yuncore,xd3200", "qca,qca9563"; + model = "YunCore XD3200"; + + aliases { + label-mac-device = ð0; + led-boot = &led_system; + led-failsafe = &led_system; + led-running = &led_system; + led-upgrade = &led_system; + }; + + leds { + compatible = "gpio-leds"; + + led_system: system { + label = "green:system"; + gpios = <&gpio 1 GPIO_ACTIVE_LOW>; + default-state = "keep"; + }; + + wlan2g { + label = "blue:wlan2g"; + gpios = <&gpio 19 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy1tpt"; + }; + }; +}; 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 3031b4703b..b6c68db813 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 @@ -220,7 +220,8 @@ glinet,gl-x750) hak5,lan-turtle) ucidef_set_led_netdev "wan" "WAN" "orange:system" "eth1" ;; -joyit,jt-or750i) +joyit,jt-or750i|\ +yuncore,xd3200) ucidef_set_led_default "ath10k" "ath10k-disable" "ath10k-phy0" "0" ;; meraki,mr12|\ 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 d4f53e7dae..5bf78117e1 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 @@ -306,6 +306,7 @@ ath79_setup_interfaces() ubnt,nanobeam-ac-gen2|\ ubnt,nanostation-ac|\ yuncore,a782|\ + yuncore,xd3200|\ yuncore,xd4200) ucidef_add_switch "switch0" \ "0@eth0" "2:lan" "3:wan" 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 69735f3360..c562fa7c74 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 @@ -44,7 +44,8 @@ case "$FIRMWARE" in ubnt,powerbeam-5ac-500|\ ubnt,powerbeam-5ac-gen2|\ ubnt,unifiac-pro|\ - yuncore,a770) + yuncore,a770|\ + yuncore,xd3200) caldata_extract "art" 0x5000 0x844 ;; devolo,dvl1200e|\ diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index 304e589800..cac5dea3d2 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -2242,6 +2242,17 @@ define Device/yuncore_a782 endef TARGET_DEVICES += yuncore_a782 +define Device/yuncore_xd3200 + SOC := qca9563 + DEVICE_VENDOR := YunCore + DEVICE_MODEL := XD3200 + DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct + IMAGE_SIZE := 16000k + IMAGES += tftp.bin + IMAGE/tftp.bin := $$(IMAGE/sysupgrade.bin) | yuncore-tftp-header-16m +endef +TARGET_DEVICES += yuncore_xd3200 + define Device/yuncore_xd4200 SOC := qca9563 DEVICE_VENDOR := YunCore From 2cc9ee8000597fe132071ec3ba6bf0ac9404ac94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibaut=20VAR=C3=88NE?= Date: Fri, 15 Apr 2022 13:17:53 +0200 Subject: [PATCH 2/5] ath79: add support for Yuncore A930 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Specification: - QCA9533 (650 MHz), 64 or 128MB RAM, 16MB SPI NOR - 2x 10/100 Mbps Ethernet, with 802.3at PoE support (WAN) - 2T2R 802.11b/g/n 2.4GHz Flash instructions: If your device comes with generic QSDK based firmware, you can login over telnet (login: root, empty password, default IP: 192.168.188.253), issue first (important!) 'fw_setenv' command and then perform regular upgrade, using 'sysupgrade -n -F ...' (you can use 'wget' to download image to the device, SSH server is not available): fw_setenv bootcmd "bootm 0x9f050000 || bootm 0x9fe80000" sysupgrade -n -F openwrt-...-yuncore_...-squashfs-sysupgrade.bin In case your device runs firmware with YunCore custom GUI, you can use U-Boot recovery mode: 1. Set a static IP 192.168.0.141/24 on PC and start TFTP server with 'tftp' image renamed to 'upgrade.bin' 2. Power the device with reset button pressed and release it after 5-7 seconds, recovery mode should start downloading image from server (unfortunately, there is no visible indication that recovery got enabled - in case of problems check TFTP server logs) Signed-off-by: Clemens Hopfer Signed-off-by: Thibaut VARÈNE (cherry-picked from commit a05dcb07241aa83a4416b56201e31b4af8518981) [switch to mtd-mac-address instead of nvmem-cells] --- package/boot/uboot-envtools/files/ath79 | 1 + .../linux/ath79/dts/qca9533_yuncore_a930.dts | 102 ++++++++++++++++++ target/linux/ath79/image/generic.mk | 10 ++ 3 files changed, 113 insertions(+) create mode 100644 target/linux/ath79/dts/qca9533_yuncore_a930.dts diff --git a/package/boot/uboot-envtools/files/ath79 b/package/boot/uboot-envtools/files/ath79 index 8d9536f95e..8bc7dc5ebf 100644 --- a/package/boot/uboot-envtools/files/ath79 +++ b/package/boot/uboot-envtools/files/ath79 @@ -61,6 +61,7 @@ samsung,wam250|\ ubnt,nanostation-m|\ yuncore,a770|\ yuncore,a782|\ +yuncore,a930|\ yuncore,xd3200|\ yuncore,xd4200|\ zyxel,nbg6616) diff --git a/target/linux/ath79/dts/qca9533_yuncore_a930.dts b/target/linux/ath79/dts/qca9533_yuncore_a930.dts new file mode 100644 index 0000000000..f83dca0697 --- /dev/null +++ b/target/linux/ath79/dts/qca9533_yuncore_a930.dts @@ -0,0 +1,102 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qca953x.dtsi" + +#include +#include + +/ { + compatible = "yuncore,a930", "qca,qca9533"; + model = "YunCore A930"; + + aliases { + label-mac-device = ð1; + led-boot = &led_system; + led-failsafe = &led_system; + led-running = &led_system; + led-upgrade = &led_system; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&gpio 17 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + + led_system: system { + label = "green:system"; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + default-state = "keep"; + }; + + wlan2g { + label = "blue:wlan2g"; + gpios = <&gpio 13 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + }; +}; + +&spi { + status = "okay"; + + flash@0 { + 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 0x040000>; + read-only; + }; + + partition@40000 { + label = "u-boot-env"; + reg = <0x040000 0x010000>; + }; + + partition@50000 { + compatible = "denx,uimage"; + label = "firmware"; + reg = <0x050000 0xfa0000>; + }; + + art: partition@ff0000 { + label = "art"; + reg = <0xff0000 0x010000>; + read-only; + }; + }; + }; +}; + +ð0 { + status = "okay"; + + phy-handle = <&swphy4>; + + mtd-mac-address = <&art 0x0>; +}; + +ð1 { + mtd-mac-address = <&art 0x6>; +}; + +&wmac { + status = "okay"; + mtd-cal-data = <&art 0x1000>; +}; diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index cac5dea3d2..f6e6f98db9 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -2242,6 +2242,16 @@ define Device/yuncore_a782 endef TARGET_DEVICES += yuncore_a782 +define Device/yuncore_a930 + SOC := qca9533 + DEVICE_VENDOR := YunCore + DEVICE_MODEL := A930 + IMAGE_SIZE := 16000k + IMAGES += tftp.bin + IMAGE/tftp.bin := $$(IMAGE/sysupgrade.bin) | yuncore-tftp-header-16m +endef +TARGET_DEVICES += yuncore_a930 + define Device/yuncore_xd3200 SOC := qca9563 DEVICE_VENDOR := YunCore From 9a765554f409235ff6359d6eccb79187c2513de0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibaut=20VAR=C3=88NE?= Date: Thu, 10 Mar 2022 12:01:29 +0100 Subject: [PATCH 3/5] ath79: add support for MikroTik RouterBOARD mAP lite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The MikroTik RouterBOARD mAPL-2nd (sold as mAP Lite) is a small 2.4 GHz 802.11b/g/n PoE-capable AP. See https://mikrotik.com/product/RBmAPL-2nD for more info. Specifications: - SoC: Qualcomm Atheros QCA9533 - RAM: 64 MB - Storage: 16 MB NOR - Wireless: Atheros AR9531 (SoC) 802.11b/g/n 2x2:2, 1.5 dBi antenna - Ethernet: Atheros AR8229 (SoC), 1x 10/100 port, 802.3af/at PoE in - 4 user-controllable LEDs: · 1x power (green) · 1x user (green) · 1x lan (green) · 1x wlan (green) Flashing: TFTP boot initramfs image and then perform sysupgrade. Follow common MikroTik procedure as in https://openwrt.org/toh/mikrotik/common. Note: following 781d4bfb397cdd12ee0151eb66c577f470e3377d The network setup avoids using the integrated switch and connects the single Ethernet port directly. This way, link speed (10/100 Mbps) is properly reported by eth0. Signed-off-by: Thibaut VARÈNE (cherry picked from commit eb38af788180d624e5b37aa5db1fe3766b138dc8) --- .../qca9533_mikrotik_routerboard-mapl-2nd.dts | 68 +++++++++++++++++++ target/linux/ath79/image/mikrotik.mk | 8 +++ .../mikrotik/base-files/etc/board.d/01_leds | 3 +- .../base-files/etc/board.d/02_network | 2 + .../etc/hotplug.d/firmware/10-ath9k-eeprom | 1 + 5 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 target/linux/ath79/dts/qca9533_mikrotik_routerboard-mapl-2nd.dts diff --git a/target/linux/ath79/dts/qca9533_mikrotik_routerboard-mapl-2nd.dts b/target/linux/ath79/dts/qca9533_mikrotik_routerboard-mapl-2nd.dts new file mode 100644 index 0000000000..e2442f0095 --- /dev/null +++ b/target/linux/ath79/dts/qca9533_mikrotik_routerboard-mapl-2nd.dts @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qca9533_mikrotik_routerboard-16m.dtsi" + +/ { + compatible = "mikrotik,routerboard-mapl-2nd", "qca,qca9533"; + model = "MikroTik RouterBOARD mAPL-2nD (mAP lite)"; + + aliases { + led-boot = &led_user; + led-failsafe = &led_user; + led-running = &led_user; + led-upgrade = &led_user; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&led_power_pin &led_lan_pin>; + + power { + label = "green:power"; + gpios = <&gpio 17 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + + lan { + label = "green:lan"; + gpios = <&gpio 4 GPIO_ACTIVE_HIGH>; + }; + + wlan { + label = "green:wlan"; + gpios = <&gpio 11 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "phy0tpt"; + }; + + led_user: user { + label = "green:user"; + gpios = <&gpio 14 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +ð0 { + status = "okay"; + + phy-handle = <&swphy0>; + + gmac-config { + device = <&gmac>; + switch-phy-swap = <1>; + }; +}; + +ð1 { + compatible = "syscon", "simple-mfd"; +}; + +&pinmux { + led_lan_pin: pinmux_led_lan_pin { + pinctrl-single,bits = <0x4 0x0 0xff>; + }; + + led_power_pin: pinmux_led_power_pin { + pinctrl-single,bits = <0x10 0x0 0xff00>; + }; +}; diff --git a/target/linux/ath79/image/mikrotik.mk b/target/linux/ath79/image/mikrotik.mk index 4256f77379..b2c7000419 100644 --- a/target/linux/ath79/image/mikrotik.mk +++ b/target/linux/ath79/image/mikrotik.mk @@ -45,6 +45,14 @@ define Device/mikrotik_routerboard-lhg-2nd endef TARGET_DEVICES += mikrotik_routerboard-lhg-2nd +define Device/mikrotik_routerboard-mapl-2nd + $(Device/mikrotik_nor) + SOC := qca9533 + DEVICE_MODEL := RouterBOARD mAPL-2nD (mAP lite) + IMAGE_SIZE := 16256k +endef +TARGET_DEVICES += mikrotik_routerboard-mapl-2nd + define Device/mikrotik_routerboard-sxt-5nd-r2 $(Device/mikrotik_nand) SOC := ar9344 diff --git a/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds b/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds index 0d3209c2e3..e95c5830e2 100755 --- a/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds @@ -7,7 +7,8 @@ board_config_update board=$(board_name) case "$board" in -mikrotik,routerboard-lhg-2nd) +mikrotik,routerboard-lhg-2nd|\ +mikrotik,routerboard-mapl-2nd) ucidef_set_led_netdev "lan" "lan" "green:lan" "eth0" ;; mikrotik,routerboard-wapr-2nd) diff --git a/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network b/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network index bd249e0b86..bf8b9bdac2 100755 --- a/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network +++ b/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network @@ -18,6 +18,7 @@ ath79_setup_interfaces() mikrotik,routerboard-912uag-2hpnd|\ mikrotik,routerboard-921gs-5hpacd-15s|\ mikrotik,routerboard-lhg-2nd|\ + mikrotik,routerboard-mapl-2nd|\ mikrotik,routerboard-sxt-5nd-r2|\ mikrotik,routerboard-wap-g-5hact2hnd|\ mikrotik,routerboard-wapr-2nd) @@ -41,6 +42,7 @@ ath79_setup_macs() mikrotik,routerboard-912uag-2hpnd|\ mikrotik,routerboard-921gs-5hpacd-15s|\ mikrotik,routerboard-lhg-2nd|\ + mikrotik,routerboard-mapl-2nd|\ mikrotik,routerboard-sxt-5nd-r2|\ mikrotik,routerboard-wap-g-5hact2hnd|\ mikrotik,routerboard-wapr-2nd) diff --git a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom index ae0c94d8ec..eca25b69de 100644 --- a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom +++ b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom @@ -29,6 +29,7 @@ case "$FIRMWARE" in mikrotik,routerboard-wapr-2nd) caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" +1) ;; + mikrotik,routerboard-mapl-2nd|\ mikrotik,routerboard-wap-g-5hact2hnd) caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" +2) ;; From 41a97c207438903c309371ba695cea01ae78aba4 Mon Sep 17 00:00:00 2001 From: Torsten Duwe Date: Wed, 22 Sep 2021 10:52:51 +0200 Subject: [PATCH 4/5] bcm27xx: add AMP2 to HifiBerry DAC+ / DAC+ Pro package According to the vendor [1] these HATs share the same DT overlay: hifiberry-dacplus. The PCM512x-compatible control unit is attached to I2C, so the additional snd-soc-pcm512x-i2c kernel module is required. Also explicitly note the Amp2 support to reduce confusion for those users. [1] Signed-off-by: Torsten Duwe (added bcm27xx tag, changed commit message) Signed-off-by: Christian Lamparter (cherry picked from commit 7ea9936f7f32fd90af1a29775ac3b297d7775db7) --- target/linux/bcm27xx/modules/sound.mk | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/target/linux/bcm27xx/modules/sound.mk b/target/linux/bcm27xx/modules/sound.mk index dab31d8132..1d3165ed2f 100644 --- a/target/linux/bcm27xx/modules/sound.mk +++ b/target/linux/bcm27xx/modules/sound.mk @@ -509,24 +509,27 @@ $(eval $(call KernelPackage,sound-soc-hifiberry-dac)) define KernelPackage/sound-soc-hifiberry-dacplus - TITLE:=Support for HifiBerry DAC+ / DAC+ Pro + TITLE:=Support for HifiBerry DAC+ / DAC+ Pro / Amp2 KCONFIG:= \ CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS \ - CONFIG_SND_SOC_PCM512x + CONFIG_SND_SOC_PCM512x \ + CONFIG_SND_SOC_PCM512x_I2C FILES:= \ $(LINUX_DIR)/drivers/clk/clk-hifiberry-dacpro.ko \ $(LINUX_DIR)/sound/soc/bcm/snd-soc-hifiberry-dacplus.ko \ - $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko + $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \ + $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko AUTOLOAD:=$(call AutoLoad,68,clk-hifiberry-dacpro snd-soc-pcm512x \ - snd-soc-hifiberry-dacplus) + snd-soc-pcm512x-i2c snd-soc-hifiberry-dacplus) DEPENDS:= \ kmod-sound-soc-bcm2835-i2s \ - +kmod-i2c-bcm2835 + +kmod-i2c-bcm2835 \ + +kmod-regmap-i2c $(call AddDepends/sound) endef define KernelPackage/sound-soc-hifiberry-dacplus/description - This package contains support for HifiBerry DAC+ / DAC+ Pro + This package contains support for HifiBerry DAC+ / DAC+ Pro / Amp2 endef $(eval $(call KernelPackage,sound-soc-hifiberry-dacplus)) From 1d4dea6d4f4d34914e4622809b8b4a7c2c35ab47 Mon Sep 17 00:00:00 2001 From: Joe Mullally Date: Mon, 30 Aug 2021 22:35:05 +0100 Subject: [PATCH 5/5] ath79: Move TPLink WPA8630Pv2 to ath79-tiny target MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Tested-by: Robert Högberg Signed-off-by: Petr Štetiar [commit message facelift] (cherry picked from commit 44e1e5d) Signed-off-by: Petr Štetiar --- .../generic/base-files/etc/board.d/01_leds | 5 +-- .../generic/base-files/etc/board.d/02_network | 5 +-- .../etc/hotplug.d/firmware/11-ath10k-caldata | 5 +-- target/linux/ath79/image/generic-tp-link.mk | 30 ---------------- target/linux/ath79/image/tiny-tp-link.mk | 35 +++++++++++++++++++ .../ath79/tiny/base-files/etc/board.d/01_leds | 5 +++ .../tiny/base-files/etc/board.d/02_network | 7 ++++ .../base-files/etc/board.d/05_compat-version | 21 +++++++++++ .../etc/hotplug.d/firmware/11-ath10k-caldata | 25 +++++++++++++ 9 files changed, 96 insertions(+), 42 deletions(-) create mode 100755 target/linux/ath79/tiny/base-files/etc/board.d/05_compat-version create mode 100644 target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/11-ath10k-caldata 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 b6c68db813..146470855d 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 @@ -348,10 +348,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-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 5bf78117e1..b01dfa41d1 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 @@ -382,10 +382,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" 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 c562fa7c74..c7dbaafac1 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 @@ -228,10 +228,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 \ diff --git a/target/linux/ath79/image/generic-tp-link.mk b/target/linux/ath79/image/generic-tp-link.mk index eeca02ce88..fceebdaaf3 100644 --- a/target/linux/ath79/image/generic-tp-link.mk +++ b/target/linux/ath79/image/generic-tp-link.mk @@ -587,36 +587,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 diff --git a/target/linux/ath79/image/tiny-tp-link.mk b/target/linux/ath79/image/tiny-tp-link.mk index c918c6baa6..2110f08b52 100644 --- a/target/linux/ath79/image/tiny-tp-link.mk +++ b/target/linux/ath79/image/tiny-tp-link.mk @@ -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 diff --git a/target/linux/ath79/tiny/base-files/etc/board.d/01_leds b/target/linux/ath79/tiny/base-files/etc/board.d/01_leds index f0b4acf066..aeac6e60e1 100755 --- a/target/linux/ath79/tiny/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/tiny/base-files/etc/board.d/01_leds @@ -94,6 +94,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) diff --git a/target/linux/ath79/tiny/base-files/etc/board.d/02_network b/target/linux/ath79/tiny/base-files/etc/board.d/02_network index cca6352023..037c99deb2 100755 --- a/target/linux/ath79/tiny/base-files/etc/board.d/02_network +++ b/target/linux/ath79/tiny/base-files/etc/board.d/02_network @@ -83,6 +83,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 100755 index 0000000000..b9ba3b9810 --- /dev/null +++ b/target/linux/ath79/tiny/base-files/etc/board.d/05_compat-version @@ -0,0 +1,21 @@ +#!/bin/sh +# +# 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 index 0000000000..8e3e142ec9 --- /dev/null +++ b/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -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