openwrt/tools
Sander Vanheule 1e75909a35 ramips: mt7621: add TP-Link EAP235-Wall support
The TP-Link EAP235-Wall is a wall-mounted, PoE-powered AC1200 access
point with four gigabit ethernet ports.

When connecting to the device's serial port, it is strongly advised to
use an isolated UART adapter. This prevents linking different power
domains created by the PoE power supply, which may damage your devices.

The device's U-Boot supports saving modified environments with
`saveenv`. However, there is no u-boot-env partition, and saving
modifications will cause the partition table to be overwritten. This is
not an issue for running OpenWrt, but will prevent the vendor FW from
functioning properly.

Device specifications:
* SoC: MT7621DAT
* RAM: 128MiB
* Flash: 16MiB SPI-NOR
* Wireless 2.4GHz (MT7603EN): b/g/n, 2x2
* Wireless 5GHz (MT7613BEN): a/n/ac, 2x2
* Ethernet: 4× GbE
  * Back side: ETH0, PoE PD port
  * Bottom side: ETH1, ETH2, ETH3
* Single white device LED
* LED button, reset button (available for failsafe)
* PoE pass-through on port ETH3 (enabled with GPIO)

Datasheet of the flash chip specifies a maximum frequency of 33MHz, but
that didn't work. 20MHz gives no errors with reading (flash dump) or
writing (sysupgrade).

Device mac addresses:
Stock firmware uses the same MAC address for ethernet (on device label)
and 2.4GHz wireless. The 5GHz wireless address is incremented by one.
This address is stored in the 'info' ('default-mac') partition at an
offset of 8 bytes.
From OEM ifconfig:
    eth     a4:2b:b0:...:88
    ra0     a4:2b:b0:...:88
    rai0    a4:2b:b0:...:89

Flashing instructions:
* Enable SSH in the web interface, and SSH into the target device
* run `cliclientd stopcs`, this should return "success"
* upload the factory image via the web interface

Debricking:
U-boot can be interrupted during boot, serial console is 57600 baud, 8n1
This allows installing a sysupgrade image, or fixing the device in
another way.
* Access serial header from the side of the board, close to ETH3,
  pin-out is (1:TX, 2:RX, 3:GND, 4:3.3V), with pin 1 closest to ETH3.
* Interrupt bootloader by holding '4' during boot, which drops the
  bootloader into its shell
* Change default 'serverip' and 'ipaddr' variables (optional)
* Download initramfs with `tftpboot`, and boot image with `bootm`
    # tftpboot 84000000 openwrt-initramfs.bin
    # bootm

Revert to stock:
Using the tplink-safeloader utility from the firmware-utils package,
TP-Link's firmware image can be converted to an OpenWrt-compatible
sysupgrade image:
  $ ./staging_dir/host/bin/tplink-safeloader -B EAP235-WALL-V1 \
      -z EAP235-WALLv1_XXX_up_signed.bin -o eap235-sysupgrade.bin

This can then be flashed using the OpenWrt sysupgrade interface. The
image will appear to be incompatible and must be force flashed, without
keeping the current configuration.

Known issues:
- DFS support is incomplete (known issue with MT7613)
- MT7613 radio may stop responding when idling, reboot required.
  This was an issue with the ddc75ff704 version of mt76, but appears to
  have improved/disappeared with bc3963764d.
  Error notice example:
  [ 7099.554067] mt7615e 0000:02:00.0: Message 73 (seq 1) timeout

Hardware was kindly provided for porting by Stijn Segers.

Tested-by: Stijn Segers <foss@volatilesystems.org>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2021-02-19 14:00:08 +01:00
..
autoconf treewide: clean up download hashes 2016-12-16 22:39:22 +01:00
autoconf-archive tools: add autoconf-archive 2020-05-20 15:37:16 +02:00
automake tools/automake: Revert "Do not use $(V) - force AM_V=1" 2019-11-06 00:21:15 +01:00
b43-tools tools/b43-tools/b43-fwsquash: convert to Python 3 with 2-to-3 2019-07-26 08:09:16 +02:00
bc tools/bc: use autoreconf to fix build failure on macOS with recent Xcode versions 2020-11-14 14:48:30 +01:00
bison tools/bison: update to 3.7.4 2020-11-21 18:49:08 +01:00
cbootimage treewide: update email address of Tomasz Maciej Nowak 2020-11-24 15:39:07 +01:00
cbootimage-configs treewide: update email address of Tomasz Maciej Nowak 2020-11-24 15:39:07 +01:00
ccache tools/ccache: find libzstd using rpath 2021-01-10 21:40:23 -10:00
cmake tools/cmake: always use non-ccache CC and CXX variables 2021-01-06 21:44:56 -10:00
coreutils tools/coreutils: update to 8.32 2020-08-30 22:21:34 +02:00
dosfstools add PKG_CPE_ID ids to package and tools 2017-11-17 02:24:35 +01:00
e2fsprogs tools/e2fsprogs: fix build under macos 2020-04-10 11:52:00 +01:00
elftosb treewide: clean up download hashes 2016-12-16 22:39:22 +01:00
expat tools/expat: update to 2.2.10 2020-11-21 18:48:39 +01:00
fakeroot tools/fakeroot: fix build regression on macOS 2021-02-15 19:58:54 +01:00
findutils tools/findutils: Update to 4.7.0 2020-04-09 22:08:38 +02:00
firmware-utils ramips: mt7621: add TP-Link EAP235-Wall support 2021-02-19 14:00:08 +01:00
flex flex: Add a lex symlink 2018-11-25 19:23:03 +01:00
flock tools/flock: add PKG_{VERSION,RELEASE} 2020-07-23 11:30:22 +02:00
genext2fs treewide: clean up download hashes 2016-12-16 22:39:22 +01:00
gengetopt tools/gengetopt: Update to 2.23 2019-07-08 16:42:26 +02:00
gmp tools/gmp: update to 6.2.1 2020-11-21 18:49:17 +01:00
include build: fix kernel 5.4 on macos 2020-03-14 13:20:06 +00:00
isl tools/isl: update to 0.20 2019-02-26 23:20:04 +01:00
kernel2minor tools: kernel2minor: update to latest version 2018-07-12 18:15:33 +02:00
libelf tools/libelf: use autoreconf to fix build failure on macOS with recent Xcode versions 2020-11-14 14:48:30 +01:00
libressl ccache: update to 4.1 2020-12-31 10:03:21 +01:00
libtool add PKG_CPE_ID ids to package and tools 2017-11-17 02:24:35 +01:00
lzma treewide: unify OpenWrt hosted source via @OPENWRT 2021-02-05 12:00:24 -10:00
lzma-old treewide: unify OpenWrt hosted source via @OPENWRT 2021-02-05 12:00:24 -10:00
m4 tools: m4: fix compilation with glibc 2.28 2018-08-10 06:29:32 +02:00
make-ext4fs make_ext4fs: Update to version 2020-01-05 2020-01-05 20:04:37 +01:00
missing-macros treewide: remove empty default cases 2020-09-17 12:46:19 +02:00
mkimage tools: mkimage: Update U-Boot to version 2021.01 2021-02-08 22:46:27 +01:00
mklibs tools/mklibs: update to 0.1.44 and convert to Python 3 2019-07-26 23:50:21 +02:00
mm-macros tools/mm-macros: Update to 1.0.0 2020-04-09 22:09:21 +02:00
mpc tools/mpc: update to 1.2.1 2020-11-21 18:49:27 +01:00
mpfr tools/mpfr: update to 4.1.0 2020-08-23 19:40:32 +02:00
mtd-utils tools: mtd-utils: Update to version 2.1.2 2020-08-26 23:29:35 +02:00
mtools tools/mtools: Update to 4.0.24 2020-04-09 22:09:04 +02:00
padjffs2 tools: drop PKG_VERSION for purely local packages 2020-07-23 10:54:33 +02:00
patch tools/patch: apply upstream patch for cve-2019-13638 2019-08-13 10:00:10 +02:00
patch-image rb532: drop target 2020-09-02 16:29:22 +02:00
patchelf tools/patchelf: bump to use latest master 2021-02-15 07:12:51 +01:00
pkgconf ccache: update to 4.1 2020-12-31 10:03:21 +01:00
quilt tools/quilt: update to 0.66 2019-11-24 21:35:45 +01:00
sdimage tools/sdimage: Fix build with host Linux headers < 3.18 2018-12-16 14:03:35 +01:00
sed tools/sed: Update to 4.8 2020-02-18 21:39:14 +01:00
sparse sparse: updated to version 0.5.2 2018-06-08 09:56:26 +02:00
squashfs squashfs: Fix compile with GCC 10 2020-05-24 14:38:40 +02:00
squashfskit4 tools/squashfskit4: fix build on non-linux systems 2020-09-01 17:01:56 +02:00
sstrip tools/sstrip: update to latest version 2020-11-26 12:44:25 -10:00
tar tools: tar: update to version 1.32 2019-03-10 21:36:28 +01:00
xz tools/xz: Update to 5.2.5 2020-04-09 22:09:13 +02:00
zip tools: zip: add option for reproducible archives 2019-01-15 19:11:53 +01:00
zlib tools: zlib: do not hardcode the install prefix in zlib.pc 2018-05-24 17:07:10 +02:00
zstd tools/zstd: compile with cmake 2021-01-30 18:14:50 -10:00
Makefile tools/zstd: compile with cmake 2021-01-30 18:14:50 -10:00