Commit Graph

24129 Commits

Author SHA1 Message Date
Til Kaiser f7cac23dc5 kernel: usb-dwc3-qcom: package legacy Qualcomm glue driver
Linux 6.18 now builds both dwc3-qcom.ko and dwc3-qcom-legacy.ko
under CONFIG_USB_DWC3_QCOM. [1]

Upstream qcom-ipq4019.dtsi still uses the legacy Qualcomm DWC3 DT
layout, so ipq40xx boards require the legacy glue driver for USB
host bring-up.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=b958b03c82d2a1c470225355e43248c679a949a5

Signed-off-by: Til Kaiser <mail@tk154.de>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj ac9ea1be34 mt76: use hrtimer_setup() in mt76x02u beacon init
Replace the two-step hrtimer initialization pattern with a single
consolidated call to hrtimer_setup().
The legacy approach of calling hrtimer_init() followed by manual
assignment to timer.function is deprecated. The new hrtimer_setup()
helper atomically initializes the timer and assigns the callback
function in one operation, eliminating the race-prone intermediate
state where the timer is initialized but lacks a handler.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj 0584503bab mac80211: ath9k: gpio: adapt to 6.16+ gpio_chip API change
Linux 6.16 changed the return type of gpio_chip.set() from void to int.
Add a version check so the driver builds correctly on both older and
newer kernels[1].

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.16&id=fb52f3226cab41b94f9e6ac92b1108bce324e700

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj e0a8c4fc82 mac80211: restore pre-6.14 debugfs_fops handling
Reintroduce old-style debugfs file_operations for kernels < 6.14 and
switch the drivers to use debugfs_short_fops + debugfs_create_file_aux
on >= 6.14. This restores compatibility with older kernels while keeping
the new debugfs API working on 6.14+.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj 364be1fd7f mac80211: fix build failure on kernel 6.18
Kernel since version 6.16 defines `SOCKWQ_ASYNC_NOSPACE` and
SOCKWQ_ASYNC_WAITDATA` in the socket_flags enum, which causes redefinition
errors when compiling the backport package[1].
Since kernel 6.12 also has them defined, the test and definition of these
constants have been completely abandoned. Thanks to this, there are
no compilation errors on either kernel 6.12 or 6.18.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.16&id=0e81cfd971dc4833c699dcd8924e54a5021bc4e8

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj 94c7f4a25f packages: 6.18: update modules files
Update modules files for kernel 6.18.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj 354a26b094 crypto: eip93: use in-tree driver for kernel 6.18
This patch set introduces support for using the in-tree (mainline)
EIP93 crypto driver for kernel 6.18 and later, along with additional
improvements and fixes:
 - Conditional Kconfig/Makefile handling for crypto-hw-eip93 to enable use of the mainline driver with kernel 6.18+.
 - Patch 926: Use software AES fallback for small requests in the EIP93 driver.
 - Patch 927: Add `mediatek,mtk-eip93` compatible string for upstream kernel device trees.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj 2569a339ed packages: sctp: 6.18: add missing symbol
Add missing CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA256 for kernel 6.18

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
John Audia 460afd1045 kernel: kmod-fs-nfs-v4: add option for kernel-6.18
Add a config option for the 6.18 series of kernels

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj c1599ce82e package: gpio-button-hotplug: adapt to kernel 6.18
Change GPIOF_ACTIVE_LOW to gpiod_toggle_active_low

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Ignat Loskutov e9531860e6 wolfssl: update to 5.9.0
Release Notes:
https://www.wolfssl.com/wolfssl-5-9-0-released/

Fixes CVEs:
- CVE-2026-3548
- CVE-2026-3549
- CVE-2026-3547
- CVE-2026-2646
- CVE-2026-3849
- CVE-2026-0819
- CVE-2026-1005
- CVE-2026-2645
- CVE-2026-3230
- CVE-2026-3229
- CVE-2026-3579
- CVE-2026-3580
- CVE-2026-3503
- CVE-2026-4159
- CVE-2026-4395

Signed-off-by: Ignat Loskutov <ignat.loskutov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22595
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-03-28 10:24:25 +01:00
Felix Fietkau 714f657f3f netifd: use procd_add_reload_data_trigger
Reload config if any network or wifi interfaces/devices were changed
via procd data.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-27 20:04:04 +01:00
Felix Fietkau 95e2b3e9b8 procd: add support for multiple arguments to procd_add_reload_data_trigger
This allows triggering on multiple types of procd data changes for
config reload.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-27 20:04:04 +01:00
Felix Fietkau 55a6831eee wifi-scripts: add support for passing uuid to hostapd
This is needed to maintain a shared WPS device UUID across radios.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-27 20:04:04 +01:00
Daniel Golle 27568d21d3 kernel: add DSA driver for MaxLinear MxL862xx switches
Backport upstream driver and apply pending downstream patches to
support using the MaxLinear MxL86252 and MxL86282 switches.

The driver supports a native proprietary 8-byte DSA special tag format
(mxl862xx) as well as using an 802.1Q-based DSA tag (mxl862xx-8021q).

All basic bridge, VLAN and LAG operations are supported. A single port
can be used as mirror port. Hardware counters are made available as
ethtool stats or directly serve as interface counters (bytes,
packets).

The switch runs a complex ZephyrOS-based firmware on an integrated
ARC microcontroller, the driver uses the firmware management API over
MDIO to interact with the switch hardware.

Note that the firmware needs to be rather recent (WSP 1.0.78 or later)
to work well with this driver. It can be updated at runtime using devlink.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-03-27 15:49:23 +00:00
Dmitry Mostovoy eb6dd61a8d mediatek: add cudy wr3000h-v1 ubootmod
This allows us to use the full size of nand,
which extends ubi size from 64Mb to 122.25Mb.

1. Log in to the device and backup all the partitions,
especially unique "Factory" and "bdata" partitions
from System -> Backup / Flash Firmware -> Save mtdblock contents.
2. Install kmod-mtd-rw to unlock mtd partitions for writing
  apk update && apk add kmod-mtd-rw && insmod mtd-rw i_want_a_brick=1

3. Write new OpenWrt (U-Boot Layout) "BL2" and "FIP":
  mtd -e BL2 write openwrt-mediatek-filogic-cudy_wr3000h-v1-ubootmod-preloader.bin BL2
  mtd -e FIP write openwrt-mediatek-filogic-cudy_wr3000h-v1-ubootmod-bl31-uboot.fip FIP
4. Set static IP on your PC: "192.168.1.254", gateway "192.168.1.1"
5. Serve openwrt-mediatek-filogic-cudy_wr3000h-v1-ubootmod-initramfs-recovery.itb
using TFTP server.
6. Connect Router LAN with PC LAN.
7. Cut off the power and re-engage, wait for TFTP recovery to complete.
8. After OpenWrt initramfs recovery has booted,
clean "/dev/mtd5" ubi partition to utilize maximum of free space:
  ubidetach -p /dev/mtd5; ubiformat /dev/mtd5 -y; ubiattach -p /dev/mtd5
  ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB
  ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB
9. Perform sysupgrade.

Signed-off-by: Dmitry Mostovoy <stavultras@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21943
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-27 11:27:39 +01:00
Dmitry Mostovoy cfc17e81e1 mediatek: add cudy wr3000e-v1 ubootmod
This allows us to use the full size of nand,
which extends ubi size from 64Mb to 122.25Mb.

1. Log in to the device and backup all the partitions,
especially unique "Factory" and "bdata" partitions
from System -> Backup / Flash Firmware -> Save mtdblock contents.
2. Install kmod-mtd-rw to unlock mtd partitions for writing
  apk update && apk add kmod-mtd-rw && insmod mtd-rw i_want_a_brick=1

3. Write new OpenWrt (U-Boot Layout) "BL2" and "FIP":
  mtd -e BL2 write openwrt-mediatek-filogic-cudy_wr3000e-v1-ubootmod-preloader.bin BL2
  mtd -e FIP write openwrt-mediatek-filogic-cudy_wr3000e-v1-ubootmod-bl31-uboot.fip FIP
4. Set static IP on your PC: "192.168.1.254", gateway "192.168.1.1"
5. Serve openwrt-mediatek-filogic-cudy_wr3000e-v1-ubootmod-initramfs-recovery.itb
using TFTP server.
6. Connect Router LAN with PC LAN.
7. Cut off the power and re-engage, wait for TFTP recovery to complete.
8. After OpenWrt initramfs recovery has booted,
clean "/dev/mtd5" ubi partition to utilize maximum of free space:
  ubidetach -p /dev/mtd5; ubiformat /dev/mtd5 -y; ubiattach -p /dev/mtd5
  ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB
  ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB
9. Perform sysupgrade.

Signed-off-by: Dmitry Mostovoy <stavultras@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21943
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-27 11:27:39 +01:00
Dmitry Mostovoy b7b4938303 mediatek: add cudy wr3000s-v1 ubootmod
This allows us to use the full size of nand,
which extends ubi size from 64Mb to 122.25Mb.

1. Log in to the device and backup all the partitions,
especially unique "Factory" and "bdata" partitions
from System -> Backup / Flash Firmware -> Save mtdblock contents.
2. Install kmod-mtd-rw to unlock mtd partitions for writing
  apk update && apk add kmod-mtd-rw && insmod mtd-rw i_want_a_brick=1

3. Write new OpenWrt (U-Boot Layout) "BL2" and "FIP":
  mtd -e BL2 write openwrt-mediatek-filogic-cudy_wr3000s-v1-ubootmod-preloader.bin BL2
  mtd -e FIP write openwrt-mediatek-filogic-cudy_wr3000s-v1-ubootmod-bl31-uboot.fip FIP
4. Set static IP on your PC: "192.168.1.254", gateway "192.168.1.1"
5. Serve openwrt-mediatek-filogic-cudy_wr3000s-v1-ubootmod-initramfs-recovery.itb
using TFTP server.
6. Connect Router LAN with PC LAN.
7. Cut off the power and re-engage, wait for TFTP recovery to complete.
8. After OpenWrt initramfs recovery has booted,
clean "/dev/mtd5" ubi partition to utilize maximum of free space:
  ubidetach -p /dev/mtd5; ubiformat /dev/mtd5 -y; ubiattach -p /dev/mtd5
  ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB
  ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB
9. Perform sysupgrade.

Signed-off-by: Dmitry Mostovoy <stavultras@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21943
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-27 11:27:39 +01:00
Dmitry Mostovoy 6b3b7c7dc1 mediatek: add cudy wr3000p-v1 ubootmod
This allows us to use the full size of nand,
which extends ubi size from 64Mb to 122.25Mb.

1. Log in to the device and backup all the partitions,
especially unique "Factory" and "bdata" partitions
from System -> Backup / Flash Firmware -> Save mtdblock contents.
2. Install kmod-mtd-rw to unlock mtd partitions for writing
  apk update && apk add kmod-mtd-rw && insmod mtd-rw i_want_a_brick=1

3. Write new OpenWrt (U-Boot Layout) "BL2" and "FIP":
  mtd -e BL2 write openwrt-mediatek-filogic-cudy_wr3000p-v1-ubootmod-preloader.bin BL2
  mtd -e FIP write openwrt-mediatek-filogic-cudy_wr3000p-v1-ubootmod-bl31-uboot.fip FIP
4. Set static IP on your PC: "192.168.1.254", gateway "192.168.1.1"
5. Serve openwrt-mediatek-filogic-cudy_wr3000p-v1-ubootmod-initramfs-recovery.itb
using TFTP server.
6. Connect Router LAN with PC LAN.
7. Cut off the power and re-engage, wait for TFTP recovery to complete.
8. After OpenWrt initramfs recovery has booted,
clean "/dev/mtd5" ubi partition to utilize maximum of free space:
  ubidetach -p /dev/mtd5; ubiformat /dev/mtd5 -y; ubiattach -p /dev/mtd5
  ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB
  ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB
9. Perform sysupgrade.

Signed-off-by: Dmitry Mostovoy <stavultras@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21943
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-27 11:27:39 +01:00
Dmitry Mostovoy 1bf57600cf arm-trusted-firmware-mediatek: add Cudy DDR4 target
Since there are some similar devices from Cudy (only WR3000P now)
this will allow to create OpenWrt U-Boot layout for all of them
using same DDR4 target.

Signed-off-by: Dmitry Mostovoy <stavultras@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21943
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-27 11:27:39 +01:00
Zhi-Jun You 0a6683e4ab wifi-scripts: ucode: make he_twt_required depends on he_twt_responder
Doesn't make sense to have he_twt_required enabled without
he_twt_respodner.

Signed-off-by: Zhi-Jun You <hujy652@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/22577
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-03-25 16:02:23 +01:00
Zhi-Jun You 3b69cf0844 wifi-scripts: ucode: add support for setting he_twt_responder
In hostapd conf this option is set to 1 by default.
Then it's set to 0 if the HE MAC capability bit is not present.

Add an option in wifi-scripts to manually control it.

Signed-off-by: Zhi-Jun You <hujy652@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/22577
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-03-25 16:02:23 +01:00
Nick Hainke 20d6296141 hostapd: update to 2026-03-23
Remove upstreamed patch:
- 001-RSN-Fix-pmksa_cache_flush-prototype-mismatch-in-non-.patch
  -> https://git.w1.fi/cgit/hostap/commit/?id=f54565c6293d03bf7da5b7c4af496a62c51f0aaf

Tested-By: Daniel Pawlik <pawlik.dan@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22578
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-03-25 14:00:49 +01:00
Felix Fietkau befa61b1b6 bridger: update to Git HEAD (2026-03-23)
de7e00a5a673 flow: Fix vlan forwarding check with vlan filtering disabled

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-23 10:57:16 +01:00
Felix Fietkau 6c12207ff0 mt76: update to Git HEAD (2026-03-21)
a665659dee50 wifi: mt76: fix beacon monitor for MBSSID nontransmitted BSS
1b26f5f63d42 wifi: mt76: mt7996: Decrement sta counter removing the link in mt7996_mac_reset_sta_iter()
0c1dedac48c3 wifi: mt76: mt7996: Switch deflink to seclink only if link lookup does not fail
7fa21be01b97 wifi: mt76: mt7996: Rely on msta_link link_id in mt7996_vif_link_remove()
492a407111c3 wifi: mt76: mt7996: Account active links in valid_links fields
ade83e44eda0 wifi: mt76: mt7996: Move mlink deallocation in mt7996_vif_link_remove()
efebeea5c058 wifi: mt76: mt7996: Destroy vif active links in mt7996_remove_interface()
a4c790aef40d wifi: mt76: mt7996: Add mcu APIs to enable/disable vif links.
018f60316d4d wifi: mt76: mt7996: Destroy active sta links in mt7996_mac_sta_remove()

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-23 10:57:16 +01:00
Felix Fietkau 68a35447d9 ucode: nl80211: fix HE MCS parsing
Do not parse an u8 array as u16.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-23 10:57:16 +01:00
Hauke Mehrtens 9b1f73ec31 uboot-lantiq: fix C-style comments in AWK scripts
Modern gawk rejects C-style /* ... */ comments in AWK code, treating
them as regex patterns where '*' has nothing to quantify. Replace all
such comments with AWK-style '#' comments in lantiq_bdi_conf.awk and
lantiq_ram_init_uart.awk.

Also replace the pattern 'if (x) /* comment */ else action' which used
a C comment as a null statement with the equivalent 'if (!x) action'.

Fixes build error:
  awk: error: ? * + or {interval} not preceded by valid subpattern

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/22458
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-03-23 01:23:33 +01:00
Zoltan HERPAI d37289d0b8 starfive: add ubootenv support
The VF2 boards store their ubootenv on /dev/mtd1 which is a SPI flash
partition. Add support for reading this partition in uboot-envtools,
and add the package into the VF2 image.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-03-22 12:41:54 +01:00
Fire Chen 04308ad284 uboot-envtools: ipq60xx: add support for JDCloud devices
Add uboot-envtools support for JDCloud RE-CS-02 RE-CS-07 and RE-SS-01

Signed-off-by: Fire Chen <firedevel@icloud.com>
Link: https://github.com/openwrt/openwrt/pull/21787
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-21 22:22:39 +01:00
Fire Chen 0c068c6c2f qualcommax: ipq60xx: add Link NN6000v1/v2 support
NN6000v1 Specifications:
SoC:     Qualcomm IPQ6000 1.2GHz
RAM:     K4B4G1646E-BCMA 512MiB x2 = 1 GiB
Flash:   FORESEE 256GB eMMC
ETH:     QCA8075 (2x LAN, 1x WAN)
WLAN1:   QCN5022 2.4GHz AX 2x2
WLAN2:   QCN5052 5GHz AX 2x2
Power:   DC 12V
Button:  Reset, Wps
USB:     1x 3.0

NN6000v2 Specifications:
SoC:     Qualcomm IPQ6000 1.2GHz
RAM:     MT41K512M16VRN-107 IT:P 1GiB x2 = 2 GiB
Flash:   FORESEE 256GB eMMC
ETH:     QCA8075 (4x LAN, 1x WAN)
WLAN1:   QCN5022 2.4GHz AX 2x2
WLAN2:   QCN5052 5GHz AX 2x2
Power:   DC 12V
Button:  Reset, Wps
USB:     1x 3.0

Install via UART:
  1. Download the initramfs image, rename it to
     initramfs.itb, host it with the tftp server.
  2. Interrupt U-Boot and run these commands:
     tftpboot initramfs.itb
     bootm
  3. After openwrt boots up, use scp or luci web
     to upload sysupgrade.bin to upgrade.
Install via Uboot WebUI:
   - Only work when you flash a custom uboot with webui
   - Push the reset button for 5 seconds, then use broswer to
     access http://192.168.1.1/, then upload factory.bin.

Signed-off-by: Fire Chen <firedevel@icloud.com>
Link: https://github.com/openwrt/openwrt/pull/21787
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-21 22:22:39 +01:00
Nick Hainke a47208bd96 hostapd: update to 2026-03-19
Remove upstreamed patch:
- 001-PASN-Fix-the-compilation-errors-without-CONFIG_PASN.patch

Add patch:
- 001-RSN-Fix-pmksa_cache_flush-prototype-mismatch-in-non-.patch

Link: https://github.com/openwrt/openwrt/pull/22517
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-03-21 19:29:23 +01:00
Vladimir Palevich fde5d2e210 hostapd: fix memory leak in rrm ubus interface
Add missing wpabuf_free calls to the hostapd_rrm_nr_set and
hostapd_rrm_beacon_req functions.

Signed-off-by: Vladimir Palevich <palevichva@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22538
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-03-21 18:58:03 +01:00
Zoltan HERPAI 283c45f087 sunxi: add PineCube support
PineCube is a low-powered, open source IP camera with OV5640.

Specifications:
SoC:      Allwinner S3 Cortex-A7
DRAM:     128MB DDR3 integrated
Power:    microUSB
Storage:  microSD / 16MByte SPI flash
USB:      1x 2.0
Network:  10/100Mbit ethernet with passive PoE (4-18V)
Wireless: RTL8189ES (unsupported)
Debug:    Serial UART on 26-pin GPIO
Features: 5 mpx OV5640 camera, microphone, IR LEDs

Flashing instructions:
Standard sunxi SD card installation procedure - copy image to SD card,
insert into SD card slot on the device and boot.

Link: https://github.com/openwrt/openwrt/pull/22422
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-03-21 16:43:47 +01:00
Andrew Sim fc5aed2ff2 wifi-scripts: ucode: use correct antenna count for SU beamformee
The hostapd configuration for SU-BEAMFORMEE was incorrectly using the
beamformer antenna count instead of the beamformee antenna count for the
[BF-ANTENNA-N] capability string.

Fix this by using config.beamformee_antennas instead.

Signed-off-by: Andrew Sim <andrewsimz@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22511
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-20 11:09:26 +01:00
Edward Chow a1f5273d27 mac80211: ath9k: patch hw.c for gpio mask from dt
"qca,gpio-mask" used to be read between ath9k_hw_init() and
ath9k_init_queues(). After 12913c3c56
it is read in ath9k_of_init(), but it gets overwritten by
ath9k_gpio_cap_init() during the call of ath9k_hw_init(), and causes
https://github.com/openwrt/openwrt/issues/22340

If keeping the most of 12913c3c56,
ath9k_gpio_cap_init() could be patched to keep the existing non-zero
gpio mask (coming from device tree).

Tested on Netgear WNDR4500 v3:
[   22.558083] ath9k 0000:00:00.0: enabling device (0000 -> 0002)
[   22.569548] ath: phy1: Use overridden gpio mask 0xf6ff

Signed-off-by: Edward Chow <equu@openmail.cc>
Link: https://github.com/openwrt/openwrt/pull/22376
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-19 22:10:03 +01:00
Nick Hainke 10db6fc26e base-files: sysupgrade: avoid cat missing conffiles_static
If the user removes all /lib/apk/packages/*.conffiles* files to prevent
sysupgrade from preserving configuration, the glob no longer matches and
sysupgrade ends up calling cat on a non-existent path:

  cat: can't open '/lib/apk/packages/*.conffiles_static': No such file or directory

Fix this by using find cmd.

Signed-off-by: Nick Hainke <vincent@systemli.org>
Link: https://github.com/openwrt/openwrt/pull/22071
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-19 17:50:12 +01:00
David Bauer 49715596f9 mt76: remove incompatible patch
This patch became incompatible as the depending patches have been
reverted.

Signed-off-by: David Bauer <mail@david-bauer.net>
2026-03-19 17:30:43 +01:00
Felix Fietkau 2f1537443f mt76: update to Git HEAD (2026-03-19)
b7d6e434382a wifi: mt76: add offchannel check to mt76_roc_complete
35e79a5bb199 wifi: mt76: check chanctx before restoring channel after ROC
42955db08adf wifi: mt76: abort ROC on chanctx changes
273c6f60cc8e wifi: mt76: optimize ROC for same-channel case
b451ffe2c0c1 wifi: mt76: send nullfunc PS frames on offchannel transitions
757d4404487d wifi: mt76: flush pending TX before channel switch
da6d90e4f66a wifi: mt76: route nullfunc frames to PSD/ALTX queue
447cc8c89c17 wifi: mt76: wait for firmware TX completion of mgmt frames before channel switch
fb6a584e7119 wifi: mt76: add per-link beacon monitoring for MLO
ab6abc97132b wifi: mt76: fix scan work requeue race with spinlock
d2b1e1aa8ec4 wifi: mt76: do not free skb on ieee80211_tx_prepare_skb failure
94017d560bad wifi: mt76: mt7996: Remove link pointer dependency in mt7996_mac_sta_remove_links()
754e3af4d131 wifi: mt76: mt7996: Fix deflink lookup removing links
42964c80d2d7 wifi: mt76: mt7996: Fix deflink lookup adding links
a87f63e269e4 wifi: mt76: mt7996: Remove unnecessary phy filed in mt7996_vif_link struct
ca058da77830 wifi: mt76: mt792x: describe USB WFSYS reset with a descriptor
2e2962f9e19e wifi: mt76: mt792x: fix mt7925u USB WFSYS reset handling
82c56dd7c1ec wifi: mt76: mt7996: fix RRO EMU configuration
616439131793 wifi: mt76: mt7996: support critical packet mode for MT7990 chipsets
9b6cc2ba6625 wifi: mt76: mt7996: update WFSYS reset flow for MT7990 chipsets
4edbdf38c68e wifi: mt76: mt7996: adjust timeout value for boot-up calibration commands
b4ec73b3355e wifi: mt76: mt7996: fix the temporary buffer for calibration-free data
3a16c78c9e06 wifi: mt76: mt7996: fix issues with manually triggered radar detection
bada63e285ad wifi: mt76: mt7915: set mt76 specific PS flag
99e8e3cb9804 wifi: mt76: mt7925: pass mlink to sta_amsdu_tlv()
f716cf9b6e16 wifi: mt76: mt7925: pass WCID indices to bss_basic_tlv()
aac117362eed wifi: mt76: mt7925: pass mlink and mconf to sta_mld_tlv()
dce1e6e4ceca wifi: mt76: mt7925: pass mlink to mcu_sta_update()
b7fee4e5e5b4 wifi: mt76: mt7925: resolve primary mlink via def_wcid
130184621d20 wifi: mt76: mt7925: pass mlink to mac_link_sta_remove()
ea1a80f7cf5e wifi: mt76: mt7925: pass mlink to sta_hdr_trans_tlv()
5eb53c948beb wifi: mt76: mt7925: validate mlink in sta_hdr_trans_tlv()
6e66c08ac0c6 wifi: mt76: mt7925: pass mlink to wtbl_update_hdr_trans()
826ecd386bf0 wifi: mt76: mt7925: pass mlink to set_link_key()
3b1e74d14b4e wifi: mt76: mt7925: resolve link after acquiring mt76 mutex
6c64c41fccec wifi: mt76: mt7925: pass mconf and mlink to wtbl_update_hdr_trans()
215e122415d4 wifi: mt76: mt7925: make WCID cleanup unconditional in sta_remove_links()
98cb4c0f5d7c wifi: mt76: mt7925: unwind WCID setup on link STA add failure
471d6b3404c8 wifi: mt76: mt7925: drop WCID reinit after publish
9cbcc7e59d32 wifi: mt76: mt7925: move WCID teardown into link_sta_remove()
9fbe29ba429e wifi: mt76: mt7925: switch link STA allocation to RCU lifetime
8be727730640 wifi: mt76: mt7925: publish msta->link after successful link add
2cdcad1bb688 wifi: mt76: mt7925: host-only unwind published links on add failure
24c298a04f09 Revert "wifi: mt76: mt7915: set mt76 specific PS flag"
ca81c5c18ec8 Revert "wifi: mt76: mt7915: sync station power save state"
39c960c3ada5 wifi: mt76: mt7996: fix frequency separation for station STR mode

Fixes: https://github.com/openwrt/mt76/issues/1068
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-19 13:35:00 +01:00
Rosen Penev 8e711f68c4 mac80211: rt2x00: remove swap binding
No longer used. If swapping is desired, ralink,mtd-eeprom can be used.
Otherwise nvmem.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22207
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-19 11:01:43 +01:00
Felix Fietkau a19cdb1a95 hostapd: ubus: fix parent-tsf size in beacon report notification
parent_tsf in struct rrm_measurement_beacon_report is le32 (32-bit),
but was being added with blobmsg_add_u16, truncating the value.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-19 10:57:26 +01:00
Felix Fietkau 1d98101743 hostapd: ubus: add missing token to beacon report notification
The beacon measurement token was not included in the ubus beacon-report
notification, causing consumers that need the token (e.g. for constructing
Beacon Metrics Response TLVs) to receive null.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-19 10:57:26 +01:00
Felix Fietkau a34c3baf56 mac80211: fix reporting MLO link ID for non-MLO STAs on MLO AP
Add missing information on station dump/get

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-19 10:57:26 +01:00
Felix Fietkau 5aea8e8916 hostapd: fix type mismatch in BSS transition responses
Use blobmsg_add_u32 for non-bool fields in order to avoid wrong
interpretations of the data on JSON/ucode conversion.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-19 10:57:26 +01:00
Felix Fietkau c5564ba071 hostapd: ubus: fix beacon request reporting detail field size
The Reporting Detail value is a 1-byte field, but was written as le16,
producing a 2-byte write that also contradicts the length field of 1
in the subelement header.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-19 10:57:07 +01:00
Felix Fietkau 0208089ded hostapd: ubus: fix beacon request buffer overflow with reporting detail
The reporting detail subelement (up to 3 bytes) was not accounted for
in the wpabuf allocation, causing a crash when reporting_detail is set
to a valid value (0, 1, or 2).

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-19 10:51:28 +01:00
Shine c949d0e6c6 wifi-scripts: fix hostapd config for 160MHz
After 02e2065203, it can happen that both,
[VHT160-80PLUS80] and [VHT160] are added to the vht_capab option in
an AP's hostapd.conf, which would cause a failure to start the AP.

Fix the logic in order to prevent such misconfiguration.

Fixes: #22481
Signed-off-by: Shine <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22482
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-19 10:44:24 +01:00
Christian Marangi 103e9aec15 uboot-airoha: Add support for Nokia Valyrian
Add support for Nokia Valyrian device that implement similar spec of an
Airoha AN7581 RFB board.

Link: https://github.com/openwrt/openwrt/pull/21761
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-17 14:44:44 +01:00
Paweł Owoc 74d120c22d linux-firmware: ath11k: add IPQ5018, IPQ8074, QCN9074
Use linux-firmware repository for IPQ5018, IPQ8074 and QCN9074.
All officially released firmware versions are available there.

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21833
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-17 14:42:08 +01:00
Álvaro Fernández Rojas df45ed2da0 odhcpd: update to Git HEAD (2026-03-16)
160e5fa3957c odhcpd: ensure zero padding on DNSSL
2a316dbfd798 odhcpd: ignore NULL in dhcpv4_free_lease() stub
b960d4cbe27b ubus: fix truncated field in DHCPv6 lease query
4e26e1361335 dhcpv4: fix avl_delete on leases not in avl tree
ea5af5bffa2d dhcpv4: fix segfault when disabling interface

https://github.com/openwrt/odhcpd/compare/13cec018c0d9...160e5fa3957c

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22454
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-03-17 02:30:20 +01:00
Eric Fahlgren b37cbcf50a iptables: prefer nft variants over zz-legacy
Set the default variant on "iptables-nft" and "ip6tables-nft" to
make them the preferred package when "iptables" is installed as
a dependency.

Link: https://github.com/openwrt/packages/issues/28815
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22448
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-03-17 02:17:57 +01:00