]> git.ipfire.org Git - thirdparty/openwrt.git/log
thirdparty/openwrt.git
3 weeks agoramips: 6.18: remove obsolete patches
Mieczyslaw Nalewaj [Mon, 6 Apr 2026 07:41:38 +0000 (09:41 +0200)] 
ramips: 6.18: remove obsolete patches

Remove obsolete patches already included in kernel 6.18.
 - 001-v6.13-clocksource-drivers-ralink-Add-Ralink-System-Tick-Co.patch[1]
 - 002-03-v6.13-clk-ralink-mtmips-add-mmc-related-clocks-for-SoCs-MT.patch[2]
 - 003-v6.13-mmc-mtk-sd-Implement-Host-Software-Queue-for-eMMC.patch[3]
 - 004-v6.15-dt-bindings-clock-add-clock-definitions-for-Ralink-S.patch[4]
 - 860-ramips-add-eip93-driver.patch[5]
 - 900-pci-rt2880-static-pcibios_init.patch[6]
 - 931-mips-ralink-add-missing-include.patch[7]

[1] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=cd5375610baadd3a0842a9e83ca502684f938be8
[2] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=198675bbc03d437fb80a35d781ad13d622d0ff68
[3] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=7e9ddd7d45897b15a64c4a3c88f2f7909bf49749
[4] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=adb2424d0d05506c2f36fcba66101d34f7409e45
[5] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=9739f5f93b7806a684713ba42e6ed2d1df7c8100
[6] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=de94259d064814b7eacd6d1f4b26e934eed02590
[7] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=f13e645e15f1a4a33f0709844dac1a962b335b16

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21418
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agoramips: 6.18: update kernel symbols
Mieczyslaw Nalewaj [Mon, 5 Jan 2026 18:35:51 +0000 (19:35 +0100)] 
ramips: 6.18: update kernel symbols

Remove symbols no longer present in version 6.18,
add new 6.18 kernel symbols.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21418
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agokernel/ramips: restore files for v6.12
Mieczyslaw Nalewaj [Mon, 6 Apr 2026 07:41:28 +0000 (09:41 +0200)] 
kernel/ramips: restore files for v6.12

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: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21418
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agokernel/ramips: create files for v6.18 (from v6.12)
Mieczyslaw Nalewaj [Mon, 6 Apr 2026 07:41:25 +0000 (09:41 +0200)] 
kernel/ramips: create files for v6.18 (from v6.12)

This is an automatically generated commit.

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

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21418
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorealtek: mdio: add phy to port lookup 22731/head
Markus Stockhausen [Wed, 1 Apr 2026 16:51:47 +0000 (18:51 +0200)] 
realtek: mdio: add phy to port lookup

The Realtek mdio bus operations are based on the port number. As
of now the driver exposes a single bus with a 1:1 mapping between
phy and port. This will change in the future when the driver
exposes multiple busses. This will need a mapping - e.g.

- bus 0, phy 23 -> read/write port 23
- bus 1, phy 0 -> read/write port 24

Provide a rtmdio_phy_to_port() indirection function that will
lookup the port number based on a bus and a phy. For now it
will only run some basic sanity checks and return the given
input address (because of 1:1 mapping).

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22731
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorealtek: mdio: add mutex for multiple busses
Markus Stockhausen [Wed, 1 Apr 2026 15:43:11 +0000 (17:43 +0200)] 
realtek: mdio: add mutex for multiple busses

When the mdio driver gets enhanced for multiple busses it must
snchronize reads/writes to the single controller. Add a lock
to the control structure and guard the critical operations.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22731
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorealtek: eth: convert set_rx_mode() to regmap 22757/head
Markus Stockhausen [Fri, 3 Apr 2026 10:25:59 +0000 (12:25 +0200)] 
realtek: eth: convert set_rx_mode() to regmap

Make use of regmap in all device specific set_rx_mode() functions.
Adapt the constant prefixes to the rest of the driver. While we
are here:

- align the RTL931x function name with the other targets
- replace constants with GENMASK()
- use new lowercase style for hexadecimal values

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22757
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorealtek: eth: introduce regmap
Markus Stockhausen [Fri, 3 Apr 2026 10:04:38 +0000 (12:04 +0200)] 
realtek: eth: introduce regmap

The ethernet driver currently uses the legacy sw() macros. Add a
regmap to the driver that is derived from the parent mfd (like in
the mdio drivers). As a first consumer make use of that in the IRQ
functions.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22757
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agokernel: 6.18: move CONFIG_CRYPTO_LIB_SHA256 to generic 22730/head
Shiji Yang [Fri, 3 Apr 2026 14:33:38 +0000 (22:33 +0800)] 
kernel: 6.18: move CONFIG_CRYPTO_LIB_SHA256 to generic

This symbol is selected by CONFIG_BPF, which was already enabled
on generic config-6.18.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: 6.12: move CONFIG_CRYPTO_LIB_SHA1 to generic
Shiji Yang [Fri, 3 Apr 2026 14:30:38 +0000 (22:30 +0800)] 
kernel: 6.12: move CONFIG_CRYPTO_LIB_SHA1 to generic

This symbol is selected by CONFIG_BPF, which was already enabled
on generic config-6.12.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: enable CRYPTO_RNG2 and CRYPTO_SIG2 by default
Shiji Yang [Fri, 3 Apr 2026 13:46:44 +0000 (21:46 +0800)] 
kernel: enable CRYPTO_RNG2 and CRYPTO_SIG2 by default

These two symbols are selected by CONFIG_CRYPTO_MANAGER2[1-2], which
was already enabled on generic config-{6.12,6.18}.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=fb28fabfad332a731423ffdd2be122b73ea90f1e
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=6cb8815f41a966b217c0d9826c592254d72dcc31
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: 6.18: move CONFIG_PAGE_BLOCK_MAX_ORDER to subtargets
Shiji Yang [Wed, 1 Apr 2026 11:28:54 +0000 (19:28 +0800)] 
kernel: 6.18: move CONFIG_PAGE_BLOCK_MAX_ORDER to subtargets

This symbol depends on the specific CPU type, so we should not
set it globally.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: 6.18: disable CONFIG_GENERIC_BUILTIN_DTB
Shiji Yang [Wed, 1 Apr 2026 11:24:03 +0000 (19:24 +0800)] 
kernel: 6.18: disable CONFIG_GENERIC_BUILTIN_DTB

This symbol is selected by CONFIG_BUILTIN_DTB. However, we didn't
enable it in generic config-6.18.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: reorganize config files
Shiji Yang [Tue, 31 Mar 2026 23:28:58 +0000 (07:28 +0800)] 
kernel: reorganize config files

Automatically refreshed by `./scripts/kconfig-reorder.sh`.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: modules: fix kmod-iavf dependencies
Shiji Yang [Tue, 31 Mar 2026 14:33:44 +0000 (22:33 +0800)] 
kernel: modules: fix kmod-iavf dependencies

Add missing dependency kmod-ptp to fix the build error. We also
add symbol CONFIG_PTP_1588_CLOCK_OPTIONAL explicitly for kmod-ptp
because it is selected by CONFIG_PTP_1588_CLOCK. Fix:

Package kmod-iavf is missing dependencies for the following libraries:
ptp.ko

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: modules: fix kmod-crypto-misc build error
Shiji Yang [Tue, 31 Mar 2026 12:28:35 +0000 (20:28 +0800)] 
kernel: modules: fix kmod-crypto-misc build error

cryptd has been decoupled from crypto-misc in the 6.18 kernel. Fix:

ERROR: module '/home/runner/work/Actions_/Actions_/openwrt/build_dir/target-i386_pentium4_musl/linux-x86_generic/linux-6.18.20/crypto/cryptd.ko' is missing.
make[3]: *** [modules/crypto.mk:873: /home/runner/work/Actions_/Actions_/openwrt/bin/targets/x86/generic/packages/kmod-crypto-misc-6.18.20-r1.apk] Error 1

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agoramips: add support for wavlink halo base pro 22400/head
William Latter [Fri, 13 Mar 2026 08:09:30 +0000 (19:09 +1100)] 
ramips: add support for wavlink halo base pro

This adds support for the Wavlink "Halo Base Pro".
SOC: MT7621DAT
RAM: 128MiB
Flash: 16MiB NOR
WiFi: MT7603EN + MT7613BEN

Buttons:
- The touch sensor was originally for WPS, but this has been moved to the
pair button which is no longer used to prevent accidental touches

LEDs:
- On original firmware, the status LEDs light up as follows:
- Purple = booting, Blue = working, Red = error

Partitions:
- factory contains unique WiFi EEPROM and default MAC addresses
- vendor partition has an unknown purpose

Stock MAC address allocation:
- LAN1: xx:xx:xx:xx:xx:80
- LAN2/WAN: xx:xx:xx:xx:xx:81
- WiFi 2.4G: xx:xx:xx:xx:xx:82
- WiFi 5G: xx:xx:xx:xx:xx:83

LAN Ports:
- lan1 is the normal white LAN port
- lan2 is labelled "LAN/Backhaul", which can either be LAN or WAN.
- Since this device is intended to be part of a mesh, this will usually
be a LAN port, hence why it's assigned to lan2 here

Notes:
- I've chosen "Halo Base Pro" as the device model, despite the website URL
showing WL-WN535M3, as the label only states "Halo Base Pro".
- Only the 5GHz WiFi address is labelled on the device

Signed-off-by: William Latter <williamlatter77@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22400
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: modules: add new driver package phy-mtk-tphy 22094/head
Shiji Yang [Thu, 19 Feb 2026 12:06:08 +0000 (20:06 +0800)] 
kernel: modules: add new driver package phy-mtk-tphy

MediaTek T-PHY controller supports multiple usb2.0, usb3.0 ports,
PCIe and SATA. ARM mediatek and ramips/mt7621 targets require this
package to make the XHCI work properly.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22094
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agoramips: dts: mt7621: use "mediatek,mtk-xhci" compatible
Shiji Yang [Thu, 19 Feb 2026 11:57:56 +0000 (19:57 +0800)] 
ramips: dts: mt7621: use "mediatek,mtk-xhci" compatible

Compared to the "mediatek,mt8173-xhci", this is a more generic and
reasonable compatible string. On the driver side, they are identical.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22094
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agoramips: dts: mt7621: add USB t-phy node
Shiji Yang [Thu, 19 Feb 2026 11:57:18 +0000 (19:57 +0800)] 
ramips: dts: mt7621: add USB t-phy node

The USB t-phy driver includes some magic register init values. This
should be beneficial for the USB stability and performance.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22094
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agoramips: mt7621: build MediaTek T-PHY driver
Shiji Yang [Thu, 19 Feb 2026 11:56:55 +0000 (19:56 +0800)] 
ramips: mt7621: build MediaTek T-PHY driver

MT7621 USB phys are compatible with the MediaTek T-PHY controller.
The vendor SDK also enabled this driver for MT7621.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22094
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agomac80211: ath9k: remove entropy patch 22766/head
Rosen Penev [Fri, 23 May 2025 01:42:21 +0000 (18:42 -0700)] 
mac80211: ath9k: remove entropy patch

This was replaced upstream with a proper rng device that feeds into
/dev/random. No need for this anymore.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22766
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agolantiq: dts: fix PCIe peripheral node name dtc warnings 18843/head
Shiji Yang [Mon, 19 May 2025 11:26:47 +0000 (19:26 +0800)] 
lantiq: dts: fix PCIe peripheral node name dtc warnings

Remove unit name leading 0s to fix the following dtc warnings:

danube_arcadyan_arv752dpw22.dts:263.11-273.4: Warning (pci_device_reg): /fpi@10000000/pci@e105400/usb@0f,0: PCI unit address format error, expected "f,0"
danube_arcadyan_arv752dpw22.dts:275.11-285.4: Warning (pci_device_reg): /fpi@10000000/pci@e105400/usb@0f,2: PCI unit address format error, expected "f,2"

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18843
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agolantiq: dts: correct the size of PCIe reg property
Shiji Yang [Mon, 19 May 2025 11:07:17 +0000 (19:07 +0800)] 
lantiq: dts: correct the size of PCIe reg property

Correct PCIe node #address-cells and #size-cells properties to
fix the following dtc warnings:

vr9_avm_fritz3390.dts:297.4-22: Warning (reg_format): /fpi@10000000/pcie@d900000/pcie@0/wifi@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
vr9_avm_fritz3390.dts:288.9-300.4: Warning (pci_bridge): /fpi@10000000/pcie@d900000/pcie@0: incorrect #address-cells for PCI bridge
vr9_avm_fritz3390.dts:288.9-300.4: Warning (pci_bridge): /fpi@10000000/pcie@d900000/pcie@0: incorrect #size-cells for PCI bridge
vr9_avm_fritz736x.dtsi:168.4-22: Warning (reg_format): /fpi@10000000/pcie@d900000/pcie@0/wifi@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
vr9_avm_fritz736x.dtsi:160.9-170.4: Warning (pci_bridge): /fpi@10000000/pcie@d900000/pcie@0: incorrect #address-cells for PCI bridge
vr9_avm_fritz736x.dtsi:160.9-170.4: Warning (pci_bridge): /fpi@10000000/pcie@d900000/pcie@0: incorrect #size-cells for PCI bridge

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18843
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agolantiq: dts: rename spi pins node name to spi-pins
Shiji Yang [Mon, 19 May 2025 11:03:43 +0000 (19:03 +0800)] 
lantiq: dts: rename spi pins node name to spi-pins

The dtc will treat "spi" node as an SPI controller. This resulted
in lots of false warning reports. Workaround it by renaming the
pinctrl node name to "spi-pins". This patch fixes the following
dtc warnings:

vr9.dtsi:326.18-336.6: Warning (spi_bus_bridge): /fpi@10000000/pinmux@e100b10/spi: incorrect #address-cells for SPI bus
vr9.dtsi:326.18-336.6: Warning (spi_bus_bridge): /fpi@10000000/pinmux@e100b10/spi: incorrect #size-cells for SPI bus
ar9.dtsi:286.18-296.6: Warning (spi_bus_bridge): /fpi@10000000/pinmux@e100b10/spi: incorrect #address-cells for SPI bus
ar9.dtsi:286.18-296.6: Warning (spi_bus_bridge): /fpi@10000000/pinmux@e100b10/spi: incorrect #size-cells for SPI bus
amazonse.dtsi:166.18-176.6: Warning (spi_bus_bridge): /fpi@10000000/pinmux@e100b10/spi: incorrect #address-cells for SPI bus
amazonse.dtsi:166.18-176.6: Warning (spi_bus_bridge): /fpi@10000000/pinmux@e100b10/spi: incorrect #size-cells for SPI bus

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18843
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agotools/e2fsprogs: fix build with system libblkid probe API 22368/head
seuros [Tue, 10 Mar 2026 23:32:04 +0000 (23:32 +0000)] 
tools/e2fsprogs: fix build with system libblkid probe API

When building on a host with e2fsprogs >= 1.47.0 installed, configure
detects the system libblkid probe API (blkid_probe_get_partitions etc.)
and sets ac_cv_lib_blkid_blkid_get_cache=yes. This causes plausible.c
to be compiled with HAVE_BLKID_PROBE_GET_PARTITIONS defined, but the
host build links against the internal blkid stub, resulting in:

  plausible.c: error: unknown type name 'blkid_probe'

Override the configure cache variables to prevent detection of the
system libblkid probe API, ensuring the internal stub is used
consistently.

Signed-off-by: seuros <openwrt@seuros.com>
Link: https://github.com/openwrt/openwrt/pull/22368
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: Indicate that RTL8231 LED ops can sleep
Sander Vanheule [Sun, 5 Apr 2026 18:58:54 +0000 (20:58 +0200)] 
realtek: Indicate that RTL8231 LED ops can sleep

The RTL8231 LED driver is using the .brightness_set op, which according
to the documentation should not sleep. Since the RTL8231 is controlled
via an MDIO bus, this is not the case.

When using a non-offloaded LED driver such as netdev, this may currently
trigger kernel warnings:
    WARNING: CPU: 0 PID: 14 at kernel/time/timer.c:1754 call_timer_fn.isra.0+0x84/0x8c
    timer: led_timer_function+0x0/0x1d8 preempt leak: 00000100 -> 00000000

Switch to the .brightness_set_blocking op to indicate the operation
might sleep.

Fixes: 6ef6014887c3 ("realtek: Add pinctrl support for RTL8231")
Signed-off-by: Sander Vanheule <sander@svanheule.net>
3 weeks agoramips: mt7621: fix reset hang and re-enable LIST_HARDENED 22724/head
Rany Hany [Mon, 30 Mar 2026 13:37:03 +0000 (13:37 +0000)] 
ramips: mt7621: fix reset hang and re-enable LIST_HARDENED

This reverts commit a2fa1db79726dab47d994df530bc8f02d14de68b.

These patches stop secondary CPUs before restart and wait for them
to go offline, fixing the mt7621 reboot deadlock without needing to
disable CONFIG_LIST_HARDENED.

Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/22724
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agomediatek: rax3000m: add Airoha AN8855 switch support 21171/head
air jinkela [Mon, 15 Dec 2025 14:24:08 +0000 (22:24 +0800)] 
mediatek: rax3000m: add Airoha AN8855 switch support

This commit adds support for Airoha AN8855 switch to RAX000Me

Fixes: https://github.com/openwrt/openwrt/issues/21230
Signed-off-by: air jinkela <air_jinkela@163.com>
Link: https://github.com/openwrt/openwrt/pull/21171
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agowpa_supplicant: include ctrl-event on the DPP channel
Felix Fietkau [Fri, 27 Mar 2026 19:44:02 +0000 (19:44 +0000)] 
wpa_supplicant: include ctrl-event on the DPP channel

Simplifies managing state

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 weeks agowpa_supplicant: add ifname to recieved ctrl-event notifications
Felix Fietkau [Fri, 27 Mar 2026 19:38:02 +0000 (19:38 +0000)] 
wpa_supplicant: add ifname to recieved ctrl-event notifications

Simplifies subscribing to multiple objects.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 weeks agorealtek: eth: merge decode_tag() for RTL93xx 22717/head
Markus Stockhausen [Tue, 31 Mar 2026 16:10:30 +0000 (18:10 +0200)] 
realtek: eth: merge decode_tag() for RTL93xx

rteth_930x_decode_tag() and rteth_931x_decode_tag() are basically
the same. The only difference is the port bitmask. Luckily on the
RTL930x devices the unused fifth bit is always zero and the mask
can be aligned with RTL931x. Take over the RTL931x reason debugging
for both targets.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22717
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorealtek: dts: convert D-Link DGS-1250-28X to PHY_C22() 22721/head
Markus Stockhausen [Tue, 31 Mar 2026 19:17:51 +0000 (21:17 +0200)] 
realtek: dts: convert D-Link DGS-1250-28X to PHY_C22()

Use the new PHY_C22() macro for this RTL9301 device.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22721
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorealtek: pcs: rtl931x: set SerDes to off early 22786/head
Jonas Jelonek [Wed, 4 Feb 2026 22:02:00 +0000 (22:02 +0000)] 
realtek: pcs: rtl931x: set SerDes to off early

Set the SerDes mode to OFF early in the setup process to have a clear
starting point. This was part of the media handling before as a leftover
from the SDK code import. In the SDK, this function didn't only care
about applying some media settings but was also some kind of mode
setting for fiber modes.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22786
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorealtek: pcs: condense fiber media types
Jonas Jelonek [Sat, 28 Mar 2026 17:24:15 +0000 (18:24 +0100)] 
realtek: pcs: condense fiber media types

Right now we operate with distinct media types for fiber using different
speeds. This is more of a leftover from the SDK then it really makes
sense design-wise. The set_media function from the SDK did a lot more
than just setting some media-specific parameters. As part of
deconstructing this, also reduce the fiber types to a single media type
and handle the speed-agnostic parts based on the hw_mode for now.

This also drops the check for 100M speed around a block of writes. This
check has it's origin in SDK code where a switch statement just didn't
handle this case. However, the rest of the SDK doesn't handle this case
either. While the explicit 100M support isn't verified yet, there's no
need to keep that check.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22786
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorealtek: pcs: collapse DAC media types
Jonas Jelonek [Fri, 27 Mar 2026 22:32:34 +0000 (23:32 +0100)] 
realtek: pcs: collapse DAC media types

So far we had separate media types for different DAC cable lengths,
equal to how the SDK defines them. However, this seems overengineered.
The types '_50CM' and '_100CM' are always treated equally, same for
'_300CM' and '_500CM'. Not only in the RTL931x code, but also the
RTL930x code usually just makes a distinction between short and long.
Thus, make that a bit cleaner by reducing the DAC type set to '_SHORT'
and '_LONG' with DAC cables < 3m being considered short and those with
>= 3m being considered as long.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22786
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorealtek: pcs: rename port_media to sds_media
Jonas Jelonek [Fri, 27 Mar 2026 12:01:06 +0000 (13:01 +0100)] 
realtek: pcs: rename port_media to sds_media

The term 'port media' was chosen due to how the code taken from the SDK
was organized. However, the SDK does a pretty good job at intermixing a
lot of things which cause confusion in the end. This also applies to the
media settings. To be correct, we do not really have port awareness in
the PCS driver (and probably shouldn't have) so we do not really deal
with a port's media. Instead, we set settings depending on what is
attached to the SerDes itself.

To fix this confusion, rename the enum, its fields and all usage from
'port_media' to 'sds_media'.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22786
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorockchip: add reset button support for NanoPi R5S LTS 22700/head
Roman Pyatikonov [Mon, 30 Mar 2026 20:11:59 +0000 (23:11 +0300)] 
rockchip: add reset button support for NanoPi R5S LTS

Backport upstream commit 954f07012794 ("arm64: dts: rockchip:
Add reset button to NanoPi R5S").

The NanoPi R5S LTS variant has a reset button wired to GPIO4_A0,
but the current OpenWrt rockchip 6.12 patch set lacks the
corresponding gpio-keys definition in rk3568-nanopi-r5s.dts.

As a result, pressing the button generates no reset event.
rockchip already includes kmod-gpio-button-hotplug by default,
so backporting the upstream DTS change restores the expected
behavior.

Rename the patch to
011-v6.17-arm64-dts-rockchip-Add-reset-button-to-NanoPi-R5S.patch
to match the upstream source.

The non-LTS NanoPi R5S leaves this pin unconnected, matching the
upstream rationale for using the shared rk3568-nanopi-r5s.dts.

Link: https://lore.kernel.org/r/20250711142138.197445-1-didi.debian@cknow.org
Signed-off-by: Roman Pyatikonov <moyciti.volga.bk.ru92@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22700
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: dsa: common MSTI initialization 18127/head 22749/head
Markus Stockhausen [Fri, 3 Apr 2026 07:45:11 +0000 (09:45 +0200)] 
realtek: dsa: common MSTI initialization

The dsa probing currently disable multiple spanning tree for RTL93xx
and keeps the bootloader setup for RTL83xx untouched. Additionally it
does this by checking for the family id. Refactor this to a common
"disable msti" setup.

To make it clear: From now on RTL83xx will also run in MSTI disabled
state. Tested on Linksys LGS310C.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22749
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: dsa: move n_mst/l2_bucket_size out of family check
Markus Stockhausen [Fri, 3 Apr 2026 07:32:07 +0000 (09:32 +0200)] 
realtek: dsa: move n_mst/l2_bucket_size out of family check

Another two variables that are not part of the runtime but the
configuration structure. Move them around.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22749
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: dsa: remove num_lag_ids from family check
Markus Stockhausen [Fri, 3 Apr 2026 07:18:49 +0000 (09:18 +0200)] 
realtek: dsa: remove num_lag_ids from family check

num_lag_ids is a device specific constant and must therefore
live in the configuration structure. Avoid dynamic assignment.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22749
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: dsa: remove ops structures from family check
Markus Stockhausen [Fri, 3 Apr 2026 07:10:59 +0000 (09:10 +0200)] 
realtek: dsa: remove ops structures from family check

dsa_switch_ops and phylink_mac_ops do not need to be assigned
by a family check. Instead they can be directly linked in the
configuration structure.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22749
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agohostapd: update to 2026-04-02 22745/head
Nick Hainke [Thu, 2 Apr 2026 16:10:04 +0000 (18:10 +0200)] 
hostapd: update to 2026-04-02

Patches automatically refreshed.

Link: https://github.com/openwrt/openwrt/pull/22745
Signed-off-by: Nick Hainke <vincent@systemli.org>
3 weeks agoramips: add support for Z-ROUTER ZR-2662 21524/head
xingchi [Tue, 13 Jan 2026 08:01:20 +0000 (16:01 +0800)] 
ramips: add support for Z-ROUTER ZR-2662

This commit adds support for Z-ROUTER ZR-2662 (also known as Routerich
AX1800 V2) wireless WiFi 6 router.

Hardware specification
---------------------
- SoC       : MediaTek MT7621AT, MIPS, 880 MHz
- RAM       : 256 MiB
- Flash     : NAND 128 MiB (AMD/Spansion S34ML01G2)
- WLAN      :
  - 2.4 GHz : MediaTek MT7905D/MT7975 (14c3:7916), b/g/n/ax, MIMO 2x2
  - 5 GHz   : MediaTek MT7915E (14c3:7915), a/n/ac/ax, MIMO 2x2
- Ethernet  : 10/100/1000 Mbps x4 (1x WAN, 3x LAN)
- USB       : 1x 2.0
- UART      : 3.3V, 115200n8, pins are silkscreened on the pcb
- Buttons   : 1x Reset
- LEDs      : 1x WiFi 2.4 GHz (green)
              1x WiFi 5 GHz (green)
              1x LAN (green)
              1x WAN (green)
              1x WAN no-internet (red)
- Power     : 12 VDC, 1 A

Installation
------------
1. Run tftp server on your PC (IP: 192.168.2.2) and put OpenWrt initramfs
   image (initramfs.bin) to the tftp root dir
2. Open the following link in the browser to enable telnet:
http://192.168.2.1/cgi-bin/telnet_ssh
3. Connect to the router (default IP: 192.168.2.1) using telnet shell
   (credentials - user:admin)
4. Run the following commands in the telnet shell (this will install
   OpenWrt initramfs image on nand flash):
cd /tmp
tftp -g -r initramfs.bin 192.168.2.2
mtd write initramfs.bin firmware
mtd erase firmware_backup
reboot
5. Copy OpenWrt sysupgrade image (sysupgrade.bin) to the /tmp dir of the
   router
6. Connect to the router (IP: 192.168.1.1) using ssh shell and run
   sysupgrade command:
sysupgrade -n /tmp/sysupgrade.bin

Return to stock
---------------
1. Copy stock firmware (stock.bin) to the /tmp dir of the router using scp
2. Run following command in the router shell:
cd /tmp
mtd write stock.bin firmware
reboot

Recovery
--------
Connect uart (pins are silkscreened on the pcb), interrupt boot process by
pressing any key, use u-boot menu to flash stock firmware image or OpenWrt
initramfs image.

MAC addresses
-------------
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| LAN     | 24:0f:5e:xx:xx:4c | label     |
| WAN     | 24:0f:5e:xx:xx:4d | label+1   |
| WLAN 2g | 24:0f:5e:xx:xx:4e | label+2   |
| WLAN 5g | 24:0f:5e:xx:xx:4f | label+3   |
+---------+-------------------+-----------+
The WLAN 2.4 MAC was found in 'factory', 0x4
The LAN MAC was found in 'factory', 0xfff4
The WAN MAC was found in 'factory', 0xfffa

Note: This device is similar to Z-ROUTER ZR-2660, but with minor hardware
revisions. The firmware and configuration are compatible.

Signed-off-by: xingchi <juncaixingchi2026@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21524
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agowifi-scripts: fix ucode erp_domain and fils_cache_id values 22677/head
Joshua Klinesmith [Sun, 29 Mar 2026 20:19:40 +0000 (16:19 -0400)] 
wifi-scripts: fix ucode erp_domain and fils_cache_id values

The ucode path generates different erp_domain and fils_cache_id
values than the legacy shell path due to three mismatches:

1. erp_domain md5 input missing trailing newline (echo adds \n)
2. erp_domain output truncated to 4 chars instead of 8 (shell
   uses head -c 8)
3. fils_cache_id md5 input missing trailing newline
4. erp_domain missing fallback to mobility_domain

Same bug pattern as mobility_domain fixed in commit b1dc2736db.

Fixes: #21768
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Joshua Klinesmith <joshuaklinesmith@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22677
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agoramips: dts: add 'broken-cd' for VoCore2 MMC 21568/head
Shiji Yang [Fri, 16 Jan 2026 12:18:00 +0000 (20:18 +0800)] 
ramips: dts: add 'broken-cd' for VoCore2 MMC

This model doesn't have cd pin on its MicroSD card slot.

Fixes: https://github.com/openwrt/openwrt/issues/20288
Fixes: https://github.com/openwrt/openwrt/issues/22603
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21568
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agoramips: mt76x8: add support for Cudy LT300 v3 21982/head
Fil Dunsky [Mon, 9 Feb 2026 09:03:58 +0000 (12:03 +0300)] 
ramips: mt76x8: add support for Cudy LT300 v3

Hardware:
 - SoC: MediaTek MT7628AN (MIPS 580MHz)
 - Flash: 16 MiB NOR
 - RAM: 64 MiB DDR2
 - WLAN: 2.4 GHz (MT7628)
 - Ethernet: 1x 10/100 Mbps WAN/LAN, 1x 10/100 LAN (MT7628)
 - Build-in LTE Modem: MeigLink SLM770A
   4G Cat. 4 (150/50 Mbps)
 - Buttons: 1x Reset, 1x wps
 - LEDs: Front: 1x Red, 1x White,
         Back: 3x White 4G signal strengh
 - Serial console: unpopulated header, 115200 8n1
 - Power: USB-C

MAC addresses:
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| WAN     | 80:af:ca:xx:xx:x1 | label+1   |
| LAN     | 80:af:ca:xx:xx:x0 | label     |
| WLAN 2g | 80:af:ca:xx:xx:x2 | label+2   |
+---------+-------------------+-----------+

Migration to OpenWrt:
- Download the RSA signed intermediate firmware from the Cudy website:
  `openwrt-ramips-mt76x8-cudy_lt300-v3-squashfs-flash.bin`
- Connect computer to LAN and flash the intermediate firmware via OEM web interface
- OpenWrt is now accessible via 192.168.1.1

Revert back to OEM firmware:
- Set up a TFTP server on IP 192.168.1.88 and connect to the WAN port (upper port)
- Provide the Cudy firmware as recovery.bin in the TFTP server
- Press the reset button while powering on the device
- Recovery process is started now
- When recovery process is done, OEM firmware is accessible via 192.168.10.1 again

General information:
- No possibility to load a initramfs image via U-Boot because there is no option to interrupt U-Boot

Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21982
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agobase-files: MAJOR/MINOR not sequential, use DISKSEQ instead 18962/head
Clemens Hopfer [Fri, 30 May 2025 12:03:40 +0000 (14:03 +0200)] 
base-files: MAJOR/MINOR not sequential, use DISKSEQ instead

Export the unique, monotonic DISKSEQ sequence drive number instead of its
major/minor numbers to identify the boot disk and directly match the partition
in export_partdevice with PARTN.

The MINOR blockdevice numbers are not guaranteed sequential across disks, it
can happen that disks enumerate before their partitions are probed, resulting
in interleaved MINOR numbers breaking the partition offset calculation:

major minor  #blocks  name
 259        0  250059096 nvme0n1
 259        2       8192 nvme0n1p1
 259        3     491520 nvme0n1p2
 259        4        239 nvme0n1p128
 259        1  250059096 nvme1n1
 259        5  250057728 nvme1n1p1

Signed-off-by: Clemens Hopfer <openwrt@wireloss.net>
Link: https://github.com/openwrt/openwrt/pull/18962
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorealtek: fixup Datto L8 device tree 22764/head
Hal Martin [Fri, 3 Apr 2026 10:30:27 +0000 (12:30 +0200)] 
realtek: fixup Datto L8 device tree

ports should be ethernet-ports, otherwise initialising ethernet
ports fails on 6.18 testing kernel.

Signed-off-by: Hal Martin <hal.martin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22764
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agomt76: pass LED define via ccflags-y 22737/head
Mieczyslaw Nalewaj [Thu, 2 Apr 2026 17:01:10 +0000 (19:01 +0200)] 
mt76: pass LED define via ccflags-y

Replace the deprecated EXTRA_CFLAGS with ccflags-y so that
the -DCONFIG_MT76_LEDS define is applied correctly by the kernel
build system. EXTRA_CFLAGS is no longer honored by recent
kbuilds[1]; ccflags-y is the supported variable and works
on kernels 6.12 and 6.18.

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

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/22737
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: bump 6.18 to 6.18.21 22741/head
John Audia [Thu, 2 Apr 2026 14:47:58 +0000 (10:47 -0400)] 
kernel: bump 6.18 to 6.18.21

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

All patches automatically rebased.

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

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22741
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: bump 6.12 to 6.12.80 22742/head
John Audia [Thu, 2 Apr 2026 12:41:46 +0000 (08:41 -0400)] 
kernel: bump 6.12 to 6.12.80

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

Manually rebased:
  generic-hack/902-debloat_proc.patch

All other patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22742
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agoath79: ar7161: remove default pll-data 22746/head
Rosen Penev [Thu, 2 Apr 2026 00:12:25 +0000 (17:12 -0700)] 
ath79: ar7161: remove default pll-data

ar7100.dtsi specifies this exact pll-data.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22746
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agoramips: dts: fix uart node names 22738/head
Shiji Yang [Thu, 2 Apr 2026 00:10:36 +0000 (08:10 +0800)] 
ramips: dts: fix uart node names

The dt-bindings suggest using "^serial(@.*)?$" as the node name.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22738
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agoramips: dts: mt7621: add missing pinctrl for uart0
Shiji Yang [Thu, 2 Apr 2026 00:00:59 +0000 (08:00 +0800)] 
ramips: dts: mt7621: add missing pinctrl for uart0

This is necessary to make it work properly.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22738
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agowwan: add Quectel modems 13426/head
Philip Prindeville [Thu, 7 Sep 2023 16:19:57 +0000 (10:19 -0600)] 
wwan: add Quectel modems

Add some of the more current 4G and 5G modems.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
Link: https://github.com/openwrt/openwrt/pull/13426
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: i2c: rtl9300: backport rtl9607c i2c support and speed patches 22663/head
Rustam Adilov [Sun, 29 Mar 2026 09:29:30 +0000 (14:29 +0500)] 
realtek: i2c: rtl9300: backport rtl9607c i2c support and speed patches

The [1] patch and [2] patch series has been accepted by upstream linux so
backport them to OpenWrt.

Patch from [1] adds 50 kHz and 2.5 MHz bus speeds.
Patch series from [2] adds support for RTL9607C i2c controller.

[1] - https://lore.kernel.org/linux-i2c/20260227111134.2163701-1-jan-kernel@kantert.net/
[2] - https://lore.kernel.org/linux-i2c/20260401180648.337834-1-adilov@disroot.org/

Signed-off-by: Rustam Adilov <adilov@tutamail.com>
Link: https://github.com/openwrt/openwrt/pull/22663
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agotreewide: dts: reg: use new syntax for arrays 22736/head
Rosen Penev [Wed, 1 Apr 2026 23:41:03 +0000 (16:41 -0700)] 
treewide: dts: reg: use new syntax for arrays

<>, <> is the preferred way to specify multiple entries.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22736
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorealtek: refresh patches 22747/head
Markus Stockhausen [Thu, 2 Apr 2026 19:18:08 +0000 (21:18 +0200)] 
realtek: refresh patches

Builders are currently complaining. Refresh patches. Automatic
update, no manual intervention needed.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22747
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorealtek: cleanup config-6.18
Markus Stockhausen [Thu, 2 Apr 2026 19:09:04 +0000 (21:09 +0200)] 
realtek: cleanup config-6.18

Some obsolete values made their way into the Realtek config
files. Identified via:

make menuconfig -> choose target -> save -> exit
make kernel_menuconfig -> save -> exit

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22747
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorealtek: add support for Datto L8 22528/head
Hal Martin [Sun, 29 Mar 2026 06:13:59 +0000 (08:13 +0200)] 
realtek: add support for Datto L8

Add support for Datto L8 with 8 copper ports.
POE+ support with 55W power budget.

Specifications:
---------------

    * SoC: Realtek RTL8380M
    * Flash: 32MiB Flash
    * RAM: 256MiB
    * Ethernet: 8x 10/100/1000 Mbps
    * PoE: 8x
    * Serial: UART 3.3V TTL logic, 115200 8N1
        * pinout: G(ND) R(x) T(x) V(cc)
    * Buttons: 1x Reset, 1x LED Mode (noop in OpenWrt)

Note: OpenWrt combines the stock dual firmware partitions
for more overlay capacity, however the OpenWrt image cannot
exceed 13504k

Installation:
-------------

> When connected to CloudTrax, the local management login will be disabled to prevent settings conflicts.

Ensure the switch does not have a working internet connection or the local
web management interface is disabled.

Go to the web management page of the switch (may require factory reset).
By default the switch will use DHCP to obtain an IP address.

The default login user is `admin` with password `0p3nm3$h!`

On the left menu, click "Management" and then "Dual Image" and ensure that
"Partition 0" is selected as the active partition. If it is not, select
"Partition 0" and click "Apply" to save changes.

Click on "Upgrade" in the top right of the web interface. Select the
Active boot partition to update. Select the OpenWrt file ending
in `-initramfs-kernel.bin` as the update file to upload.

Upload the file and follow the prompts to upgrade the firmware.

Reboot the switch from the web UI after the firmware update is completed.
Wait for OpenWrt to finish booting (~2 minutes)

Use SSH or the Luci UI (if available) to perform the sysupgrade.

Copy the sysupgrade file ending in `-squashfs-sysupgrade.bin` to the switch:
```
scp -O openwrt-realtek-rtl838x-datto_l8-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/
```

SSH to the switch and run `sysupgrade`:
```
ssh root@192.168.1.1
$ sysupgrade -n /tmp/openwrt-realtek-rtl838x-datto_l8-squashfs-sysupgrade.bin
```

OpenWrt will be installed. Note that first boot after installing requires ~3
minutes for the JFFS2 overlay to be formatted. When the Power LED stops blinking
in the first boot after `sysupgrade`, JFFS2 formatting is completed.

----

Revert back to stock firmware:

You will need a tftp server and the original Datto firmware.

Download the firmware for the S8-L/L8 from Datto:
https://networkinghelp.datto.com/help/Content/kb/Networking/Switches/KB360023113291.html

Rename `s8-l_fw_01.03.24_180823-1639.bix` to `vmlinux.bix`,
put `vmlinux.bix` in the root directory of your tftp server.

Connect a serial console to the UART header and power on the switch.

Interrupt U-Boot by typing `pac` when you see
`Enter correct key to stop autoboot:`

Run the following commands:
```
setenv serverip <tftp_server_ip>
setenv ipaddr <ip_on_same_subnet>
setenv netmask 255.255.255.0
run rtkon
run update_linux
run update_linux2
reset
```

The switch will boot the Datto firmware.

Signed-off-by: Hal Martin <hal.martin@gmail.com>
Tested-By: Raylynn Knight <rayknight@me.com>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
3 weeks agox86/64: 6.12: 6.18: enable performance related options 19897/head
John Audia [Fri, 29 Aug 2025 09:43:26 +0000 (05:43 -0400)] 
x86/64: 6.12: 6.18: enable performance related options

Enable Turbo Boost Max 3.0 (INTEL_TURBO_MAX_3) to allow the kernel
scheduler to utilize preferred cores on modern Intel CPUs. This has
no effect on AMD systems.

Enable core scheduling (SCHED_CORE) to provide safer SMT task
placement and better isolation. While it can reduce peak throughput
slightly, it improves scheduling correctness on heterogeneous cores
and works across both Intel and AMD.

Enable the accelerated GHASH implementation using the CLMUL instruction
(CRYPTO_GHASH_CLMUL_NI_INTEL). This provides substantial performance
improvements for AES-GCM workloads (e.g. TLS, IPsec, OpenVPN) on CPUs
with the pclmulqdq instruction. Supported on both modern Intel and AMD
processors; falls back gracefully on older CPUs.

Run-tested twice, once with the 6.12 series and again with the 6.18.

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

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19897
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agoath79: wndap360: use default 9600 baud rate 22735/head
Rosen Penev [Wed, 1 Apr 2026 23:50:21 +0000 (16:50 -0700)] 
ath79: wndap360: use default 9600 baud rate

It seems the bootloader does not use 115200, which the dtsi file
specifies. Remove it.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22735
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agoath79: wndap360: add owl loader
Rosen Penev [Wed, 1 Apr 2026 23:34:53 +0000 (16:34 -0700)] 
ath79: wndap360: add owl loader

Needed so that the WiFi interfaces come up properly.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22735
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agoath79: wndap360: fix ethernet
Rosen Penev [Wed, 1 Apr 2026 22:29:50 +0000 (15:29 -0700)] 
ath79: wndap360: fix ethernet

Users report pll-data is needed for gigabit speeds.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22735
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agoath79: ar7161: swap phy0 and phy1 22705/head
Rosen Penev [Tue, 31 Mar 2026 02:44:58 +0000 (19:44 -0700)] 
ath79: ar7161: swap phy0 and phy1

For whatever reason, in the transition from ar71xx to ath79, the second
interface ends up as phy0.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22705
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agomalta: enable 6.18 testing kernel 20965/head
Mieczyslaw Nalewaj [Sun, 7 Dec 2025 16:49:04 +0000 (17:49 +0100)] 
malta: enable 6.18 testing kernel

The malta now supports 6.18 kernel as testing.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/20965
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agomalta: 6.18: update kernel symbols
Mieczyslaw Nalewaj [Sun, 7 Dec 2025 16:44:19 +0000 (17:44 +0100)] 
malta: 6.18: update kernel symbols

Remove symbols no longer present in version 6.18,
add new 6.18 kernel symbols.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/20965
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agokernel/malta: restore files for v6.12
Mieczyslaw Nalewaj [Sat, 28 Mar 2026 18:22:45 +0000 (19:22 +0100)] 
kernel/malta: restore files for v6.12

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: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/20965
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agokernel/malta: create files for v6.18 (from v6.12)
Mieczyslaw Nalewaj [Sat, 28 Mar 2026 18:22:44 +0000 (19:22 +0100)] 
kernel/malta: create files for v6.18 (from v6.12)

This is an automatically generated commit.

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

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/20965
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agowireguard-tools: use kconfig dependency for ip instead of runtime 22652/head
Anand Kumar [Wed, 1 Apr 2026 12:39:32 +0000 (12:39 +0000)] 
wireguard-tools: use kconfig dependency for ip instead of runtime

The conditional runtime dependency on the ip package was originally
intended to only pull in the ip package when busybox ip is not
configured. However, in APK-based builds the BUSYBOX_CONFIG_*
variables may not be resolvable at package metadata generation
time, causing the ip dependency to be unconditionally baked into
the .apk package. This forces users to install ip-tiny or ip-full
even though busybox already provides the ip command.

Revert to the previous +@BUSYBOX_CONFIG_IP / +@BUSYBOX_CONFIG_FEATURE_IP_LINK
kconfig-level dependencies. These ensure busybox ip support is
enabled at config time without creating a runtime package dependency.
Both options default to y, and wireguard.uc only uses basic
ip link commands that busybox fully supports.

Fixes: openwrt#22637
Signed-off-by: Anand Kumar <anandvtu16158@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22652
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agoipq60xx: linksys: add partition selection 22594/head
Rosen Penev [Tue, 24 Mar 2026 20:02:52 +0000 (13:02 -0700)] 
ipq60xx: linksys: add partition selection

Instead of upgrading both kernels, allow support for selecting the
partition during sysupgrade.

Copy/Paste of Linux MX devices on the same target.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22594
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agouboot-envtools: add u-boot-env for EX5601/WX5600 22670/head
Paweł Owoc [Sun, 29 Mar 2026 12:28:55 +0000 (14:28 +0200)] 
uboot-envtools: add u-boot-env for EX5601/WX5600

Add ability to read u-boot-env partition as sys env
for Zyxel EX5601 and WX5600 with custom partitions.

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22670
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agowolfssl: allow enabling RISC-V assembler optimization 22702/head
Zoltan HERPAI [Mon, 30 Mar 2026 21:13:28 +0000 (21:13 +0000)] 
wolfssl: allow enabling RISC-V assembler optimization

wolfssl implemented AES ECB/CBC/CTR/GCM/CCM in RISC-V assembler,
achieving massive speed improvements on boards with such CPUs.

Benchmarking on a Sifive Unleashed (oldest Linux-capable RISC-V board),
results are:

No optimization:
wolfCrypt Benchmark (block bytes 1048576, min 1.0 sec each)
RNG                         10 MiB took 1.772 seconds,    5.644 MiB/s
AES-128-CBC-enc              5 MiB took 16.264 seconds,    0.307 MiB/s
AES-128-CBC-dec              5 MiB took 16.314 seconds,    0.306 MiB/s
AES-192-CBC-enc              5 MiB took 19.460 seconds,    0.257 MiB/s
AES-192-CBC-dec              5 MiB took 19.480 seconds,    0.257 MiB/s
AES-256-CBC-enc              5 MiB took 22.633 seconds,    0.221 MiB/s
AES-256-CBC-dec              5 MiB took 22.715 seconds,    0.220 MiB/s
AES-128-GCM-enc              5 MiB took 16.324 seconds,    0.306 MiB/s
AES-128-GCM-dec              5 MiB took 16.450 seconds,    0.304 MiB/s
AES-192-GCM-enc              5 MiB took 19.487 seconds,    0.257 MiB/s
AES-192-GCM-dec              5 MiB took 19.621 seconds,    0.255 MiB/s
AES-256-GCM-enc              5 MiB took 22.644 seconds,    0.221 MiB/s
AES-256-GCM-dec              5 MiB took 22.805 seconds,    0.219 MiB/s
[...]

Enabled optimization:
wolfCrypt Benchmark (block bytes 1048576, min 1.0 sec each)
RNG                         10 MiB took 1.459 seconds,    6.855 MiB/s
AES-128-CBC-enc             15 MiB took 1.028 seconds,   14.592 MiB/s
AES-128-CBC-dec             15 MiB took 1.006 seconds,   14.916 MiB/s
AES-192-CBC-enc             15 MiB took 1.187 seconds,   12.634 MiB/s
AES-192-CBC-dec             15 MiB took 1.180 seconds,   12.713 MiB/s
AES-256-CBC-enc             15 MiB took 1.359 seconds,   11.037 MiB/s
AES-256-CBC-dec             15 MiB took 1.352 seconds,   11.096 MiB/s
AES-128-GCM-enc             10 MiB took 1.140 seconds,    8.769 MiB/s
AES-128-GCM-dec             10 MiB took 1.140 seconds,    8.770 MiB/s
AES-192-GCM-enc             10 MiB took 1.256 seconds,    7.963 MiB/s
AES-192-GCM-dec             10 MiB took 1.261 seconds,    7.931 MiB/s
AES-256-GCM-enc             10 MiB took 1.373 seconds,    7.285 MiB/s
AES-256-GCM-dec             10 MiB took 1.371 seconds,    7.291 MiB/s

HMAC- and SHA- functions also have significant improvements.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
Link: https://github.com/openwrt/openwrt/pull/22702
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorealtek: dts: convert devices to PHY_C45() 22715/head
Markus Stockhausen [Tue, 31 Mar 2026 15:40:39 +0000 (17:40 +0200)] 
realtek: dts: convert devices to PHY_C45()

Make the remaining devices use the new PHY_C45() macro. At least
those that have no extra attributes in the phy definitions.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22715
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorealtek: dts: add PHY_C45() macro
Markus Stockhausen [Tue, 31 Mar 2026 15:40:31 +0000 (17:40 +0200)] 
realtek: dts: add PHY_C45() macro

Like the PHY_C22() macro before add a helper that allows to define
a C45 based phy. It works basically the same with two parameters
PHY_C45(port_number, bus_address) where

- port_number is the absolute overall unique phy number
- bus_address is the location of the phy on the bus

As a first consumer adapt the Xikestor SKS8300-8T devicetree.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22715
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agomediatek: backport upstream thermal patch for mt7981 22646/head
Aleksander Jan Bajkowski [Sat, 28 Jun 2025 11:16:11 +0000 (13:16 +0200)] 
mediatek: backport upstream thermal patch for mt7981

Backport upstream patch that adds node for thermal driver.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/22646
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agokernel: tune 24kc instead of 34kc for mips32r2 22703/head
Shiji Yang [Tue, 31 Mar 2026 00:10:30 +0000 (08:10 +0800)] 
kernel: tune 24kc instead of 34kc for mips32r2

GCC generates the same code for 24kc and 34kc. Since we have
converted all 34kc targets to the 24kc, it's better to switch
kernel -mtune to 24kc to avoid confusing developers.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22703
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agorealtek: refresh patches
Robert Marko [Wed, 1 Apr 2026 11:40:22 +0000 (13:40 +0200)] 
realtek: refresh patches

It seems that Realtek patches need to be refreshed after MXL DSA update.

Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agoipq40xx: refresh patches
Robert Marko [Wed, 1 Apr 2026 11:24:49 +0000 (13:24 +0200)] 
ipq40xx: refresh patches

It seems that a refresh is needed after the MXL DSA driver update.

Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agolibunwind: replace local patches with upstream 21057/head
Rosen Penev [Sat, 6 Dec 2025 02:03:52 +0000 (18:03 -0800)] 
libunwind: replace local patches with upstream

libunwind solves these in different ways.

ppc-musl is still pending upstream.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21057
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agoairoha: backport minor fixup for Ethernet driver on Offload Scenario
Christian Marangi [Wed, 1 Apr 2026 07:07:38 +0000 (09:07 +0200)] 
airoha: backport minor fixup for Ethernet driver on Offload Scenario

Backport minor fixup merged upstream for Ethernet driver on Offload
Scenario. This is to continue the effort of keeping the Airoha Ethernet
driver synced with the upstream version.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
4 weeks agorealtek: i2c: rtl9300: backport driver cleanup patches 22662/head
Rustam Adilov [Sun, 29 Mar 2026 09:06:33 +0000 (14:06 +0500)] 
realtek: i2c: rtl9300: backport driver cleanup patches

Backport 2 patches from [1] that cleanup the i2c-rtl9300 upstream driver.
They have been long accepted and are already in mainline kernel as of 7.0-rc1.

The "100-rtl9300-i2c-add-more-speeds.patch" required refreshing after adding
these backport patches.

[1] - https://lore.kernel.org/linux-i2c/20251217063027.37987-1-rosenp@gmail.com/

Signed-off-by: Rustam Adilov <adilov@tutamail.com>
Link: https://github.com/openwrt/openwrt/pull/22662
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 weeks agorealtek: dsa: move fib_entries to config structure 22438/head
Markus Stockhausen [Sun, 15 Mar 2026 18:43:08 +0000 (19:43 +0100)] 
realtek: dsa: move fib_entries to config structure

The fib_entries attribute is a device specific constant.
Therefore move it into the configuration structure. Add
a comment why someone used 16K fib_entries for RTL931x
instead of the possible 32K.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22438
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 weeks agorealtek: dsa: drop port_width from instance structure
Markus Stockhausen [Sun, 29 Mar 2026 17:55:34 +0000 (19:55 +0200)] 
realtek: dsa: drop port_width from instance structure

The port_width attribute is only used once and can be derived
from the cpu_port. Drop it. Add a comment for better readability.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22438
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 weeks agorealtek: dsa: drop port_mask from instance structure
Markus Stockhausen [Sun, 29 Mar 2026 17:47:28 +0000 (19:47 +0200)] 
realtek: dsa: drop port_mask from instance structure

The port_mask attribute is set but never used. Drop it.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22438
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 weeks agorealtek: dsa: move cpu_port to config structure
Markus Stockhausen [Sun, 29 Mar 2026 17:43:38 +0000 (19:43 +0200)] 
realtek: dsa: move cpu_port to config structure

The cpu_port is a per-device constant. Thus move it from the
instance structure to the config structure.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22438
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 weeks agogeneric: 6.18: hack: io_uring: zcrx: Use IS_REACHABLE() instead of IS_ENABLED()
Robert Marko [Tue, 31 Mar 2026 16:54:47 +0000 (18:54 +0200)] 
generic: 6.18: hack: io_uring: zcrx: Use IS_REACHABLE() instead of IS_ENABLED()

We patch DMA_BUF to make it tristate, so once ALL_KMODS is selected it will
be built as a module even if previously disabled in the config.

So, since IO_URING_ZCRX does not depend on DMA_BUF linking will fail with:
aarch64-openwrt-linux-musl-ld: Unexpected GOT/PLT entries detected!
aarch64-openwrt-linux-musl-ld: Unexpected run-time procedure linkages detected!
aarch64-openwrt-linux-musl-ld: io_uring/zcrx.o: in function `io_release_dmabuf':
io_uring/zcrx.c:94:(.text+0x20): undefined reference to `dma_buf_unmap_attachment_unlocked'
aarch64-openwrt-linux-musl-ld: io_uring/zcrx.c:97:(.text+0x30): undefined reference to `dma_buf_detach'
aarch64-openwrt-linux-musl-ld: io_uring/zcrx.c:99:(.text+0x3c): undefined reference to `dma_buf_put'
aarch64-openwrt-linux-musl-ld: io_uring/zcrx.o: in function `io_import_dmabuf':
io_uring/zcrx.c:125:(.text+0x1b20): undefined reference to `dma_buf_get'
aarch64-openwrt-linux-musl-ld: io_uring/zcrx.c:132:(.text+0x1b34): undefined reference to `dma_buf_attach'
aarch64-openwrt-linux-musl-ld: io_uring/zcrx.c:139:(.text+0x1b48): undefined reference to `dma_buf_map_attachment_unlocked'
make[6]: *** [scripts/Makefile.vmlinux:72: vmlinux.unstripped] Error 1

So, lets use IS_REACHABLE() to check for CONFIG_DMA_SHARED_BUFFER instead
to avoid adding a dependency to CONFIG_DMA_SHARED_BUFFER.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
4 weeks agomediatek: filogic: ASUS RT-AX52 PRO support 21905/head
Emre Yavuzalp [Mon, 16 Feb 2026 11:48:42 +0000 (14:48 +0300)] 
mediatek: filogic: ASUS RT-AX52 PRO support

The board is exactly identical to the ASUS RT-AX52, I've literally not changed a single thing.
Only AX52 is AX1800, PRO is AX3000.

SOC: MediaTek MT7981b
RAM: 256MB DDR3
FLASH: 128MB SPI-NAND (Winbond W25N01GV)
WIFI: Mediatek MT7981b DBDC 802.11ax 2.4/5 GHz
ETH: MediaTek MT7531 Switch
UART: 3V3 115200 8N1 (Pinout silkscreened / Do not ocnnect VCC)

Use the compiled asus_rt-ax52-pro-initramfs.trx file from the this repo.

Connect the PC via LAN to one of the yellow router ports and wait until your PC to get a DHCP lease.

Browse to http://192.168.50.1 or http://www.asusrouter.com/

If your router is brand new, finish the setup process and log into the Web-UI.

Navigate to Administration → Firmware Upgrade or use this link http://www.asusrouter.com/Advanced_FirmwareUpgrade_Content.asp.

Upload the .trx file to router

Wait for it to reboot

trx image is initramfs version. You must upgrade to squashfs version.

Browse to http://192.168.1.1/cgi-bin/luci/admin/system/flash

Upload asus_rt-ax52-pro-squashfs-sysupgrade.bin and use sysupgrade -n

Wait for it to reboot

SSH to 192.168.1.1 and set a root password, or browse to http://192.168.1.1

-------Revert to stock asus firmware ---------:
1: Download the rt-ax52 firmware from ASUS official website. Save the firmware to tftp server directory and rename to RT-AX52.trx

2: Connect the PC with TFTP server to the RT-AX52. Set a static ip on the ethernet interface of your PC. (ip address: 192.168.1.70, subnet mask:255.255.255.0)

3: Conect to the serial console, power on again, interrupt the autoboot process by pressing '4' when prompted. $ ubi remove linux
$ ubi remove jffs2
$ ubi remove rootfs
$ ubi remove rootfs_data
$ ubi create linux 0x45fe000
$ reset
then the dut will reboot,interrupt the autoboot process by pressing '2' when prompted. 2: Load System code then write to Flash via TFTP.
Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N) $: enter y
you will see the follow, type enter directly:
Input device IP (192.168.1.1) ==:
Input server IP (192.168.1.70) ==:
Input Linux Kernel filename (RT-AX52.trx) ==:

4: wait for the device run up

Signed-off-by: Emre Yavuzalp <emreyavuzalp2@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21905
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 weeks agoramips: fix WAN LED GPIO for Xiaomi Mi Router 4C 22696/head
Shiji Yang [Mon, 30 Mar 2026 14:56:02 +0000 (22:56 +0800)] 
ramips: fix WAN LED GPIO for Xiaomi Mi Router 4C

Correct WAN LED GPIO and its pinctrl group.

Fixes: https://github.com/openwrt/openwrt/issues/18578
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22696
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 weeks agolantiq: fix u-boot env size for Netgear DGN3500 22695/head
Shiji Yang [Mon, 30 Mar 2026 14:52:06 +0000 (22:52 +0800)] 
lantiq: fix u-boot env size for Netgear DGN3500

Correct u-boot env size to fix ethernet driver probe defer.

Fixes: https://github.com/openwrt/openwrt/issues/22692
Fixes: 75b9fae0c338 ("lantiq: dgn3500: use nvmem to load calibration")
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22695
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 weeks agorealtek: dts: convert nand targets to PHY_C22() macro 22698/head
Markus Stockhausen [Mon, 30 Mar 2026 16:44:21 +0000 (18:44 +0200)] 
realtek: dts: convert nand targets to PHY_C22() macro

Make use of the newly invented PHY_C22() macro for the
RTL93xx Linksys LGS3xxC NAND devices.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22698
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agorealtek: dts: convert EXTERNAL_PHY() to PHY_C22()
Markus Stockhausen [Mon, 30 Mar 2026 16:13:24 +0000 (18:13 +0200)] 
realtek: dts: convert EXTERNAL_PHY() to PHY_C22()

The Realtek target currently uses two phy macros to simplify the
device dts.

- EXTERNAL_PHY() to denote a phy attached to the SoC
- INTERNAL_PHY() to denote an internal PHY (inside the SoC)

There is no benefit doing this. The topology around a port/phy is
well defined by the port macros. They link port, phy, pcs and even
leds. The only consumer of the attribute "phy-is-integrated" is
inside the dsa driver and that is being refactored.

As a first step define a new more meaningful PHY_C22() macro that
describes a c22 capable phy. This does not need to care about the
external/internal relation. To make it even more useful for the
RTL93xx targets with multiple mdio busses give it two parameters
PHY_C22(port_number, bus_address) where

- port_number is the absolute overall unique phy number
- bus_address is the location of the phy on the bus

For RTL83xx these two parameters will usually be the same. Instead
of three steps (inventing the macro, converting the consumers and
removeing the old macor) do a one-step conversion for the existing
EXTERNAL_PHY() macro.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22698
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agorealtek: dsa: remove redundant integrated phy attribute
Markus Stockhausen [Mon, 30 Mar 2026 16:13:02 +0000 (18:13 +0200)] 
realtek: dsa: remove redundant integrated phy attribute

The dsa driver currently has different attributes to denote what
hardware is around a port:

- phy_is_integrated: true if phy is not driven by a serdes
- phy: the type of the attached phy (e.g. 0=NONE, 2=RTL8218B, ....)
- pcs: link to a serdes pcs instance

This is somehow redundant and especially the phy type should be only
part of the phy driver and is not needed by the dsa driver at all.
Remove the redundancy by simply keeping a boolean attribute "phy" that
flags a phy driven port and can be used similar to the pcs (pointer)
attribute. With that the driver can check phy/pcs as follows:

- if (ports[i].pcs) -> port has a dedicated serdes
- if (ports[i].phy) -> port has a dedicated phy

That implemented, the "phy-is-integrated" attribute of a phy can be
removed from the dts. This will be a separate commit. As a side effect
the following (annoying) boot message for kernel 6.18 gets fixed.

OF: /switchcore@1b000000/mdio-controller/mdio-bus@0/ethernet-phy@24:
Read of boolean property 'sfp' with a value.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22698
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agorealtek: force in-band autoneg on XGS1250-12 A1 10G PHYs 22690/head
Jonas Jelonek [Mon, 30 Mar 2026 09:46:29 +0000 (09:46 +0000)] 
realtek: force in-band autoneg on XGS1250-12 A1 10G PHYs

In kernel 6.18, upstream added a change to the Aquantia PHY driver which
reports autoneg and inband capabilities as the PHY supports it, and
configures it accordingly in the PHY [1]. Due to how phylink works, it
then decides to turn off in-band signalling and prefer outband signalling
via MDIO.

We do not fully support running a USXGMII link with disabled
autonegotiation which leads to a non-working link between RTL93xx switch
and Aquantia PHYs running on USXGMII. To workaround this issue until
this support is added (if it is properly supported by the hardware),
force the Aquantia PHYs on affected devices to use inband signalling
instead of outband signalling. To achieve this, one can add

> managed = "in-band-status";

to the port definition in the DTS.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5d59109d47c00e3e98aba612529b3871e69efb9d

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22690
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agorealtek: dts: use SWITCH_PORT_LED for XGS1250-12
Jonas Jelonek [Mon, 30 Mar 2026 09:42:08 +0000 (09:42 +0000)] 
realtek: dts: use SWITCH_PORT_LED for XGS1250-12

Switch the common DTS for Zyxel XGS1250-12 variants to the recently
added SWITCH_PORT_LED macro to reduce boilerplate and make the DTS
cleaner. As a side effect, this also assign labels to the port nodes so
they can be referenced by the variant-specific device tree sources.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22690
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agoar8327: use flex array for name 22069/head
Rosen Penev [Sun, 8 Feb 2026 22:10:16 +0000 (14:10 -0800)] 
ar8327: use flex array for name

Simplifies allocation.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22069
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agoar8327: remove unused code
Rosen Penev [Sun, 8 Feb 2026 02:02:54 +0000 (18:02 -0800)] 
ar8327: remove unused code

This code seems to predate OF.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22069
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agoar8327: remove platform data support
Rosen Penev [Sun, 8 Feb 2026 01:37:32 +0000 (17:37 -0800)] 
ar8327: remove platform data support

All targets using ar8327 use OF.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22069
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agokernel: update MxL862xx DSA driver 20810/head
Daniel Golle [Tue, 31 Mar 2026 02:13:41 +0000 (03:13 +0100)] 
kernel: update MxL862xx DSA driver

Introduce fix which prevents the kernel from crashing in case the mxl862xx
driver fails to probe due to outdated firmware running on the switch.
Cancel all pending work and prevent rescheduling of counter polling in case
the driver errors out during probe.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>