Commit graph

384 commits

Author SHA1 Message Date
Zhiwei Cao
344bb7f916 mediatek: filogic: add support Netcore NX30V2/N30PRO/POWER30AX/W7/GW3001
Hardware specification:
  SoC: MediaTek MT7981B
  Flash: ESMT F50L1G41LB 128MB
  RAM: ESMT M15T2G16128A DDR3 256MB
  Ethernet: 3x 1G
  Button: Reset, WPS

MAC addresses
  LAN:	Label MAC (stored in Factory partition offset 0x1fef20)
  WAN:	LAN + 1
  WiFi:	LAN

Official LED layout, from left to right:
  [power] [internet] [wps] [wifi] [lan3/2/1] [wan]

Redefinition for OpenWrt:
  [power]: used for led-boot, led-failsafe, and led-running
  [internet]: used for WAN RX/TX indication
  [wps]: used for led-upgrade
  [wifi] and [lan3/2/1]: unchanged
  [wan]: used for WAN link indication

Installing OpenWrt:
  - Setup a tftp server on your PC. Copy
    xxx-preloader.bin, xxx-bl31-uboot.fip and
    xxx-initramfs.itb to tftp root directory.
  - Connect to the router via ssh or telnet,
    username: useradmin, password is the web
    login password of the router.
  - Backup all critical flash partitions with
    the following commands where x.x.x.x is
    the IP of your PC.

    IP=x.x.x.x
    cd /dev
    for d in /sys/class/mtd/mtd?; do
      if [ "$(cat $d/name)" = "BL2" ]; then
        tftp -l $(basename $d) -r bl2.img -p $IP
      elif [ "$(cat $d/name)" = "FIP" ]; then
        tftp -l $(basename $d) -r fip.bin -p $IP
      elif [ "$(cat $d/name)" = "Factory" ]; then
        tftp -l $(basename $d) -r factory.bin -p $IP
      fi
    done
    for d in /sys/devices/virtual/ubi/ubi0/ubi0_*; do
      [ "$(cat $d/name)" != "customer" ] && continue
      tftp -l $(basename $d) -r customer -p $IP
      break
    done

  - Flash with the following commands:

     cd /tmp
     tftp -r xxx-preloader.bin -g x.x.x.x
     tftp -r xxx-bl31-uboot.fip -g x.x.x.x
     mtd write xxx-preloader.bin spi0.0
     mtd write xxx-bl31-uboot.fip FIP
     mtd erase ubi

  - Set a static ip(192.168.1.254) for your PC.
    And then reboot the router. It will run
    initramfs image automatically.
  - After openwrt boots up, perform sysupgrade
    via web UI.

Reverting to the vendor firmware:
  - Setup a tftp server on your PC with ip
    address 192.168.1.254. And make sure
    bl2.img, fip.bin, factory.bin and customer
    are located in tftp root directory.
  - Power off the router.
  - Press and hold WPS key, then power on
    the router.
  - Release WPS key, when internet/wifi/wps
    leds are blinking.
  - Wait until internet/wifi/wps leds light
    up, power off the router.
  - Press and hold reset key, power up the
    router, release reset key 15s later.
  - Connect to http://192.168.1.1, now you
    can upload vendor .bin firmware.

Uboot netconsole:
  Uboot netconsole can be enabled by WPS
  or reset key.

  - Setup a linux PC with ip 192.168.1.254.
    Open a new terminal and execute
    'stty -isig -echo cbreak; nc -lup 6666'
  - Press and hold WPS(or reset) key, then
    power on the router.
  - Release key once internet/wifi/wps leds
    are all on.
    NOTE: don't hold the key more than 5s
    after internet/wifi/wps leds on, or it
    will try to revert to vendor firmware.
  - 5s later, uboot bootmenu will show on
    the terminal.

Signed-off-by: Zhiwei Cao <bfdeh@126.com>
Link: https://github.com/openwrt/openwrt/pull/18631
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-09 01:29:39 +01:00
Pawel Dembicki
011890ad93 mediatek: filogic: add support for Kebidumei AX3000-U22
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
Kebidumei AX3000-U22 is one of many clones of the same range extender
that can be found on Aliexpress or other Chinese portals.

The easiest way to identify this model is by searching for "AX3000
Repeater" and picking the device that looks like mine [0].

Specification:
- SoC:     MediaTek MT7981B (1.3 GHz)
- RAM:     256 MB
- Flash:   16 MB SPI NOR
- Ports:   1 x 1 GbE
- Antenna: 6 (2 fake)
- WiFi:    MediaTek dual-band WiFi 6
  - 2.4 GHz: b/g/n/ax, MIMO 2x2
  - 5 GHz:   a/n/ac/ax, MIMO 2x2
- Buttons: Reset & WPS
- LEDs:    Ethernet (green), Status (red, green, blue)
- Power:   110–240 V AC (internal PSU, board uses 12 V DC)
- Serial:  unmarked connector on PCB
           [1: Vcc, 2: RX, 3: TX, 4: GND]

Install via OEM web UI:
1. Use reset button to perform factory reset.
2. Connect PC to LAN port and obtain DHCP address.
3. Upload the sysupgrade image via OEM firmware upgrade page,
   e.g. http://192.168.18.1/upgrade.html
4. After reboot, hold reset button to clear leftover vendor config.

Install via serial:
1. Connect serial console (115200 8N1).
2. Enter the console.
3. Backup mtd4 partition if you want to restore OEM FW later.
4. Download image.
5. Run 'sysupgrade -n'.

Revert to stock:
1. Run sysupgrade without keeping config using mtd4 backup.

[0] https://openwrt.org/_media/media/kebidumei_ax3000-u22.png

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20287
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-09 01:12:07 +01:00
Maxim Anisimov
cc2aefe619 mediatek: add Keenetic KN-1812/Netcraze NC-1812 support
This commit adds support for Keenetic KN-1812/Netcraze NC-1812

Device specification
--------------------
SoC Type:   MediaTek MT7988D, Cortex-A73, 64-bit
RAM:        1024MB DDR4 Micron MT40A512M16TB-062E:R
Flash:      SPI NAND Winbond W25N02KV (256 MiB)
Ethernet:   4x1GbE (internal MT7988 built-in) + 2.5GbE (internal MT7988 phy) + 10GbE (RTL8261BE)

WLAN:       MT7992AV
WLAN 2g:    MediaTek MT7975N, b/g/n/ax/be, MIMO 4x4
WLAN 5g:    MediaTek MT7977B, a/n/ac/ax/be, MIMO 4x4
LEDs:       5 LEDs, 1 power green, 1 internet green,
            2x fn green, 1 wlan green, gpio-controlled
Button:     4 (Reset, WPS, FN1, FN2)
USB port:   Yes, 1xUSB3.2 and 1xUSB2.0 (via GL850G)
Power:      12 VDC, 3 A

Notes:
 * The device supports dual boot mode
 * Fn2 led reassigned to wlan 2.4

Flash instruction:
The only way to flash OpenWrt image is to use tftp recovery mode in U-Boot:

1. Configure PC with static IP 192.168.1.2/24 and tftp server.
2. a) Keenetic
      Rename "openwrt-mediatek-filogic-keenetic_kn-1812-squashfs-factory.bin"
      to "KN-1812_recovery.bin" and place it in tftp server directory.
   b) Netcraze
      Rename "openwrt-mediatek-filogic-netcraze_nc-1812-squashfs-factory.bin"
      to "NC-1812_recovery.bin" and place it in tftp server directory.
3. Connect PC with ethernet port, press the reset button, power up
   the device and keep button pressed until status led start blinking.
4. Device will download file from server, write it to flash and reboot.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20737
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-09 00:55:51 +01:00
Rani Hod
ff1419f895 mediatek: filogic: add support for Widelantech WAP430X
This AX3000 flying saucer-shaped device is sold under a few names:
- Widelantech WAP430X
  http://www.widelantech.com/?m=home&c=View&a=index&aid=131
- Felicomm
- UeeVii UAP200 (sold on amazon.com)
True name, as marked on the PCB and as appears in the DTS, is WAP430X.

Hardware:
- SoC: Mediatek MT7981B
- RAM: 256MiB DDR3
- ROM: 16MiB NOR flash (Winbond 25Q128JVSQ)
- Wired: one GbE RJ45 port
- Wireless: Mediatek MT7976CN DBDC
- Antennas: Internal (two 2.4 GHz 4.5 dBi, three 5 GHz 6 dBi)
- GPIO: two blue LEDs (status, WLAN), one button (reset)
- Power: DC5521 (12V) or 802.3af PoE (48V 0.3A)
- UART: J500 on PCB [3v3] (Rx) (Tx) (Gnd), 115200n

Original firmware is GECOOS 8.0_2024081000, a fork of OpenWrt 21.02
created by Widelantech. All ports are closed except 443 (web management
interface) and 80 (redirects to 443). UART is locked down, but U-Boot
bootloader is friendly.

Installation is done via UART (see note below).

Method 1: press any key during boot to enter MTK U-Boot bootloader,
then choose option 2 (Upgrade firmware) and upload sysupgrade binary
via TFTP (or via Xmodem).

Method 2: put sysupgrade binary on a webserver (http, not https); after
GECOOS loads, choose option 4 (固件在线升级 = online firmware upgrade)
in the menu and enter the URL to the sysupgrade binary.

Note: GECOOS has a slick web management, and firmware can be uploaded
at https://6.6.6.6/#/system/sysupgrade but it's still not clear how to
convert the sysupgrade binary to a factory binary accepted by the web
interface (WIP).

Signed-off-by: Rani Hod <rani.hod@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20402
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-03 00:53:39 +01:00
Richard Fröhning
f57a0e8db3 mediatek-filogic: assign WAN netdev trigger to blue:wan LED for cudy wr3000e
- rename blue:wan-online to blue:wan
- assign wan netdev trigger to blue:wan

Signed-off-by: Richard Fröhning <misanthropos@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/20808
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-30 23:57:23 +01:00
Schneider Azima
b2648d8951 mediatek: add support for Mercusys MR85X
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
This commit adds support for Mercusys MR85X router.

Device specification:
 - SoC: Mediatek MT7981b, Cortex-A53, 64-bit
 - RAM: 512MB
 - Flash: SPI NAND GigaDevice GD5F1GQ5UEYIGY (128 MB)
 - Ethernet: Realtek rtl8367s + 2.5Gbe Airoha en8811h
 - Ethernet: 1x2.5Gbe (WAN 2.5Gbps), 3xGbe (LAN 1Gbps, port0, port1, port2)
 - Wireless: 2.4GHz (802.11 b/g/n/ax)
 - Wireless: 5GHz (802.11 a/n/ac/ax)
 - LEDs: 1 amber and 1 green status LEDs, 4 green gpio-controlled LEDs
   on ethernet ports
 - Buttons: 2 (reset,wps)
 - Bootloader: Main U-Boot - U-Boot 2022.07-rc3. Additionally, both UBI
   slots contain "seconduboot" (also U-Boot 2022.07-rc3)

Installation (UART):
 - Place OpenWrt initramfs-kernel image on tftp server with IP 192.168.1.2
 - Attach UART, switch on the router and interrupt the boot process by
   pressing 'Ctrl-C'.
 - Set the uboot environment for startup.
   setenv tp_boot_idx 0; saveenv
   If the bootarg is set to boot from ubi1, also change it to ubi0.
 - Load and run OpenWrt initramfs image.
   setenv serverip 192.168.1.2; setenv ipaddr 192.168.1.1; tftpboot initramfs-kernel.bin; bootm
 - Browse IP 192.168.1.1, upload the 'sysupgrade' image and do upgrade.

Recovery:
 - Press Reset button and power on the router.
 - Navigate to U-Boot recovery web server (http://192.168.1.1/) and
   upload the OEM firmware.

Stock layout:
0x000000000000-0x000000200000 : "boot"
0x000000200000-0x000000300000 : "u-boot-env"
0x000000300000-0x000003500000 : "ubi0"
0x000003500000-0x000006700000 : "ubi1"
0x000006700000-0x000006f00000 : "userconfig"
0x000006f00000-0x000007300000 : "tp_data"

ubi0/ubi1 format:
U-Boot at boot checks that all volumes are in place:
+-------------------------------+
| Volume Name: uboot   Vol ID: 0|
| Volume Name: kernel  Vol ID: 1|
| Volume Name: rootfs  Vol ID: 2|
+-------------------------------+

MAC addresses:
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| label   | 00:FF:xx:xx:xx:EE | label     |
| WAN     | 00:FF:xx:xx:xx:EF | label+1   |
| LAN     | 00:FF:xx:xx:xx:EE | label     |
| WLAN 2g | 00:FF:xx:xx:xx:ED | label-1   |
| WLAN 5g | 00:FF:xx:xx:xx:EC | label-2   |
+---------+-------------------+-----------+
label MAC address was found in UBI partition "tp_data", file "default-mac".
OEM wireless eeprom is also there, file "MT7981_EEPROM.bin".

Signed-off-by: Schneider Azima <Schneider-Azima12@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/19187
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-30 22:59:34 +01:00
Brian Lee
e7086d7a2f mediatek: filogic: add support for ASUS TUF-AX4200Q
ASUS TUF-AX4200Q(TUF 小旋风Pro WiFi6 AX4200) is a home router that adds an additional 2.5G Ethernet port to ASUS TUF-AX4200.

Hardware
- - - - - - - -
- SOC   : MediaTek MT7986
- RAM   : 512MB DDR3
- FLASH : 256MB SPI-NAND (Winbond W25N02KV)
- WIFI  : Mediatek MT7986 DBDC 802.11ax 2.4/5 GHz
- ETH   : MediaTek MT7531 Switch
          MaxLinear GPY211C 2.5 N-Base-T PHY (WAN)
          MaxLinear GPY211C 2.5 N-Base-T PHY (LAN)
- UART  : 3V3 115200 8N1 (Pinout silkscreened / Do not ocnnect VCC)

Installation
- - - - - - - -
Vendor-UI Method:

1. Download or make the OpenWrt initramfs.trx image
2. Connect the PC via LAN to one of the yellow router ports and wait until your PC to get a DHCP lease.
3. Browse to http://192.168.50.1/
4. If your router is brand new, finish the setup process and log into the Web-UI.
5. Navigate to Administration -> Firmware Upgrade and upload the downloaded OpenWrt image.
6. Wait for OpenWrt to boot. Transfer the sysupgrade image to the device using SCP and install using sysupgrade.

   $ sysupgrade -n <path-to-sysupgrade.bin>

TFTP Method:

1. Download the OpenWrt initramfs image.
   Copy the image to a TFTP server reachable at 192.168.1.70/24.
   Rename the image to tufax4200q.bin.

2. Connect the PC with TFTP server to the TUF-AX4200Q.
   Set a static ip on the ethernet interface of your PC.
   (IP address: 192.168.1.70, subnet mask: 255.255.255.0)
   Connect to the serial console,
   interrupt the autoboot process by pressing '4' when prompted.

3. Download & Boot the OpenWrt initramfs image.

   $ setenv ipaddr 192.168.1.1
   $ setenv serverip 192.168.1.70
   $ tftpboot 0x46000000 tufax4200q.bin
   $ bootm 0x46000000

4. Wait for OpenWrt to boot.
   Transfer the sysupgrade image to the device using SCP and install using sysupgrade.

   $ sysupgrade -n <path-to-sysupgrade.bin>

(based on support for ASUS RT-AX52 by achterin and trx image generation by remittor)

Signed-off-by: Brian Lee <larte332@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20900
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-30 18:45:40 +01:00
Rosen Penev
f614322d28 mediatek: rtl8367s: modernize gpio API
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Upstream is strongly considering removing of_gpio.h. As of this commit,
3 upstream drivers remain with actual usage.

Get ahead of upstream and use the GPIOD API before the OF one goes away.

Rework to remove mediatek,reset-pin in favor of the standard
reset-gpios.

Fix wrong high GPIO.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20088
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-29 21:08:39 +01:00
Shiji Yang
0883bb7d31
treewide: dts: remove {#address,#size}-cells from "spi-nand" compatible node
The child node "partitions" doesn't have "reg" property. Hence, we
don't need to use "#address-cells" and "#size-cells" to describe the
reg property information.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/20942
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-27 12:37:49 +01:00
Shiji Yang
f2c1697819
treewide: dts: remove {#address,#size}-cells from "jedec,spi-nor" compatible node
The child node "partitions" doesn't have "reg" property. Hence, we
don't need to use "#address-cells" and "#size-cells" to describe the
reg property information.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/20942
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-27 12:37:49 +01:00
Chukun Pan
f911c2dc44 mediatek: update Bananapi BPi-R4 Lite support
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Waiting to run
Build host tools / Build host tools for linux and macos based systems (push) Waiting to run
Devices package:
  Add missing USB3 driver

Device tree:
  Fix model name and pwm usage
  Add missing supply for I2C and USB
  Update network port names based on the shell image [1]

[1] https://docs.banana-pi.org/bpi-r4_lite/banana_pi_bpi-r4_lite_case_1.png

Fixes: 8b6c6978 ("mediatek: add support for BananaPi BPi-R4 Lite")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2025-11-25 16:48:28 +00:00
Chukun Pan
21fe2a8e43 mediatek: update mt7987 SoC device tree
mt7987b.dtsi:
  Enabled lvts (for CPU thermal) and trng by default.
  Remove non-existent netsys include headers, fix build.

mt7987.dtsi:
  Remove unused rt5190a include headers
  Fix pwm-fan errors: binding cdev pwm-fan to trip 3 failed: -22

Fixes: 9de7189ed ("mediatek: build image for MT7987 RFB")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2025-11-25 16:48:28 +00:00
Chukun Pan
295601b0d4 mediatek: mt7987: enable usb 3.0 by default
There is no reason to limit USB to 2.0 mode by default. This
limitation should be done when both gmac2 and USB are enabled.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2025-11-25 16:48:28 +00:00
Chukun Pan
de8eb38db8 mediatek: move node from mt7987a SoC dtsi
Remove I2C, PCIe, PWM, UART and USB from the MT7987A SoC dtsi.
These should not be enabled by default, but rather enabled based
on the device.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2025-11-25 16:48:28 +00:00
Daniel Golle
7af6029644 mediatek: mt7987: sync mt7987.dtsi with MediaTek SDK
Make sure uart0 got all required clocks assigned.

Fixes: 1c3b32c45a ("mediatek: fix uart clocks in MT7987 infracfg clock driver")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-11-25 16:48:21 +00:00
Aleksander Jan Bajkowski
6c3eea4cfe mediatek: filogic: increase flash speed on ASUS TUF AX6000
Some checks failed
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
This commit increases the SPI bus frequency from 20 to 52 MHz. Reduces boot
time by 2s. Below is a performance comparison.

Before:
root@OpenWrt:~# dd if=/dev/mtd1 of=/dev/null bs=10M count=1 status=progress
10485760 bytes (10 MB, 10 MiB) copied, 1.68404 s, 6.2 MB/s

After:
root@OpenWrt:~# dd if=/dev/mtd1 of=/dev/null bs=10M count=1 status=progress
10485760 bytes (10 MB, 10 MiB) copied, 0.819222 s, 12.8 MB/s

Taken from PR #18752 as each device should be tested individually, so I have
created a separate PR for this.

Signed-off-by: Sky Huang <SkyLake.Huang@mediatek.com>
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/20853
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-24 01:09:13 +01:00
Jascha Sundaresan
46ab9f3f1c filogic: add support for Netgear EAX17
Hardware
--------

SOC:   MediaTek MT7981
RAM:   512MB DDR4
FLASH: 128MB SPI-NAND
WIFI:  Mediatek MT7915 (integrated) 2x2 802.11ax 2.4 / 5 GHz
ETH:   Mediatek MT7981 internal 1 GbE PHY
UART:  3V3 115200 8N1 (Pinout silkscreened / Do not connect VCC)

Installation
------------

1. Download the OpenWrt initramfs image. Copy the image to a TFTP server
2. Connect the TFTP server to the EAX17. Conect to the serial console,
   interrupt the autoboot process by pressing '0' when prompted.
3. Download & Boot the OpenWrt initramfs image.

   $ tftpboot openwrt.bin
   $ bootm

4. Wait for OpenWrt to boot. Transfer the sysupgrade image to the device
   using scp and install using sysupgrade.

   $ sysupgrade -n <path-to-sysupgrade.bin>

Signed-off-by: Jascha Sundaresan <flizarthanon@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20354
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-24 00:57:19 +01:00
Qing W.
1748ce8295 mediatek: add support for WAVLINK WL-WN536AX6 Rev a
Product name: Wavlink WL-WN536AX6 Rev a "Mighty LX2"
Product link: https://www.wavlink.com/en_us/product/WL-WN536AX6.html

Specifications:
SOC: MT7986AV
RAM: 512MB DDR4
Flash: 128MB SPI NAND
Ports: 4 LAN (1G) & 1 WAN (2.5G)
WIFI: MT7976PN + MT7975N
LEDs: 8 (STATUS, WIFI, WAN, LAN1, LAN2, LAN3, LAN4, PWR)
USB: 1 (3.0)

MAC table, same as stock firmware:
LAN: 80:3F:5D:xx:xx:x1 partition "hw" at 0x44e (ASCII)
WAN: 80:3F:5D:xx:xx:x2 partition "hw" at 0x460 (ASCII)
2G: 80:3F:5D:xx:xx:x3
5G: 80:3F:5D:xx:xx:x4

* Installation with OEM WebUI:

Note: Make sure PC is connected on LAN1 port. The OEM firmware has an unknown root password and settings are kept after upgrading firmware. Therefore, a customized Openwrt firmware is needed to remove the root password on login, by adding `passwd -d root` to /etc/init.d/bootcount. The WebUI does a filename check so the customized firmware is named accordingly.

1. Download modified firmware file `WAVLINK_WN536AX6-A_M36AX6_V250320-WO-437baca-modified.bin` from https://github.com/ses1er/firmware-misc/tree/main/wavlink/wl-wn536ax6a
2. Log into WebUI on default IP: http://192.168.20.1
3. Browse to More (top menu) -> System -> Firmware Upgrade.
4. Under `Local Upgrade` section, check the device to be upgraded and upload downloaded modified firmware. Click `UPLOAD FILE`, then `APPLY`
5. Wait about 2 minutes (ignore progress bar), and browse to http://192.168.20.1. You should see LUCI login page. Username is root and no password.
6. Browse to `System -> Backup/Flash Firmware`, click on `Flash Image`, click `Browse` and locate `openwrt-mediatek-filogic-wavlink_wl-wn536ax6-a-squashfs-sysupgrade.bin` file.
7. Uncheck `Keep settings and retain the current configuration` and click `Continue`.
8. Router will now be set to IP 192.168.1.1 which is the Openwrt default.

* Installation with UART:

Note: Having UART connected while cold booting the device will result in a kernel panic when initializing wifi. I've found this workaround:
1. Power off the device and ensure UART is not connected to PC.
2. Power up the device, when lights come on, plug in UART.
3. Warm boots and soft restarts will not cause kernel panic for the duration of device being powered on. Repeat steps for subsequent cold boots.

1. Configure TFTP server with IP 192.168.1.66. Copy `openwrt-mediatek-filogic-wavlink_wl-wn536ax6a-initramfs.itb` to TFTP root.
2. Interrupt boot by pressing 0.
3. Run the following in Uboot console: `setenv serverip 192.168.1.66; setenv ipaddr 192.168.1.1; tftpboot 0x46000000 openwrt-mediatek-filogic-wavlink_wl-wn536ax6-a-initramfs.itb; bootm`
4. Transfer `openwrt-mediatek-filogic-wavlink_wl-wn536ax6-a-squashfs-sysupgrade.bin` to device:
   (`scp -O openwrt-mediatek-filogic-wavlink_wl-wn536ax6-a-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/`)
5. Run the following on device: `sysupgrade -n /tmp/openwrt-mediatek-filogic-wavlink_wl-wn536ax6-a-squashfs-sysupgrade.bin`

Signed-off-by: Qing W. <ses1er@gmail.com>
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Link: https://github.com/openwrt/openwrt/pull/20760
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-24 00:43:13 +01:00
Donghyun Ko
2c667f2df4 mediatek: use dt-bindings drive strength macros for ipTIME AX7800M-6E
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Replace hardcoded numbers with the dt-bindings drive strength macros
defined in "dt-bindings/pinctrl/mt65xx.h".

Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20894
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-23 22:32:48 +01:00
Jahidul Islam
2462b36f0c mediatek: add support for Imou HX21
This board is also as known as LC-HX3001

Hardware specification:
  SoC: MediaTek MT7981B 2x A53
  Flash: Foresee F35SQA001G 128 MB SPI-NAND
  RAM: 256MB DDR3
  Ethernet: 4x 10/100/1000 Mbps
  Switch: MediaTek MT7531AE
  WiFi: MediaTek MT7976C
  Button: Reset, Mesh
  Power: DC 12V 1A

Gain SSH access:
Method 1:
1. Connect UART Adapter to the router
2. UART pins are enabled, set the root password with passwd command
   start the dropbear instance on port 22

Method 2:
1. Login into web interface, and restore the router with SSH enabled configuration.
2. After reboot Default Web interface password will be 12345678
   SSH password is empty

Flash instructions:
1. Connect to HX21, backup everything, especially 'Factory' part.
3. Write new FIP:
   mtd write openwrt-mediatek-filogic-hx_21-bl31-uboot.fip FIP
4. Set static IP on your PC:
   IP 192.168.1.254/24, GW 192.168.1.1
5. Serve OpenWrt initramfs image using TFTP server.
6. Wait for TFTP recovery to complete.
7. After OpenWrt has booted, perform sysupgrade.
8. To write new BL2
   Install mtd-rw
   opkg update && opkg install kmod-mtd-rw
   insmod mtd-rw i_want_a_brick=1
   mtd write openwrt-mediatek-filogic-imou_hx21-preloader.bin bl2

Signed-off-by: Jahidul Islam <hello@jahid.io>
Link: https://github.com/openwrt/openwrt/pull/20753
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-21 01:43:09 +01:00
Tianling Shen
d2fa070f70 mediatek: fix ubi size for zbtlink zbt z8102ax v2
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
According to the factory uboot and firmware[1], the ubi size is set
to 512 MiB (0x20000000) and it exceeds the size of the flash, after
that the uboot and kernel resizes it to 114.5 MiB (0x7280000) instead
of 114.125 MiB (0x7220000). The mismatch of the ubi size causes
kernel fails to read ubi volumes and throws panic.

Trim whitespaces while at it.

1. https://github.com/immortalwrt/immortalwrt/issues/2123#issuecomment-3523744128

Fixes: c908fc7d95 ("mediatek: add support for Zbtlink ZBT-Z8102AX v2")
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20769
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-20 23:26:29 +01:00
Donghyun Ko
05a597efd6 mediatek: add support for ipTIME AX3000SE
Specification
-------------
- SoC       : MediaTek MT7981BA dual-core ARM Cortex-A53 1.3GHz
- RAM       : DDR3 256Mbytes, ESMT M15T2G16128A
- Flash     : 128Mbytes NAND Flash, ESMT F50L1G41LB
- WLAN      : MediaTek MT7976CN dual-band Wi-Fi 6
  - 2.4GHz  : b/g/n/ax, MU-MIMO
  - 5GHz    : a/n/ac/ax, MU-MIMO
- Ethernet  : MediaTek MT7531AE
  - LAN     : 10/100/1000 Mbps x4
  - WAN     : 10/100/1000 Mbps x1
- UART      : 1x4 pin header hole on PCB
  - 3.3V, RX, GND, TX (115200, 8N1)
- Buttons   : WPS, Reset
- LEDs      : 1x CPU (Amber/Blue)
              1x Wi-Fi (Amber/Blue)
              1x WAN activity (Amber/Blue)
              4x LAN activity (Amber/Blue)
- Power     : 12VDC, 1A (Center positive polarity)

Note: The LED color is amber or blue, depending on your router's color
(black/white).

MAC address
-----------
+-----------+-------------------+-----------+
| Interface | MAC               | Algorithm |
+-----------+-------------------+-----------+
| WLAN 2.4G | B0:38:6C:xx:xx:xx | label     |
| WLAN 5G   | B2:38:6C:4x:xx:xx |           |
| WAN       | B0:38:6C:xx:xx:xx | label + 1 |
| LAN       | B0:38:6C:xx:xx:xx | label + 3 |
+-----------+-------------------+-----------+
The WLAN 2.4G MAC address was found in 'Factory' partition, 0x4

Installation
------------
1. Download the OEM recovery software (ipTIME Firmware Wizard (11ac))
   from the manufacturer's website
2. Download the *squashfs-factory.bin file from the OpenWrt website
3. Press a reset button, and power up the router (keep pressing the reset button)
4. Wait more than 10 seconds until the CPU LED stop blinking
5. Connect the router (LAN port) to the PC
6. Run the OEM recovery software and follow the instructions
7. Select the *squashfs-factory.bin file during the router recovery process
8. Wait for the router to boot from *squashfs-factory.bin

Limitation: Triggering the WLAN LED for activity on both phy0 (2.4GHz) and phy1 (5GHz)
----------
Currently, the UCI doesn't support triggering a single LED for activity
on multiple WLAN interfaces. As a temporary workaround, the LED is
configured to only indicate activity on `phy1`. If you wish to monitor
`phy0` instead, you must change the device from `phy1-ap0` to `phy0-ap0`
in the LuCI LED configuration.

Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20771
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-20 23:10:11 +01:00
Thibaut VARÈNE
887cab883b mediatek/filogic: fix Cudy WR3000H ethernet port order
Some checks failed
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
Build host tools / Build host tools for linux and macos based systems (push) Waiting to run
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
The ports are physically labelled in reverse order on the device.
This patch aligns logical names with physical ones.
LED order on front of device is correct after this patch.

Fixes: 9d66b8b312
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Link: https://github.com/openwrt/openwrt/pull/20528
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-09 23:07:59 +01:00
Andrii Kuiukoff
b33df7ba33 mediatek: add support for COMFAST CF-WR632AX
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
COMFAST CF-WR632AX is a compact/travel (123.4 mm * 88.7 mm * 34 mm)
wireless WiFi 6 router.

Specification
-------------
- SoC          : MediaTek MT7981B dual-core ARM Cortex-A53 1.3 GHz
- RAM          : DDR3 512 MiB
- Flash        : SPI-NAND 128 MiB (Winbond)
- WLAN         : MediaTek MT7976CN dual-band WiFi 6
  - 2.4 GHz    : b/g/n/ax, MU-MIMO (2x 5 dBi antennas)
  - 5 GHz      : a/n/ac/ax, MU-MIMO (2x 5 dBi antennas)
- Ethernet     :
  - LAN x1     : 10/100/1000 Mbps (MT7981 internal PHY)
  - WAN x1     : 10/100/1000/2500 Mbps (Maxlinear GPY211C)
- USB x1       : 3.0
- UART         : through-hole on PCB
  - assignment : (RX), (TX), (GND), [VCC]
  - settings   : 115200n8
- Buttons x1   : Reset
- LEDs x3      : Status (Blue, Green, Red)
- Fan x1       : PWM, 4-wire, 5 V, 0.3 A, 45 mm * 10 mm
- Power        : 5 VDC, 3 A, Type-C

Flash instructions
------------------
WebUI Method:

1. Install the *squashfs-sysupgrade.bin image using the stock WebUI
   update page.
2. Press and hold the reset button after reboot
   to wipe the stock config.

SSH Method:

1. Import stock firmware settings from backup file
   github.com/andros-ua/owrt-misc/blob/main/cf-wr632ax/backup.file
   Note: WebUI password will be reset to admin1234 after import.
2. Connect via SSH using root:openwrt credentials.
3. Upload the *squashfs-sysupgrade.bin image.
4. Use the command: sysupgrade -n
   All checks should pass.

Return to stock
---------------
Flash a stock firmware
using the OpenWrt sysupgrade method.

Recovery
--------
Power on the router while holding the Reset button until
the LED flashes 5 times.
The U-Boot Flash WebUI will be available at http://192.168.1.1
or
Connect UART and use the U-Boot menu to flash the firmware image
or boot an OpenWrt initramfs image.

OpenWrt U-Boot flash instructions
---------------------------------
1. Flash ordinary OpenWrt image.
2. Login into the device and backup everything, especially 'Factory' part.
3. Unlock mtd partitions:
    apk add kmod-mtd-rw
    insmod mtd-rw i_want_a_brick=1
4. Write new BL2 and FIP:
    mtd write openwrt-mediatek-filogic-comfast_cf-wr632ax-ubootmod-preloader.bin BL2
    mtd write openwrt-mediatek-filogic-comfast_cf-wr632ax-ubootmod-bl31-uboot.fip FIP
5. Set static IP on your PC:
    ip 192.168.1.254 mask 255.255.255.0
6. Serve OpenWrt initramfs image using TFTP server.
7. Reboot device, wait for TFTP recovery to complete.
8. After OpenWrt has booted, perform sysupgrade.

MAC Addresses:
----------------------------------------------------------
| Interface    |  MAC              | Source              |
---------------|-------------------|----------------------
| WAN (label)  | 40:A5:EF:xx:xx:xx | Factory, 0xe000     |
| LAN          | 40:A5:EF:xx:xx:xx | Factory, 0xe000 + 1 |
| WLAN 2.4 GHz | 40:A5:EF:xx:xx:xx | Factory, 0x4        |
| WLAN 5 GHz   | 40:A5:EF:xx:xx:xx | Factory, 0x8000     |
----------------------------------------------------------

Signed-off-by: Andrii Kuiukoff <andros.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20382
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-09 19:33:18 +01:00
Dirk Buchwalder
71ebc54d2a mediatek: filogic: add support for TP-LINK BE450
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
This commit adds support for TP-LINK BE450.

Device specification
--------------------
SoC Type:   MediaTek MT7988D, Cortex-A73, 64-bit
RAM:        512MB
Flash:      SPI NAND GigaDevice (128 MiB)
Ethernet:   MediaTek MT7531AE (3 Ports) + 2.5GbE (internal MT7988 phy) + 10GbE (RTL8261N)

WLAN:       MT7992
WLAN 2g:    MediaTek MT7975N, b/g/n/ax/be, MIMO 4x4
WLAN 5g:    MediaTek MT7979N, a/n/ac/ax/be, MIMO 4x4
LEDs:       8 LEDs, 1 status blue, 2x WIFI blue, 2x Internet
	        blue/orange, 1 LAN blue, 1 usb blue, 1 wps blue, gpio-controlled
Button:     2 (Reset, WPS)
USB port:   Yes
Power:      12 VDC, 2 A
Connector:  Barrel
Bootloader: Main U-Boot - U-Boot 2023.10-rc4. Additionally, ubi0
            partition contain "seconduboot" (also U-Boot 2023.10-rc4)

Serial console (UART), unpopulated, located near the power connector
---------------------
heatsink
|   |
|   |
|   |     +----+-----+------+-------+               +-----------------+
|   |     | TX |  RX |  GND | +3.3V |               | power connector |
+---+     +----+-----+------+-------+               +-----------------+
                                  |
                Don't connect ----+

Disassemble: rm the 2 screws at the bottom and the one at the backside.
             un-clip the case starting at the edge above the LEDs.

Installation (UART)
-------------------
1. Place OpenWrt initramfs image on tftp server with IP 192.168.1.2
2. Attach UART, switch on the router and interrupt the boot process by
   pressing 'Ctrl-C'
3. Load and run OpenWrt initramfs image:
      tftpboot 0x50000000 openwrt-mediatek-filogic-tplink_be450-initramfs-kernel.bin && bootm 0x50000000
4. Run 'sysupgrade -n' with the sysupgrade OpenWrt image

Note: the 10GbE (RTL8261N) is only working if reverting this Realtek target specific commit:
      b77fa45d12

      The second ubi partition (ubi1) is empty and there is no known
      dual-partition mechanism, neither in u-boot nor in the stock firmware.

      NMBM is not used.

Not Working: WED, if activated, MT7992 isn't recognized any more.

Signed-off-by: Dirk Buchwalder <buchwalder@posteo.de>
Link: https://github.com/openwrt/openwrt/pull/20398
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-08 23:39:59 +01:00
Aleksander Jan Bajkowski
58efc5c96b treewide: fix mistaken executable bit on dts files
This commit fixes mistaken executable bit on dts files.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/20676
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-06 22:14:56 +01:00
Daniel Golle
8b6c6978d6 mediatek: add support for BananaPi BPi-R4 Lite
The BPi-R4 Lite is a WiFi-7 router board based on the MT7987 SoC.

Specification :
 - SOC: Mediatek MT7987A (4x Cortex-A53
 - RAM: 2GB
 - Flash: 32MB SPI NOR, 256MB SPI NAND, 8GB eMMC
 - Switch: MediaTek MT7531AE
 - Ports : 4x LAN (1G), 1x SFP (via MT7531), 1x WAN (2.5G)
 - Buttons : Reset & WPS/Mesh
 - LEDs : Status (PWM), SFP
 - USB: on-board VIA VL817 USB3.1/USB2.0 hub
    * 1 - mPCIe B (SIM3)
    * 2 - NGFF-KEYB (SIM1)
    * 3 - USB-A connector
    * 4 - mPCIe A (SIM4)
 - mPCIe: 1x 8GT/s x2 or 2x 8GT/s x1 (configurable via bootloader)
 - RTC: PCF8563
 - mikroBUS socket with SPI, I2C and full UART
 - on-board HT42B534 USB-to-serial for Type-C console port
 - Power: USB Type-C PD 20V, or DC via barrel connector or JST-VH 3.96

Installation:
Uncompress *sdcard.img.gz and write to microSD card, eg. using 'dd'.
Use bootloader menu on the serial console to install SPI-NAND or SPI-NOR,
once installed to SPI-NAND you can use the bootloader menu to install to
eMMC. See instructions for BananaPi R3 for details.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-11-05 14:19:40 +00:00
Daniel Golle
9de7189ed4 mediatek: build image for MT7987 RFB
Import and clean DT and DT-overlay files from MediaTek's SDK to build
an image with various DT-overlays for the MT7987 reference board.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-11-05 14:19:40 +00:00
Aleksander Jan Bajkowski
351deebb3f mediatek: mt7622: fix 2.5G WAN port on Netgear WAX206
Since 6b43a52171, the PHY is using interrupts instead of polling. It
turned out that the interrupt number is wrong and the WAN port doesn't
work. This commit fixes this bug.

Fixes: 6b43a52171 ("mediatek: mt7622: add the missing phy interrupt-parent for WAX206")
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
2025-10-31 09:58:28 +00:00
Qing W
6960d03f11 mediatek: Add support for Acer Predator Connect W6x Ubootmod
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
Product name: Acer Predator Connect W6x
Product link: https://www.acer.com/us-en/predator/networking/wi-fi/predator-connect-w6x/pdp/FF.G2TTA.001

* Specifications:

SOC: MT7986AV
RAM: 1024MB
Flash: 256 MB SPI NAND
Ports: 4 LAN (1G) & 1 WAN (2.5G)
WIFI: MT7976GN + MT7976AN
LED: 1, ws2812b controller

** This commit includes a fix for the GPIO pins for factory/reset and WPS. It was reversed and is now fixed.

* U-Boot Mod Openwrt Installation via UART:

Openwrt Stock Layout Commit: 6e04dccb7a
NOTE: Stock Openwrt is not necessary. You can go straight to ubootmod version of the firmware. However, it is recommended to follow stock layout instructions to backup NAND.

1. Configure TFTP server with IP 192.168.1.66. Copy `openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-initramfs-recovery.itb` to TFTP root and rename to `predator.bin`
2. Interrupt boot by pressing 0 on startup or select `U-Boot Console` in U-Boot Boot Menu.
3. Run setenv `serverip 192.168.1.66; setenv ipaddr 192.168.1.1; tftpboot 0x46000000 predator.bin; bootm` in uboot console.
4. Wait for boot complete on Openwrt initramfs env.
5. Transfer `openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-initramfs-recovery.itb`,
		`openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-squashfs-sysupgrade.itb`,
		`openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-bl31-uboot.fip`,
		`openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-preloader.bin` to router's /tmp/ directory.
6. run `ubidetach -p /dev/mtd5; ubiformat /dev/mtd5 -y; ubiattach -p /dev/mtd5`
7. run `ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB`
8. run `ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB`
9. run `ubimkvol /dev/ubi0 -n 2 -N recovery -s 10MiB`
10. run `ubiupdatevol /dev/ubi0_2 /tmp/openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-initramfs-recovery.itb`
11. install kmod-mtd-rw via opkg or apk.
12. run `insmod /lib/modules/$(uname -r)/mtd-rw.ko i_want_a_brick=1`
13. run `mtd write /tmp/openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-preloader.bin bl2`
14. run `mtd write /tmp/openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-bl31-uboot.fip fip`
15. run `sysupgrade -n /tmp/openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-squashfs-sysupgrade.itb`
16. reboot to ubootmod layout

MTD layout before ubootmod:
```
dev:    size   erasesize  name
mtd0: 00100000 00020000 "bl2"
mtd1: 00080000 00020000 "u-boot-env"
mtd2: 00200000 00020000 "factory"
mtd3: 00200000 00020000 "fip"
mtd4: 00020000 00020000 "prod"
mtd5: 00100000 00020000 "dual"
mtd6: 00100000 00020000 "pot"
mtd7: 06400000 00020000 "ubi"
mtd8: 06400000 00020000 "ubi1"
mtd9: 00800000 00020000 "storage"
```

MTD layout after ubootmod:
```
dev:    size   erasesize  name
mtd0: 00100000 00020000 "bl2"
mtd1: 00080000 00020000 "u-boot-env"
mtd2: 00200000 00020000 "factory"
mtd3: 00200000 00020000 "fip"
mtd4: 00020000 00020000 "prod"
mtd5: 0d200000 00020000 "ubi"
```

Signed-off-by: Qing W <ses1er@gmail.com>
2025-10-31 09:40:07 +00:00
Tianling Shen
8a7de107d8 mediatek: add Konka KOMI A31 support
This board is also as known as E-Life ETR631-T/ETR635-U.

Hardware specification:
  SoC: MediaTek MT7981B 2x A53
  Flash: 128 MB SPI-NAND
  RAM: 256MB DDR3
  Ethernet: 4x 10/100/1000 Mbps
  Switch: MediaTek MT7531AE
  WiFi: MediaTek MT7976C
  Button: Reset, Mesh
  Power: DC 12V 1A

Gain telnet access:
1. Login into web interface, and download the configuration.
2. Uncompress the configuration:
     * Enter fakeroot if you are not login as root.
   tar -zxf <filename>.tar.gz
3. Edit 'etc/passwd', remove root password: 'root::1:0:99999:7:::'.
4. Edit 'etc/rc.local', insert telnetd command before 'exit 0':
   ( sleep 3s; telnetd; ) &
5. Repack the configuration:
   tar -zcf backup.tar.gz etc/
6. Upload new configuration via web interface, now you can connect to
   KOMI A31 via telnet.

Flash instructions:
1. Connect to KOMI A31, backup everything, especially 'Factory' part.
2. Write new BL2:
   mtd write openwrt-mediatek-filogic-konka_komi-a31-preloader.bin BL2
3. Write new FIP:
   mtd write openwrt-mediatek-filogic-konka_komi-a31-bl31-uboot.fip FIP
4. Set static IP on your PC:
   IP 192.168.1.254/24, GW 192.168.1.1
5. Serve OpenWrt initramfs image using TFTP server.
6. Cut off the power and re-engage, wait for TFTP recovery to complete.
7. After OpenWrt has booted, perform sysupgrade.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20357
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-23 00:00:04 +02:00
Shiji Yang
2196089867 mediatek: dts: remove useless SPI cs-gpios property
These devices only have one SPI peripheral. And the chip select pin is
directly controlled by the SPI host hardware. Hence we don't need to
assign empty GPIO phandle for them. This patch also adjust the reg
address of the SPI peripheral node to follow the cs-gpios changes.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19845
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-20 00:28:15 +02:00
Rosen Penev
987b1484a6 mediatek: fix wrong reset_gpio
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Should be reset-gpio. Also added GPIO_ACTIVE_HIGH for clarity.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20116
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-08 14:26:25 +02:00
Rosen Penev
1ab12d5d8c treewide: enable-gpio to enable-gpios
The former is deprecated. Fixes dtc warning.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20116
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-08 14:26:24 +02:00
Rosen Penev
c186d17fa5 treewide: replace numbers with GPIO_ACTIVE
The latter is more descriptive in terms of what's going on.

Mostly found with

git grep gpios\  | grep 0\>
git grep gpios\  | grep 1\>

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20116
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-08 14:26:24 +02:00
Rosen Penev
3a79019664 treewide: reset-gpio to reset-gpios
The former is deprecated. Fixes dtc warning.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20116
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-08 14:26:24 +02:00
Rosen Penev
5572d35f77 treewide: gpio to gpios
The former is deprecated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20116
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-08 14:26:24 +02:00
Felix Fietkau
50c51504fd mediatek: fix polarity of user button on openwrt-one
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-10-02 09:54:32 +02:00
Bjørn Mork
90f0d87632 mediatek: filogic: load precal data for Unifi 6 Plus
Point the driver to the precal section of the emmc "factory" partition.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
Link: https://github.com/openwrt/openwrt/pull/20154
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-27 00:32:40 +02:00
Bjørn Mork
88bf53f5af mediatek: filogic: use nvmem for Unifi 6 Plus caldata
Replace the hotplug script with nvmem now that loading data from emmc
partitions is supported.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
Link: https://github.com/openwrt/openwrt/pull/20154
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-27 00:32:40 +02:00
Bjørn Mork
78257d8fe8 mediatek: filogic: use nvmem for Unifi 6 Plus WiFi mac
Avoids the occacial lost race, where VAPs are created before the hotplug
script has updated the phy mac address.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
Link: https://github.com/openwrt/openwrt/pull/20154
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-27 00:32:40 +02:00
Elwin Huang
b4a528ecba mediatek: ap7622-wh1: Enable bluetooth interface
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
Add missing bluetooth support btif in dts.

Signed-off-by: Elwin Huang <s09289728096@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20181
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-09-26 11:57:33 +02:00
Shin Sato
49b9b93b19 mediatek: add support for Buffalo WSR-6000AX8 and AX8P
Some checks failed
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Has been cancelled
This commit adds support for Buffalo WSR-6000AX8 and AX8P models.

Hardware
--------
SOC:       MediaTek MT7986B
RAM:       512MB
FLASH:     128MB SPI-NAND (Winbond)
WIFI 2.4G: (Embedded in SOC) b/g/n/ax, MIMO 4x4
WIFI 5G:   (Embedded in SOC) a/n/ac/ax, MIMO 4x4
ETHERNET:  2.5GbE MaxLinear GPY211C (eth1: WAN)
ETHERNET:  MediaTek MT7531AE 3xGbE (eth0: LAN1, LAN2, LAN3)
UART:      3.3V 115200 8N1

Serial(UART) Pin Layout
-----------------------

   +-------+-------+-------+-------+
J4 |  RX   |  TX   |  GND  |(3.3V) |
   +-------+-------+-------+-------+
           (Bottom Side)

MAC Address Table
-----------------
lan1-3:    board_data 0x4(text)
eth1/WAN:  board_data 0x4(text)
WIFI 2.4G: lan1 + 2
WIFI 5G:   lan1 + 9

Installation
------------

1. Set up a TFTP server with the IP address "192.168.11.2".

2. Rename the OpenWrt initramfs image to "linux.ubi-recovery" and place it
   in the TFTP server's root directory.
3. While holding down the AOSS button, power on the WSR-6000AX8 (or AX8P).

4. The device will automatically download the initramfs image
   from the TFTP server and boot into it.
5. Once booted, run "sysupgrade -n" using the OpenWrt sysupgrade image
   to complete the installation.

Recovery
--------

1. Decrypt the official firmware image using "buffalo-enc".

   example:
   $ buffalo-enc -d -i wsr_6000ax8_jp_100 -o wsr_6000ax8_jp_100.dec \
     -l -O 0xc8

2. Run "sysupgrade -F -n" with the decrypted image.

Signed-off-by: Shin Sato <shin.sugar.ssyysy2021@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/13107
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-22 00:57:51 +02:00
Ari Kurniawan
7cd10add2d mediatek: filogic: add support for Totolink X6000R
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Specification :
- SOC : Mediatek MT7981B (1.3GHz)
- RAM : 256MB
- Flash : 16MB SPI NOR
- Ports : 4 LAN (1G) & 1 WAN (1G)
- WIFI : MediaTek dual-band WiFi 6
  - 2.4 GHz : b/g/n/ax, MIMO 2x2
  - 5 GHz   : a/n/ac/ax, MIMO 2x2
- Buttons : Reset & WPS/Mesh
- LEDS : WAN (Green), Status (Red & Blue)
- Power : 12V1A

Install via OEM web ui:
Upload the sysupgrade image to firmware upgrade page on OEM web ui

Install via recovery / revert to stock firmware:
1. Unplug from power
2. Download the Sysupgrade (for openwrt installation) or OEM Factory image (for revert to stock firmware)
3. Set your computer ethernet IP to 192.168.1.X, subnet 255.255.255.0 (X=your chosen ip number ranging from 2-254)
4. Press and hold reset button while turn on / plug power adapter to the router. Wait untill ALL LAN green LED turn on, then release the reset button.
5. Plug the LAN cable from your computer into LAN 1 port then open web browser, and type in the address column : 192.168.1.1
6. Upload the sysupgrade / oem factory image
7. Wait until the router finished flashing (the router will reboot)
8. Set ethernet ip to dhcp
9. Open 192.168.1.1 (for openwrt install) / 192.168.0.1 (for OEM firmware)

Signed-off-by: Ari Kurniawan <noobhek@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20035
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-21 15:49:15 +02:00
Elwin Huang
8b891001f6 mediatek: filogic: add support for AsiaRF AP7986-003
- SoC           : MediaTek MT7986AV, Quad-core 2.0 GHz ARM Cortex-A53 CPU
- RAM           : DDR3 512 MiB (Micron MT41K256M16TW-107)
- Flash         : SPI-NAND 128 MiB (Winbound W25N01GVZEIG)
- Ethernet      : 6 ports
  - LAN :
      5x 10/100/1000 Mbps RJ-45 Port
  - WAN :
      1x 10/100/1000/2500 Mbps RJ-45 Port (MaxLinear GPY211B1VC-LN8A)
- LED           : 19x LEDs (Green)
    1x  Power
    1x  Status (PWM-LED)
    1x  Debug (PWM-LED)
    2x  WiFi activity
    10x Ethernet LAN activity
    4x  Ethernet WAN activity
- UART          : 1x4 pin header on PCB [J1]
  - arrangement : 3.3V, RX, TX, GND
  - settings    : 115200, 8n1
- Button        : 3x (Reset, WPS, Power)
- WiFi          : 2x
    WiFi 6 2.4 Ghz + 5 Ghz (Mediatek MT7975N+MT7975PN)
- Socket        :
    1x Raspberry header 13x2
    1x JTAG 10x2
    1x USB-A (USB 3.0)
- Power         : 12V DC, 3A

MAC addresses :
    WLAN:       00:0A:52:xx:xx:xx   (Factory, 0x6)
    LAN:        00:0A:52:xx:xx:xx   (Factory, 0x24)
    WAN:        00:0A:52:xx:xx:xx   (Factory, 0x2a)

Flash instruction through LuCI:

This device is flashed OpenWRT base firmware with this target.
The LuCI webpage is integrated in default for upgrading.

Flash instruction through u-boot:

1. Prepare the TFTP server on PC.
2. Connect uart to PC, select "2. Upgrade firmware" in u-boot menu.
3. Select "0 - TFTP client (Default)", input client IP, server IP, IP netmask, flashed bin file path
4. Wait about 20 seconds to complete flashing

Signed-off-by: Elwin Huang <s09289728096@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20071
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-20 19:13:47 +02:00
Elwin Huang
73e04e2464 mediatek: add support for AsiaRF AP7622-WH1
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
- SoC           : MediaTek MT7622A, dual-core 1.35 Ghz ARM Cortex-A53 CPU
- RAM           : DDR3 512 MiB (Nanya NT5CC256M16ER-EKI)
- Flash         : SPI-NAND 128 MiB (Winbond W25N01GVZEIG)
- Ethernet      : 5 port Switch
    - LAN :
        4x 10/100/1000 Mbps RJ-45 Port
    - WAN :
        1x 10/100/1000 Mbps RJ-45 Port
- LED           : 10x LEDs
    1x Power (Blue, GPIO)
    1x WiFi (Green, GPIO)
    2x MiniPCIe (Orange)
    1x M.2 B Key (Red)
    5x Ethernet activity (White)
- UART          : 1x4 pin header on PCB [J19]
    - arrangement : 3.3V, TX, RX, GND
    - settings    : 115200, 8n1
- Button        : 2x (Reset, WPS)
- GPS           : 1x (Quectel L76-L)
- WiFi          : 2x
    WiFi 4 (MediaTek MT7622A)
    WiFI HaLow (AsiaRF MM610X-001)
- BT            : BT 4.2/BLE 5.0 (MediaTek MT7622A)
- Socket        :
    2x MiniPCIe (PCIe Gen2 + USB 2.0) with extra SPI interface (NI)
    1x M.2 B key (USB 3.0)
    1x SIM Card
    1x USB-A (USB 2.0)
- Power         : 12V DC, 1A

MAC addresses :
    WLAN:       00:0A:52:xx:xx:xx   (Factory, 0x6)
    LAN:        00:0A:52:xx:xx:xx   (Factory, 0x7fff4)
    WAN:        00:0A:52:xx:xx:xx   (Factory, 0x7fffa)

Note: To use SPI interface on mPCIe slot, weld 4x 0402 0R resistors on [R832-835] or [R960-963]
mPCIe mapping:
    45# - SPI_CLK
    47# - SPI_MISO
    49# - SPI_MOSI
    51# - SPI_CSN

Flash instruction through LuCI:

This device is flashed OpenWRT base firmware with this target.
The LuCI webpage is integrated in default for upgrading.

Flash instruction through u-boot:

1. Prepare the TFTP server on PC.
2. Connect uart to PC, select "2. System Load Linux Kernel then write to Flash via TFTP." in u-boot menu.
3. input flashed bin file path, server IP, client IP
4. Wait about 20 seconds to complete flashing

Signed-off-by: Elwin Huang <s09289728096@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19962
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-18 23:28:59 +02:00
Vladimir Epifantsev
9241f29c0e mediatek: filogic: add Keenetic Sprinter (KN-3711) support
Specification:
    SoC: Mediatek MT7981BA
    RAM: 512 MB DDR4 RAM
    Flash: Winbond W25N01GV 128 MB SPI-NAND (dual boot on OEM)
    WiFi: MT7976CN DBDC AX
    Switch: MediaTek MT7531AE (3x LAN Gigabit ports) + Internal Gbe Phy (1x WAN Gigabit port)
    GPIO: 4x LED (power, internet, fn, wifi), 2x buttons (wps, reset), 1x switch (mesh)

UART Interface:
    Pins: VCC, TX, RX, NC, GND
    Settings: 115200, 8N1

Flashing via TFTP:
    1. Connect your PC and router to the first LAN port, configure PC interface using IP 192.168.1.2, mask 255.255.255.0
    2. Save the factory image of the OpenWRT firmware, renamed to KN-3711_recovery.bin, on the TFTP server
    3. Hold the reset button and power up the device
    4. Keep the button pressed until the status LED starts blinking

Signed-off-by: Vladimir Epifantsev <volatilefield@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19633
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-18 23:16:48 +02:00
Rhnn Hur
3a0581adc8 mediatek: add missing eeprom for ipTIME AX3000M
This change fixes the eeprom load failure while on boot

Signed-off-by: Rhnn Hur <hurrhnn@icmp.kr>
Link: https://github.com/openwrt/openwrt/pull/20044
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-14 12:52:24 +02:00
Donghyun Ko
2503e5bc37 mediatek: add support for ipTIME AX7800M-6E
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Specification
-------------
- SoC       : MediaTek MT7986AV quad-core ARM Cortex-A53 2GHz
- RAM       : DDR4 512Mbytes, Nanya Technology NT5AD256M16E4
- Flash     : 128Mbytes NAND Flash, ESMT F50L1G41LB
- WLAN      : MediaTek MT7976DAN, MediaTek MT7916AN, MediaTek MT7976AN
  - 2.4GHz  : b/g/n/ax, Multi User MIMO
  - 5GHz    : a/n/ac/ax, Multi User MIMO
  - 6GHz    : ax, Multi User MIMO
- Ethernet  : 10/100/1000 Mbps x4, LAN (MediaTek MT7531AE)
              10/100/1000/2500 Mbps x1, WAN (MaxLinear GPY211C0VC)
- UART      : 1x4 pin header on PCB
  - [J1] 3.3V, TX, RX, GND (115200, 8N1)
- Buttons   : WPS, Reset
- Switches  : Rfkill Slide Switch
- USB       : 1x USB 3.0 (MediaTek MT7986AV peripheral)
- FAN       : 1x Fan (off - slow - fast)
- LEDs      : 1x Power (Blue)
              1x CPU (Blue)
              1x Wi-Fi 6GHz (Blue)
              1x Wi-Fi 5GHz (Blue)
              1x Wi-Fi 2.4GHz (Blue)
              4x LAN activity (Blue)
              1x WAN activity (Blue)
              1x USB 3.0 (Blue)
- Power     : 12VDC, 3.5A (Center positive polarity)

MAC address
-----------
+-----------+-------------------+------------------------+
| Interface | MAC               | Algorithm              |
+-----------+-------------------+------------------------+
| WLAN 2.4G | 58:86:94:xx:xx:xx | label1                 |
| WLAN 5G   | 5A:86:94:xx:xx:xx | label2 with LA Bit set |
| WLAN 6G   | 5A:86:94:xx:xx:xx | label1 with LA Bit set |
| WAN       | 58:86:94:xx:xx:xx | label1 + 1             |
| LAN       | 58:86:94:xx:xx:xx | label1 + 3             |
+-----------+-------------------+------------------------+
The WLAN 2.4G MAC address (label1) was found in 'Factory' partition, 0xA0004
The WLAN 5G MAC address (label2) was found in 'Factory' partition, 0x4

Installation
------------
1. Download the OEM recovery software (ipTIME Firmware Wizard (11ac))
   from the manufacturer's website
2. Download the *squashfs-factory.bin file from the OpenWrt website
3. Press a reset button, and power up the router (keep pressing the reset button)
4. Wait more than 10 seconds until the CPU LED stop blinking
5. Connect the router (LAN port) to the PC
6. Run the OEM recovery software and follow the instructions
7. Select the *squashfs-factory.bin file during the router recovery process
8. Wait for the router to boot from *squashfs-factory.bin

Note: The router will automatically reboot if no file is uploaded within
55 seconds.

Fan Control
------------
The fan speed is controlled by writing a value from 0 to 2 to the
`fan1_target` file.

```
cd /sys/devices/platform/gpio-fan/hwmon/hwmon2

echo '0' > fan1_target // off
echo '1' > fan1_target // slow
echo '2' > fan1_target // fast
```

Limitation: Enabling Wi-Fi 6E
----------
Wi-Fi 6E (6GHz) does not work out of the box on LuCI.
After installation, you need to configure a few settings in the `radio1`
and `default_radio1` sections of the `/etc/config/wireless`.
Once you have made these changes, you can enable and use Wi-Fi 6E.

In the `radio1` section, you need to add three common options:
- band: must be set to `6g`
- country: a valid country code for the 6GHz band
- channel: a preferrend scanning channel (PSC) for 6GHz

In the `default_radio1` section, you need to add the SSID and key:
- ssid: The public name of your Wi-Fi network
- key: The Wi-Fi password
- encryption: must be set to either `sae` for WPA3 or `owe` for OWE
  (open network)

Example:

```
config wifi-device 'radio1'
        ...
        option band '6g'
        option country 'KR'
        option channel '37'
        ...

config wifi-iface 'default_radio1'
        ...
        option ssid 'my_wifi_6e_name'
        option key 'my_strong_password1234'
        option encryption 'sae'
        ...
```

Note: A list of all the 6GHz PSC channels:

```
5, 21, 37, 53, 69, 85, 101, 117, 133, 149, 165, 181, 197, 213, and 229
```

Limitation: Maximum Transmit Power
----------
The maximum transmit power is currently broken. In the drop-down menu,
you can only choose between "driver default" and "255 dBm (2147493647
mW)". There is currently no workaround for the issue. Please leave the
maximum transmit power set to "driver default".

Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19763
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-13 18:41:50 +02:00
Paweł Owoc
f26260c7e7 mediatek: filogic: Add label wan and cpu for Zyxel EX5601-T0
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Add labels wan and cpu for ethernet ports.

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19968
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-11 00:11:30 +02:00