]> git.ipfire.org Git - thirdparty/openwrt.git/log
thirdparty/openwrt.git
3 months agomvebu: add support for RIPE Atlas Probe v5 22048/head
Tomáš Macholda [Thu, 11 Sep 2025 12:45:12 +0000 (14:45 +0200)] 
mvebu: add support for RIPE Atlas Probe v5

RIPE Atlas Probe v5 is a network measurement device based on Turris MOX.

u-boot bootscript supports booting both from the original Turris BTRFS
layout and default OpenWrt ext4 boot + root partition layout.

Specifications:
* SoC: Marvell ARMADA 3720
* RAM: 512 MiB, DDR3
* eMMC: 4G
* Ethernet: 1x 1GbE

MAC:
LAN MAC: label on board

Flash instructions:
* For using the default ext4 layout, boot into a live system using
tftpboot in u-boot and flash an OpenWrt SD image onto /dev/mmcblk0.
* For the Turris layout, put the new rootfs into subvolume '@', not
forgetting to add Image, device tree, and boot.scr to /boot.

Misc:
* USB connection is only for power. For UART access use the pin header:
  1: GND
  2: +1.8V
  5: TX
  6: RX
* Flashing the image onto Turris Shield won't work. Use Turris MOX image
  instead.

Signed-off-by: Tomáš Macholda <tomas.macholda@nic.cz>
Link: https://github.com/openwrt/openwrt/pull/20031
(cherry picked from commit 0271f2ee3649fcabcf5cb989743bbbdc38b34b3e)
Signed-off-by: Trix Taiclet <git@trix.moe>
Link: https://github.com/openwrt/openwrt/pull/22048
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoudebug: update to Git HEAD (2026-01-16)
Felix Fietkau [Fri, 16 Jan 2026 08:53:27 +0000 (08:53 +0000)] 
udebug: update to Git HEAD (2026-01-16)

c5c493ed5787 udebug-cli: fix reference to invalid variable in error message
875e1a7af6ca udebug-cli: add logdump command

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 55c498eb7b5effb8aae1147e528a773e02e3e01b)

3 months agowifi-scripts: fix macaddr check in mac80211.uc
Harin Lee [Wed, 24 Dec 2025 19:15:25 +0000 (04:15 +0900)] 
wifi-scripts: fix macaddr check in mac80211.uc

This fixes a simple logic error in the macaddr existence check in mac80211.uc.

Signed-off-by: Harin Lee <me@harin.net>
Link: https://github.com/openwrt/openwrt/pull/21277
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 2ebcda1ea6b757864c4700e543a9767752ca766e)

3 months agowifi-scripts: wireless.uc: add MLO support for procd service data
Felix Fietkau [Fri, 30 Jan 2026 18:02:35 +0000 (18:02 +0000)] 
wifi-scripts: wireless.uc: add MLO support for procd service data

This allows services to dynamically configure MLO interfaces without
using UCI.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 0a8bccf85d71531e0b8523d720aebc7f080b54bd)

3 months agowifi-scripts: move the "disabled" option to the wifi-iface section
Felix Fietkau [Tue, 6 Jan 2026 17:46:46 +0000 (18:46 +0100)] 
wifi-scripts: move the "disabled" option to the wifi-iface section

This helps for setups where the wifi interfaces are added dynamically
via procd data by avoiding automatically bringing up interfaces with
the default config. Internally, they are treated pretty much the same
by netifd.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 79a0aebd81687868374e98d9987c256722c6a4f8)

3 months agowifi-scripts: netifd: fix null dereference in config_init for missing devices
Felix Fietkau [Sun, 15 Feb 2026 08:23:57 +0000 (08:23 +0000)] 
wifi-scripts: netifd: fix null dereference in config_init for missing devices

Add optional chaining when accessing device config in the wifi-iface
loop to handle cases where a referenced device doesn't exist.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 8b994ed3970ffd02ee77889304ca32bdbecdb1f3)

3 months agowifi-scripts: fix nested config accumulation in wdev_set_data
Felix Fietkau [Wed, 4 Feb 2026 10:34:55 +0000 (10:34 +0000)] 
wifi-scripts: fix nested config accumulation in wdev_set_data

When storing device-level data, wdev_set_data() spread the entire wdev
object into handler_data. Since handler_config.data is set from the
previous handler_data[wdev.name] before each setup, this created
exponentially growing nesting with each reload, eventually causing
"nesting too deep" JSON parse errors.

Fix by initializing cur to a simple object containing only the device
name instead of the entire wdev object.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 68c2ab8f5fdf1c12966fa0cdf3c13d889beccdbe)

3 months agowifi-scripts: iwinfo.uc: cache survey data in iface object
Felix Fietkau [Thu, 22 Jan 2026 10:25:49 +0000 (11:25 +0100)] 
wifi-scripts: iwinfo.uc: cache survey data in iface object

Extract survey fetching into get_survey() and store results in iface.survey,
allowing access to full survey info (not just noise) for later use.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit e855f32bddf8c42da2a0045b30729261a352308a)

3 months agowifi-scripts: refactor iwinfo.uc to support dynamic data updates
John Crispin [Fri, 19 Sep 2025 15:05:30 +0000 (17:05 +0200)] 
wifi-scripts: refactor iwinfo.uc to support dynamic data updates

Moved interface discovery and data population into an exported update()
function that can be called on-demand to refresh wireless interface
information. This allows using iwinfo.uc as a library inside daemons.

Signed-off-by: John Crispin <john@phrozen.org>
(cherry picked from commit 26eab84f81ad0fa8018c950530d5c7a7b0a3b5d7)

3 months agouclient: update to Git HEAD (2026-02-13)
Felix Fietkau [Fri, 13 Feb 2026 09:09:09 +0000 (09:09 +0000)] 
uclient: update to Git HEAD (2026-02-13)

63413daa8760 uclient-http: fix HTTP authentication after deferred header processing
4fa6fae02f74 uclient-fetch: Extract opt_post variable
8df3120639a4 uclient-fetch: Use HEAD for --spider
0392dfc8e8c4 uclient-fetch: Support of --method, --body-data and --body-file
115c92824b6d uclient-fetch: add OPTIONS request type
a1531e89f6c2 uclient-fetch: support for WebDAV methods

Fixes: https://github.com/openwrt/uclient/issues/14
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 88f3c0eeb0cd3335cd117accf09a2c3fd0470f4a)

3 months agouclient: update to Git HEAD (2026-01-31)
Felix Fietkau [Sat, 31 Jan 2026 14:03:05 +0000 (14:03 +0000)] 
uclient: update to Git HEAD (2026-01-31)

b3ee1209a3d0 uclient-http: reset fd to -1 after close in disconnect
9c2ad269c42b uclient-http: fix seq field check to use correct field
80c9bd29c233 uclient-http: fix hang on HTTP to HTTPS redirect
931bbfeb2c92 ucode: fix memory leak when using ssl context

Fixes: https://github.com/openwrt/uclient/issues/11
Fixes: https://github.com/openwrt/uclient/issues/13
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 9d496dfb984dc645560bb86e5012de29e5efcc6f)

3 months agolibubox: update to Git HEAD (2026-02-13)
Felix Fietkau [Fri, 13 Feb 2026 09:09:06 +0000 (09:09 +0000)] 
libubox: update to Git HEAD (2026-02-13)

d324c0503040 libubox: send warnings to stderr
5a65cb5a79b7 libubox: document positional arguments
8c7b489daa02 libubox: add anonymous strings, ints, et al in arrays
5ec7ff2effb3 uloop: use volatile sig_atomic_t for do_sigchld flag
0efa2cd3b74c usock: check SO_ERROR after poll in usock_inet_timeout()
1a73ded9f738 usock: fix timeout handling in usock_inet_timeout()
1aa36ee774c8 usock: implement RFC 8305 Happy Eyeballs for usock_inet_timeout()

Fixes: https://github.com/openwrt/uclient/issues/8
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 7bc8aa492f5d3a918c7890645ffd992eadf4c234)

3 months agoucode: add ubus fixes
Felix Fietkau [Sat, 7 Feb 2026 07:47:36 +0000 (07:47 +0000)] 
ucode: add ubus fixes

- avoid double close of externally owned channel fds
- fix refcounting bug

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit e9d6025725fabf0def17651160819651243c2aa1)

3 months agoprocd: reload_config: support UCI overlay directory
John Crispin [Fri, 23 Jan 2026 08:54:11 +0000 (09:54 +0100)] 
procd: reload_config: support UCI overlay directory

Check /var/run/uci/ before /etc/config/ so that overlay configs
also trigger service reload events.

The overlay directory takes precedence, and uci show already handles
merging overlay + base configuration correctly.

Signed-off-by: John Crispin <john@phrozen.org>
(cherry picked from commit aaa2d9f1e5b417b8ac76dacb0aa2d7baacf4527b)

3 months agounetmsg: notify subscribers when remote peer connection drops
John Crispin [Fri, 6 Feb 2026 07:41:49 +0000 (08:41 +0100)] 
unetmsg: notify subscribers when remote peer connection drops

When a remote peer's connection drops (device powered off, unetmsgd
crash, network failure), network_rx_cleanup_state silently removed
the remote publish/subscribe handles without notifying local
subscribers. This meant local clients had no way to detect that a
remote peer had disappeared.

Call handle_publish for each channel where a remote publish handle
is removed during connection cleanup, so local subscribers receive
the publisher change notification and can react accordingly.

Signed-off-by: John Crispin <john@phrozen.org>
(cherry picked from commit 7fd71f2c7424c75f6aca26f523e084012b122714)

3 months agounetmsg: only send publish notifications for remote publisher changes
Felix Fietkau [Sat, 7 Feb 2026 08:02:24 +0000 (08:02 +0000)] 
unetmsg: only send publish notifications for remote publisher changes

handle_publish() notifies local subscribers about publisher state
changes. The publish/subscribe handler in network_socket_handle_request()
was calling it for both remote publish and subscribe changes, but
subscriber changes are not relevant to local subscribers.

Guard the handle_publish() calls with a msgtype == "publish" check,
matching the local client paths in unetmsgd-client.uc which already
have this guard.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit e0722d0ac41b931e8a3b79c439a029844e89cbad)

3 months agounetmsg: fix reconnect loop when RX authenticates before TX
Felix Fietkau [Fri, 6 Feb 2026 10:12:31 +0000 (10:12 +0000)] 
unetmsg: fix reconnect loop when RX authenticates before TX

When both peers connect simultaneously, the RX side can authenticate
before the TX handshake completes. network_check_auth() was sending a
ping on the unauthenticated TX channel, which gets rejected by the
remote's pre-auth handler as "Auth failed", killing the connection and
triggering an endless reconnect cycle.

Check chan.auth before interacting with the TX channel. If TX auth
hasn't completed yet, just schedule a reconnect timer - auth_data_cb
already handles state sync when TX auth completes.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 212040b5cac619ec8009b0b4262d11b4e3abfdc4)

3 months agounetmsg: close all channels on network removal
Felix Fietkau [Fri, 6 Feb 2026 09:30:49 +0000 (09:30 +0000)] 
unetmsg: close all channels on network removal

network_close() only closed the listening socket without shutting down
established RX/TX connections. This left remote state in
core.remote_publish/core.remote_subscribe for hosts on the removed
network, causing stale entries in channel listings and failed routing
attempts.

Close all RX and TX channels before removing the network, which also
triggers remote state cleanup via network_rx_socket_close().

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 389a79d97230fbd31de98a7f8896302ad284c114)

3 months agounetmsg: fix inverted condition in network_rx_socket_close()
Felix Fietkau [Fri, 6 Feb 2026 09:30:26 +0000 (09:30 +0000)] 
unetmsg: fix inverted condition in network_rx_socket_close()

The cleanup condition checked != instead of ==, inverting the logic.
This caused two problems:

When an authenticated RX connection disconnected, remote state for that
host was never cleaned up since the stored entry matched the one being
closed.

When a stale unauthenticated connection from a peer closed, any existing
authenticated connection from the same peer was incorrectly deleted and
its remote state wiped.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit f09596f84f3572d963e1c893762fd105b4ceee2e)

3 months agounetmsg: fix publish notification timing around remote auth
Felix Fietkau [Fri, 6 Feb 2026 09:22:30 +0000 (09:22 +0000)] 
unetmsg: fix publish notification timing around remote auth

When a remote peer's publish registrations arrive via RX before the
local TX connection is authenticated, handle_publish fires but the
subscriber can't reach the remote publisher yet since the TX channel
isn't ready.

Suppress publish notifications on the RX side when no authenticated TX
channel exists for the remote host. After TX authentication completes,
re-trigger handle_publish only for topics that the specific peer
publishes and that have local subscribers.

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 3efcf444a11e9402d86ae79c733114827ce31b42)

3 months agounetmsg: fix stale network cleanup in unetd_network_update()
Felix Fietkau [Fri, 6 Feb 2026 09:17:50 +0000 (09:17 +0000)] 
unetmsg: fix stale network cleanup in unetd_network_update()

The condition checked !data.networks instead of !data.networks[name],
making it always false since data.networks was already validated earlier
in the function. Networks removed from unetd were never closed.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit a2368e0f6906cd6ad374c0280a1c219f789ca258)

3 months agounetmsg: remove redundant socket close
Felix Fietkau [Sun, 4 Jan 2026 12:17:39 +0000 (12:17 +0000)] 
unetmsg: remove redundant socket close

channel.disconnect() already closes the fd via ubus_shutdown(),
so calling socket.close() afterwards is redundant and causes EBADF.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit bdc3c1a820d2f2a457ec2408449e8de6ff0bf9f6)

3 months agounetmsg: add timeout for outgoing auth requests
Felix Fietkau [Sun, 4 Jan 2026 10:07:33 +0000 (10:07 +0000)] 
unetmsg: add timeout for outgoing auth requests

Add a 10-second timeout for outgoing auth requests to prevent
connections from getting stuck when the remote peer goes silent
after the hello handshake but before responding to auth.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 8a304d051f1a8b9b4193d9b25edddc0119c26b44)

3 months agounetmsg: add null check in TX disconnect callback
Felix Fietkau [Sun, 4 Jan 2026 10:04:58 +0000 (10:04 +0000)] 
unetmsg: add null check in TX disconnect callback

The network may be deleted before the disconnect callback fires.
Check for null to avoid crash when accessing net.tx_channels.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit f631d1576ddb331ceee726d876ea9c74a3553dbc)

3 months agowifi-scripts: ucode: fix ieee80211w default
Rany Hany [Sun, 15 Feb 2026 16:29:17 +0000 (16:29 +0000)] 
wifi-scripts: ucode: fix ieee80211w default

This should not be defaulted to anything in the schema.

What seemed like a minor cleanup actually broke this
as the schema defines a default value already. I did
not notice as I had this explictly set in my config.

Fixes: 70ba7512 ("wifi-scripts: ucode: allow sae_pwe to be modified for AP mode")
Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/22043
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit f012e8d50a31546eb96267ab751f316d2cf46fc9)

3 months agoRevert "kernel: revert ip6_tunnel use skb_vlan_inet_prepare() in __ip6_tnl_rcv()"
Goetz Goerisch [Sat, 14 Feb 2026 19:52:36 +0000 (20:52 +0100)] 
Revert "kernel: revert ip6_tunnel use skb_vlan_inet_prepare() in __ip6_tnl_rcv()"

This reverts commit ee0b160accecc397c124b8ddc356822be32a3320.

A backport commit was missing which was backported upstream with
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.71&id=4ce768ac429ec1c2d4ba63a408fed454ed12b248

Link: https://lore.kernel.org/all/CANn89iL5ksZZCJr7SK9=4Sw6EejdOzr5_m6pBMM8RVtbLy_ACA@mail.gmail.com/
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22025
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 385b02614e3eb2204582bbfebb1d4e515da959c4)

3 months agokernel: bump 6.12 to 6.12.71 22017/head
John Audia [Fri, 13 Feb 2026 20:26:06 +0000 (15:26 -0500)] 
kernel: bump 6.12 to 6.12.71

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.71

All patches automatically rebased.

Build system: x86/64
Build-tested: flogic/glinet_gl-mt6000
Run-tested: flogic/glinet_gl-mt6000

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21985
(cherry picked from commit baa433ffe99048a97936b0b31c0984dc479b539b)
Link: https://github.com/openwrt/openwrt/pull/22017
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agokernel: bump 6.12 to 6.12.70
John Audia [Thu, 12 Feb 2026 20:08:34 +0000 (15:08 -0500)] 
kernel: bump 6.12 to 6.12.70

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.70

Removed upstreamed:
 backport-6.12/605-01-v6.17-net-phy-add-phy_interface_weight.patch[1]

All patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.70&id=4dc7b69bca8ef6b932a7c6bea63450796b1146ce

Build system: x86/64
Build-tested: flogic/glinet_gl-mt6000
Run-tested: flogic/glinet_gl-mt6000

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21985
(cherry picked from commit 2c4a719d26b68da65925472e77525c423e37db7e)
Link: https://github.com/openwrt/openwrt/pull/22017
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agokernel: bump 6.12 to 6.12.69
John Audia [Fri, 6 Feb 2026 19:54:35 +0000 (14:54 -0500)] 
kernel: bump 6.12 to 6.12.69

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.69

All patches automatically rebased.

Build system: x86/64
Build-tested: flogic/glinet_gl-mt6000
Run-tested: flogic/glinet_gl-mt6000

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21904
(cherry picked from commit b4759469c99ba2cd66a36b3d90daf42bfa007073)
[Refreshed on top of 25.12]
Link: https://github.com/openwrt/openwrt/pull/22017
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agowifi-scripts: ucode: allow sae_pwe to be modified for AP mode
Rany Hany [Sat, 14 Feb 2026 17:25:34 +0000 (17:25 +0000)] 
wifi-scripts: ucode: allow sae_pwe to be modified for AP mode

Some Android devices have issues with H2E causing downgrades to PSK
when using WPA2/3. With WPA3 it doesn't work reliably whatsoever.

My Samsung A55/6 for example has the following behavior:

daemon.info hostapd: lan5g: STA <redacted> IEEE 802.11: authenticated
daemon.notice hostapd: SAE: <redacted> indicates support for SAE H2E, but did not use it
daemon.info hostapd: lan2g: STA <redacted> IEEE 802.11: authenticated
daemon.info hostapd: lan2g: STA <redacted> IEEE 802.11: associated (aid 1)
daemon.notice hostapd: lan5g: Prune association for <redacted>
daemon.notice hostapd: lan2g: AP-STA-CONNECTED <redacted> auth_alg=open
daemon.info hostapd: lan2g: STA <redacted> RADIUS: starting accounting session 8234C696AAC1AE7D
daemon.info hostapd: lan2g: STA <redacted> WPA: pairwise key handshake completed (RSN)
daemon.notice hostapd: lan2g: EAPOL-4WAY-HS-COMPLETED <redacted>

This is also brought up in the issue: https://github.com/openwrt/openwrt/issues/9963

Ultimately this allows users to have the option to at the very least
disable H2E.

Unrelated: a minor cleanup was done so that ieee80211w uses set_default instead.
There is no functional change on that front.

Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/22021
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 70ba7512e7fc434fabc02487a46e2637a86c614e)

3 months ago6in4: improve HE tunnel update procedure
Rany Hany [Sat, 14 Feb 2026 09:12:19 +0000 (11:12 +0200)] 
6in4: improve HE tunnel update procedure

- uclient-fetch timeout bumped from 5s to 15s. If we do not do this
  we get flagged by HE as the update request is expensive and takes
  more than 5s to execute. Currently 5s timeout causes uclient-fetch
  to be killed prematurely as can be seen by the following log:

  10:34:57 user.notice 6in4-henet: update 1/3: timeout
  10:35:07 user.notice 6in4-henet: update 2/3: timeout
  10:35:17 user.notice 6in4-henet: update 3/3: timeout
  10:35:22 user.notice 6in4-henet: update failed

  The above is the worst case, what usually happens is:

  10:53:59 user.notice 6in4-henet: update 1/3: timeout
  10:54:06 user.notice 6in4-henet: update 2/3: abuse
  10:54:06 user.notice 6in4-henet: updated

- We now use an exponential backoff starting from 5 seconds.

- Detect ca-bundle so we don't use --no-check-certificates
  unnecessarily.

- The while loop was changed so we don't retry unnecessarily
  after the final failure.

- Worst-case total time the update operation might take before
  bailing out is:

     (sum(15 + (5 × (2^(x − 1))), 1, 2) + 15) seconds = 1 min

Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/22016
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 862b46dd8f65ed2ab298b63ca33f672fb6ec3be7)

3 months agomediatek: add support for netis NX32U 22004/head
Fil Dunsky [Sun, 28 Dec 2025 17:58:05 +0000 (20:58 +0300)] 
mediatek: add support for netis NX32U

This PR adds support for netis NX32U router.

Specification
-------------
- SoC       : MediaTek MT7981BA dual-core ARM Cortex-A53 1.3 GHz
- RAM       : 256 MiB DDR3
- Flash     : SPI-NAND 128 MiB (ESMT)
- WLAN      : MediaTek MT7976CN dual-band WiFi 6
  - 2.4 GHz : b/g/n/ax, MIMO 2x2
  - 5 GHz   : a/n/ac/ax, MIMO 2x2
- Ethernet  : 10/100/1000 Mbps x3 (LAN, MediaTek MT7531AE)
              10/100/1000 Mbps x1 (WAN, SoC internal phy)
- USB       : 3.0
- Buttons   : Mesh, Reset
- LEDs      : 1x Power (green), unmanaged
              1x Internet (green), gpio-controlled
              1x WPS (green), gpio-controlled
              1x WiFi 2.4 GHz (green), gpio-controlled
              1x WiFi 5 GHz (green), gpio-controlled
              1x LAN activity (green), switch-controlled
              1x WAN activity (green), switch-controlled
              1x USB (green), gpio-controlled
- Power     : 12 VDC, 1 A

Installation
------------
1. Connect to the router using ssh (user: admin, pass: web interface
   password)
2. Backup:
```
cat /dev/mtd0 | gzip -1 -c > /tmp/mtd0_spi0.0.bin.gz
cat /dev/mtd1 | gzip -1 -c > /tmp/mtd1_BL2.bin.gz
cat /dev/mtd2 | gzip -1 -c > /tmp/mtd2_u-boot-env.bin.gz
cat /dev/mtd3 | gzip -1 -c > /tmp/mtd3_Factory.bin.gz
cat /dev/mtd4 | gzip -1 -c > /tmp/mtd4_FIP.bin.gz
cat /dev/mtd5 | gzip -1 -c > /tmp/mtd5_ubi.bin.gz
```
3. Download mtd backup from the /tmp dir of the router to your PC using
   scp protocol
4. Upload OpenWrt 'bl31-uboot.fip', 'preloader.bin' images to the /tmp
   dir of the router using scp protocol
5. Write FIP and BL2 (replace bootloader):
```
mtd write /tmp/openwrt-mediatek-filogic-netis_nx32u-bl31-uboot.fip FIP
mtd write /tmp/openwrt-mediatek-filogic-netis_nx32u-preloader.bin BL2
```
6. Place OpenWrt
   'openwrt-mediatek-filogic-netis_nx32u-initramfs-recovery.itb' image on
   the tftp server (IP: 192.168.1.254)
7. Erase 'ubi' partition and reboot the router:
   mtd erase ubi
   reboot
8. U-Boot automatically boot OpenWrt recovery image from tftp server to
   the RAM
9. Upload OpenWrt 'sysupgrade.itb' image to the /tmp dir of the router
   (IP: 192.168.1.1) using scp protocol
10. Connect to the router using ssh and run:
```
ubidetach -p /dev/mtd4; ubiformat /dev/mtd4 -y; ubiattach -p /dev/mtd4
ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB
ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB
sysupgrade -n openwrt-mediatek-filogic-netis_nx32u-squashfs-sysupgrade.itb
```

Recovery
--------
1. Place OpenWrt
   'openwrt-mediatek-filogic-netis_nx32u-initramfs-recovery.itb' image on
   the tftp server (IP: 192.168.1.254)
2. Press “Reset” button and power on the router. After ~10 sec release
   the button.
3. Use OpenWrt initramfs system for recovery

+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| LAN     | dc:xx:xx:d1:xx:18 | label     |
| WAN     | dc:xx:xx:d1:xx:1a | label+2   |
| WLAN 2g | de:xx:xx:11:xx:19 |           |
| WLAN 5g | de:xx:xx:71:xx:19 |           |
+---------+-------------------+-----------+
The LAN MAC was found in 'Factory', 0x1fef20
The WAN MAC was found in 'Factory', 0x1fef26
The WLAN 2g/5g MAC prototype was found in 'Factory', 0x4

Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21368
(cherry picked from commit 0f713d5d112389fab497269c78c64cc69c930065)
Link: https://github.com/openwrt/openwrt/pull/22004
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agomediatek: filogic: add support for Bazis AX3000WM 21924/head
Fil Dunsky [Sun, 1 Feb 2026 09:33:53 +0000 (12:33 +0300)] 
mediatek: filogic: add support for Bazis AX3000WM

 - SoC: MediaTek MT7981B
 - CPU: 2x 1.3 GHz Cortex-A53
 - Flash: 128 MiB SPI NAND (Winbond W25N01GV)
 - RAM: 256 MiB (Nanya NT5CC128M16JR-EK)
 - WLAN: 2.4 GHz, 5 GHz (MediaTek MT7976CN, 802.11ax)
 - Ethernet: 1x 10/100/1000/2500 Mbps MaxLinear GPY211C WAN, 1x10/100/1000 Mbps MT7981 LAN
 - USB 3.0 port
 - 2x buttons: Reset, Mesh
 - 3x LEDs on top panel (red, green, blue)
 - 3x PHY port LEDs (1 amber, 2 green)
 - Board version: WD830M V2.0
 - Power: 5 VDC, 3 A

UART: internal test points, 3V3 115200 8N1 (RX, TX, GND)

Interface MAC Algorithm
LAN (label) 1c:bf:ce:xx:xx:x1 0x4
WAN 1c:bf:ce:xx:xx:x2 0xa
WLAN 2.4G 1c:bf:ce:xx:xx:x3 0x2a
WLAN 5G 1c:bf:ce:xx:xx:x4 0x24

At the moment installation is possible via UART only since SSH root
is password protected.

Set a static ip on the ethernet interface of your PC:
(ip address: 192.168.1.2, subnet mask:255.255.255.0).
Boot into initramfs via TFTP:
```
setenv serverip 192.168.1.2
tftpboot 0x46000000 openwrt-mediatek-filogic-bazis_ax3000wm-initramfs-recovery.itb
bootm 0x46000000
```

Install kmod-mtd-rw and activate it:
```
apk update && apk add kmod-mtd-rw
insmod mtd-rw i_want_a_brick=1
```
Upload to the router and write OpenWrt BL2 and FIP bootloader:
```
mtd write openwrt-mediatek-filogic-bazis_ax3000wm-preloader.bin BL2
mtd write openwrt-mediatek-filogic-bazis_ax3000wm-bl31-uboot.fip FIP
```
Prepare ubi partition:
```
ubidetach -p /dev/mtd4
ubiformat /dev/mtd4 -y
ubiattach -p /dev/mtd4
```

Upgrade via luci web interface with sysupgrade file or by issuing a command:
```
sysupgrade -n openwrt-mediatek-filogic-bazis_ax3000wm-squashfs-sysupgrade.itb
```
Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21813
(cherry picked from commit 658e4adca4b69e6ef18601ceb0fbae0a74f2b653)
Link: https://github.com/openwrt/openwrt/pull/21924
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agopackage: uboot-qoriq: fix T4240RDB u-boot selection 21477/head
Pawel Dembicki [Mon, 12 Jan 2026 08:39:16 +0000 (09:39 +0100)] 
package: uboot-qoriq: fix T4240RDB u-boot selection

Mark T4240RDB u-boot variants as device-built and avoid installing them into rootfs.

Without this buildbot crashes during package install with:

ERROR: unable to select packages:

  u-boot-fsl_T4240RDB-nor (no such package):

    required by: world[u-boot-fsl_T4240RDB-nor]

  u-boot-fsl_T4240RDB-sdboot (no such package):

    required by: world[u-boot-fsl_T4240RDB-sdboot]

Fixes: c5d3d5fe28f7 ("package: u-boot: initial support for qoriq arch")
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21514
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 20727f89d524ffc2970165a5f91558b3785ea249)
Link: https://github.com/openwrt/openwrt/pull/21477
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoqoriq: kernel: refresh config
Pawel Dembicki [Fri, 12 Dec 2025 23:25:46 +0000 (00:25 +0100)] 
qoriq: kernel: refresh config

Done by 'make kernel_oldconfig'.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/10941
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
(cherry picked from commit ffda7e6748bcff73e4813364e528940cd501c390)
Link: https://github.com/openwrt/openwrt/pull/21477
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoqoriq: add support for NXP T4240RDB board
Pawel Dembicki [Wed, 19 Nov 2025 21:58:54 +0000 (22:58 +0100)] 
qoriq: add support for NXP T4240RDB board

Hardware specs:
  - NXP T4240, 12C/24T @ 1.67 GHz
  - 3 × 2 GB DDR3 SO-DIMM
  - 128 MB NOR flash
  - 2 GB SLC NAND
  - SD card interface
  - PCIe: x4 and x8
  - SATA 3 Gbps
  - 8 × 1 GbE
  - 4 × 10 GbE SFP
  - RTC

This commit adds the sysupgrade and factory images for T4240RDB board in
both variants:
  - nor: for booting and read whole system from NOR memory
  - sdboot: for booting and read whole system from SD card

SD Card images install:

  - Burn image to sdcard. E.g:
      gunzip -c gunzip -c openwrt-qoriq-generic-fsl_T4240RDB-squashfs-sdcard.img.gz | \
      sudo dd of=/dev/mmcblk0 conv=fsync,notrunc status=progress bs=4M && sync
  - Download lastest Cortina PHY firmware from NXP github [1], if you accept their
    EULA [2].
  - Install Cortina PHY on image, E.g:
      dd if=cs4315-cs4340-PHY-ucode.txt of=/dev/mmcblk0 bs=1 seek=2M
  - Insert SD-Card to SD slot
  - Switch SW3.4 to OFF
  - Configre mac addresses from sticker in u-boot. E.g:
      setenv ethaddr 00:10:f3:3a:a8:66
      setenv eth1addr 00:10:f3:3a:a8:67
      setenv eth2addr 00:10:f3:3a:a8:68
      setenv eth3addr 00:10:f3:3a:a8:69
      setenv eth4addr 00:10:f3:3a:a8:6a
      setenv eth5addr 00:10:f3:3a:a8:6b
      setenv eth6addr 00:10:f3:3a:a8:6c
      setenv eth7addr 00:10:f3:3a:a8:6d
      setenv eth8addr 00:10:f3:3a:a8:6e
      setenv eth9addr 00:10:f3:3a:a8:6f
      setenv eth10addr 00:10:f3:3a:a8:70
      setenv eth11addr 00:10:f3:3a:a8:71
      saveenv
  - reset and boot

NOR images install:

  - download and extract factory image on tftp server root
  - boot device and stop in u-boot (from nor or sd card u-boot)
  - configure server and ip address. E.g:
      setenv ipaddr 192.168.1.2
      setenv serverip 192.168.1.1
  - Download image and run flashing:
      tftpboot $loadaddr openwrt-qoriq-generic-fsl_T4240RDB-squashfs-factory-nor.bin
      protect off all
      erase $fwaddr +$filesize
      cp.b $loadaddr $fwaddr $filesize
  - Switch SW3.4 to ON
  - Switch SW3.1-3 to OFF
  - reboot
  - Do postprocessing (see bellow)

NOR images post processing:

  - Configre mac addresses from sticker in u-boot. E.g:
      setenv ethaddr 00:10:f3:3a:a8:66
      setenv eth1addr 00:10:f3:3a:a8:67
      setenv eth2addr 00:10:f3:3a:a8:68
      setenv eth3addr 00:10:f3:3a:a8:69
      setenv eth4addr 00:10:f3:3a:a8:6a
      setenv eth5addr 00:10:f3:3a:a8:6b
      setenv eth6addr 00:10:f3:3a:a8:6c
      setenv eth7addr 00:10:f3:3a:a8:6d
      setenv eth8addr 00:10:f3:3a:a8:6e
      setenv eth9addr 00:10:f3:3a:a8:6f
      setenv eth10addr 00:10:f3:3a:a8:70
      setenv eth11addr 00:10:f3:3a:a8:71
      saveenv
  - boot
  - Download and refresh RCW stored in eeprom:
      tr '\0' '\377' < /dev/zero | dd bs=256 of=/sys/bus/i2c/devices/0-0050/eeprom
      cat /tmp/openwrt-qoriq-generic-fsl_T4240RDB-squashfs-rcw.bin > /sys/bus/i2c/devices/0-0050/eeprom
  - Download lastest Cortina PHY firmware from NXP github [1], if you accept their
    EULA [2].
  - Install Cortina PHY on image, E.g:
      mtd write cs4315-cs4340-PHY-ucode.txt /dev/mtd4
  - reset and boot

[1] https://raw.githubusercontent.com/nxp-qoriq/qoriq-firmware-cortina/refs/tags/lf-6.12.34-2.1.0/cs4315-cs4340-PHY-ucode.txt
[2] https://github.com/nxp-qoriq/qoriq-firmware-cortina/blob/lf-6.12.34-2.1.0/EULA.txt

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/10941
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
(cherry picked from commit 0a2b3b66dbe04f3169731dc2f52a48c128d6a059)
Link: https://github.com/openwrt/openwrt/pull/21477
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agopackage: u-boot: initial support for qoriq arch
Pawel Dembicki [Fri, 7 Oct 2022 12:25:20 +0000 (14:25 +0200)] 
package: u-boot: initial support for qoriq arch

This package adds initial u-boot support for qoriq target.

U-boot for qoriq devices must be compiled with 32-bit compiler and
linked with 32-bit linker. It's part of mpc 85xx target. But qoriq
target is 64-bit. As workaround, mpc85xx binary toolchain is downloaded
only for this u-boot.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/10941
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
(cherry picked from commit c5d3d5fe28f7990c4a2e7837962244c00e3c355a)
Link: https://github.com/openwrt/openwrt/pull/21477
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agokernel: move patch from mpc85xx to pending
Pawel Dembicki [Fri, 9 Jan 2026 08:37:01 +0000 (09:37 +0100)] 
kernel: move patch from mpc85xx to pending

The patch "Revert "powerpc: dts: mpc85xx: remove "simple-bus" compatible
from ifc node" has been sent upstream [0].

It is also required for qoriq target and in this commit it is moved to
the generic/pending folder.

[0] https://patchwork.ozlabs.org/project/linuxppc-dev/patch/20251105205524.17362-1-rosenp@gmail.com/

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/10941
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
(cherry picked from commit 5ed0f5a6dd70cc17c3b7c096b2535a9a30105503)
Link: https://github.com/openwrt/openwrt/pull/21477
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agobuild: propagate errors when generating apk indexes
Matt Merhar [Wed, 11 Feb 2026 19:33:15 +0000 (14:33 -0500)] 
build: propagate errors when generating apk indexes

The build would continue even if the some of the intermediate commands
failed, as long as the last command in the final iteration of the loop
was successful.

Add 'set -e' to the subshell so that we immediately exit. Previously,
only the exit status of the final make-index-json.py mattered.

Fixes: https://github.com/openwrt/openwrt/issues/21981
Signed-off-by: Matt Merhar <mattmerhar@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/21993
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit fcb07b00ec22b90fc0cd790701982018ee345366)

3 months agox86: base-files add support for Sophos 210r3 and 230r2
Raylynn Knight [Sun, 8 Feb 2026 09:23:08 +0000 (04:23 -0500)] 
x86: base-files add support for Sophos 210r3 and 230r2

This fixes a previous commit for Sophos XG 210r3 which was missing
board_name mapping and adds support for the SG related version and the
XG/SG 230r2 which is the same hardware with a faster processor.

Sophos board_name mapping was modified to support all Sophos
SG/XG devices.

Sophos SG/XG 210r3 and SG/XG 230r2 are rackmounted x86 based firewall
with 6 RJ-45 gigabit ethernet ports (eth0-5) and 2 SFP gigabit ethernet
ports (eth6, eth7) all running Intel NICs supported by igb driver. The 210r3
and 230r2 only differ in the processor used.  This board update maps
eth1 (marked as WAN) as wan and eth0 and eth2-5 as lan.  Leaving the
two SFP ports unmapped.

Fixes: 4880e8e338fc ("x86: add board mapping for Sophos XG 210r3")
Signed-off-by: Raylynn Knight <rayknight@me.com>
Link: https://github.com/openwrt/openwrt/pull/21959
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit d0c82dbb177b33543de8bf6d537436b889273720)

3 months agomvebu: add depends for Turris MOX boards
Tomáš Macholda [Mon, 10 Nov 2025 15:57:14 +0000 (16:57 +0100)] 
mvebu: add depends for Turris MOX boards

Add dependencies for Turris MOX board modules directly as
DEVICE_PACKAGES. (So that users don't have to add them manually.)

The device uses an SD card for primary storage so space shouldn't be an
issue.

Signed-off-by: Tomáš Macholda <tomas.macholda@nic.cz>
Link: https://github.com/openwrt/openwrt/pull/21151
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit bbfee76d1d7a08a5a89eb1d15a106ff567039521)

3 months agoapk: handle edge case when parsing .apk files 22001/head
Matt Merhar [Wed, 11 Feb 2026 22:30:53 +0000 (17:30 -0500)] 
apk: handle edge case when parsing .apk files

This was a regression introduced in the recent alignment changes and led
to failures when reading (i.e. 'mkndx') certain packages like follows:

ERROR: python3-botocore-1.31.7-r1.apk: unexpected end of file

It affected packages with a header size greater than the read buffer
size of 128KB but less than 160KB (128KB + (128KB / 4)).

In those cases, we'd attempt a 0 byte read, leading to APKE_EOF.

Based on some tests of files across multiple archs and feeds, it seems
the only packages meeting those criteria were python3-botocore and
golang-github-jedisct1-dnscrypt-proxy2-dev.

Fixes: 64ec08eee1 ("apk: backport upstream fixes for unaligned access")
Signed-off-by: Matt Merhar <mattmerhar@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/21992
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 8c6ed4e927373282b654420ad3962a6a0ea110c3)
Link: https://github.com/openwrt/openwrt/pull/22001
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agomvebu: cortex-a53: respect DEVICE_packages for Methode devices
Robert Marko [Mon, 9 Feb 2026 11:33:20 +0000 (12:33 +0100)] 
mvebu: cortex-a53: respect DEVICE_packages for Methode devices

Use the added support for generating per device targz rootfs so that images
generated for Methode devices when CONFIG_TARGET_MULTI_PROFILE and
CONFIG_TARGET_PER_DEVICE_ROOTFS are set, we actually get the targz rootfs
that respects DEVICE_PACKAGES.

Currently, buildbot generated images have no networking, LM75 nor I2C
working, as the generated images do not include required kmods that are
listed in DEVICE_PACKAGES.

While at it, there is no need for tar to run in verbose mode.

Fixes: 7dff6a8c89e3 ("mvebu: uDPU: add sysupgrade support")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
(cherry picked from commit ef922657724957c9ba8926c4a2472de20efdd8b5)

3 months agoimage: support generating per device targz rootfs
Robert Marko [Mon, 9 Feb 2026 11:25:56 +0000 (12:25 +0100)] 
image: support generating per device targz rootfs

Currently, for targets that use the CONFIG_TARGET_ROOTFS_TARGZ a single
rootfs tarball is generated for the subtarget based of $(TARGET_DIR).

However, this means that it does not respect DEVICE_PACKAGES like other
rootfs images.

So, lets augment CONFIG_TARGET_ROOTFS_TARGZ by adding a proper targz fstype
so that per device rootfs is generated under lock.

This is required so that devices that use custom sysupgrade archives like
Methode devices, can actually include a per device rootfs so when building
for multiple devices and with CONFIG_TARGET_PER_DEVICE_ROOTFS set the built
image actually includes the listed DEVICE_PACKAGES.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
(cherry picked from commit d89cb72c23fea53883c1e6203020d9b555208452)

3 months agokernel: refresh patches
Hauke Mehrtens [Wed, 11 Feb 2026 23:52:30 +0000 (00:52 +0100)] 
kernel: refresh patches

Refresh the patches to make them apply cleanly again.

Fixes: 105eb9ca95c5 ("kernel: add cake-mq support")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 30ac12f4b4682207c5b0501b3ffc50d56f58b690)

3 months agomediatek: filogic: add 6G precal to Acer Vero W6m
Zhi-Jun You [Fri, 6 Feb 2026 11:25:30 +0000 (19:25 +0800)] 
mediatek: filogic: add 6G precal to Acer Vero W6m

Bootlog has the following line:
mt7915e 0000:01:00.0: missing precal data, size=403472

It is because precal was not included in the previous NVMEM conversion.

Fix this by adding it to the dts.

Fixes: dbc2923cbe21 ("mediatek: filogic: convert Acer Predator W6 to use NVMEM framework")
Signed-off-by: Zhi-Jun You <hujy652@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/21894
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit c62bab29d5060798ef0d4b28d246a0bc4671c356)

3 months agomediatek: filogic: add 6G precal to Acer Predator W6
Zhi-Jun You [Fri, 6 Feb 2026 11:20:32 +0000 (19:20 +0800)] 
mediatek: filogic: add 6G precal to Acer Predator W6

Bootlog has the following line:
mt7915e 0000:01:00.0: missing precal data, size=403472

It is because precal was not included in the previous NVMEM conversion.

Fix this by adding it to the common dts.

Fixes: dbc2923cbe21 ("mediatek: filogic: convert Acer Predator W6 to use NVMEM framework")
Signed-off-by: Zhi-Jun You <hujy652@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/21894
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit eb369b267d774303056a7a5eca972621261922bd)

3 months agomediatek: filogic: add precal to W6 common dtsi
Zhi-Jun You [Fri, 6 Feb 2026 11:06:33 +0000 (19:06 +0800)] 
mediatek: filogic: add precal to W6 common dtsi

Bootlog has the following line:
mt798x-wmac 18000000.wifi: missing precal data, size=403472

It is because precal was not included in the previous NVMEM conversion.

Fix this by adding it to the common dtsi.

Fixes: dbc2923cbe21 ("mediatek: filogic: convert Acer Predator W6 to use NVMEM framework")
Signed-off-by: Zhi-Jun You <hujy652@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/21894
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 3f430451b11d43f1a690314cd146d8282d8e4f70)

3 months agokernel: backport pppoe improvements
Qingfang Deng [Fri, 6 Feb 2026 09:38:50 +0000 (17:38 +0800)] 
kernel: backport pppoe improvements

Backport PPP patches accepted upstream.

Manually rebased:
- target/linux/ipq40xx/patches-6.12/999-atm-mpoa-intel-dsl-phy-support.patch

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21892
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 316492b809a67403264b91a32abf23e967c64bbf)

3 months agogemini: select the right GPIO input package 21973/head
Linus Walleij [Wed, 28 Jan 2026 00:22:52 +0000 (01:22 +0100)] 
gemini: select the right GPIO input package

We don't want kmod-gpio-button-hotplug, we want the more
normal kmod-input-gpio-keys.

Link: https://github.com/openwrt/openwrt/pull/21750
(cherry picked from commit 37b13b6ea65f64154d4e97d3cb677f31aebf5ec3)
Link: https://github.com/openwrt/openwrt/pull/21973
Signed-off-by: Linus Walleij <linusw@kernel.org>
3 months agogemini: set disk activity on orange LED
Linus Walleij [Mon, 26 Jan 2026 09:18:57 +0000 (10:18 +0100)] 
gemini: set disk activity on orange LED

Set the disk activity LED to the intended trigger.

Link: https://github.com/openwrt/openwrt/pull/21750
(cherry picked from commit f52f1a85d187143f8f4f32441baa626b2a00762d)
Link: https://github.com/openwrt/openwrt/pull/21973
Signed-off-by: Linus Walleij <linusw@kernel.org>
3 months agogemini: sl93512r: override SL93512R partitions for firmware
Linus Walleij [Sun, 1 Feb 2026 09:26:59 +0000 (10:26 +0100)] 
gemini: sl93512r: override SL93512R partitions for firmware

This is patch is identical in form and purpose as the IB-4220-B
patch. We switch over to a single "firmware" partition.

All reference design-based machines are now converted and we can
drop the legacy set-up code.

It turns out that the reference design also uses the flash layout
with a 3072KB kernel so augment the sysupgrade to do the right
thing also here.

Link: https://github.com/openwrt/openwrt/pull/21820
(cherry picked from commit c579e1d04c35dc767964901b384d7bf42f672668)
Link: https://github.com/openwrt/openwrt/pull/21973
Signed-off-by: Linus Walleij <linusw@kernel.org>
3 months agogemini: sq201: override SQ201 partitions for firmware
Linus Walleij [Sat, 31 Jan 2026 23:30:33 +0000 (00:30 +0100)] 
gemini: sq201: override SQ201 partitions for firmware

This is patch is identical in form and purpose as the IB-4220-B
patch. We switch over to a single "firmware" partition.

Link: https://github.com/openwrt/openwrt/pull/21820
(cherry picked from commit 81215f55e274b9127f3491590bd237d1f836a014)
Link: https://github.com/openwrt/openwrt/pull/21973
Signed-off-by: Linus Walleij <linusw@kernel.org>
3 months agogemini: override IB-4220-B partitions for firmware
Linus Walleij [Mon, 26 Jan 2026 07:21:29 +0000 (08:21 +0100)] 
gemini: override IB-4220-B partitions for firmware

To optimize the flash usage and to make firmware upgrades
simpler, catenate the three firmware partitions "Kern",
"Ramdisk" and "Application" into one, and use all of this
for the combined MTD-splitted kernel+rootfs.

This works fine as long as the kernel is placed in the
beginning of this firmware partition and we leave the
RedBoot partition as is, so the boot loader still can load
the kernel from the first two RedBoot partitions.

Using the RedBoot partitions "as is" can be considered
harmful, because when you flash to a RedBoot partition the
file size is used for downsizing of the partition and make
firmware upgrades fail if they are larger than the RedBoot
partition size after flashing, despite there is actually
flash there. So overriding with fixed partitions is just
generally a good idea.

Link: https://github.com/openwrt/openwrt/pull/21820
(cherry picked from commit 387752dc76ba2de2510147427ff1361dfd90c556)
Link: https://github.com/openwrt/openwrt/pull/21973
Signed-off-by: Linus Walleij <linusw@kernel.org>
3 months agokernel: Add necessary CONFIG_MTD_SPLIT config option
Linus Walleij [Tue, 3 Feb 2026 17:20:44 +0000 (18:20 +0100)] 
kernel: Add necessary CONFIG_MTD_SPLIT config option

Buils break without this new config, mea culpa.

Link: https://github.com/openwrt/openwrt/pull/21855
(cherry picked from commit eb0a1a3a8982e25575b7bae214517ce41240bb89)
Link: https://github.com/openwrt/openwrt/pull/21973
Signed-off-by: Linus Walleij <linusw@kernel.org>
3 months agokernel: mtdsplit: create executable prolog splitter
Linus Walleij [Tue, 27 Jan 2026 17:09:10 +0000 (18:09 +0100)] 
kernel: mtdsplit: create executable prolog splitter

The problem is the following: we have three fixed partitions
in a RedBoot partition for kernel, initrd and rootfs. On the
surface this looks good.

But we have little flash and want to use it efficiently. We want
to use the OpenWrt "firmware" partition scheme where the kernel,
initramfs and sqashfs+jffs2 rootfs is appended, leaving maximum
space for a writeable rootfs.

To do this we will override the existing RedBoot partition table
with one that merges the three separate partitions into one
"firmware" partition.

RedBoot is still booting the system. It still needs to read the
first two parts "as if" these were the kernel and initrd. This
works fine, because the kernel still comes first.

We already have hacks in place to merge the two kernel and initrd
into one binary image and execute it. This is done by prepending
a "prolog" to the kernel that does the necessary copying in
memory and then jumps to execute the kernel.

Since this "prolog" copying routine is just 92 bytes but has 512
bytes allocated, we can trivially create a firmware format that
can be used for splitting the image into kernel and rootfs
using a tagging scheme that can be done directly by scripting
so we don't need any special binary programs.

This splitter implements that idea.

This will be used on the Gemini platform and was tested on the
Raidsonic IB-4220-B.

Link: https://github.com/openwrt/openwrt/pull/21820
(cherry picked from commit 5ac8f14ccb078d136db17716eff3a85685e55f9b)
Link: https://github.com/openwrt/openwrt/pull/21973
Signed-off-by: Linus Walleij <linusw@kernel.org>
3 months agogemini: use tar stream to write firmware
Linus Walleij [Thu, 29 Jan 2026 22:40:50 +0000 (23:40 +0100)] 
gemini: use tar stream to write firmware

The firmware update file can get big, so instead of extracting
the whole file into the tmp folder potentially running out of space
and make the upgrade fail, stream from tar xvf -O directly to the
mtd write command.

Refactor the checking of partitions and the actual upgrade into
two steps when we are at it.

Link: https://github.com/openwrt/openwrt/pull/21782
(cherry picked from commit 1977301b5f8f76b4d04b5950b09b2fd7cf607bc4)
Link: https://github.com/openwrt/openwrt/pull/21973
Signed-off-by: Linus Walleij <linusw@kernel.org>
3 months agogemini: pad storlink reference firmware to 128kb
Linus Walleij [Sun, 25 Jan 2026 20:01:47 +0000 (21:01 +0100)] 
gemini: pad storlink reference firmware to 128kb

The redboot partition parser gets upset if a partition
doesn't end on an even erase block and marks the partition
read-only.

Fix this by always padding the three firmware items to
128kb.

It is no longer required for the filesystem to be padded
to 6144kb, so we pad this to just 128kb like the kernel
images.

Link: https://github.com/openwrt/openwrt/pull/21750
(cherry picked from commit db7a2fb217d7e5480e3f5c57c061a675cf9dd83a)
Link: https://github.com/openwrt/openwrt/pull/21973
Signed-off-by: Linus Walleij <linusw@kernel.org>
3 months agogemini: Fix up sysupgrade platform.sh script
Linus Walleij [Sun, 25 Jan 2026 18:01:45 +0000 (19:01 +0100)] 
gemini: Fix up sysupgrade platform.sh script

The Storlink reference designs sometimes fail upgrade because
not the entire partition is used, so the size isn't equal to
the actual flash space available for the partition.

Fix this by calculating the actual partition sizes by measuring
across the partition offsets instead.

Link: https://github.com/openwrt/openwrt/pull/21750
(cherry picked from commit 04bc0b6d3f440cc139d6e320cba165b37cda9c9b)
Link: https://github.com/openwrt/openwrt/pull/21973
Signed-off-by: Linus Walleij <linusw@kernel.org>
3 months agogemini: select CONFIG_BLK_DEV_LOOP
Linus Walleij [Tue, 27 Jan 2026 19:52:37 +0000 (20:52 +0100)] 
gemini: select CONFIG_BLK_DEV_LOOP

The gemini is using split squashfs/jffs2 root filesystems on
all devices, so without CONFIG_BLK_DEV_LOOP the device does
not gain a writeable root filesystem with these boot messages:

mount_root: unable to create loop device
mount_root: jffs2 not ready yet, using temporary tmpfs overlay

and then it never gets out of that. Fix this so we get writeable
rootfs again.

Link: https://github.com/openwrt/openwrt/pull/21748
(cherry picked from commit b8dc7ac9c68d7e3e3a838c2ca32545c57642653b)
Link: https://github.com/openwrt/openwrt/pull/21973
Signed-off-by: Linus Walleij <linusw@kernel.org>
3 months agogemini: create a copy-kernel for 3072k kernels
Linus Walleij [Sat, 24 Jan 2026 17:13:24 +0000 (18:13 +0100)] 
gemini: create a copy-kernel for 3072k kernels

The Raidsonic devices do not use a 2048k kernel "Kern"
partition like the Storlink reference designs. Instead
it uses a 3072k partition to fit a slightly
larger kernel.

Sadly the current OpenWrt Gemini kernel is still bigger
than 3072k so we need to make use of the Ramdisk
partition as well.

Create a special "copy-kernel" version that can deal
with the Raidsonic 3072k kernels. Tested on the
Raidsonic IB-4220-B booting kernel v6.12.66.

Fix a copy/paste error in the image generation makefile
while we are at it.

Link: https://github.com/openwrt/openwrt/pull/21686
(cherry picked from commit 691aa70e1693542eee795df4bed2b46f6af26e63)
Link: https://github.com/openwrt/openwrt/pull/21973
Signed-off-by: Linus Walleij <linusw@kernel.org>
3 months agogemini: support upgrade on reference designs
Linus Walleij [Wed, 21 Jan 2026 21:24:46 +0000 (22:24 +0100)] 
gemini: support upgrade on reference designs

The Gemini reference design-derived devices uses a partition
format which is predictable and we can exploit this to offer
some proper upgrade path.

The kernel for these contains a hack to use this partition
format unaltered by combining the partitions "Kern" and "Ramdisk"
to one image with all of the kernel+ramdisk in memory.

Then the "Application" which is used for the rootfs go into its
own partition.

Standard flash layout:
Kern         2048k |
Ramdisk      6144k | = 9216k
Application  6144k | = 15360k

Following the pattern of the factory image we create three
images named zImage, rd.gz and hddapp.tgz (these filenames
are misleading! They are just required by the old firmware.)
and flash each individually with "mtd" during upgrades.

Since the IB-4220-V has a different layout with a bigger kernel
space we parameterize this so we can handle this too. (More
fixes are needed for that device though.)

A way to upgrade older OpenWrt on these platforms to the latest
and greatest will be to copy the file
target/linux/gemini/base-files/lib/upgrade/platform.sh
to /lib/upgrade/platform.sh
on your running system and then run sysupgrade from the image
produced after this patch.

The script is picky to sanity check the partitions before
commencing upgrade.

This was tested with a full sysupgrade on the iTian SQ201.

Link: https://github.com/openwrt/openwrt/pull/21680
(cherry picked from commit 0b0cd4efe25d9ee73896c8fa3079074dbae2637d)
Link: https://github.com/openwrt/openwrt/pull/21973
Signed-off-by: Linus Walleij <linusw@kernel.org>
3 months agogemini: Fix up the rootfs device for SQ201
Linus Walleij [Fri, 23 Jan 2026 20:24:47 +0000 (21:24 +0100)] 
gemini: Fix up the rootfs device for SQ201

The rootfs partition is /dev/mtdblock3, fix it up.

Link: https://github.com/openwrt/openwrt/pull/21662
(cherry picked from commit 8dec72061f523227e2535863f25f8ff239c441b3)
Link: https://github.com/openwrt/openwrt/pull/21973
Signed-off-by: Linus Walleij <linusw@kernel.org>
3 months agogemini: Add DTS fix from upstream kernel
Linus Walleij [Fri, 23 Jan 2026 15:32:10 +0000 (16:32 +0100)] 
gemini: Add DTS fix from upstream kernel

This contains small but important DTS fixes for the
RedBoot partitions.

Link: https://github.com/openwrt/openwrt/pull/21662
(cherry picked from commit 92682593d53104f43f8b06c52faa5d05d471dea8)
Link: https://github.com/openwrt/openwrt/pull/21973
Signed-off-by: Linus Walleij <linusw@kernel.org>
3 months agoiproute2: add cake_mq support
Rui Salvaterra [Tue, 10 Feb 2026 11:28:56 +0000 (11:28 +0000)] 
iproute2: add cake_mq support

Add two patches backported from iproute2-next.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21964
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit f9320e8d2d3974f992b803437f7a750b000000f0)

3 months agokernel: add cake-mq support
Rui Salvaterra [Wed, 21 Jan 2026 17:27:10 +0000 (17:27 +0000)] 
kernel: add cake-mq support

Add the required patches in order to backport cake-mq from Linux 7.0.

Many thanks to Toke Høiland-Jørgensen for providing the git trees with backports
for both 6.12 and 6.18.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21964
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 105eb9ca95c5906011d3e5eac10e6332f9c3ff60)

3 months agoath79: add calibration variant for TP-Link TL-WA1201 v2 21951/head
Christoph Krapp [Mon, 26 Jan 2026 21:13:25 +0000 (22:13 +0100)] 
ath79: add calibration variant for TP-Link TL-WA1201 v2

Now that we have a board file, add calibration variant for TP-Link
TL-WA1201 v2 and add ipq-wifi package for it.

Tested-by: Jim McDonald <122668301+jimmyd998@users.noreply.github.com>
Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21736
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 0fa94cff8631f3339473285012567faca6488abb)
Link: https://github.com/openwrt/openwrt/pull/21951
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoipq-wifi: Add entry for TP-Link TL-WA1201 v2
Christoph Krapp [Mon, 26 Jan 2026 21:12:35 +0000 (22:12 +0100)] 
ipq-wifi: Add entry for TP-Link TL-WA1201 v2

Add IPQ Wifi entry for ath79 TP-Link TL-WA1201 v2.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21736
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 0230a3588279dfeefecf191143eda90942613ffc)
Link: https://github.com/openwrt/openwrt/pull/21951
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoipq-wifi: update to Git HEAD (2026-01-28)
Robert Marko [Wed, 28 Jan 2026 11:02:10 +0000 (12:02 +0100)] 
ipq-wifi: update to Git HEAD (2026-01-28)

88514e5aab3e qca9888: add bdf for TP-Link TL-WA1201 v2

Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 953ef12f179df6436e8029f727da7ec08bedc968)
Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21951
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoipq-wifi: update to Git HEAD (2026-01-24)
Robert Marko [Sun, 25 Jan 2026 10:38:59 +0000 (11:38 +0100)] 
ipq-wifi: update to Git HEAD (2026-01-24)

38804f59fbb9 ci: add ath12k BDF-s
d28bc0724dc6 ipq8074: add TCL LINKHUB  HH500V BDF
8e1fb2f59893 ipq6018:add TP-Link EAP620 HD v3 BDF Add board file for TP-Link EAP620 HD v3. bdwlan_US.bin sourced from EAP620 HD(US)_V3_1.4.4 Build 20250718 stock firmware.

Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 12fd85eb7951e689c31144a308ffff8e49f50a97)
Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21951
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agomediatek: filogic: gl-mt2500 fix compatibles PHY variants
Mario Andrés Pérez [Thu, 5 Feb 2026 00:19:08 +0000 (01:19 +0100)] 
mediatek: filogic: gl-mt2500 fix compatibles PHY variants

These devices share the same "compatible" in device tree causing some
incompatibilities (sysupgrades, ASU profile identification), assign a
unique "compatible" and "model" to each variant.

Context:
Commit [1] added each variant's dts compatible to the SUPPORTED_DEVICES
field of the other variant to make easy sysupgrades between these
physically indistinguishable devices variants possible.

But there were found three issues which does not allow this:
- the sysupgrade's stricter check still used in some sysupgrade
paths(this check is being replaced(and redundant) with the newer fwtool's
SUPPORTED_DEVICES check using the info in images METADATA), this check
will fail when sysupgrading from a different board_name(compatible dts)
that the image was created for (image profile name).[2]
- ASU needs unique "dts compatible" to identify the devices profile.
- and an ASU's profile identification limitation when several devices from
a common target share SUPPORTED_DEVICES entries.[3]

There is a proposal for these issues but not yet implemented [4][3].

Until these issues are fixed we won't allow "easy" sysupgrades between
these two device variants.

Commit [5] avoided the ASU profile identification limitation but
missed the required two unique dts compatibles in order to make the two
variants fully work, although not allowing easy sysupgrade between them.

[1]: https://github.com/openwrt/openwrt/commit/8d30e07180367cdeb4affd79adead6e1025355c9
[2]: sysupgrade stricter check https://github.com/openwrt/openwrt/issues/20566#issuecomment-3583555482
[3]: ASU proposal https://github.com/openwrt/asu/pull/1533
[4]: allow easy sysupgrade proposal https://github.com/openwrt/openwrt/pull/20947
[5]: https://github.com/openwrt/openwrt/commit/b71f4665cda10c284c9460409ae30fb9b0beecf8
Fixes: b71f466 ("mediatek: filogic: fix supported_devices list for gl-mt2500")
Fixes: 8d30e07 ("mediatek: filogic: fix for new GL.iNet GL-MT2500/GL-MT2500A hardware revision")
Fixes: https://github.com/openwrt/openwrt/issues/20566
Fixes: https://github.com/openwrt/asu/issues/1525
Signed-off-by: Mario Andrés Pérez <mapb_@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21842
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 7aa1f7e814dea0627e905ef1ad92954cae51d301)

3 months agoapk: backport upstream fixes for unaligned access
Matt Merhar [Mon, 9 Feb 2026 23:20:39 +0000 (18:20 -0500)] 
apk: backport upstream fixes for unaligned access

On the kirkwood target, packages would frequently fail to install with
APKE_ADB_SCHEMA, APKE_ADB_BLOCK, and/or segfaults. The culprit was
unaligned access leading to bogus values being read out of memory on
these particular ARMv5 CPUs.

Pull in the relevant upstream fixes to address this.

Fixes: https://github.com/openwrt/openwrt/issues/21307
Link: https://gitlab.alpinelinux.org/alpine/apk-tools/-/merge_requests/391
Link: https://gitlab.alpinelinux.org/alpine/apk-tools/-/merge_requests/392
Signed-off-by: Matt Merhar <mattmerhar@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/21958
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
(cherry picked from commit 64ec08eee1cc35417a6b0189e40b92665056da25)

3 months agowifi-scripts: fix spurious teardown on config_change during setup
Felix Fietkau [Sun, 8 Feb 2026 18:46:07 +0000 (18:46 +0000)] 
wifi-scripts: fix spurious teardown on config_change during setup

When config_change is set during an active setup (e.g. by a concurrent
reconf call), wdev_mark_up() attempted to call setup() while still in
"setup" state. Since setup() requires state "up" or "down", it silently
returned, leaving the state as "setup". The subsequent wdev_setup_cb()
then treated this as a setup failure, triggering an unnecessary
teardown+restart cycle.

Fix this by removing the config_change handling from wdev_mark_up() and
moving it to wdev_setup_cb() instead. wdev_mark_up() now always
transitions to "up" state. When wdev_setup_cb() runs afterwards and
finds the device already "up" with config_change set, it initiates a
clean re-setup from the "up" state where setup() can run.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 3553eda28379f1074b8c2cc4d3ab9930552f0cad)

3 months agowireguard-tools: fix script errors 21840/head
Paul Donald [Tue, 3 Feb 2026 05:18:01 +0000 (06:18 +0100)] 
wireguard-tools: fix script errors

follow-up to 148207730a3c9f3aea807df336ca33792e9d3c0f

Schoolboy error on the peer_psk value.

Also fix an issue when joining peer IPv4 and IPv6 AllowedIPs
(${peer_a_ips/ /, } replaces only the first space, while
${peer_a_ips// /, } replaces all the spaces).

Closes: https://github.com/openwrt/openwrt/issues/21847
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21851
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 3f0de6a28db049b782dc7ce27ad8fd917499db31)
Link: https://github.com/openwrt/openwrt/pull/21840
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agowireguard-tools: enable reload without teardown
Paul Donald [Sat, 31 Jan 2026 14:52:21 +0000 (15:52 +0100)] 
wireguard-tools: enable reload without teardown

- preserve (active) interface (at reload)

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21784
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 0a576dec7468b9d1185b383ba17ee9c7b2151a5d)
Link: https://github.com/openwrt/openwrt/pull/21840
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agowireguard-tools: avoid temp file for peer generation
Paul Donald [Sat, 31 Jan 2026 15:01:44 +0000 (16:01 +0100)] 
wireguard-tools: avoid temp file for peer generation

- no longer write any temporary file for peer gen
- use wg syncconf to update active interfaces (not setconf)

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21784
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 148207730a3c9f3aea807df336ca33792e9d3c0f)
Link: https://github.com/openwrt/openwrt/pull/21840
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agowireguard-tools: avoid temp file for key gen
Paul Donald [Sat, 31 Jan 2026 14:47:30 +0000 (15:47 +0100)] 
wireguard-tools: avoid temp file for key gen

- no longer write any temporary file for key gen

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21784
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 97789875d5e23ebf3bd311454846649e8fb215bc)
Link: https://github.com/openwrt/openwrt/pull/21840
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agowireguard-tools: add protocol renew handler
Paul Donald [Sat, 31 Jan 2026 14:56:28 +0000 (15:56 +0100)] 
wireguard-tools: add protocol renew handler

- add a renew handler
- add a peer detect handler

( benefits from https://github.com/openwrt/netifd/pull/66 )

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21784
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 400742a855e2d3e2288ba3b224037bc464dbbdf2)
Link: https://github.com/openwrt/openwrt/pull/21840
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agowireguard-tools: detect address changes at reload
Paul Donald [Sat, 31 Jan 2026 14:53:41 +0000 (15:53 +0100)] 
wireguard-tools: detect address changes at reload

Proto handler now also detects changes to
- addresses

Tighten also assign address portion

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21784
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit d59b360ceeb132b5822087758910487042d41480)
Link: https://github.com/openwrt/openwrt/pull/21840
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agopackage-pack: fix Ubuntu 18.04 compilation
Rosen Penev [Sat, 7 Feb 2026 02:39:33 +0000 (18:39 -0800)] 
package-pack: fix Ubuntu 18.04 compilation

Add \ to fix parsing with make 4.1.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21910
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 71ad91ecfa74427fce0dd5cfa68b95213b9a3e76)

3 months agolantiq: xrx200: handle EPROBE_DEFER for MAC address
Burak Aydos [Tue, 3 Feb 2026 20:38:01 +0000 (23:38 +0300)] 
lantiq: xrx200: handle EPROBE_DEFER for MAC address

The xrx200 ethernet driver falls back to a random MAC address on any
error from of_get_ethdev_address(), including -EPROBE_DEFER. When the
MAC address comes from an nvmem layout driver (such as u-boot-env on
NAND), the nvmem cell may not be available yet at first probe attempt.

Fix this by propagating EPROBE_DEFER so the driver probe is deferred
until the nvmem cell becomes available.

Tested on Zyxel P-2812HNU-F1 (NAND, u-boot-env nvmem layout).

Signed-off-by: Burak Aydos <byhexadecimal@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21861
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 50e7e5c80d9269e7a6e947688ffb4cec895d1237)

3 months agorealtek: dts: add LGS328C port 21 definition 21900/head
Markus Stockhausen [Fri, 30 Jan 2026 17:16:02 +0000 (18:16 +0100)] 
realtek: dts: add LGS328C port 21 definition

Port 21 definition was missed during addition of LGS328C.
Add it to the dts.

Fixes: 853d73f ("realtek: add support for Linksys LGS328C")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21793
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 75fd2497acb25f77528c7aa73470f303a98f8b63)
Link: https://github.com/openwrt/openwrt/pull/21900
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agorealtek: dsa: remove storm control
Bjørn Mork [Thu, 5 Feb 2026 13:08:51 +0000 (14:08 +0100)] 
realtek: dsa: remove storm control

Commit 78bf3a5f44bf ("realtek: dsa: Fix rate control initialization") enabled
code setting up the "storm control" feature. This casued a speed regression
on rtl838x, reducing the effective max speed per port from line rate to around
500 Mbits/s.

Storm control is a policy feature with a number of input parameters depending
on use case and environment.  It is not possible to define a meaningful static
policy in the driver. The problem isn't just the arbitrary limits in the
current code.  Such features require userspace interfaces.

Drop this code for now. It wasn't missed while it was disabled.

Fixes: 78bf3a5f44bf ("realtek: dsa: Fix rate control initialization")
Link: https://github.com/openwrt/openwrt/issues/21692
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Link: https://github.com/openwrt/openwrt/pull/21877
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 3972aeaf7cc3cb87a99bc6a3d83f1d22e7287399)
Link: https://github.com/openwrt/openwrt/pull/21900
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agorealtek: dsa: rtl839x: fix uninitialized global access
Markus Stockhausen [Sun, 25 Jan 2026 18:07:32 +0000 (19:07 +0100)] 
realtek: dsa: rtl839x: fix uninitialized global access

Setup for DSA QOS on RTL839x accesses unitialized memory. For some
reason the handover of the priv structure was realized via global
intermediate variable switch_priv. During refactoring for adbb9a6
("realtek: dsa: rtl83xx: fix init section mismatch") this was not
noticed. Since then RTL839x devices crash during startup.

Fix this by using standard handover via function parameters.

Fixes: e81affb9 ("realtek: dsa: rtl83xx: fix init section mismatch")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21703
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit ac9646394482ba2e464ccf75e74c936485028305)
Link: https://github.com/openwrt/openwrt/pull/21900
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agorealtek: dsa: rtl83xx: fix init section mismatch
Markus Stockhausen [Sun, 25 Jan 2026 08:27:56 +0000 (09:27 +0100)] 
realtek: dsa: rtl83xx: fix init section mismatch

Compilation currently spits this message:

WARNING: modpost: vmlinux: section mismatch in reference:
rtl83xx_sw_probe+0x6a4 (section: .text.rtl83xx_sw_probe)
-> rtl83xx_setup_qos (section: .init.text)

That means that we have a "normal" function caller (can be
called during the whole uptime) and a "initialization" function
callee (only available during init.

Fix this and directly fix the unwanted family checks.

Fixes: 012e0091 ("realtek: dsa: avoid use-after-free")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21690
(cherry picked from commit adbb9a64235e1575bcd47c75d9cdc628b96a15e0)
Link: https://github.com/openwrt/openwrt/pull/21900
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agorealtek: dsa: avoid use-after-free
Carl-Daniel Hailfinger [Sun, 11 Jan 2026 19:31:20 +0000 (20:31 +0100)] 
realtek: dsa: avoid use-after-free

The realtek target uses some functions marked __init for initialization.
However, that means they can only be called once when compiled in and
afterwards the memory occupied by them is freed and potentially reused.
Some "impossible" (code at a given location can't crash in the way it
does) crashes can be caused by this because upon re-execution of those
functions, garbage gets executed. Such re-execution can happen for
deferred probes or repeated probes.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Link: https://github.com/openwrt/openwrt/pull/21504
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
(cherry picked from commit a91c3abe83c3f9513518c86b5d0a42b5a9afaad3)
Link: https://github.com/openwrt/openwrt/pull/21900
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agowifi-scripts: fix encryption setting of default OpenWrt SSID
Shine [Sun, 8 Feb 2026 09:41:45 +0000 (10:41 +0100)] 
wifi-scripts: fix encryption setting of default OpenWrt SSID

Commit 01a87f4bd0cdbfc84bbc172920e865c1600f7a45 changed the encryption
setting of the default SSID "OpenWrt" from "none" to "open". The correct
setting as per the documentation [1] is "none", though.
While this invalid setting won't cause a wrong hostapd setup, it will
at least cause malfunction in LuCI.

Change the default encryption setting back to "none".

[1] https://openwrt.org/docs/guide-user/network/wifi/basic#encryption_modes

Fixes: 01a87f4bd0cdbfc84bbc172920e865c1600f7a45
Signed-off-by: Shine <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21925
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 4ab5fcc04f7a39cc0a8a7294d825be32ddab1113)

3 months agomediatek: routerich be7200: fix usb issue 21882/head
Mikhail Zhilkin [Fri, 30 Jan 2026 17:23:09 +0000 (20:23 +0300)] 
mediatek: routerich be7200: fix usb issue

This commit fixes non-working USB port:
---
[    5.294036] xhci-mtk 11200000.usb: error -EPERM: Failed to get supply 'vbus'
[    5.301163] xhci-mtk 11200000.usb: error -EPERM: Failed to get regulators
[    5.307938] xhci-mtk 11200000.usb: probe with driver xhci-mtk failed with error -1
---

While testing the USB power on/off functionality during the previous
commit, I didn't sufficiently test the actual operation of the USB
devices.

Fixes: ff5e66a9208a ("mediatek: add support for Routerich BE7200")
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21795
(cherry picked from commit 2651a6ced9e2f59390dc9e0703c9402e123924a5)
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21882
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoext-toolchain: fix wrapper for gcc-ar, gcc-nm, gcc-ranlib 21899/head
Gustavo Henrique Nihei [Fri, 23 Jan 2026 21:04:59 +0000 (18:04 -0300)] 
ext-toolchain: fix wrapper for gcc-ar, gcc-nm, gcc-ranlib

The pattern '*-*cc-*' incorrectly matches these tools because their names
contain 'cc-'. This causes them to receive compiler CFLAGS, breaking
builds with 'ar: two different operation options specified'.

Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
Link: https://github.com/openwrt/openwrt/pull/21757
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 435917735ab8a9ba23300dda77aaace13fc16d96)
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
Link: https://github.com/openwrt/openwrt/pull/21899
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agomediatek: filogic: add support for Cudy AP3000 Wall v1 21890/head
Derek Denk [Wed, 31 Dec 2025 00:34:47 +0000 (17:34 -0700)] 
mediatek: filogic: add support for Cudy AP3000 Wall v1

This commit adds support for the Cudy AP3000 Wall v1.

SoC: MediaTek MT7981b
RAM: 256MiB
Flash: spi-nand spi0.0: 128 MiB
Wifi: MediaTek MT7981 2x2 DBDC 802.11ax 2T2R (2.4 / 5)
LEDs: 1 LED in two colors (red & white)
Buttons: 1 reset, 1 led on/off
Ethernet: 5x 1GbE
Power: PoE powered (standalone)

The stock firmware is a customized variant of OpenWrt, which implements
a signature check that only allows flashing official firmware. Cudy offers
intermediate OpenWrt firmware images on their website [1][2] which do not
implement the signature check. After flashing the intermediate image the
upstream official OpenWrt image can be installed.

The stock firmware can be recovered via TFTP using the U-Boot based boot
loader[3]. Set up a TFTP server on your computer with IP 192.168.1.88/24
serving the stock firmware from Cudy's website renamed to "recovery.bin".
Press and hold the reset button while powering on the device, wait for the
TFTP server to send the recovery.bin file, then release the reset button.
The router will take a couple of minutes to reboot and set up the stock
firmware.

[1] https://www.cudy.com/blogs/faq/openwrt-software-download
[2] https://drive.google.com/drive/folders/1BKVarlwlNxf7uJUtRhuMGUqeCa5KpMnj
[3] https://www.cudy.com/en-us/blogs/faq/how-to-recovery-the-cudy-router-from-openwrt-firmware-to-cudy-official-firmware

Signed-off-by: Derek Denk <derek.denk@live.com>
Link: https://github.com/openwrt/openwrt/pull/21266
(cherry picked from commit afad4c71f8d558ca86b997781ca0236f321cf1e9)
Link: https://github.com/openwrt/openwrt/pull/21890
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoairoha: an7581: add switch ports interrups 21838/head
Aleksander Jan Bajkowski [Mon, 1 Dec 2025 22:11:17 +0000 (23:11 +0100)] 
airoha: an7581: add switch ports interrups

The MT7531 has an incorrect interrupt number described in the DTS.
This commit also adds PHY interrupts. They work the same as on
the MT7988.

Tested on Gemtek W1700k.

Suggested-by: Benjamin Larsson <benjamin.larsson@genexis.eu>
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/21016
(cherry picked from commit 788958880b66dd3f451d53801c8d25e5e6cfe1b8)
Link: https://github.com/openwrt/openwrt/pull/21838
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoairoha: an7581: enable USB support
Ziyang Huang [Thu, 8 Jan 2026 14:38:46 +0000 (22:38 +0800)] 
airoha: an7581: enable USB support

The an7581.dtsi contains the mediatek,mtk-xhci device.

Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21460
(cherry picked from commit f8a6798bf38c3d3e6fe6af9367ea5628df46429a)
Link: https://github.com/openwrt/openwrt/pull/21838
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoairoha: show link rate and duplex
Aleksander Jan Bajkowski [Sat, 10 Jan 2026 17:05:38 +0000 (18:05 +0100)] 
airoha: show link rate and duplex

Implement the .get_link_ksettings to get the rate, duplex, and
auto-negotiation status.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/21530
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 4953db3aeff052223e4588fe892f94a32e917a05)
Link: https://github.com/openwrt/openwrt/pull/21838
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoairoha: an7581: correct led nodename
Ziyang Huang [Sun, 19 Oct 2025 09:45:48 +0000 (17:45 +0800)] 
airoha: an7581: correct led nodename

Use standard name.

Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/20482
(cherry picked from commit f5bf8c2b948201a8e1e62b47049ab9f7b9d842bf)
Link: https://github.com/openwrt/openwrt/pull/21838
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoairoha: an7581: correct phy nodename
Ziyang Huang [Sun, 19 Oct 2025 09:51:28 +0000 (17:51 +0800)] 
airoha: an7581: correct phy nodename

Let node unit address same as reg.

Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/20482
(cherry picked from commit 077120fb64450f6780f07139faccd67e587560a5)
Link: https://github.com/openwrt/openwrt/pull/21838
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoairoha: an7581: move the switch led label from soc-level to board-level
Ziyang Huang [Sun, 19 Oct 2025 09:41:43 +0000 (17:41 +0800)] 
airoha: an7581: move the switch led label from soc-level to board-level

Different boards use different port map. For example, some board may use
a GE port as WAN. So defining the led label in board-level is better.

Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/20482
(cherry picked from commit ea54b6a4786c1f6e687010a46e9f22a4d19e8219)
Link: https://github.com/openwrt/openwrt/pull/21838
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoairoha: an7581: move the switch port label from soc-level to board-level
Ziyang Huang [Sun, 19 Oct 2025 09:37:39 +0000 (17:37 +0800)] 
airoha: an7581: move the switch port label from soc-level to board-level

Different boards use different port map. Defining the port labels in
board-level is better.

Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/20482
(cherry picked from commit e2f7ad08c76593c8cb5abb70088b0813005aa09c)
Link: https://github.com/openwrt/openwrt/pull/21838
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoairoha: an7581: disable all switch port and phy by default
Ziyang Huang [Sun, 19 Oct 2025 09:45:24 +0000 (17:45 +0800)] 
airoha: an7581: disable all switch port and phy by default

Some board only use some of them, so enable as necessary in
board-level dts.

Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/20482
(cherry picked from commit 007aa5a51ce8bd596d35d8e2c7bec2240dbca94d)
Link: https://github.com/openwrt/openwrt/pull/21838
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoairoha: an7581: correct the pinctrl-name of phy leds
Ziyang Huang [Sun, 19 Oct 2025 09:34:53 +0000 (17:34 +0800)] 
airoha: an7581: correct the pinctrl-name of phy leds

address the following issues:

    [    3.542844] mdio_bus mt7530-0: Failed to setup PHY LED pinctrl
    [    3.552550] mdio_bus mt7530-0: Failed to setup PHY LED pinctrl
    [    3.562449] mdio_bus mt7530-0: Failed to setup PHY LED pinctrl
    [    3.574350] mdio_bus mt7530-0: Failed to setup PHY LED pinctrl

Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/20482
(cherry picked from commit 65aed6aa12c6ca0ed7afa74c992d5376605320e2)
Link: https://github.com/openwrt/openwrt/pull/21838
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 months agoairoha: an7583: fix scuclk unit-address
Aleksander Jan Bajkowski [Sat, 29 Nov 2025 17:58:17 +0000 (18:58 +0100)] 
airoha: an7583: fix scuclk unit-address

Fix the unit-address of the scuclk node.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/20985
(cherry picked from commit 79ff31104c6877e9acddcff8bf3009dcdd27ae3c)
Link: https://github.com/openwrt/openwrt/pull/21838
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>