[openwrt/openwrt] ramips: add support for ALFA Network AX1800RM

LEDE Commits lede-commits at lists.infradead.org
Tue Sep 12 01:38:34 PDT 2023


pepe2k pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/3cc223243b848b87a4c82b219f24cdb17ee9a771

commit 3cc223243b848b87a4c82b219f24cdb17ee9a771
Author: Piotr Dymacz <pepe2k at gmail.com>
AuthorDate: Fri Jul 28 11:41:14 2023 +0200

    ramips: add support for ALFA Network AX1800RM
    
    ALFA Network AX1800RM (FCC ID: 2AB877621) is a dual-band Wi-Fi 6
    (AX1800) router, based on MediaTek MT7621A + MT79x5D platform.
    
    Specifications:
    
    - SOC:      MT7621A (880 MHz)
    - DRAM:     DDR3 256 MiB (Nanya NT5CC128M16JR-EK)
    - Flash:    16 MiB SPI NOR (EN25QH128A-104HIP)
    - Ethernet: 4x 10/100/1000 Mbps (SOC's built-in switch)
    - Wi-Fi:    2x2:2 2.4/5 GHz (MT7905DAN + MT7975DN)
                (MT7905DAN doesn't support background DFS scan/BT)
    - LED:      6x green, 1x green/red
    - Buttons:  2x (reset, WPS)
    - Antenna:  4x external, non-detachable omnidirectional
    - UART:     1x 4-pin (2.54 mm pitch, J4, not populated)
    - Power:    12 V DC/1 A (DC jack)
    
    MAC addresses:
    
    LAN:     00:c0:ca:xx:xx:4e (factory 0x4, +2)
    WAN:     00:c0:ca:xx:xx:4f (factory 0x4, +3)
    2.4 GHz: 00:c0:ca:xx:xx:4c (factory 0x4, device's label)
    5 GHz:   00:c0:ca:xx:xx:4c (factory 0xa)
    
    Flash instructions for web-based U-Boot recovery:
    
    1. Power the device with WPS button pressed and wait around 10 seconds.
    2. Setup static IP 192.168.1.2/24 on your PC.
    3. Go to 192.168.1.1 in browser and upload 'recovery' image.
    
    The device runs LEDE 17.01 (kernel 4.4.x) based firmware with 'failsafe'
    mode available which allows alternative upgrade method:
    
    1. Run device in 'failsafe' mode and change password for default user.
    2. SSH to the device, transfer 'sysupgrade' image and perform upgrade
       in forced mode, without preserving settings: 'sysupgrade -n -F ...'.
    
    Other notes:
    
    If you own early version of this device, the vendor firmware might
    refuse OpenWrt image because of missing custom header. In that case,
    ask vendor's customer support for stock firmware without custom header
    support/requirement.
    
    Signed-off-by: Piotr Dymacz <pepe2k at gmail.com>
    (backported from commit f1aaa267f0ea18ffe5840f3ce46a48be123d2f62)
---
 .../ramips/dts/mt7621_alfa-network_ax1800rm.dts    | 208 +++++++++++++++++++++
 target/linux/ramips/image/mt7621.mk                |  12 ++
 .../ramips/mt7621/base-files/etc/board.d/01_leds   |   6 +
 .../mt7621/base-files/etc/board.d/02_network       |  58 +++---
 4 files changed, 256 insertions(+), 28 deletions(-)

diff --git a/target/linux/ramips/dts/mt7621_alfa-network_ax1800rm.dts b/target/linux/ramips/dts/mt7621_alfa-network_ax1800rm.dts
new file mode 100644
index 0000000000..ecf8fe34ef
--- /dev/null
+++ b/target/linux/ramips/dts/mt7621_alfa-network_ax1800rm.dts
@@ -0,0 +1,208 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7621.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+	compatible = "alfa-network,ax1800rm", "mediatek,mt7621-soc";
+	model = "ALFA Network AX1800RM";
+
+	aliases {
+		label-mac-device = &wifi0;
+		led-boot = &led_power;
+		led-failsafe = &led_wan_red;
+		led-running = &led_power;
+		led-upgrade = &led_power;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200";
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
+		};
+
+		wps {
+			label = "wps";
+			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_WPS_BUTTON>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		lan1 {
+			label = "green:lan1";
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
+		};
+
+		lan2 {
+			label = "green:lan2";
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+		};
+
+		lan3 {
+			label = "green:lan3";
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+		};
+
+		led_power: power {
+			label = "green:power";
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_POWER;
+			gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+		};
+
+		wan_green {
+			label = "green:wan";
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_WAN;
+			gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+		};
+
+		led_wan_red: wan_red {
+			label = "red:wan";
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_WAN;
+			gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&spi0 {
+	status = "okay";
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <50000000>;
+		m25p,fast-read;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot";
+				reg = <0x0 0x30000>;
+				read-only;
+			};
+
+			partition at 30000 {
+				label = "u-boot-env";
+				reg = <0x30000 0x10000>;
+			};
+
+			partition at 40000 {
+				label = "boot-config";
+				reg = <0x40000 0x10000>;
+				read-only;
+			};
+
+			factory: partition at 50000 {
+				label = "factory";
+				reg = <0x50000 0x10000>;
+				read-only;
+
+				compatible = "nvmem-cells";
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				macaddr: macaddr at 4 {
+					reg = <0x4 0x6>;
+				};
+			};
+
+			partition at 60000 {
+				label = "permanent_config";
+				reg = <0x60000 0x80000>;
+				read-only;
+			};
+
+			partition at e0000 {
+				compatible = "denx,fit";
+				label = "firmware";
+				reg = <0xe0000 0xf20000>;
+			};
+		};
+	};
+};
+
+&pcie {
+	status = "okay";
+};
+
+&pcie1 {
+	wifi0: wifi at 0,0 {
+		compatible = "mediatek,mt76";
+		reg = <0x0000 0 0 0 0>;
+
+		mediatek,mtd-eeprom = <&factory 0x0>;
+		mediatek,disable-radar-background;
+	};
+};
+
+&gmac0 {
+	nvmem-cells = <&macaddr>;
+	nvmem-cell-names = "mac-address";
+	mac-address-increment = <2>;
+};
+
+&gmac1 {
+	status = "okay";
+	label = "wan";
+	phy-handle = <&ethphy4>;
+
+	nvmem-cells = <&macaddr>;
+	nvmem-cell-names = "mac-address";
+	mac-address-increment = <3>;
+};
+
+&mdio {
+	ethphy4: ethernet-phy at 4 {
+		reg = <4>;
+	};
+};
+
+&switch0 {
+	ports {
+		port at 0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port at 1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port at 2 {
+			status = "okay";
+			label = "lan3";
+		};
+	};
+};
+
+&state_default {
+	gpio {
+		groups = "i2c", "jtag", "uart3", "wdt";
+		function = "gpio";
+	};
+};
diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index fa4c83dbe1..2675c7d08b 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -178,6 +178,18 @@ define Device/afoundry_ew1200
 endef
 TARGET_DEVICES += afoundry_ew1200
 
+define Device/alfa-network_ax1800rm
+  $(Device/dsa-migration)
+  IMAGE_SIZE := 15488k
+  DEVICE_VENDOR := ALFA Network
+  DEVICE_MODEL := AX1800RM
+  DEVICE_PACKAGES := kmod-mt7915-firmware
+  KERNEL := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
+  IMAGES += recovery.bin
+  IMAGE/recovery.bin := append-kernel | append-rootfs | pad-rootfs | check-size
+endef
+TARGET_DEVICES += alfa-network_ax1800rm
+
 define Device/alfa-network_quad-e4g
   $(Device/dsa-migration)
   IMAGE_SIZE := 16064k
diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds
index 1f91905bd8..3ceac60434 100644
--- a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds
@@ -7,6 +7,12 @@ board=$(board_name)
 board_config_update
 
 case $board in
+alfa-network,ax1800rm)
+	ucidef_set_led_netdev "lan1" "lan1" "green:lan1" "lan1"
+	ucidef_set_led_netdev "lan2" "lan2" "green:lan2" "lan2"
+	ucidef_set_led_netdev "lan3" "lan3" "green:lan3" "lan3"
+	ucidef_set_led_netdev "wan" "wan" "green:wan" "wan"
+	;;
 asus,rp-ac87)
 	ucidef_set_rssimon "wlan0" "200000" "1"
 	ucidef_set_rssimon "wlan1" "200000" "1"
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 6057c17192..11a7c9465a 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
@@ -8,6 +8,26 @@ ramips_setup_interfaces()
 	local board="$1"
 
 	case $board in
+	alfa-network,ax1800rm|\
+	ampedwireless,ally-r1900k|\
+	asus,rt-ax53u|\
+	gehua,ghl-r-001|\
+	h3c,tx1800-plus|\
+	h3c,tx1801-plus|\
+	h3c,tx1806|\
+	haier,har-20s2u1|\
+	hiwifi,hc5962|\
+	netgear,wax202|\
+	sim,simax1800t|\
+	xiaomi,mi-router-3-pro|\
+	xiaomi,mi-router-ac2100|\
+	xiaomi,mi-router-cr6606|\
+	xiaomi,mi-router-cr6608|\
+	xiaomi,mi-router-cr6609|\
+	xiaomi,redmi-router-ac2100|\
+	zyxel,wsm20)
+		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan"
+		;;
 	arcadyan,we420223-99)
 		ucidef_set_interface_lan "swp0 swp1"
 		;;
@@ -37,25 +57,6 @@ ramips_setup_interfaces()
 	zyxel,nwa55axe)
 		ucidef_set_interface_lan "lan"
 		;;
-	ampedwireless,ally-r1900k|\
-	asus,rt-ax53u|\
-	gehua,ghl-r-001|\
-	h3c,tx1800-plus|\
-	h3c,tx1801-plus|\
-	h3c,tx1806|\
-	haier,har-20s2u1|\
-	hiwifi,hc5962|\
-	netgear,wax202|\
-	sim,simax1800t|\
-	xiaomi,mi-router-3-pro|\
-	xiaomi,mi-router-ac2100|\
-	xiaomi,mi-router-cr6606|\
-	xiaomi,mi-router-cr6608|\
-	xiaomi,mi-router-cr6609|\
-	xiaomi,redmi-router-ac2100|\
-	zyxel,wsm20)
-		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan"
-		;;
 	asiarf,ap7621-001|\
 	humax,e10|\
 	wavlink,ws-wn572hp3-4g|\
@@ -157,6 +158,16 @@ ramips_setup_macs()
 	local label_mac=""
 
 	case $board in
+	alfa-network,ax1800rm|\
+	jcg,y2|\
+	wavlink,wl-wn531a6|\
+	wavlink,wl-wn533a8|\
+	winstars,ws-wn583a6|\
+	zbtlink,zbt-we1326|\
+	zbtlink,zbt-wg3526-16m|\
+	zbtlink,zbt-wg3526-32m)
+		label_mac=$(mtd_get_mac_binary factory 0x4)
+		;;
 	ampedwireless,ally-00x19k)
 		lan_mac=$(mtd_get_mac_ascii hwconfig HW.LAN.MAC.Address)
 		label_mac=$lan_mac
@@ -222,15 +233,6 @@ ramips_setup_macs()
 		lan_mac=$(mtd_get_mac_ascii config ethaddr)
 		wan_mac=$(macaddr_add "$lan_mac" 1)
 		;;
-	jcg,y2|\
-	wavlink,wl-wn531a6|\
-	wavlink,wl-wn533a8|\
-	winstars,ws-wn583a6|\
-	zbtlink,zbt-we1326|\
-	zbtlink,zbt-wg3526-16m|\
-	zbtlink,zbt-wg3526-32m)
-		label_mac=$(mtd_get_mac_binary factory 0x4)
-		;;
 	linksys,e5600|\
 	linksys,ea6350-v4|\
 	linksys,ea7300-v1|\




More information about the lede-commits mailing list