[openwrt/openwrt] ramips: mt7621: add TP-Link EAP613 v1
LEDE Commits
lede-commits at lists.infradead.org
Mon Jul 3 12:14:09 PDT 2023
svanheule pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/cd878b1b55b669e95237732f5780e0907e2bb222
commit cd878b1b55b669e95237732f5780e0907e2bb222
Author: Sander Vanheule <sander at svanheule.net>
AuthorDate: Sat Jun 24 22:18:35 2023 +0200
ramips: mt7621: add TP-Link EAP613 v1
The TP-Link EAP613 v1 is a ceiling-mount 802.11ax access point. It can
be powered via PoE or a DC barrel connector (12V). Connecting to the
UART requires fine soldering and careful manipulation of any soldered
wires.
Device details:
* SoC: MT7621AT
* Flash: 16 MiB SPI NOR
* RAM: 256 MiB DDR3L
* Wi-Fi:
* MT7905DA + MT7975D: 2.4 GHz + 5 GHz (DBDC), 2x2:2
* Two stamped metal antennas (ANT1, ANT2)
* One PCB antenna (ANT3)
* One unpopulated antenna (ANT4)
* Ethernet:
* 1× 10/100/1000 Mbps port with PoE
* LEDs:
* Array of four blue LEDs with one control line
* Buttons:
* Reset
* Board test points:
* UART: next to CPU RF-shield and power circuits
* JTAG: under CPU RF-shield (untested)
* Watchdog: 3PEAK TPV706 (not implemented)
Althought three antennas are populated, the MT7905DA does not support
the additional Rx chain for background DFS detection (or Bluetooth)
according to commit 6cbcc34f50a3 ("ramips: disable unsupported
background radar detection").
MAC addresses:
* LAN: 48:22:54:xx:xx:a2 (device label)
* WLAN 2.4 GHz: 48:22:54:xx:xx:a2
* WLAN 5 GHz: 48:22:54:xx:xx:a3
The radio calibration blob stored in flash also contains valid MAC
addresses for both radio bands (OUI 00:0c:43).
Factory install:
1. Enable SSH on the device via web interface
2. Log in with SSH, and run `cliclientd stopcs`
3. Upload -factory.bin image via web interface. It may be necessary to
shorten the filename of the image to e.g. 'factory.bin'.
Recovery:
1. Open the device by unscrewing four screws from the backside
2. Carefully remove board from the housing
3. Connect to UART (3.3V):
* Find test points labelled "VCC", "GND", "UART_TX", "UART_RX"
* Solder wires to test points or connect otherwise. Be careful not
to damage the PCB e.g. by pulling on soldered wires.
* Open console with 115200n8 settings
4. Interrupt bootloader and use tftpboot to start an initramfs:
setenv ipaddr $DEVICE_IP
setenv serverip $SERVER_IP
tftpboot 84000000 openwrt-initramfs-kernel.bin
bootm
DO NOT use saveenv to store modified u-boot environment variables. The
environment is saved at flash offset 0x30000, which erases part of the
(secondary) bootloader.
The device uses two bootloader stages. The first stage will load the
second stage from a uImage stored at flash offset 0x10000. In case of
a damaged second stage, the first stage should allow uploading a new
image via y-modem (untested).
Signed-off-by: Sander Vanheule <sander at svanheule.net>
(cherry picked from commit 11588c52b47c2c3b2cdc7849ce9e4804bfdb8bb5)
---
.../linux/ramips/dts/mt7621_tplink_eap613-v1.dts | 151 +++++++++++++++++++++
target/linux/ramips/image/mt7621.mk | 13 ++
.../mt7621/base-files/etc/board.d/02_network | 1 +
.../etc/hotplug.d/ieee80211/10_fix_wifi_mac | 1 +
4 files changed, 166 insertions(+)
diff --git a/target/linux/ramips/dts/mt7621_tplink_eap613-v1.dts b/target/linux/ramips/dts/mt7621_tplink_eap613-v1.dts
new file mode 100644
index 0000000000..d25bf57560
--- /dev/null
+++ b/target/linux/ramips/dts/mt7621_tplink_eap613-v1.dts
@@ -0,0 +1,151 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "mt7621.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+ compatible = "tplink,eap613-v1", "mediatek,mt7621-soc";
+ model = "TP-Link EAP613 v1";
+
+ aliases {
+ label-mac-device = &gmac0;
+ led-boot = &led_status;
+ led-failsafe = &led_status;
+ led-running = &led_status;
+ led-upgrade = &led_status;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_status: status {
+ label = "blue:status";
+ color = <LED_COLOR_ID_BLUE>;
+ function = LED_FUNCTION_STATUS;
+ gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+};
+
+&spi0 {
+ status = "okay";
+
+ flash at 0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <20000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition at 0 {
+ label = "u-boot";
+ reg = <0x0 0x80000>;
+ read-only;
+ };
+
+ partition at 80000 {
+ label = "partition-table";
+ reg = <0x80000 0x10000>;
+ read-only;
+ };
+
+ partition at 90000 {
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ label = "product-info";
+ reg = <0x90000 0x10000>;
+ read-only;
+
+ macaddr: macaddr at 8 {
+ reg = <0x8 0x6>;
+ };
+ };
+
+ partition at a0000 {
+ compatible = "denx,fit";
+ label = "firmware";
+ reg = <0xa0000 0xcf0000>;
+ };
+
+ partition at d90000 {
+ label = "user-config";
+ reg = <0xd90000 0x60000>;
+ read-only;
+ };
+
+ partition at f30000 {
+ label = "mutil-log";
+ reg = <0xf30000 0x80000>;
+ read-only;
+ };
+
+ partition at fb0000 {
+ label = "oops";
+ reg = <0xfb0000 0x40000>;
+ read-only;
+ };
+
+ radio: partition at ff0000 {
+ label = "radio";
+ reg = <0xff0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&state_default {
+ gpio {
+ groups = "uart3";
+ function = "gpio";
+ };
+};
+
+&pcie {
+ status = "okay";
+};
+
+&pcie1 {
+ wifi at 0,0 {
+ compatible = "mediatek,mt76";
+ reg = <0x0000 0 0 0 0>;
+ mediatek,mtd-eeprom = <&radio 0x0>;
+ mediatek,disable-radar-background;
+ };
+};
+
+&gmac0 {
+ nvmem-cells = <&macaddr>;
+ nvmem-cell-names = "mac-address";
+};
+
+&switch0 {
+ ports {
+ port at 0 {
+ status = "okay";
+ label = "lan";
+ };
+ };
+};
diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index e426eac5b6..fa4c83dbe1 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -2132,6 +2132,19 @@ define Device/tplink_eap235-wall-v1
endef
TARGET_DEVICES += tplink_eap235-wall-v1
+define Device/tplink_eap613-v1
+ $(Device/dsa-migration)
+ $(Device/tplink-safeloader)
+ DEVICE_MODEL := EAP613
+ DEVICE_VARIANT := v1
+ DEVICE_PACKAGES := kmod-mt7915-firmware -uboot-envtools
+ TPLINK_BOARD_ID := EAP610-V3
+ KERNEL := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb | pad-to 64k
+ KERNEL_INITRAMFS := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd
+ IMAGE_SIZE := 13248k
+endef
+TARGET_DEVICES += tplink_eap613-v1
+
define Device/tplink_eap615-wall-v1
$(Device/dsa-migration)
$(Device/tplink-safeloader)
diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
index cd746e84ee..6057c17192 100644
--- a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
@@ -24,6 +24,7 @@ ramips_setup_interfaces()
sercomm,na502|\
sercomm,na502s|\
thunder,timecloud|\
+ tplink,eap613-v1|\
tplink,re350-v1|\
tplink,re500-v1|\
tplink,re650-v1|\
diff --git a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
index 80c7273543..3467e783f0 100644
--- a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
+++ b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
@@ -158,6 +158,7 @@ case "$board" in
hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
[ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 4 > /sys${DEVPATH}/macaddress
;;
+ tplink,eap613-v1|\
tplink,eap615-wall-v1)
hw_mac_addr="$(mtd_get_mac_binary product-info 0x8)"
macaddr_add "$hw_mac_addr" "$PHYNBR" > "/sys${DEVPATH}/macaddress"
More information about the lede-commits
mailing list