[RFC PATCH v2 0/6] ath79: support for TP-Link EAP2x5 1-port devices

Sander Vanheule sander at svanheule.net
Sun Jul 19 17:24:02 EDT 2020

This patch series seeks to add support for the following devices:
 * TP-Link EAP245 v1
 * TP-Link EAP225 v3
 * TP-Link EAP225-Outdoor v1
Currently not included:
 * TP-Link EAP225 v1/v2

Note that the patches cannot be applied straight to master, but require
(at least) the first four patches (elf splitter and tplink safeloader)
of my pull request for the EAP245 v3. (CC ynezz, rmilecki)
For these patches, see https://github.com/openwrt/openwrt/pull/3130 and

The first patches of this series are (derived from) work done by
Julien Dusser and were submitted earlier in the following pull requests
(reviewed by blogic, blocktrron, CodeFetch)
 * ar71xx: add support for TP-Link EAP245 v1
 * ath79: extra gmac configurations from DT on qca956x

Some extra work since has led to a reduced set of patches to provide support
for the EAP245 v1 on ath79. Since the other devices are so similar, they are
also included in this series. There were objections in pulling in support
earlier due to the badly configured bootloader and firmware upload protections.

The main work-around for the broken bootloader is in patch 2/6, which adds an
initialisation sequence for the SGMII SERDES. Patch 1/6 ensures the SGMII
interface is enabled when required.

A work-around for the firmware protection was found by using a debug mode that
doesn't perform firmware RSA signature checks. On earlier firmwares (EAP245 v1
and EAP225 v1/v2), a binary patch is required to prevent a crash, but more
recent firmwares (EAP225 v3, EAP225-Outdoor v1, EAP245 v3) can enable the debug
mode by using a simple command.

 * The EAP245 v1 factory partition layout is different from, though
   compatible with, the layout provided in patch 3/6. The only difference
   this makes, is a slightly smaller firmware partition and perhaps
   the odd confused user seeking to extract the original user-config
   partition. Using only one layout does simplify the DTs, which is why
   I went with the current approach. Is this okay, or should I stay closer to
   the original layout?
 * I can probably provide working support for the EAP225 v1/v2, given
   the minimal differences between the devices. However, I do not have
   this device to test an image, nor has anyone offered to test on the
   forums. This device would have a similar flashing procedure as the
   EAP245 v1. Would you nevertheless want me to provide a patch?

Changes in v2:
 * Implemented DTS/DTSI header changes.
 * Moved LED definitions.
 * eap245-v1 ath10k MAC address now comes from flash.
 * Renamed EAP225OD to EAP225-Outdoor throughout the patches.
 * The patch providing extra #define's for QCA956X SoCs was dropped.
   Most of it has been available upstream since 2018 with kernel commit
 * Put phy-mode in the correct device node (eth0, not phy4)
 * Ensure QCA956X_ETH_CFG_GE0_SGMII is set when required. Removes the need for
   the device tree extension patch.

Julien Dusser (1):
  ath79: add QCA956x SERDES init workaround

Sander Vanheule (5):
  ath79: ensure QCA956x gmac0 mux selects sgmii
  ath79: prepare for 1-port TP-Link EAP2x5 devices
  ath79: support for TP-Link EAP245 v1
  ath79: support for TP-Link EAP225-Outdoor v1
  ath79: support for TP-Link EAP225 v3

 .../dts/qca9563_tplink_eap225-outdoor-v1.dts  |  31 ++++
 .../ath79/dts/qca9563_tplink_eap225-v3.dts    |  31 ++++
 .../ath79/dts/qca9563_tplink_eap245-v1.dts    |  36 +++++
 .../dts/qca9563_tplink_eap2x5_1port.dtsi      | 139 ++++++++++++++++++
 .../net/ethernet/atheros/ag71xx/ag71xx_main.c | 116 +++++++++++++++
 .../generic/base-files/etc/board.d/02_network |   3 +
 .../etc/hotplug.d/firmware/11-ath10k-caldata  |   8 +
 target/linux/ath79/image/generic-tp-link.mk   |  37 +++++
 tools/firmware-utils/src/tplink-safeloader.c  |  85 +++++++++++
 9 files changed, 486 insertions(+)
 create mode 100644 target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v1.dts
 create mode 100644 target/linux/ath79/dts/qca9563_tplink_eap225-v3.dts
 create mode 100644 target/linux/ath79/dts/qca9563_tplink_eap245-v1.dts
 create mode 100644 target/linux/ath79/dts/qca9563_tplink_eap2x5_1port.dtsi


More information about the openwrt-devel mailing list