openwrt/openwrt.git
2 weeks agobuild: Add support for linking with DT_RELR linking-relr
Hauke Mehrtens [Thu, 6 Nov 2025 22:08:04 +0000 (23:08 +0100)]
build: Add support for linking with DT_RELR

This adds the -Wl,-z,pack-relative-relocs linking options.
This reduces the size of some binaries.

This is only supported on i386, x86_64, aarch64 and loongarch64 in
binutils. This feature is not support for MIPS.

musl libc supports it since version 1.2.4 .
glibc supports it since vesion 2.36.
binutils ld supports it since version 2.38 for x86 and since version
2.43 for LoongArch.

This reduces the size of the armsr default root file system from
5,262,198 bytes to 5,200,950 bytes by 61,248 bytes.

Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agoramips: add support for EDUP EP-RT2960S
Andrii Kuiukoff [Tue, 14 Oct 2025 12:05:37 +0000 (15:05 +0300)]
ramips: add support for EDUP EP-RT2960S

EDUP EP-RT2960S has the similar hardware design as the SIMAX1800T.
The main difference is the arrangement of the GPIO pins
and the location of the MAC address.

Specification
-------------
- SoC       : Mediatek MT7621
- RAM       : 256 MiB DDR3
- Flash     : 128 MiB NAND Flash
- WLAN      : Mediatek MT7905 DBDC
  - 2.4 GHz : 2x2 MIMO WiFi6
  - 5 GHz   : 2x2 MIMO WiFi6
- Ethernet  : MT7621 built-in 10/100/1000 Mbps 1x WAN; 3x LAN
- UART      : 3.3V, 115200n8
- Buttons   : 1x RESET; 1x WPS/MESH
- LEDs      : 1x Multi-Color(Blue;Green;Red)
- Power     : DC 12V1A
- CMIIT ID  : 2022AP7163
- TFTP IP   :
  - server  : 192.168.1.254
  - router  : 192.168.1.28

TFTP Installation(recommend)
------------
1. Set local tftp server IP "192.168.1.254" and NetMask "255.255.255.0".
2. Rename initramfs-kernel.bin to "factory.bin" and put it in the root
   directory of the tftp server. tftpd64 is a good choice for Windows.
3. Remove all Ethernet cables and WiFi connections from the PC, except
   for the one connected to the EDUP EP-RT2960S. Start the TFTP server, plug
   in the power adapter and wait for the OpenWrt system to boot.
4. Backup "firmware" partition and rename it to "firmware.bin". We need
   it to back to the stock firmware.
5. Use "fw_printenv" command to list envs. If "firmware_select=2" is
   observed then set u-boot env variable via command:
   `fw_setenv firmware_select 1`
6. Apply sysupgrade.bin in OpenWrt LuCI.

Web UI Installation
------------
1. Apply update by uploading initramfs-factory.bin to the web UI.
2. Use "fw_printenv" command to list envs. If "firmware_select=2" is
   observed then set u-boot env variable via command:
   `fw_setenv firmware_select 1`
3. Apply squashfs-sysupgrade.bin in OpenWrt LuCI.

Return to Stock Firmware
----------------------------
  Restore the backup firmware partition in the installation step 4.

MAC addresses
-------------
+---------+-------------------+
|         | MAC example       |
+---------+-------------------+
| LABEL   | 24:D5:1C:xx:xx:xx |
| LAN     | 24:D5:1C:xx:xx:xx |
| WAN     | 24:D5:1C:xx:xx:xx |
| WLAN2G  | 24:D5:1C:xx:xx:xx |
| WLAN5G  | 26:D5:1C:xx:xx:xx |
+---------+-------------------+

Tips:
-----------
  User can use `TFTP Installation` method to recover a brick device.

Signed-off-by: Andrii Kuiukoff <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20600
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agohostapd: pass global linker options to CLI tools
Matthias Van Parys [Wed, 8 Oct 2025 12:42:42 +0000 (14:42 +0200)]
hostapd: pass global linker options to CLI tools

The CLI tools hostapd_cli and wpa_cli are compiled with
`TARGET_LDFLAGS_C` rather than the standard `TARGET_LDFLAGS`.
This variable is empty, leading to global linker options not being
applied.

Set this variable equal to `TARGET_LDFLAGS` right after the package.mk
include to make sure global linker options are applied, but local options
such as linking to crypto libraries are not.

Signed-off-by: Matthias Van Parys <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20345
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agolua5.3: Add TARGET_LDFLAGS to MYLDFLAGS
Jonathan Luijsmans [Tue, 4 Nov 2025 16:01:11 +0000 (17:01 +0100)]
lua5.3: Add TARGET_LDFLAGS to MYLDFLAGS

Add TARGET_LDFLAGS to MYLDFLAGS make sure that the required flags are used
during the compilation.

Signed-off-by: Jonathan Luijsmans <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20642
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorealtek: dsa: Clarify statistic port iterator variable
Sven Eckelmann [Wed, 5 Nov 2025 08:43:36 +0000 (09:43 +0100)]
realtek: dsa: Clarify statistic port iterator variable

The functions iterating through the port statistic/counter (for
initialization or polling) use the generic name "i" for the iterator. This
makes reading the actual body of the loop cumbersome because it is not
clear that various parameters of functions are about a ports.

Suggested-by: Felix Baumann <[email protected]>
Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20631
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorealtek: dsa: rtl931x: Reduce HW counters polling interval
Sven Eckelmann [Mon, 3 Nov 2025 17:19:14 +0000 (18:19 +0100)]
realtek: dsa: rtl931x: Reduce HW counters polling interval

Some SoC families require table access to get the HW counters. A mutex is
required for this access - which will potentially cause a sleep in the
current context. This is not always possible with .get_stats64 because it
is also called in atomic contexts.

For these SoCs, the retrieval of the current counters in .get_stats64 is
skipped and the counters are simply retrieved a lot more often from the HW.

Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20631
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorealtek: dsa: Refresh link_stats in .get_stats64
Sven Eckelmann [Mon, 3 Nov 2025 17:19:14 +0000 (18:19 +0100)]
realtek: dsa: Refresh link_stats in .get_stats64

If an architecture doesn't need to sleep for retrieving the current
statistics from the HW, it is possible to directly retrieve the last values
from the HW when .get_stats64 is called. This avoids the stale counters
with the current refresh interval of 60 seconds.

Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20631
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorealtek: dsa: Select counter lock based on sleeping behavior
Sven Eckelmann [Mon, 3 Nov 2025 17:19:14 +0000 (18:19 +0100)]
realtek: dsa: Select counter lock based on sleeping behavior

On many architectures, retrieving the HW counters from the switch is not
potentially sleeping. This would potentially allow these architectures to
retrieve the most recent values from the HW when .get_stats64 is called.
But because of the global mutex (which may sleep on lock), this would no
longer be possible.

Reintroduce the per port counters lock which protects from parallel
writes+reads of the non-link_stat counters. The locking is made abstract by
using helpers which identify the correct locking mechanism based on the
used read methods of the SoC.

Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20631
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorealtek: dsa: rtl931x: add ethtool statistics support
Harshal Gohel [Wed, 13 Aug 2025 13:44:12 +0000 (13:44 +0000)]
realtek: dsa: rtl931x: add ethtool statistics support

Add MIB data structures and table access routines for the RTL931X family.
These counters can now be exposed through the ethtool statistics interface.

Signed-off-by: Harshal Gohel <[email protected]>
Co-developed-by: Sharadanand Karanjkar <[email protected]>
Signed-off-by: Sharadanand Karanjkar <[email protected]>
Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20631
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorealtek: dsa: add table-based statistics infrastructure
Sharadanand Karanjkar [Thu, 14 Aug 2025 15:48:14 +0000 (15:48 +0000)]
realtek: dsa: add table-based statistics infrastructure

Some Realtek SoCs such as the RTL931X store MIB counters in tables rather
than registers. Unlike register reads, table access requires programming
the table control register, setting the command field to determine read or
write, and then polling for completion. This makes it necessary to
implement a separate path for table-based statistics.

Like register-based MIBs, the table-based MIBs also come in two types: STD
and PRIV which will require slightly different implementations.

Signed-off-by: Sharadanand Karanjkar <[email protected]>
Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20631
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorealtek: dsa: rework MIB read locking and polling
Sharadanand Karanjkar [Wed, 13 Aug 2025 13:28:32 +0000 (13:28 +0000)]
realtek: dsa: rework MIB read locking and polling

Some Realtek SoCs do not expose MIB counters as simple registers. Instead,
retrieving counters may require blocking operations or take longer than a
normal register read. This makes the existing approach of direct reads
unsuitable. The existing approach uses spin locks which forbid sleeping
inside their context. But some hardware accesses methods (for example table
reads) might block (sleep).

To handle this, the MIB read path is redesigned with two levels of
locking:

* A global mutex protects updates of MIB data from the hardware. This is
  necessary because reads can occur both in the polling workqueue and from
  ethtool callbacks, also two user threads might call the ethtools
  callbacks. A global mutex helps to avoid parallel reads of the same
  hardware data. For table reads, this is not necessarily required because
  they are already using a table lock. But they are the reason why
  spin-locks can no longer be used (see above).

* A per-port spinlock protects the shared memory region where per-port
  counters are copied. Avoids reading of half copied values in
  .get_stats64()

As part of this change, MIB reads were removed from .get_stats64() since
that callback can be started from an atomic context and must never sleep
(block) in this context. A shared memory region is provided which will be
updated periodically by MIB workqueue and .get_stats64() will simply return
data from the shared memory.

Signed-off-by: Sharadanand Karanjkar <[email protected]>
Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20631
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agomac80211: mwl8k: inject DSSS Parameter Set element into beacons if missing
Pawel Dembicki [Wed, 12 Nov 2025 21:33:24 +0000 (22:33 +0100)]
mac80211: mwl8k: inject DSSS Parameter Set element into beacons if missing

Some Marvell AP firmware used with mwl8k misbehaves when beacons do not
contain the DSSS Parameter Set (WLAN_EID_DS_PARAMS) with the current
channel. When hostapd/mac80211 omits this element (which is valid on
some bands), the firmware may report bogus RX channel information and AP
mode becomes unusable.

Backport the upstream fix that ensures beacons always carry the DSSS
Parameter Set for mwl8k: when setting the beacon, detect if the element
is missing and inject it after SSID and Supported Rates (per spec
ordering). This mirrors behaviour in newer Marvell drivers and restores
stable operation.

Tested on Linksys EA4500 (88W8366).

Fixes: openwrt/openwrt#19088
Link: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless.git/commit/?id=c4e1ac09ee1c750890e36cb1f841f25518f23589
Signed-off-by: Pawel Dembicki <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20757
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agokernel: backport upstream realtek PHY patches
Aleksander Jan Bajkowski [Sun, 2 Nov 2025 15:11:08 +0000 (16:11 +0100)]
kernel: backport upstream realtek PHY patches

Changelog:
18aa36238a4d: net: phy: realtek: add interrupt support for RTL8221B
61958b33ef0b: net: phy: realtek: Add RTL8224 cable testing support
ffff5c8fc2af: net: phy: realtek: fix rtl8221b-vm-cg name
2c67301584f2: net: phy: realtek: Avoid PHYCR2 access if PHYCR2 not present
f63f21e82eca: net: phy: realtek: support for TRIGGER_NETDEV_LINK on RTL8211E and RTL8211F
a9b24b3583ae: net: phy: realtek: add error handling to rtl8211f_get_wol

Signed-off-by: Aleksander Jan Bajkowski <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20650
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agoramips: fix support for Cudy r700
Marcin Leksmark [Wed, 12 Nov 2025 20:39:56 +0000 (21:39 +0100)]
ramips: fix support for Cudy r700

This PR fixes support for Cudy r700.

Original PR: https://github.com/openwrt/openwrt/pull/18532
Fixed:

- WAN port functionality;
- RESET button;
- Status LED;
- LAN port names consistent with the chassis;
- Merged partitions "debug", "backup" & "firmware"  to one partition "firmware" ("debug" & "backup" contained unimportant data);
- Removed redundant DTS elements.

Installation:

To install OpenWRT, you need the intermediate firmware from Cudy. (U-boot is locked). After installing the intermediate firmware, you can install OpenWRT via sysupgrade.

Recovery:

TFTP available.
1. Place the recovery.bin in the serving directory of your TFTP server.
2. Set your IP to 192.168.1.88/24.
3. Press the “Reset” button of Cudy router and hold it. Before the Cudy router is powered on and before TFTP start to download the firmware, don't release the “Reset” button.
4. Power on the Cudy router.
5. You can release the reset button only when TFTP starts downloading firmware.
6. When the SYSTEM LED turns solid green, the upgrade is complete.

Fixes: 75403dd1d05b ("ramips: add support for Cudy R700")
Signed-off-by: Marcin Leksmark <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20756
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorockchip: add Radxa ROCK 2A/F support
Tianling Shen [Sat, 11 Oct 2025 11:31:21 +0000 (19:31 +0800)]
rockchip: add Radxa ROCK 2A/F support

Hardware
--------
RockChip RK3528 ARM64 (4 cores)
1/2/4GB LPDDR4 RAM
1x LED (state)
1x Reset button
0/8/16/32/64GB eMMC on-board
Micro-SD Slot
PCIe FPC connector
3x USB 2.0 Port
HDMI/AV OUT
USB Type-C 5V Power

ROCK 2A:
+ 3.5mm audio out
+ 1000 Base-T
+ SYS LED
+ USB 3.0 Port (conflicts with PCIe)

Installation
------------
Uncompress the OpenWrt sysupgrade and write it to a micro SD card or
internal eMMC using dd.

Signed-off-by: Tianling Shen <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agouboot-rockchip: add ROCK 2A/2F support
Tianling Shen [Wed, 29 Oct 2025 14:57:02 +0000 (22:57 +0800)]
uboot-rockchip: add ROCK 2A/2F support

Add support for the Radxa ROCK 2A/2F board.

Signed-off-by: Tianling Shen <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorockchip: add Radxa E20C support
Tianling Shen [Sat, 11 Oct 2025 09:04:08 +0000 (17:04 +0800)]
rockchip: add Radxa E20C support

Hardware
--------
RockChip RK3528 ARM64 (4 cores)
1/2/4GB LPDDR4 RAM
2x 1000 Base-T
3x LEDs (LAN / SYS / WAN)
1x User button
0/8/16/32/64GB eMMC on-board
Micro-SD Slot
USB 2.0 Port
USB Type-C 5V2A Power

Installation
------------
Uncompress the OpenWrt sysupgrade and write it to a micro SD card or
internal eMMC using dd.

Signed-off-by: Tianling Shen <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agouboot-rockchip: add Radxa E20C support
Tianling Shen [Sat, 11 Oct 2025 09:04:08 +0000 (17:04 +0800)]
uboot-rockchip: add Radxa E20C support

Add support for the Radxa E20C board.

Signed-off-by: Tianling Shen <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agouboot-rockchip: backport updates for RK3528
Tianling Shen [Sun, 2 Nov 2025 09:32:52 +0000 (17:32 +0800)]
uboot-rockchip: backport updates for RK3528

Added USB boot support and eMMC r/w fixes for RK3528.
Refreshed upstreamed patches while at it.

Signed-off-by: Tianling Shen <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorockchip: unset KERNEL_LOADADDR in default profile
Tianling Shen [Wed, 29 Oct 2025 13:43:28 +0000 (21:43 +0800)]
rockchip: unset KERNEL_LOADADDR in default profile

Unset KERNEL_LOADADDR in default profile to avoid using the value
from other boards (if someone forgets to set KERNEL_LOADADDR).

Signed-off-by: Tianling Shen <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorkbin: pack rk3528 atf/tpl blobs
Tianling Shen [Sat, 11 Oct 2025 09:04:07 +0000 (17:04 +0800)]
rkbin: pack rk3528 atf/tpl blobs

Currently there's no usable mainline (open source) TF-A implementation
for rk3528 SoCs, so pack the prebuilt firmware from the vendor.

Signed-off-by: Tianling Shen <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorockchip: backport pending driver/dts updates for rk3528
Tianling Shen [Sat, 11 Oct 2025 09:04:07 +0000 (17:04 +0800)]
rockchip: backport pending driver/dts updates for rk3528

Backport pending nvmem/thermal/usb updates for rk3528.
These patches are not merged by upstream yet but worthy to have here.

Signed-off-by: Tianling Shen <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorockchip: backport dts updates for rk3528
Tianling Shen [Sat, 11 Oct 2025 09:04:07 +0000 (17:04 +0800)]
rockchip: backport dts updates for rk3528

Backport core dts updates for rk3528.

Signed-off-by: Tianling Shen <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorockchip: backport driver updates for rk3528
Tianling Shen [Sat, 11 Oct 2025 09:04:07 +0000 (17:04 +0800)]
rockchip: backport driver updates for rk3528

Backport clk/mac/phy driver updates for rk3528.

Signed-off-by: Tianling Shen <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorockchip: make NIC name predictable for LinkEase EasePi R1
Liangbin Lian [Fri, 14 Nov 2025 06:06:10 +0000 (14:06 +0800)]
rockchip: make NIC name predictable for LinkEase EasePi R1

The probe order for PCIe buses and devices is non-deterministic,
making the names eth2 and eth3 unpredictable (they may be swapped).

This patch fixes the names by referencing the device path using
`ucidef_set_network_device_path`.

This patch ensures that the OpenWrt interface name matches the case label.

Fixes: 8ca4caacd039 ("rockchip: Add support for RK3568 LinkEase EasePi R1")
Signed-off-by: Liangbin Lian <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20779
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agowifi-scripts: ucode: fix init value of config.ht_capab under 20MHz
Zhi-Jun You [Thu, 13 Nov 2025 10:00:17 +0000 (18:00 +0800)]
wifi-scripts: ucode: fix init value of config.ht_capab under 20MHz

Currently the path for setting 20MHz doesn't set ht_capab to '' at the
beginning which results in null in ht_capab in hostapd.conf.

Fix this by setting config.ht_capab to '' for 20MHz htmode.

Fixes: #20762
Signed-off-by: Zhi-Jun You <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20768
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agointel-microcode: update to 2025111
John Audia [Thu, 13 Nov 2025 21:20:19 +0000 (16:20 -0500)]
intel-microcode: update to 2025111

Change log: https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/tag/microcode-20251111

Build system: x86/64
Build-tested: x86/64-glibc
Run-tested: x86/64-glibc (Intel N150)

Signed-off-by: John Audia <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20774
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agoodhcp6c: update to Git HEAD (2025-11-14)
Álvaro Fernández Rojas [Sat, 15 Nov 2025 07:29:52 +0000 (08:29 +0100)]
odhcp6c: update to Git HEAD (2025-11-14)

cbc8ff0e6226 github: ci: add powerpc arch
8eba02233133 github: ci: add cmake build and source directories
5f3104ea17ae github: ci: disable json-c tests
27ff42cd40f9 scripts: devel-build: disable json-c tests
e0a9d02b52d1 dhcpv6: DHCPV6_OPT_INFO_REFRESH contains a 4 byte option
5a02da9c1200 dhcpv6: use compile time resolved sizeof(struct in6_addr) for IPv6 values
cf203ceb3fc8 dhcpv6: set a static define for DUID max length
3627e85d1540 dhcpv6: set static defines for DHCPv6 option header size
ecb9a0243e77 odhcp6c: RFC comments
c284c587d37d all: spell fixes
1259a32d7e4d dhcpv6: dhcpv6_handle_reply switch case handling
227280a37853 dhcpv6: dhcpv6_handle_advert; migrate if blocks to switch case
b253f8907e72 dhcpv6: migrate to switch case for dhcpv6_handle_reply
61a54db802cb dhcpv6: migrate to switch case for dhcpv6_handle_reply
49c64bbe00ba all: drop CER_ID
16ce83075b2e dhcpv6: refactor u8 and u16 to u32 to avoid boolean coercion

https://github.com/openwrt/odhcp6c/compare/e5690c1f13ed...cbc8ff0e6226

Options related to homenet (EXT_CER_ID) have been removed, so drop them from
the package.

Signed-off-by: Álvaro Fernández Rojas <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20791
2 weeks agorealtek: dsa: Add MSTI to HW MST ID mapping
Sven Eckelmann [Mon, 27 Oct 2025 16:19:24 +0000 (17:19 +0100)]
realtek: dsa: Add MSTI to HW MST ID mapping

The MSTI range is 0..4095 but the HW range is only supporting a lower
range - for example 0..63 for RTL930x. But the HW doesn't really need to
know the actual MSTI. It is therefore possible to use a mapping from MSTI
to HW slot to allow a larger range of MSTIs.

Since the CIST (MSTI 0) is always needed, the mapping data structure is
skipping this entry and is always keeping the HW slot 0 for CIST.

This doesn't increase the total number of MSTIs a HW supports.

Suggested-by: Jonas Gorski <[email protected]>
Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20421
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorealtek: dsa: rtl93xx: Support multi spanning tree states
Issam Hamdi [Tue, 15 Jul 2025 18:22:26 +0000 (20:22 +0200)]
realtek: dsa: rtl93xx: Support multi spanning tree states

The MSTP support (usually implemented by mstpd) requires from the kernel
that a VLAN can associated with an MSTI. At the moment, all these VLANs
just get the msti 0 harcoded on creation. But the
vlan_tables_read()+vlan_tables_write() helper already allow the
modification of the MSTI and only require a minimal hook to expose this
functionality.

It is also necessary to adjust the (M)STP states per MSTI and not only per
port (or for the CIST). The rtl83xx_port_stp_state_set() function was in
theory already capable to modify other MSTIs than CIST - if the msti would
not have been hardcoded to 0.

The userspace can trigger these modifications using netlink:

* (Re)associating VLANs with an MSTI:

      bridge vlan global set dev <BR> vid <X> msti <Y>

* Setting the port state in a given MSTI:

      bridge mst set dev <PORT> msti <Y> state <Z>

Signed-off-by: Issam Hamdi <[email protected]>
Co-developed-by: Sven Eckelmann <[email protected]>
Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20421
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorealtek: dsa: Sync CIST with MSTI state for unbridged ports
Sven Eckelmann [Mon, 27 Oct 2025 16:19:24 +0000 (17:19 +0100)]
realtek: dsa: Sync CIST with MSTI state for unbridged ports

The VLANs and their MSTIs are shared on the realtek switch HW between
bridged and unbridged ports. But the MSTI state cannot be updated for an
unbridged port via DSA. To ensure that the port is still configured
correctly after leaving a bridge, the CIST state updates via DSA must also
be propagated to the MSTI states.

Suggested-by: Jonas Gorski <[email protected]>
Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20421
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorealtek: dsa: Adjust MSTP states after joining/leaving bridge
Sven Eckelmann [Tue, 28 Oct 2025 07:55:38 +0000 (08:55 +0100)]
realtek: dsa: Adjust MSTP states after joining/leaving bridge

When joining a bridge or leaving a bridge, the CIST state will
automatically be adjusted by DSA using .port_stp_state_set(). But MSTIs are
completely unhandled.

If a port is joining a bridge, the default state must be disabled. The MSTP
daemon is then responsible for adjusting the state.

If the bridge is left, the forwarding state must be enforced because VLANs
(and with this also the MSTIs assigned to them) are shared between bridged
and non-bridged ports. An unbridged port must therefore not be left in an
blocked/disabled state for a VLAN (MSTI).

Suggested-by: Jonas Gorski <[email protected]>
Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20421
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorealtek: dsa: Automatically return lost VLANs to CIST
Sven Eckelmann [Tue, 28 Oct 2025 07:55:38 +0000 (08:55 +0100)]
realtek: dsa: Automatically return lost VLANs to CIST

If a VLAN doesn't have any members anymore, then it is removed and
implicitly returns back from any MSTI to CIST. The DSA layer will not
create any call to .vlan_msti_set and the driver is required to handle this
directly.

Suggested-by: Jonas Gorski <[email protected]>
Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20421
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorealtek: dsa: Record number of supported MSTs
Sven Eckelmann [Mon, 27 Oct 2025 14:29:01 +0000 (15:29 +0100)]
realtek: dsa: Record number of supported MSTs

Each SoC supports a different number of MST(I)s. The code must know this
limitation to correctly reject unsupported MSTIs or to allocate a large
enough mapping table.

Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20421
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorealtek: dsa: rtl93xx: Implement vlan fast age flushing
Issam Hamdi [Tue, 15 Jul 2025 17:41:13 +0000 (19:41 +0200)]
realtek: dsa: rtl93xx: Implement vlan fast age flushing

The DSA port code is trying to flush associated VLANs whenever the MST
state is changed. This functionality is available on a per port+vid based
using the L2_TBL_FLUSH_CTRL which is already used for the .port_fast_age
callbacks.

Signed-off-by: Issam Hamdi <[email protected]>
Co-developed-by: Sven Eckelmann <[email protected]>
Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20421
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agorealtek: dsa: rtl93xx: Switch to MSTP compatible STP mode
Issam Hamdi [Fri, 20 Dec 2024 15:24:53 +0000 (16:24 +0100)]
realtek: dsa: rtl93xx: Switch to MSTP compatible STP mode

The realtek DSA switch driver sets up all VLANs using CIST. It is therefore
not necessary to enforce CIST using the ST_CTRL register.

This allows us later to overwrite the MSTI of VLANs. This is necessary to
get MSTP working on RTL93xx.

Signed-off-by: Issam Hamdi <[email protected]>
Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20421
Signed-off-by: Hauke Mehrtens <[email protected]>
2 weeks agodownload: use reasonable timeout and retry parameters
Andy Chiang [Sat, 15 Nov 2025 13:19:02 +0000 (20:19 +0700)]
download: use reasonable timeout and retry parameters

Set a timeout of 5 seconds and 3 retries to reduce the time it takes for connection timeout.

Signed-off-by: Andy Chiang <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/19977
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agoipq40xx: Add support for Linksys MR6350
Roland Reinl [Thu, 30 Nov 2023 16:16:41 +0000 (17:16 +0100)]
ipq40xx: Add support for Linksys MR6350

This pull request is based on
- the discussions in https://forum.openwrt.org/t/adding-openwrt-support-for-linksys-mr6350
- https://github.com/openwrt/openwrt/pull/11405 which added support for similar devices.

Device Specs:
- IPQ4019
- Quad Core CPU
- 256 MB RAM
- 256 MB FLASH
- 4 LAN ports, 1 WAN port
- 2.4GHz (802.11n) and 5GHz (802.11c) wifi
- 3 LEDs (Red, blue, green) which are routed to one indicator at the top of the case
- 2 buttons (Reset, WPS)

Disassembling the device:
- There are 4 screws at the bottom of the device which must be removed
- Two are under the fron rubber feets
- Two are under the labels in the back (corner next to the rear rubber feets)

Serial interface:
- The serial interface is already populated on the device with a 6-pin header
- Pin 1 is next to the heatsink
- Pinout: 1: 3.3V, 2: TX, 3: RX, 4: unknown, 5: GND, 6: GND
- Settings: 115200, 8N1

Migrating to OpenWrt requires multiple steps:
- Load and boot the initramfs image
- Adapt U-Boot settings to support bigger kernels
- Flash the sysupgrade image

Load and boot initramfs:
- Connect serial interface
- Set up a TFTP server on IP 192.168.1.254
- Copy openwrt-ipq40xx-generic-linksys_mr6350-initramfs-zImage.itb to TFTP server
- Rename file to C0A80101.img
- Boot up the device and stop in U-Boot
- Run the following U-Boot commands after a link has been established:
  tftp
  bootm
- Initramfs image is started now.

Adapt U-Boot settings to support bigger kernels:
- Run "fw_printenv" in the initramfs image  after booting
- There should be an entry kernsize=300000 which indicates the maximum size for the kernel is 3MB
- Execute "fw_setenv kernsize 500000" to increase the max kernel size to 5MB
- Check that the change are applied with "fw_printenv"

Flash the sysupgrade image:
- Default sysupgrade routine either with a initramfs image containing LuCI or via command line.

Revert back to OEM firmware:
- Only tested with FW_MR6350_1.1.3.210129_prod.img
- Flash the OEM firmware via sysupgrade
- Forced update is required

Signed-off-by: Roland Reinl <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/17977
Signed-off-by: Robert Marko <[email protected]>
3 weeks agoipq40xx: add support for Netgear RBS20
Christoph Krapp [Sat, 8 Nov 2025 21:47:07 +0000 (22:47 +0100)]
ipq40xx: add support for Netgear RBS20

This device has only half the flash and ram of the RBR20. It also has
two lan ports instead of wan and lan.

Hardware
--------
SOC:    Qualcomm IPQ4019
FLASH:  128MB (Winbond W29N01HVSINF)
RAM:    256MB (Winbond W632GU6MB-12)
WIFI:   Qualcomm IPQ4019
        Qualcomm Atheros QCA9886
ETH:    2x LAN
LED:    5 (4 RGB at top, 1 RG at back)
BTN:    WPS, Reset
UART:   115200 8N1 (dotted Pin = VCC) VCC-TX-RX-GND

MAC addresses
-------------
LAN     Label MAC (stored in boarddata1 offset 0x0)
2.4G    LAN
5GLow   LAN + 3 (stored in boarddata1 offset 0xc)
5GUpper LAN + 2 (stored in boarddata1 offset 0x12)

Installation
------------
Either use the vendor ui upgrade method or nmrpflash to install the
factory image.

Signed-off-by: Christoph Krapp <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20560
Signed-off-by: Robert Marko <[email protected]>
3 weeks agoipq40xx: add support for Netgear RBR20
Christoph Krapp [Thu, 23 Oct 2025 07:10:31 +0000 (09:10 +0200)]
ipq40xx: add support for Netgear RBR20

This device shares a lot of similarities with the LBR20 - the RBR20 just
misses the LTE modem and its formfactor is alot smaller. Other than that
the LED configuration matches other RBR devices but the RBR20 has less
LEDs than its larger counterparts.

Hardware
--------
SOC:    Qualcomm IPQ4019
FLASH: 256MB (Winbond W29N02GVSIAF)
RAM:   512MB (Nanya NT5CC256M16EP-EK)
WIFI:   Qualcomm IPQ4019
        Qualcomm Atheros QCA9886
ETH: 1x WAN, 1x LAN
LED: 5 (4 RGB at top, 1 RG at back)
BTN: WPS, Reset
UART: 115200 8N1 (dotted Pin = VCC) VCC-TX-RX-GND

MAC addresses
-------------
LAN Label MAC (stored in boarddata1 offset 0x0)
WAN LAN + 1 (stored in boarddata1 offset 0x6)
2.4G LAN
5GLow LAN + 3 (stored in boarddata1 offset 0xc)
5GUpper LAN + 2 (stored in boarddata1 offset 0x12)

Installation
------------
Either use the vendor ui upgrade method or nmrpflash to install the
factory image.

Signed-off-by: Christoph Krapp <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20560
Signed-off-by: Robert Marko <[email protected]>
3 weeks agoipq-wifi: update to Git HEAD (2025-11-15)
Robert Marko [Sat, 15 Nov 2025 10:23:07 +0000 (11:23 +0100)]
ipq-wifi: update to Git HEAD (2025-11-15)

fa62f8a2885c ipq8074: add BDF for Zyxel NWA210AX
7c6b7545f69a qca4019: qca9888: add bdfs for Netgear RBK20

Signed-off-by: Robert Marko <[email protected]>
3 weeks agorealtek: dsa: rtl93xx: Configure default QoS prioritization
Issam Hamdi [Tue, 15 Jul 2025 18:10:34 +0000 (20:10 +0200)]
realtek: dsa: rtl93xx: Configure default QoS prioritization

RTL838x+RTL839x both configure a default QoS behavior with a default
mapping. This also needs to be added to RTL93xx to ensure a consistent
behavior:

* Set the default mapping between DSCP and priority: prio = dscp >> 3.
* Set the default mapping between internal priority and queues
* Set uniform prioritization of queues (as with other SoCs)

Signed-off-by: Issam Hamdi <[email protected]>
Co-developed-by: Sven Eckelmann <[email protected]>
Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20640
Signed-off-by: Robert Marko <[email protected]>
3 weeks agorealtek: rtl93xx: Send per port packets on physical port
Sven Eckelmann [Sat, 8 Nov 2025 07:29:27 +0000 (08:29 +0100)]
realtek: rtl93xx: Send per port packets on physical port

If link aggregation with LACP is activated, we must send out the LACP
packets on the physical port and not on a logic port. Otherwise, the per
port packets might be (rebalanced) between the different ports in a link
aggregation group.

Such rebalancing breaks 802.3ad and will leave ports in a churned state.

Fixes: 8c42e63a69f6 ("realtek: rtl93xx: fix incorrect destination port selection")
Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20728
Signed-off-by: Robert Marko <[email protected]>
3 weeks agorealtek: dsa: Add non-primary LAG ports to port matrix
Sven Eckelmann [Sat, 8 Nov 2025 07:29:27 +0000 (08:29 +0100)]
realtek: dsa: Add non-primary LAG ports to port matrix

If ports of a RTL93xx switch are not added to a port matrix then they are
not used for the link aggregation. As result, communication will then just
break on non-primary interfaces.

This can be reproduced in balanced-xor and 802.3ad bandwidth mode.

Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20729
Signed-off-by: Robert Marko <[email protected]>
3 weeks agorealtek: pcs: rtl93xx: fix SerDes polarity configuration for RTL931X
Jonas Jelonek [Thu, 13 Nov 2025 11:25:44 +0000 (11:25 +0000)]
realtek: pcs: rtl93xx: fix SerDes polarity configuration for RTL931X

Commit 56e9a73d0b added support for configuring the SerDes polarity for
both RTL930X and RTL931X. Based on the code in the Realtek SDK in [1]
and [2], in both cases the same register bits are set. Thus, a common
implementation was provided which worked with e.g. USXGMII or 10GBase-R
configured SerDes.

However, after further tests, a strange issue occured where it didn't
work that well for all SerDes configurations. While running fine for
10GBase-R links on two adjacent SerDes, it didn't for 1000Base-X links
on one of two adjacent SerDes with the link not being detected as a
symptom.

Diving into the SDK again revealed that the referenced implementation of
polarity configuration is (by accident or by purpose) misleading. While
[1] and [3] for RTL930X match, [2] and [4] for RTL931X actually don't.
[4] writes the bits for the 1G polarity setting on different background
SerDes, thus in another frontend page.

Split implementations for RTL930X and RTL931X again and adjust the one
for RTL931X according to [4]. This resolves the issues with 1000Base-X
behavior.

[1] https://github.com/plappermaul/realtek-doc/blob/69d2890a2e2d7a03df6e40e2cd2c32ff5b074dcf/sources/rtk-xgs1210/src/hal/phy/phy_rtl9300.c#L1384
[2] https://github.com/plappermaul/realtek-doc/blob/69d2890a2e2d7a03df6e40e2cd2c32ff5b074dcf/sources/rtk-xgs1210/src/hal/phy/phy_rtl9310.c#L3479
[3] https://github.com/plappermaul/realtek-doc/blob/69d2890a2e2d7a03df6e40e2cd2c32ff5b074dcf/sources/rtk-xgs1210/src/dal/longan/dal_longan_construct.c#L2246
[4] https://github.com/plappermaul/realtek-doc/blob/69d2890a2e2d7a03df6e40e2cd2c32ff5b074dcf/sources/rtk-xgs1210/src/dal/mango/dal_mango_construct.c#L1550

Fixes: 56e9a73d0b ("realtek: pcs: rtl93xx: provide proper SerDes polarity
configuration")
Signed-off-by: Jonas Jelonek <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20767
Signed-off-by: Robert Marko <[email protected]>
3 weeks agoath79: fix MAC addresses on MikroTik RB962UiGS-5HacT2HnT
Daniel Golle [Fri, 14 Nov 2025 11:44:40 +0000 (11:44 +0000)]
ath79: fix MAC addresses on MikroTik RB962UiGS-5HacT2HnT

The MikroTik RouterBOARD 962UiGS-5HacT2HnT (hAP ac) currently comes up
with random MAC addresses. Assign the MAC addresses from hard_config for
LAN and WAN ports.

Fixes: c2140e32ce ("ath79: add support for MikroTik RouterBOARD 962UiGS-5HacT2HnT (hAP ac)")
Signed-off-by: Daniel Golle <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20782
Signed-off-by: Robert Marko <[email protected]>
3 weeks agowifi-scripts: ucode: create wpa_psk_file and sae_password_file when needed
Rany Hany [Fri, 14 Nov 2025 16:22:08 +0000 (16:22 +0000)]
wifi-scripts: ucode: create wpa_psk_file and sae_password_file when needed

This handles the case when 'wpad' or 'wpad-mini' package is used which is
missing WPA3 support. This makes it impossible to use ucode wifi-scripts
on such APs as it will raise an error:

   daemon.err hostapd: Line 87: unknown configuration item 'sae_password_file'

This also achieves parity with what is currently happening with old wifi-scripts.
The behavior now matches.

Fixes: https://github.com/openwrt/openwrt/issues/20781
Signed-off-by: Rany Hany <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20784
Signed-off-by: Robert Marko <[email protected]>
3 weeks agolibubox: update to Git HEAD (2025-11-14)
Álvaro Fernández Rojas [Sat, 15 Nov 2025 07:17:30 +0000 (08:17 +0100)]
libubox: update to Git HEAD (2025-11-14)

a75209f62982 blobmsg: refactor blobmsg_cast_u64/s64
97d1839295e5 github: ci: minor fixes
e8dafede37fc github: ci: add powerpc arch
c1f0024fb052 github: ci: add cmake build and source directories
4dd874d2b412 github: ci: tests: rename test step
7686b12d11ba github: ci: tests: add build/bin to path
be21d12b2bed github: ci: disable json-c tests
af438ba0705f scripts: devel-build: disable json-c tests
240d2d5ef58b tests: shunit2: add test for _jshn_append leading space fix
82cb5fd66af9 libubox: Drop extraneous space when appending values to variable
17143f94dcbf libubox: add a simple build script
5b11fb18dc05 github: ci: add tests

https://github.com/openwrt/libubox/compare/e357be611cd9...a75209f62982

Signed-off-by: Álvaro Fernández Rojas <[email protected]>
3 weeks agomediatek: add mt7987-2p5g-phy-firmware to MT7987 devices
Daniel Golle [Wed, 12 Nov 2025 14:09:30 +0000 (14:09 +0000)]
mediatek: add mt7987-2p5g-phy-firmware to MT7987 devices

Add mt7987-2p5g-phy-firmware to DEVICES_PACKAGES of the MT7987A RFB as
well as the BananaPi R4 Lite.

Signed-off-by: Daniel Golle <[email protected]>
3 weeks agolinux-firmware: package mt7987-2p5g-phy-firmware
Daniel Golle [Wed, 12 Nov 2025 14:08:11 +0000 (14:08 +0000)]
linux-firmware: package mt7987-2p5g-phy-firmware

Package firmware for the built-in 2.5G PHY of the MediaTek MT7987 SoC.

Signed-off-by: Daniel Golle <[email protected]>
3 weeks agolinux-firmware: update to 20251111
Daniel Golle [Wed, 12 Nov 2025 14:05:27 +0000 (14:05 +0000)]
linux-firmware: update to 20251111

$ git log --no-merges --pretty=oneline --abbrev-commit  20251021..20251111
fcf22f50 rtl_bt: Update RTL8922A BT USB firmware to 0x41C0_C905
c0af6c70 linux-firmware: add firmware for mt7987 internal 2.5G ethernet phy
a50c068b rtw88: 8822b: Update firmware to v30.20.0
e5606bd7 rtl_nic: add firmware rtl8125k-1
c5831f31 ASoC: tas2781: Update dsp firmware for HP and ASUS projects
ad907cca Revert "Merge branch 'robot/patch-0-1762671757' into 'main'"
d665e29c ASoC: tas2781: Update dsp firmware for HP and ASUS projects
213080ae amdgpu: DMCUB updates for various ASICs
23cf7dbb amdgpu: DMCUB updates for various ASICs
95cd295e qcom: add SOCCP firmware for kaanapali platform
9444af1a xe: Update GUC to v70.53.0 for BMG, LNL, PTL
f2a23165 i915: Update GUC to v70.53.0 for DG2, MTL
4dedd6cb rtw89: 8851b: update fw to v0.29.41.5
84cc37f3 rtw89: 8852b: update fw to v0.29.128.0 with format suffix -2
3ab5b9e5 rtw89: 8852b: update fw to v0.29.29.14
1b1c14bb Revert "rtw89: 8852b: update fw to v0.29.128.0"
9a0d0ed6 rtw89: 8852bt: update fw to v0.29.127.0 with format suffix -1
be71e790 rtw89: 8852bt: update fw to v0.29.122.1
b6252a03 Revert "rtw89: 8852bt: update fw to v0.29.127.0"
a976b0aa linux-firmware: Update firmware file for Intel BlazarU core
5a689a2f linux-firmware: Update firmware file for Intel BlazarI core
77425784 linux-firmware: Create audio folder in ti folder, and move all the audio firmwares into it
e189b618 amdgpu: DMCUB updates for various ASICs
646d97f5 linux-firmware: Update WHENCE for microcode_amd_fam19h.bin
e637542f linux-firmware: Update AMD cpu microcode
0fc31ad6 linux-firmware: update firmware for MT7925 WiFi device
b63c322f mediatek MT7925: update bluetooth firmware to 20251015213201
35e54243 rtl_bt: Add firmware and config files for RTL8761CUV
ad915447 linux-firmware: Update AMD cpu microcode
7bcedf5c qcom: add ADSP firmware for kaanapali platform
728e9243 amdgpu: DMCUB updates for various ASICs
05105d24 linux-firmware: Renaming the file to cover a wide range of HP Lunar Lake system.
b582532d mediatek MT7920: update bluetooth firmware to 20251020151255
33d0511d linux-firmware: update firmware for MT7922 WiFi device
c2087f88 linux-firmware: update firmware for MT7920 WiFi device
3a49a735 amd-ucode: Fix minimum revisions in README
0de0cd7f cirrus: cs35l41: Rename various Asus Laptop firmware files to not have Speaker ID
93c92978 mediatek MT7922: update bluetooth firmware to 20251020143443

Signed-off-by: Daniel Golle <[email protected]>
3 weeks agokernel: mtk_eth_soc: fix encapsulation check for GSO fraglist packets
Felix Fietkau [Thu, 13 Nov 2025 13:23:07 +0000 (13:23 +0000)]
kernel: mtk_eth_soc: fix encapsulation check for GSO fraglist packets

Use skb->encapsulation flag instead of skb_tnl_header_len() to detect
encapsulated packets. Prevents false positives on non-encapsulated packets.

Reported-by: Mason-cw Chang (張哲維) <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
3 weeks agowifi-scripts: respect rsn_override=0 in mixed modes
Felix Fietkau [Thu, 13 Nov 2025 12:41:30 +0000 (12:41 +0000)]
wifi-scripts: respect rsn_override=0 in mixed modes

Only set rsn_override_key_mgmt when rsn_override is enabled.

Reported-by: Michael-cy Lee (李峻宇) <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
3 weeks agowifi-scripts: only enable RSN override when parameters differ
Felix Fietkau [Thu, 13 Nov 2025 12:25:50 +0000 (12:25 +0000)]
wifi-scripts: only enable RSN override when parameters differ

When encryption is set to 'sae' without explicit pairwise cipher in
non-HE/EHT mode, both the main RSNE and override RSNE would advertise
identical parameters (SAE+CCMP+MFP=2), adding unnecessary overhead.

Check that the pairwise ciphers differ before enabling override. This
preserves the intended behavior for HE/EHT modes (GCMP-256+CCMP vs CCMP)
while avoiding pointless override IEs.

Reported-by: Michael-cy Lee (李峻宇) <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
3 weeks agohostapd: fix phy parameter in iface_update_supplicant_macaddr
Felix Fietkau [Thu, 13 Nov 2025 12:02:43 +0000 (12:02 +0000)]
hostapd: fix phy parameter in iface_update_supplicant_macaddr

The function was using phydev.name (e.g., "phy0.0") instead of
phydev.phy (e.g., "phy0") when calling wpa_supplicant.phy_set_macaddr_list.
This is inconsistent with all other wpa_supplicant ubus calls in the same
file which correctly use phydev.phy.

Reported-by: Michael-cy Lee (李峻宇) <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
3 weeks agowifi-scripts: fix MLO AP setup with disabled radios
Felix Fietkau [Thu, 13 Nov 2025 11:52:47 +0000 (11:52 +0000)]
wifi-scripts: fix MLO AP setup with disabled radios

When an MLO interface specifies multiple radios and the first radio
is disabled, the MLO configuration was never created because the code
only attempted to create it when processing the first device in the
list (which gets skipped if disabled).

Fix by creating the MLO config for the first enabled device instead
of only when processing dev_names[0].

Reported-by: Michael-cy Lee (李峻宇) <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
3 weeks agowpa_supplicant: fix MAC address assignment for MLD interfaces
Felix Fietkau [Thu, 13 Nov 2025 05:14:35 +0000 (05:14 +0000)]
wpa_supplicant: fix MAC address assignment for MLD interfaces

Assign the address at wdev create time, similar to legacy interfaces.

Reported-by: Michael-cy Lee (李峻宇) <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
3 weeks agowifi-scripts: fix wds client mode with MLO
Felix Fietkau [Wed, 12 Nov 2025 16:16:45 +0000 (16:16 +0000)]
wifi-scripts: fix wds client mode with MLO

Ensure that the 4addr flag is passed to phy.wdev_add.

Reported-by: Michael-cy Lee (李峻宇) <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
3 weeks agompc85xx: make kernel 6.12 the default kernel
David Bauer [Wed, 12 Nov 2025 18:38:29 +0000 (19:38 +0100)]
mpc85xx: make kernel 6.12 the default kernel

Signed-off-by: David Bauer <[email protected]>
3 weeks agompc85xx: kernel: 6.12: fix issue with ifc nodes in P1010
Pawel Dembicki [Thu, 6 Nov 2025 10:37:44 +0000 (11:37 +0100)]
mpc85xx: kernel: 6.12: fix issue with ifc nodes in P1010

In upstream [0] ifc node compatible was changed and it broke ifc at all.
Rosen Penev send revert commit to upstream [1] which repair it.

This patch add this pending patch to mpc85xx.

[0] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0bf51cc9e9e57a751b4c5dacbfa499ba5cd8bd72
[1] https://patchwork.ozlabs.org/project/linuxppc-dev/patch/20251105205524[email protected]/

Signed-off-by: Pawel Dembicki <[email protected]>
3 weeks agompc85xx: introduce 6.12 testing kernel
David Bauer [Fri, 9 May 2025 19:43:27 +0000 (21:43 +0200)]
mpc85xx: introduce 6.12 testing kernel

Signed-off-by: David Bauer <[email protected]>
3 weeks agompc85xx: refresh kernel config
David Bauer [Sat, 10 May 2025 19:46:51 +0000 (21:46 +0200)]
mpc85xx: refresh kernel config

Signed-off-by: David Bauer <[email protected]>
3 weeks agompc85xx: use strscpy instead of strlcpy
David Bauer [Sat, 10 May 2025 09:00:57 +0000 (11:00 +0200)]
mpc85xx: use strscpy instead of strlcpy

Usage of strlcpy results in a compilation error. strscpy is preferred
anyways and equivalent for our case.

Signed-off-by: David Bauer <[email protected]>
3 weeks agompc85xx: refresh kernel 6.12 patches
David Bauer [Fri, 9 May 2025 19:49:14 +0000 (21:49 +0200)]
mpc85xx: refresh kernel 6.12 patches

Signed-off-by: David Bauer <[email protected]>
3 weeks agokernel/mpc85xx: Restore kernel files for v6.6
Pawel Dembicki [Tue, 28 Oct 2025 05:20:44 +0000 (06:20 +0100)]
kernel/mpc85xx: Restore kernel files for v6.6

This is an automatically generated commit which aids following Kernel patch
history, as git will see the move and copy as a rename thus defeating the
purpose.

For the original discussion see:
https://lists.openwrt.org/pipermail/openwrt-devel/2023-October/041673.html

Signed-off-by: Pawel Dembicki <[email protected]>
3 weeks agokernel/mpc85xx: Create kernel files for v6.12 (from v6.6)
Pawel Dembicki [Tue, 28 Oct 2025 05:20:44 +0000 (06:20 +0100)]
kernel/mpc85xx: Create kernel files for v6.12 (from v6.6)

This is an automatically generated commit.

When doing `git bisect`, consider `git bisect --skip`.

Signed-off-by: Pawel Dembicki <[email protected]>
3 weeks agoqualcommax: ipq50xx: Add support for CMCC PZ-L8
Chang Liu [Fri, 7 Nov 2025 06:50:28 +0000 (14:50 +0800)]
qualcommax: ipq50xx: Add support for CMCC PZ-L8

CMCC PZ-L8 is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based on IPQ5000.

Specifications:
- SoC : Qualcomm IPQ5000
- RAM : Integrated 256MiB DDR3L
- Flash : 128 MiB SPI-NAND (ESMT F50D1G41LB)
- WLAN : 2.4/5 GHz 2T2R
-  2.4 GHz : Qualcomm IPQ5000 (SoC)
-  5 GHz : Qualcomm Atheros QCN6102
- Ethernet : 4x 10/100/1000 Mbps
-  switch : Qualcomm Atheros QCA8337
- LEDs/Keys (GPIO) : 2x LEDs, 2x Keys
- UART : Through-hole on PCB, 4pins in the middle of the black aluminum heat sink
-  assignment : 3.3V, GND,TX, RX (from left to right)
-  settings : 115200n8
- Power : 12 VDC, 1 A

Flashing Instructions:
1. SSH Method
(1) Enable SSH on the stock firmware
a. Version 501.8 and 501.9:
Log in to http://192.168.10.1 with the password on the sticker
Append "/admin/system/admin" to the URL and press Enter
Delete "Dropbear instance", click "Add instance", then "Save and Apply"
Reboot the router

b. Version 501.11 and 501.12:
While the router is running the stock firmware, press and hold the reset button for 20-30 seconds
Open http://192.168.10.1:56781 and login with username "root" and the password on the sticker
Run "vi /etc/config/dropbear" and delete the line "option enable '0'"
Reboot the router

(2) Upload the factory.ubi file to router's /tmp directory (using scp or wget)
and execute the following commands in the router's shell

export rootfs=$(cat /proc/mtd | grep rootfs | grep -v _ | cut -d: -f1)
ubidetach -f -p /dev/${rootfs}
ubiformat /dev/${rootfs} -y -f /tmp/factory.ubi

2. U-Boot Method using UBI Image
Place the factory.ubi file on your TFTP server, enter U-Boot CLI and exec these commands

tftpboot <your_tftp_server_ip>:factory.ubi
flash rootfs
reset

3. U-Boot Method using initramfs Image
(1) Place the openwrt-*-initramfs-fit-uImage.itb file on your TFTP server
and rename it to initramfs.bin
(2) Enable serial console, enter to U-Boot CLI and exec these commands

tftpboot <your_tftp_server_ip>:initramfs.bin
bootm

(3) Once boot completed, upload the sysupgrade.bin file to router's /tmp directory
(using scp or wget) and execute the following command in openwrt shell

sysupgrade -n /tmp/sysupgrade.bin

Switching to the Stock Firmware:
Please follow the commit https://github.com/openwrt/openwrt/commit/3b7d72bc2ecca2f962319b0a4fb9beb7609a0222

Partition Layout (Stock Firmware):
0x000000000000-0x000000080000 : "0:SBL1"
0x000000080000-0x000000100000 : "0:MIBIB"
0x000000100000-0x000000140000 : "0:BOOTCONFIG"
0x000000140000-0x000000180000 : "0:BOOTCONFIG1"
0x000000180000-0x000000280000 : "0:QSEE"
0x000000280000-0x000000380000 : "0:QSEE_1"
0x000000380000-0x0000003c0000 : "0:DEVCFG"
0x0000003c0000-0x000000400000 : "0:DEVCFG_1"
0x000000400000-0x000000440000 : "0:CDT"
0x000000440000-0x000000480000 : "0:CDT_1"
0x000000480000-0x000000500000 : "0:APPSBLENV"
0x000000500000-0x000000640000 : "0:APPSBL"
0x000000640000-0x000000780000 : "0:APPSBL_1"
0x000000780000-0x000000880000 : "0:ART"
0x000000880000-0x000000900000 : "0:TRAINING"
0x000000900000-0x000004300000 : "rootfs"
0x000004300000-0x000007d00000 : "rootfs_1"

Notes:
This device is almost the same as ELECOM WRC-X3000GS2, including partition layout and the dual-boot feature.

Known Issues:
- All Wi-Fi related peripherals are disabled in device tree, since 256 MiB RAM is too few for ath11k.
- This device has another version with nand flash FM25SL01, which is not supported at the moment.
  https://github.com/immortalwrt/immortalwrt/blob/master/target/linux/mediatek/patches-6.12/342-mtd-spinand-Support-fmsh.patch

MAC Addresses:
Interface MAC Address Location (binary)
LAN A4:39:B6:xx:xx:9D (0:ART, 0x00-0x05)
WAN A4:39:B6:xx:xx:9E (0:ART, 0x06-0x0B)
2.4 GHz A4:39:B6:xx:xx:9F (0:ART, 0x0C-0x11)
5 GHz A4:39:B6:xx:xx:A0 (0:ART, 0x12-0x17)

Signed-off-by: Chang Liu <[email protected]>
3 weeks agoimagebuilder: fix repeated generation of package index when signing is enabled
Liangbin Lian [Wed, 8 May 2024 04:57:11 +0000 (12:57 +0800)]
imagebuilder: fix repeated generation of package index when signing is enabled

`$(MAKE) package_index` will generate Packages.sig if signing is enabled, and Packages.sig is always newer than Packages.gz, cause repeated generation of package index on next build. So we should ignore Packages.sig.

Signed-off-by: Liangbin Lian <[email protected]>
3 weeks agowifi-scripts: ucode: fix start failed
Andy Chiang [Sun, 26 Oct 2025 00:29:30 +0000 (07:29 +0700)]
wifi-scripts: ucode: fix start failed

When using wpad-openssl/wpad-basic-openssl, wpa_supplicant/hostapd may not be ready because of openssl.
This cause supplicant.setup and hostapd.setup to be failed.
Therefore, wait for wpa_supplicant/hostapd to be ready before supplicant.setup and hostapd.setup.

Run-tested: mediatek/filogic GL-MT3000
fixes: #20361

Signed-off-by: Andy Chiang <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
3 weeks agowifi-scripts: use stationary_ap conf for AX mode
Paweł Owoc [Fri, 7 Nov 2025 10:59:12 +0000 (11:59 +0100)]
wifi-scripts: use stationary_ap conf for AX mode

Use stationary_ap configuration for 6GHz AX AP (not only BE).
This change fixes the 6GHz network not visible issue for QCN9024.

Signed-off-by: Paweł Owoc <[email protected]>
3 weeks agokernel: fix mtk_eth_soc handling of fraglist packets without GSO_FRAGLIST
Felix Fietkau [Wed, 12 Nov 2025 11:07:17 +0000 (11:07 +0000)]
kernel: fix mtk_eth_soc handling of fraglist packets without GSO_FRAGLIST

Fixes tx hangs when disabling rx fraglist GRO

Signed-off-by: Felix Fietkau <[email protected]>
3 weeks agoprereq-build: add Python 3.13 support
Kacper Ludwinski [Mon, 10 Nov 2025 00:48:19 +0000 (00:48 +0000)]
prereq-build: add Python 3.13 support

Add support for Python version 3.13 to include/prereq-build.mk.
One of the reasons for this change is that
Ubuntu 25.04 ships with Python 3.13 as default version.
Let's support it.

Signed-off-by: Kacper Ludwinski <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20735
Signed-off-by: Christian Marangi <[email protected]>
3 weeks agoscripts: feeds: Don’t hardcode IS_TTY
Ernestas Kulik [Wed, 12 Nov 2025 08:16:30 +0000 (10:16 +0200)]
scripts: feeds: Don’t hardcode IS_TTY

When building in environments that set IS_TTY, the feeds script does not
honor it and passes a hardcoded value to scan.mk, causing unwanted
control characters to appear in stdout.

This commit addresses the issue by checking IS_TTY and MAKE_TERMOUT
variables and uses their values if defined.

Closes #8039

Signed-off-by: Ernestas Kulik <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20743
Signed-off-by: Christian Marangi <[email protected]>
3 weeks agoopenssl: add MODULES_DIR MACRO for provider
Christian Marangi [Tue, 11 Nov 2025 22:58:54 +0000 (23:58 +0100)]
openssl: add MODULES_DIR MACRO for provider

Add MODULES_DIR MACRO for provider useful if the relevant package
require to define the default OpenSSL MODULES_PATH.

Signed-off-by: Christian Marangi <[email protected]>
3 weeks agofirmware-utils: update to Git HEAD (2025-11-11)
Hauke Mehrtens [Mon, 10 Nov 2025 23:37:17 +0000 (00:37 +0100)]
firmware-utils: update to Git HEAD (2025-11-11)

313f344d8436 dlink-sge-image: add support for D-Link DIR-X1860 B1/DIR-X1550 A1
ac7a4abdde7d iptime-crc32: add support for ipTIME AX3000SE
c42a3bc53da8 iptime-crc32: add support for ipTIME AX2002MESH

Link: https://github.com/openwrt/openwrt/pull/20734
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agotools: firmware-utils: update to Git HEAD (2025-11-11)
Hauke Mehrtens [Mon, 10 Nov 2025 23:39:00 +0000 (00:39 +0100)]
tools: firmware-utils: update to Git HEAD (2025-11-11)

ac7a4abdde7d iptime-crc32: add support for ipTIME AX3000SE
c42a3bc53da8 iptime-crc32: add support for ipTIME AX2002MESH

Link: https://github.com/openwrt/openwrt/pull/20734
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agoucode: update to Git HEAD (2025-11-07)
Hauke Mehrtens [Sun, 9 Nov 2025 23:42:32 +0000 (00:42 +0100)]
ucode: update to Git HEAD (2025-11-07)

e8a7290e55c0 socket: fix `recv()` incorrectly reporting unrelated errors
ddde611fb9d4 socket: fix convertion of hw addresses to ucode strings
924ccc95be32 vm: make sure uc_vm_insn_to_name() always returns a value
754590d26f23 lexer: fix parsing \xHH and \0OOO escape sequences
623f550e579a fs: add dup2() function
6c9385a99edd fs: add mkdtemp() method for creating temporary directories
ea579046a619 fs: reset errno to zero in get_fd()

The removed patches are integrated upstream.

Fixes: https://github.com/jow-/ucode/issues/332
Fixes: https://github.com/jow-/ucode/issues/337
Link: https://github.com/openwrt/openwrt/pull/20718
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agotegra: promote kernel 6.12 as default
Tomasz Maciej Nowak [Tue, 11 Nov 2025 18:39:50 +0000 (19:39 +0100)]
tegra: promote kernel 6.12 as default

It has been stable so far. As result of this change drop 6.6 files.

Signed-off-by: Tomasz Maciej Nowak <[email protected]>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/[email protected]/
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agoqualcommbe: support 10g-qxgmii in QCA8084 PHY driver
Alexandru Gagniuc [Sun, 9 Nov 2025 23:36:33 +0000 (17:36 -0600)]
qualcommbe: support 10g-qxgmii in QCA8084 PHY driver

The "old" QCA8084 PHY driver does not implement 10g-qxgmii support.
This is blocking several devices which use the QCA8084 form being
merged. Qualcomm has provided updated drivers for the MAC (ppe), PCS,
and PHY via github. We only need to update the PHY driver.

Update the QCA8084 PHY driver using the patches provided by Qualcomm.
Re-organize the patches so that the changes go into the existing
patches. The SERDES functionality is new, so it gets new patches. This
is sufficient to enable 10g-qxgmii on ipq95xx platforms.

Signed-off-by: Alexandru Gagniuc <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20721
Signed-off-by: Robert Marko <[email protected]>
3 weeks agoairoha: replace AN7583 pinctrl patch with upstream version
Christian Marangi [Tue, 11 Nov 2025 16:18:39 +0000 (17:18 +0100)]
airoha: replace AN7583 pinctrl patch with upstream version

Replace Airoha AN7583 pinctrl patch with upstream version as it has been
accepted upstream. Add the related kernel version tag to identify it.

Signed-off-by: Christian Marangi <[email protected]>
3 weeks agokernel: sound: add support for MIDI 2.0 and UMP
Florian Bomers [Mon, 10 Nov 2025 17:39:34 +0000 (18:39 +0100)]
kernel: sound: add support for MIDI 2.0 and UMP

New Packages / build options:
* sound-midi2: enable MIDI 2.0 / UMP in ALSA MIDI
* sound-midi2-seq: enable MIDI 2.0 / UMP in ALSA sequencer
* sound-midi2-usb: enable USB MIDI 2.0 support
* sound-dynamic-minors: allow more than 8 MIDI devices
More info about ALSA MIDI 2.0:
 https://docs.kernel.org/6.12/sound/designs/midi-2.0.html
More info about MIDI 2.0:
 https://midi.org/midi-2-0

Signed-off-by: Florian Bomers <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20727
Signed-off-by: Christian Marangi <[email protected]>
3 weeks agoipq40xx: fix unit-address of Netgear LBR20 ubi partition
Christoph Krapp [Mon, 10 Nov 2025 23:01:17 +0000 (00:01 +0100)]
ipq40xx: fix unit-address of Netgear LBR20 ubi partition

The unit-address of the ubi partition was @a9c0000 but the partition
actually starts at offset 0x0ad00000. Ideally they should match, so
align them.

Signed-off-by: Christoph Krapp <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20733
Signed-off-by: Robert Marko <[email protected]>
3 weeks agorealtek: dsa: Clarify meaning of secondary lag member variable
Sven Eckelmann [Sun, 9 Nov 2025 08:45:39 +0000 (09:45 +0100)]
realtek: dsa: Clarify meaning of secondary lag member variable

The name "is_lagmember" implies that the port is part of a LAG. But this
information is already stored in lagmembers. In reality, it is stored the
non-primary LAG members. Renaming it accordingly, makes the code a lot more
readable

Also the type (u32 array) looks like it would contain some kind of large id
(like the group ID). But it only stores a single bit. It is more appropriate
to just use a single bit per port.

Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20707
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agorealtek: DSA: Document meaning of lag priv variables
Sven Eckelmann [Sun, 9 Nov 2025 08:38:48 +0000 (09:38 +0100)]
realtek: DSA: Document meaning of lag priv variables

The names of the LAG variables in struct rtl838x_switch_priv are not self
explaining. They are even suggesting that they are dealing with information
which are actually stored in a different variable. As first step, document
their meaning.

Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20707
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agorealtek: dsa: Drop LAG checks already handled by DSA handlers
Sven Eckelmann [Sun, 9 Nov 2025 08:32:03 +0000 (09:32 +0100)]
realtek: dsa: Drop LAG checks already handled by DSA handlers

There is no need to check conditions in rtl83xx_lag_add()/rtl83xx_lag_del()
when they are already checked in
rtl83xx_port_lag_join()/rtl83xx_port_lag_leave().

Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20707
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agorealtek: dsa: Use DSA allocated LAG ids
Sven Eckelmann [Sun, 9 Nov 2025 08:30:52 +0000 (09:30 +0100)]
realtek: dsa: Use DSA allocated LAG ids

It is not necessary to have a private LAG id allocation when the shared DSA
code already provides the complete infrastructure for it.

Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20707
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agorealtek: dsa: Drop secondary LAG configuration handler
Sven Eckelmann [Sun, 9 Nov 2025 08:26:27 +0000 (09:26 +0100)]
realtek: dsa: Drop secondary LAG configuration handler

The DSA code is responsible to inform the driver about link aggregation
changes. Having a second one which behaves slightly different makes the
whole process fragile and creates hard to debug problems.

It also complicates the code because the secondary event handler can also
not rely on shared DSA state to handle things like LAG ID.

Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20707
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agorealtek: dsa: Fix LAG id allocation
Sven Eckelmann [Sun, 9 Nov 2025 08:23:48 +0000 (09:23 +0100)]
realtek: dsa: Fix LAG id allocation

The rtl83xx_lag_can_offload() function always returned an error because
ds->num_lag_ids was never set. This basically disabled the DSA lag
configuration completely.

Drop the private n_lag variable and instead use the DSA specific one. This
ensures that all the code always has the same reference for the number of
LAGs.

Fixes: 32e5b5ee6b86 ("realtek: Add Link Aggregation (aka trunking) support")
Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20707
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agoudebug: update to Git HEAD (2025-10-21)
Hauke Mehrtens [Sun, 9 Nov 2025 23:44:05 +0000 (00:44 +0100)]
udebug: update to Git HEAD (2025-10-21)

8c967bce23ae CMakeLists.txt: rename udebug-cli to udebug on installation
75f39cd4a806 add debian package support

Link: https://github.com/openwrt/openwrt/pull/20719
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agouci: update to Git HEAD (2025-11-03)
Hauke Mehrtens [Sun, 9 Nov 2025 23:41:24 +0000 (00:41 +0100)]
uci: update to Git HEAD (2025-11-03)

57c1e8cd2c05 github: add CI build
2e46a7405f26 github: improve CI
c1e2eee6c5e3 github: fix CI apt dependencies

Link: https://github.com/openwrt/openwrt/pull/20717
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agoubus: update to Git HEAD (2025-11-03)
Hauke Mehrtens [Sun, 9 Nov 2025 23:40:51 +0000 (00:40 +0100)]
ubus: update to Git HEAD (2025-11-03)

6fdf7a979162 github: improve CI
0d4bcb56f5e1 github: fix CI apt dependencies

Link: https://github.com/openwrt/openwrt/pull/20716
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agoubox: update to Git HEAD (2025-10-30)
Hauke Mehrtens [Sun, 9 Nov 2025 23:40:12 +0000 (00:40 +0100)]
ubox: update to Git HEAD (2025-10-30)

6f78fa496bf3 ubox validate: port range check fix

Link: https://github.com/openwrt/openwrt/pull/20715
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agolibnl-tiny: update to Git HEAD (2025-11-03)
Hauke Mehrtens [Sun, 9 Nov 2025 23:36:17 +0000 (00:36 +0100)]
libnl-tiny: update to Git HEAD (2025-11-03)

fa6a52b03713 github: add CI build
c69fb5ef80b9 github: improve CI
532ac744dedc github: fix CI apt dependencies

Link: https://github.com/openwrt/openwrt/pull/20714
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agolibubox: update to Git HEAD (2025-11-03)
Hauke Mehrtens [Sun, 9 Nov 2025 23:36:48 +0000 (00:36 +0100)]
libubox: update to Git HEAD (2025-11-03)

7a3863acfb15 lua: CMakeLists: drop redundant cmake_minimum_required
61cc1e6fdc0e examples: CMakeLists: drop redundant cmake_minimum_required
7d6b9d98d0bd add debian/ directory
9caf555f00e2 github: improve CI build
e357be611cd9 github: fix CI apt dependencies

Link: https://github.com/openwrt/openwrt/pull/20713
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agorockchip: add missing KERNEL_LOADADDR for LinkEase EasePi R1
Tianling Shen [Mon, 10 Nov 2025 09:12:27 +0000 (17:12 +0800)]
rockchip: add missing KERNEL_LOADADDR for LinkEase EasePi R1

Commit 8ca4caacd039 ("rockchip: Add support for RK3568 LinkEase EasePi R1")
forgot to include the SoC recipe, which leads KERNEL_LOADADDR undefined.

Fixes: 8ca4caacd039 ("rockchip: Add support for RK3568 LinkEase EasePi R1")
Signed-off-by: Tianling Shen <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20722
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agorockchip: fix assign IRQ SMP affinity for Radxa E52C
Tianling Shen [Mon, 10 Nov 2025 09:09:43 +0000 (17:09 +0800)]
rockchip: fix assign IRQ SMP affinity for Radxa E52C

The ifname was renamed to `lan`/`wan` in commit 1f1db7543220
 ("rockchip: make NIC name predictable for Radxa E52C/ROCK 5 ITX/ROCK 5T"),
update accordingly.

Fixes: 1f1db7543220 ("rockchip: make NIC name predictable for Radxa E52C/ROCK 5 ITX/ROCK 5T")
Signed-off-by: Tianling Shen <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20722
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agorealtek: dsa: rtl93xx: Keep mgmt recv action functions local
Sven Eckelmann [Fri, 7 Nov 2025 14:08:17 +0000 (15:08 +0100)]
realtek: dsa: rtl93xx: Keep mgmt recv action functions local

Th function to set the mangement frames receive actions is only used in the
SoC specific files. They can therefore be kept local without any
declaration in headers.

Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20704
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agorealtek: dsa: rtl931x: Sync mgmt recv action code with RTL930x
Sven Eckelmann [Fri, 7 Nov 2025 14:08:17 +0000 (15:08 +0100)]
realtek: dsa: rtl931x: Sync mgmt recv action code with RTL930x

The code for the RTL930x management action configuration was cleaned up
significantly for commit 75fe6b2d0b91 ("realtek: rtl930x: Add support for
trapping management frames"). Sync these changes to RTL931x to make it
easier to extend both implementations.

Signed-off-by: Sven Eckelmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20704
Signed-off-by: Hauke Mehrtens <[email protected]>
3 weeks agoodhcp6c: update to Git HEAD (2025-11-09)
Hauke Mehrtens [Sun, 9 Nov 2025 23:33:22 +0000 (00:33 +0100)]
odhcp6c: update to Git HEAD (2025-11-09)

17ef5f40d48a readme: rewrite in markdown
0fcfe9166173 readme: document all environment options
e3949977ca94 readme: update for prpl patch-set additions
86544fa2b581 src: align SoftAtHome license headers format
8bad7df9feb9 src: reorder includes alphabetically
6d353ff96826 src: remove pragma once in headers
f5684d570200 treewide: remove whitespaces at EOL
e5cfea8f6ef8 src: add missing if/else braces
a92f199d6b8d dhcpv6: potential bug fix for checking DHCPV6_OPT_STATUS
9e414d41e16e readme: fix description string
775e6c759cfd dhcpv6: return early upon success
e5690c1f13ed treewide: Replace _unused with _o_unused

This fixes the build on powerpc.

Signed-off-by: Hauke Mehrtens <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20712
Signed-off-by: Christian Marangi <[email protected]>
3 weeks agoairoha: backport patch fixing out of order DMA for ethernet driver
Christian Marangi [Mon, 10 Nov 2025 18:27:11 +0000 (19:27 +0100)]
airoha: backport patch fixing out of order DMA for ethernet driver

Backport upstream patch fixing out of order DMA access for ethernet
driver. This is relevant in the context of QoS when packets doesn't
follow linear handling by QDMA HW.

Signed-off-by: Christian Marangi <[email protected]>