]> git.ipfire.org Git - thirdparty/openwrt.git/log
thirdparty/openwrt.git
2 weeks agoramips: add support for ASUS RT-AC85U 23747/head
YAJIMA Hideyuki [Sat, 20 Jun 2026 15:49:38 +0000 (00:49 +0900)] 
ramips: add support for ASUS RT-AC85U

This patch adds support for the ASUS RT-AC85U wireless router.
It is a dual-band gigabit router based on the MediaTek MT7621AT SoC.

MAC Address Layout:
- LAN/WAN/2.4G/5G MAC addresses are derived from the
  factory partition at offset 0xe000.

Hardware Specifications:
- SoC: MediaTek MT7621AT (880 MHz, 2C/4T)
- RAM: 128 MB DDR3
- Flash: 128 MB Winbond W29N01HV NAND
- WI1: MediaTek MT7615E (2.4 GHz, 4x4)
- WI2: MediaTek MT7615E (5 GHz, 4x4)
- Switch: MediaTek MT7530 (Embedded Gigabit Switch)
- Ports: 1x WAN, 4x LAN (10/100/1000 Mbps), 1x USB 3.0
- LEDs: Power, LAN, WAN, 2.4G, 5G, USB, WPS
- Buttons: WPS, Reset

Installation / Flashing guide:
1. Power off the device.
2. Hold Reset button and power on to enter ASUS Restoration mode (slow flash LED).
3. Set your computer's static IP to 192.168.1.x (e.g., 192.168.1.10).
4. Upload the OpenWrt initramfs image via ASUS Restoration tool to 192.168.1.1.
5. Wait for the device to boot into the temporary OpenWrt environment.
6. Access LuCI (192.168.1.1) and flash sysupgrade image to make it permanent.

Signed-off-by: YAJIMA Hideyuki <ursmtr@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23747
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 weeks agomvebu: add support for Zyxel NAS326 23228/head
Robert Senderek [Mon, 9 Feb 2026 12:07:06 +0000 (13:07 +0100)] 
mvebu: add support for Zyxel NAS326

-----
Hardware:
CPU: ARMADA 380 1x1332Mhz
RAM: 512MB DDR3
FLASH: 256MB MX30LF2G18AC
2x SATA III
2x USB3.0
1x USB2.0
i2c to control various states.
RTC with battery
1Gbit LAN (WoL capable)
9x LED
RESET button at back
Power button at front (gpio-poweroff)
Copy button at front

-----
Doesn't work
FAN control
buzzer

-----
UART connections

Connect UART to port J3 115200
+----+----+----+----+----+
|3.3V| TX | RX |    | GND|
+----+----+----+    +----+
Depend of UART adapter board can fail to boot when adapter is attached. (all leds are dimmed) .
In that case disconnect UART for an < second and after that all leds should be white.
Stop u-boot by ctrl-c within 3s window. (bootdelay 7s or more helps)
setenv bootdelay 7
saveenv

-----
Instalation via UART

Boot initramfs-kernel.bin
setenv ethact egiga0
setenv serverip 192.168.1.11
setenv ipaddr 192.168.1.12
tftpboot 0x02000000 *initramfs-kernel.bin
bootm 0x02000000 -

Device is DHCP client by default ( as the other supported NAS)

do backup into safe space
/dev/mtd3 Kernel-1
/dev/mtd4 RootFS-1

use sysupgrade in console or via luci

-----
MAC addresses

mac stored in u-boot-env ethaddr
label mac = eth0 mac =  5c:6a:80:xx:xx:xx

-----
Setting up u-boot  dual boot

u-boot contain two banks contain two OEM copies
To boot OpenWrt from bank1
setenv next_bootfrom 1
saveenv

To boot OEM from bank2
setenv next_bootfrom 2
saveenv

-----
Configuration via i2c
install i2c-tools

Enable WoL
i2cset -y 0x0 0xa 0xa 0x0006 w

Disable WoL
i2cset -y 0x0 0xa 0xa 0x0306 w

Enable auto power on
i2cset -y 0x0 0x0a 0x0a 0x0107 w

Disable auto power on
i2cset -y 0x0 0x0a 0x0a 0x0007 w

Signed-off-by: Robert Senderek <robert.senderek@10g.pl>
Link: https://github.com/openwrt/openwrt/pull/23228
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 weeks agokernel: split nf-nathelper-extra into individual packages 23690/head
Mieczyslaw Nalewaj [Sun, 7 Jun 2026 17:35:10 +0000 (19:35 +0200)] 
kernel: split nf-nathelper-extra into individual packages

Split kmod-nf-nathelper-extra into separate helper packages
and keep the original package as a compatibility meta-package.

This allows selecting only the required protocol helpers
instead of installing all helper modules and dependencies.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/23690
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 weeks agokernel: move flowtable fix to backport-6.18 23930/head
Qingfang Deng [Wed, 24 Jun 2026 01:32:56 +0000 (09:32 +0800)] 
kernel: move flowtable fix to backport-6.18

The patch is accepted upstream, so move it to backport-6.18 and update
its headers.

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23930
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 weeks agomt76: remove obsolete patches
Felix Fietkau [Wed, 24 Jun 2026 10:33:11 +0000 (12:33 +0200)] 
mt76: remove obsolete patches

Already included in the last update

Fixes: a0c5a58123fd ("mt76: update to Git HEAD (2026-06-23)"
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 weeks agomt76: update to Git HEAD (2026-06-23)
Felix Fietkau [Wed, 24 Jun 2026 09:22:26 +0000 (11:22 +0200)] 
mt76: update to Git HEAD (2026-06-23)

012e52ae3805 wifi: mt76: use hrtimer_setup() in mt76x02u beacon init
d2b01fbc329b mt76: pass LED define via ccflags-y
9a46d8d21d2a wifi: mt76: add PS buffering support for HW-managed TIM drivers
9e613fb007f5 wifi: mt76: mt7915: handle MCU PS sync events
b0af99f238f7 wifi: mt76: mt7996: handle UNI PS sync events
34064bd58bb3 wifi: mt76: mt7925: clean up DMA on probe failure
4ab8f2122dcb wifi: mt76: disable rx napi before queue cleanup
381582f2a5de wifi: mt76: mt7996: avoid memset overwriting tx_info->control.flags
d463ed9490ab wifi: mt76: mt7921: fix resource leak in probe error path
dd1459c0c708 wifi: mt76: mt7921/mt7925: fix NULL dereference in CSA beacon
6ae6f2b58cf5 wifi: mt76: route TDLS-peer frames as 3-addr non-DS in HW encap
0753cf183d8c wifi: mt76: mt7925: don't disable AP BSS when removing TDLS peer
fe0555feb30a wifi: mt76: use kfree_rcu for offchannel link in mt76_put_vif_phy_link
97fc0e785d0e wifi: mt76: mt7921: fix uninitialized variable warning
49a0aa659f7b wifi: mt76: drop redundant device reference
a4f3781dea07 wifi: mt76x0u: drop redundant device reference
52071e885528 wifi: mt76x2u: drop redundant device reference
0aca66c123f8 wifi: mt76: mt792xu: drop redundant device reference
5c94494f1b8d dma.h: add missing variable initialization
756b1c67eb3b wifi: mt76: mt7925: add Netgear A8500 USB device ID
58331e62df80 wifi: mt76: mt7996: Fix NULL pointer dereference in mt7996_init_tx_queues()
bd493e29f7e0 wifi: mt76: mt7925: fix stale pointer comparisons in change_vif_links
3c575281716f wifi: mt76: mt7925: add 320MHz bandwidth to bss_rlm_tlv
b1f7e240c717 wifi: mt76: mt7925: handle 320MHz bandwidth in RXV and TXS
06277d860b3d wifi: mt76: mt7925: populate EHT 320MHz MCS map in sta_rec
70bfd49d255a wifi: mt76: mt7925: advertise EHT 320MHz capabilities for 6GHz band
fda04bb435fa wifi: mt76: mt7925: add MT7927 chip ID helpers
6e5802e93dfb wifi: mt76: mt7925: add MT7927 firmware paths
8175695dcd5e wifi: mt76: mt7925: use irq_map for chip-specific interrupt handling
f698c7f22569 wifi: mt76: mt7925: disable ASPM and runtime PM for MT7927
1f91523cb928 wifi: mt76: connac: replace is_mt7925() with is_connac3()
9342a017992d wifi: mt76: mt7925: use link-specific removal for non-MLD STA
3969bb117161 wifi: mt76: connac: tolerate inactive BSS deactivation
d045c72b294c wifi: mt76: mt792x: add MT7927 WFSYS reset support
b81028de36e8 wifi: mt76: mt792x: factor out common DMA queue allocation
903f8b3bfa02 wifi: mt76: mt7925: switch DMA init to common mt792x queue helpers
79e061f30b0c wifi: mt76: mt792x: add MT7927-specific PCIe DMA support
3e55b6595da9 wifi: mt76: mt7925: sync MT7927 BSS band assignment
b8e20dc9c221 wifi: mt76: mt7925: add MBMC event handling
049633e34b79 wifi: mt76: mt792x: enable CNM ops for MT7927
8a7d31ac92b0 wifi: mt76: mt7925: add MT7927 PCIe support
62956aec1615 wifi: mt76: mt7925: add MT7927 USB support
4ed651794a7f wifi: mt76: mt7925: keep TX BA state in the primary WCID
6cdcb480f32b wifi: mt76: mt7925: pass WCID explicitly to mt7925_mcu_sta_ba()
f142a55342a4 wifi: mt76: mt7925: program BA state on active links
3e54e1c80079 wifi: mt76: mt792x: skip MLD header rewrite for 802.3 encap TX
e588dc4843ab wifi: mt76: mt7925: validate skb length in testmode query
2802466a9440 wifi: mt76: mt7915: validate skb length in txpower SKU query
d8fc8629f2bc wifi: mt76: mt7996: Fix possible token leak in mt7996_tx_prepare_skb()
652740d6f12e wifi: mt76: mt7996: Fix possible NULL pointer dereference in mt7996_mac_write_txwi_80211()
f5f14a017454 Revert "wifi: mt76: disable rx napi before queue cleanup"
1e7ac9bf7764 Revert "wifi: mt76: mt7996: avoid memset overwriting tx_info->control.flags"
934f64710479 wifi: mt76: mt7996: fix reading zeroed info->control.flags after mt76_tx_status_skb_add()
1ba5cc4b4023 wifi: mt76: mt7925: drop redundant chandef.chan NULL check in MT7927 path
02934c3d0726 wifi: mt76: mt7996: remove redundant pdev->bus check in probe
2ab649809db7 wifi: mt76: add wcid publish check in mt76_sta_add
7825972b0a3c wifi: mt76: transform aspm_conf for pci_disable_link_state
c0e41eb57d96 wifi: mt76: mt7996: reduce phy work in set_coverage
e640565e0701 wifi: mt76: mt7996: limit work in set_bitrate_mask
761478b9b1a3 wifi: mt76: connac: use a helper to cache txpower_cur
1e05654e6aec wifi: mt76: connac: factor out rate power limit calculation
994443de60ba wifi: mt76: mt792x: report txpower for the requested vif link
600dbf123399 wifi: mt76: mt792x: add common USB transport reset helpers
91f19ba39348 wifi: mt76: mt7921u: escalate broken USB transport to device reset
03644ac19f9a wifi: mt76: fix argument to ieee80211_is_first_frag()
cd931f9e5fa6 wifi: mt76: mt7996: disable UNI_BSS_INFO_PROTECT_INFO for mt7996
fc890d5b3603 wifi: mt76: mt7921: refactor regulatory domain handling to regd.[ch]
1ec0abf5d9aa wifi: mt76: mt7921: refactor CLC support check flow
cd3d2a68c90c wifi: mt76: mt7921: refactor regulatory notifier flow
06d1ccbecd50 wifi: mt76: mt7921: add auto regdomain switch support
4fb4a076256f wifi: mt76: mt7921: disable auto regd changes after user set
748311faa56c wifi: mt76: mt7915: fix potential tx_retries underflow
ee2bb3337274 wifi: mt76: mt7921: fix potential tx_retries underflow
e791fb66e47c wifi: mt76: mt7925: fix potential tx_retries underflow
9f60dd01e62c wifi: mt76: mt7996: fix potential tx_retries underflow
a3bf7dac3e58 wifi: mt76: mt7921: assert sniffer on chanctx change
72d8dc857443 wifi: mt76: Drop unneeded mt76_register_debugfs_fops() return checks
f8b59ca3be7b wifi: mt76: don't pin undrainable PS stations in the tx scheduler
2dd6e4c8892f firmware: update MT7981 firmware to version 20260515

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 weeks agobase-files: derive DHCP DUID from device MAC address
Felix Fietkau [Fri, 19 Jun 2026 14:32:19 +0000 (16:32 +0200)] 
base-files: derive DHCP DUID from device MAC address

The DUID-UUID was generated from a random UUID, which is regenerated on
every fresh flash and therefore does not survive reconfiguration events
such as reflashing without keeping the configuration. RFC8415/RFC6355
prefer a DUID that remains stable across such events.

Add a ucode helper that picks the first LAN port (falling back to WAN)
from /etc/board.json, resolves its MAC address and derives a stable UUID
from it, falling back to a random UUID only when that fails.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 weeks agonetifd: expose udhcpc timeout/retry/tryagain UCI options in dhcp.sh
John Crispin [Thu, 16 Apr 2026 12:26:11 +0000 (14:26 +0200)] 
netifd: expose udhcpc timeout/retry/tryagain UCI options in dhcp.sh

proto/dhcp.sh hardcoded `-t 0` (infinite retries) with no way
for UCI / operator to tune per-retry interval (udhcpc -T),
retry count (udhcpc -t) or failure retry-loop wait (udhcpc -A).
Add three new proto config ints (timeout, retry, tryagain)
and thread them into the udhcpc command line. Unset options
preserve existing behaviour: retry defaults to 0, timeout and
tryagain are omitted so udhcpc uses its own RFC defaults.

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 weeks agolldpd: resolve bridge VLAN sub-interfaces to member ports
John Crispin [Thu, 12 Mar 2026 13:50:05 +0000 (14:50 +0100)] 
lldpd: resolve bridge VLAN sub-interfaces to member ports

When bridge VLAN filtering is active, network_get_physdev resolves
UCI interface names to the VLAN sub-interface (e.g. br-lanv0) rather
than the bridge master. LLDP frames use reserved multicast
(01:80:c2:00:00:0e) which bridges trap to member ports, so lldpd
must listen on the physical ports to receive them.

Detect when the resolved device is a sub-interface of a bridge and
expand it to the list of bridge member ports instead.

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agoprocd: update to Git HEAD (2026-06-17)
Felix Fietkau [Wed, 17 Jun 2026 10:01:52 +0000 (12:01 +0200)] 
procd: update to Git HEAD (2026-06-17)

9ff6e43bb75f service: notify instance exit details via ubus
4f42296dc4f0 jail: mount rootfs overlay with userxattr in user namespace
60fdbf00e924 jail: chown rootfs overlay dir to mapped root in user namespace

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 weeks agowifi-scripts: make scan output fields conditional
John Crispin [Tue, 17 Mar 2026 11:25:24 +0000 (12:25 +0100)] 
wifi-scripts: make scan output fields conditional

Only print VHT/HE/EHT center frequency and channel width fields
when they are actually populated. This avoids displaying undefined
values for non-6GHz HE results where channel info is derived from
VHT/HT Operation IEs. Also fix center_chan_2 format specifier from
%s to %d.

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agonetifd: dhcp: add restart command for clean lease re-acquire
John Crispin [Wed, 17 Jun 2026 08:44:57 +0000 (10:44 +0200)] 
netifd: dhcp: add restart command for clean lease re-acquire

Add a proto_dhcp_restart() handler that re-acquires the DHCP lease via a
single ubus call, releasing the previous lease and triggering a fresh
DHCPDISCOVER without bouncing the interface.

The re-acquire is implemented by sending SIGHUP to udhcpc, which releases
the current lease (if any) and immediately transitions the state machine
to INIT_SELECTING so the next main-loop iteration sends a fresh
DHCPDISCOVER. A single signal thus expresses 'release this lease and get
a new one' without exiting the client, so upstream watchdogs (e.g. a
DNS-health monitor) can request a clean re-lease without tearing down the
interface.

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 weeks agowifi-scripts: fix EAP STA support in supplicant config generation
John Crispin [Mon, 15 Jun 2026 08:50:16 +0000 (10:50 +0200)] 
wifi-scripts: fix EAP STA support in supplicant config generation

The supplicant config generator read eap_type and auth from UCI for
internal logic but never wrote the corresponding eap= and phase2=
directives to the wpa_supplicant config.

Fix by:
- Generating eap= and phase2= from eap_type/auth for PEAP/TTLS/FAST/TLS
- Adding eap and phase2 to the network_append_vars output list

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 weeks agobusybox: enable timeout utility by default
John Crispin [Fri, 23 Jan 2026 07:42:20 +0000 (08:42 +0100)] 
busybox: enable timeout utility by default

Small cost, but can be of use for non-interactive scripts.

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 weeks agowifi-scripts: expose connected_time in iwinfo assoclist
John Crispin [Tue, 24 Mar 2026 11:07:46 +0000 (12:07 +0100)] 
wifi-scripts: expose connected_time in iwinfo assoclist

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agowifi-scripts: fix HE Operation IE parsing in iwinfo scan
John Crispin [Tue, 17 Mar 2026 10:37:00 +0000 (11:37 +0100)] 
wifi-scripts: fix HE Operation IE parsing in iwinfo scan

cell.he was only populated when the 6 GHz Operation Information
sub-element was parsed, making HE invisible to scan results on
2.4/5 GHz bands. Fix this by setting cell.he unconditionally when
HE Operation IE (Extension Element 36) is seen.

Gate 6 GHz channel width parsing on cell.band rather than the HE
Operation Parameters bit field, which proved unreliable on MediaTek
firmware. Fix flag byte offsets in the 6 GHz path: VHT Oper Info
Present (BIT 14) and Co-Hosted BSS (BIT 15) are in byte 1 of
he_oper_params which maps to ext[2], not ext[1].

For non-6GHz bands, derive channel width from the already-parsed
VHT/HT Operation IEs instead of leaving cell.he empty.

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agonetifd: update to Git HEAD (2026-06-16)
Felix Fietkau [Wed, 17 Jun 2026 08:40:30 +0000 (10:40 +0200)] 
netifd: update to Git HEAD (2026-06-16)

abfaaac65929 netifd: fix const-discard warnings in attr/devtype parsing
52c7db3a2beb bridge: remove kernel member on teardown regardless of device claim state
741fd3c162df bridge: attempt delbr unconditionally on bridge destroy
2909720f8cf1 system-linux: detach device from stale bridge before adding it
67f06ef1600a interface: detach hotplug members on reassignment
bb7f0a456dce interface-ip: skip offlink handling on point-to-point links
c1f9d4df847a system-linux: guard PSE port priority for older kernel headers
b087b0773366 build: prefer libnl-tiny and fix LIBNL detection on reconfigure
b0063715d7ea device: add broadcast_flood bridge port setting
973354a1a6f0 interface: add carrier_loss_delay option
d155e4cefbd9 interface: add restart support

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 weeks agoutil-linux: update to 2.42.2 23844/head
Thomas Weißschuh [Wed, 17 Jun 2026 08:42:27 +0000 (10:42 +0200)] 
util-linux: update to 2.42.2

Release notes:
https://www.kernel.org/pub/linux/utils/util-linux/v2.42/v2.42.2-ReleaseNotes

Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
Link: https://github.com/openwrt/openwrt/pull/23844
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 weeks agotools: util-linux: update to 2.42.2
Thomas Weißschuh [Wed, 17 Jun 2026 08:42:00 +0000 (10:42 +0200)] 
tools: util-linux: update to 2.42.2

Release notes:
https://www.kernel.org/pub/linux/utils/util-linux/v2.42/v2.42.2-ReleaseNotes

Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
Link: https://github.com/openwrt/openwrt/pull/23844
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 weeks agoodhcp6c: update to Git HEAD (2026-06-20)
Hauke Mehrtens [Tue, 23 Jun 2026 23:53:14 +0000 (01:53 +0200)] 
odhcp6c: update to Git HEAD (2026-06-20)

07d324ee7222 odhcp6c: fix handling of RFC6603 Prefix Exclude Option

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 weeks agohostapd: fix misplaced radar-detected ubus notification 23815/head
Chad Monroe [Mon, 15 Jun 2026 21:21:02 +0000 (14:21 -0700)] 
hostapd: fix misplaced radar-detected ubus notification

Fixes: 94037ab6b031 ("hostapd: update to 2022-07-29")
Signed-off-by: Chad Monroe <chad@monroe.io>
Link: https://github.com/openwrt/openwrt/pull/23815
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 weeks agomvebu: set MOX firmware fallback via cmdline 23666/head
Štěpán Dalecký [Fri, 5 Jun 2026 17:04:30 +0000 (19:04 +0200)] 
mvebu: set MOX firmware fallback via cmdline

Newer kernels support applying sysctl keys from the kernel
command line.

Set sysctl.kernel.firmware_config.force_sysfs_fallback=0 in
MOX bootargs to disable firmware sysfs fallback without a
board-specific init script.

Signed-off-by: Štěpán Dalecký <daleckystepan@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23666
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 weeks agomvebu: add kmod-btmrvl to Turris MOX packages
Štěpán Dalecký [Fri, 5 Jun 2026 15:47:03 +0000 (17:47 +0200)] 
mvebu: add kmod-btmrvl to Turris MOX packages

Turris MOX needs the btmrvl module for its onboard Marvell
Bluetooth controller.

Include kmod-btmrvl in DEVICE_PACKAGES so default images
ship with the required driver.

Signed-off-by: Štěpán Dalecký <daleckystepan@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23666
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 weeks agomvebu: fix Turris MOX update
Štěpán Dalecký [Fri, 5 Jun 2026 14:02:09 +0000 (16:02 +0200)] 
mvebu: fix Turris MOX update

Turris MOX still upgrades from a legacy SD card image rather than
using the default sysupgrade path for cortexa53 devices.

Route image validation, upgrade handling and config backup through
the legacy_sdcard helpers so sysupgrade writes the correct image
format and preserves settings.

Signed-off-by: Štěpán Dalecký <daleckystepan@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23666
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 weeks agoqualcommax: ipq807x: Add PCIe support for TP-Link Deco X80-5G 23801/head
Timo Jutila [Sun, 14 Jun 2026 11:12:05 +0000 (14:12 +0300)] 
qualcommax: ipq807x: Add PCIe support for TP-Link Deco X80-5G

Make 5G modem available over PCIe.

Modify dts to enable PCIe.
Adapted based on ipq8072-linkhub-hh500v.dts

Add MHI modules to default X80-5g image

Signed-off-by: Timo Jutila <zutija@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23801
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 weeks agoqualcommax: ipq807x: Fix w_disable for Deco X80-5G 23800/head
Timo Jutila [Mon, 15 Jun 2026 07:46:14 +0000 (10:46 +0300)] 
qualcommax: ipq807x: Fix w_disable for Deco X80-5G

Change w_disable GPIO to 55. 35 is used in the u-boot as "ONOFF_MODULE 5G",
55 can be found in the stock dts as w_disable

Signed-off-by: Timo Jutila <zutija@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23800
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 weeks agopackage: arm-trusted-firmware-tools: add proper patch header 23917/head
Shine [Mon, 22 Jun 2026 13:35:33 +0000 (15:35 +0200)] 
package: arm-trusted-firmware-tools: add proper patch header

A patch was added without proper header.
Add a header that explains what the patch does and its prerequisites.

Fixes: e42e9c8133fbd0dce7abfe1ec696383745448078
Signed-off-by: Shine <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23917
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 weeks agoqualcommbe: fold kernel fixes
Igor Kravchenko [Sun, 21 Jun 2026 08:29:25 +0000 (11:29 +0300)] 
qualcommbe: fold kernel fixes

Move the QCA8084 XPCS channel lookup fix into the SerDes speed config
patch, so qca8084_qxgmii_set_speed() walks the channel table with the
loop index from the start.

Move the PPE port reset loop fix into the PPE driver update patch, so
ppe_port_mac_reset() asserts and deasserts each reset control instead of
reusing the MAC reset for every iteration.

Signed-off-by: Igor Kravchenko <igor.kravchenko05@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23900
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 weeks agoqualcommbe: use kernel 6.18 by default and drop 6.12 23908/head
Kenneth Kasilag [Sun, 21 Jun 2026 22:37:38 +0000 (22:37 +0000)] 
qualcommbe: use kernel 6.18 by default and drop 6.12

Switch the qualcommbe target to use kernel 6.18 and drop 6.12.

Kernel 6.18 for qualcommbe resolves some issues regarding
PCS support and reduces maintenance load maintaining two
kernel branches.

Signed-off-by: Kenneth Kasilag <kenneth@kasilag.me>
Link: https://github.com/openwrt/openwrt/pull/23908
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agokernel: bump 6.18 to 6.18.36 23887/head
John Audia [Fri, 19 Jun 2026 19:19:24 +0000 (15:19 -0400)] 
kernel: bump 6.18 to 6.18.36

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

Removed upstreamed:
  airoha/patches-6.18/162-v7.2-net-airoha-Fix-use-after-free-in-metadata-dst-teardo.patch[1]
  airoha/patches-6.18/164-v7.2-net-airoha-Add-NULL-check-for-of_reserved_mem_lookup.patch[2]

All other patches automatically rebased via update_kernel.sh

A new option was introduced with this release[3]. Updated configs on
affected targets: armsr/armv8 and rockchip/armv8.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.36&id=6f829e2c17a53a35321268339cd252aff6d6d723
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.36&id=01f7d4b504580664d36faea5671cde5e3f0d8a5b
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/diff/arch/arm64/Kconfig?id=v6.18.36&id2=v6.18.35

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

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23887
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agokernel: bump 6.12 to 6.12.94 23886/head
Shiji Yang [Fri, 19 Jun 2026 13:50:12 +0000 (21:50 +0800)] 
kernel: bump 6.12 to 6.12.94

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

New kconfig symbols:
- ARM64_ERRATUM_4118414: enabled on ARM Cortex-A76 and newer targets.
- ARM64_ERRATUM_4193714: enabled on ARM C1-Pro and newer targets.

All patches are automatically refreshed.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23886
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agokernel: reorder kernel config symbols
Shiji Yang [Sat, 20 Jun 2026 02:00:30 +0000 (10:00 +0800)] 
kernel: reorder kernel config symbols

Sort kernel configuration files alphabetically.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23886
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agokernel: use module_mtd_part_parser for mtdsplit 23893/head
Rosen Penev [Sat, 20 Jun 2026 21:13:12 +0000 (14:13 -0700)] 
kernel: use module_mtd_part_parser for mtdsplit

Remove boilerplate.

Also added deregister for bcm_wifi for consistency. Not needed as it's
builtin but still good to have.

There's a slight change from subsys_initcall to module_init. Not really
an issue for mtd drivers. No driver in linux upstream's drivers/mtd uses
subsys_initcall.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23893
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agoqualcommbe: fix pwm period calculation 23916/head
Kenneth Kasilag [Sun, 21 Jun 2026 23:26:43 +0000 (23:26 +0000)] 
qualcommbe: fix pwm period calculation

During testing on the Askey SBE1V1K, it was noticed that only very low
PWM frequencies would work, and 100% duty cycles also did not work.

Comparing the proposed upstream pwm-ipq driver to the downstream vendor
driver, `ipq_pwm_apply()` fixed pwm_div at its maximum and derived only
pre_div from the requested period. Since the period spans
`(pre_div + 1) * (pwm_div + 1)` input clocks, pinning pwm_div near its
maximum forces pre_div towards zero for short periods: once pre_div
rounds to 0 the shortest representable period is
`(pwm_div + 1) / clk_rate` (~2.7 ms, i.e. ~366 Hz, at a 24 MHz clock),
and any shorter request is silently stretched to that. The high
duration then truncates to 0, so the output collapses to ~0% duty.

Since 4-wire fans commonly expect a ~25kHz PWM, it was effectively
unusable, since every duty cycle programs a ~zero high time.

Search for the (pre_div, pwm_div) pair whose period best approximates
the request instead of fixing pwm_div. Starting pre_div at the smallest
value that keeps pwm_div within its field and stopping once pre_div
exceeds pwm_div bounds the loop and keeps pwm_div as large as possible
for fine duty resolution. For a 25 kHz request at 24 MHz this selects
pre_div = 0, pwm_div = 959, giving full 0..960 duty resolution.

While reworking the high-duration computation, round it to nearest
rather than truncating, so mid-range duty cycles are not biased low, and
clamp it to pwm_div + 1. Rounding, or a 100% duty request, could
otherwise push hi_dur past the period length and overflow the 16-bit
HI_DURATION field.

Also compute hi_div in `get_state()` in 64-bit; `hi_dur * (pre_div + 1)`
can exceed 32 bits before the existing promotion.

Fixes: 01fb4a6daadb ("qualcommbe: update pwm patches and add missing symbol")
Signed-off-by: Kenneth Kasilag <kenneth@kasilag.me>
Link: https://github.com/openwrt/openwrt/pull/23916
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2 weeks agorealtek: pcs: drop unused cmu_band code 23904/head
Jonas Jelonek [Sun, 21 Jun 2026 14:07:39 +0000 (14:07 +0000)] 
realtek: pcs: drop unused cmu_band code

For RTL930x and RTL931x, there were some functions to get and set the
CMU band. However, they were used nearly nowhere and even the SDK
doesn't use them for active SerDes configuration. Drop them to reduce
dead code.

Dropping the cmu_band_set call from RTL931x configuration has no
negative effect. We do not know where this call originally came from.
It was introduced 51c8f76612 ("realtek: improve MAC config handling for
all SoCs") but without any explanation why and where it came from. The
SDK doesn't have it and it may be overwritten again in the later CMU
setup when parts of the SerDes are reset.

Link: https://github.com/openwrt/openwrt/pull/23904
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agorealtek: pcs: rtl931x: use xsg_write instead of open-coded pattern
Jonas Jelonek [Sun, 21 Jun 2026 10:53:59 +0000 (10:53 +0000)] 
realtek: pcs: rtl931x: use xsg_write instead of open-coded pattern

The xsg_write operation for RTL931x already offers the correct procedure
writing to both page + 0x40 and page + 0x80. Though, this wasn't used
so far because this pattern was still open-coded where needed. Replace
that with the xsg_write helper call.

In clear_symerr, this deliberately changes the exact sequence of
operations a bit. However, this shouldn't have any practical effect and
testing shows no issues.

Link: https://github.com/openwrt/openwrt/pull/23904
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agorealtek: pcs: rename 'determine_hw_mode' to 'select_hw_mode'
Jonas Jelonek [Sun, 21 Jun 2026 14:41:06 +0000 (14:41 +0000)] 
realtek: pcs: rename 'determine_hw_mode' to 'select_hw_mode'

Rename the 'determine_hw_mode' to 'select_hw_mode' to better express
what the function does. Based on the requested interface, the number of
links on a SerDes and the capabilities, it selects a suitable hardware
mode. 'determine' is clunkier and less expressive in this case.

Link: https://github.com/openwrt/openwrt/pull/23904
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agorealtek: pcs: drop wrong __maybe_unused
Jonas Jelonek [Sat, 20 Jun 2026 08:13:00 +0000 (08:13 +0000)] 
realtek: pcs: drop wrong __maybe_unused

Some functions specify __maybe_unused from former times although they
are clearly used. Remove those attributes.

Link: https://github.com/openwrt/openwrt/pull/23904
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agorealtek: pcs: drop unused modify helper
Jonas Jelonek [Sat, 20 Jun 2026 08:11:09 +0000 (08:11 +0000)] 
realtek: pcs: drop unused modify helper

Drop the unused rtpcs_sds_modify helper. Other helpers already provide
what we need.

Link: https://github.com/openwrt/openwrt/pull/23904
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agorealtek: pcs: add macro for USXGMII AN opcode
Jonas Jelonek [Fri, 19 Jun 2026 21:36:32 +0000 (21:36 +0000)] 
realtek: pcs: add macro for USXGMII AN opcode

Instead of hardcoding the USXGMII AN opcode values and potentially
losing track of what they actually mean, add a define for them. Actually
only one is used, however the other one gets a macro too for
documentation purpose.

Link: https://github.com/openwrt/openwrt/pull/23904
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agorealtek: pcs: fix comment
Jonas Jelonek [Fri, 19 Jun 2026 20:52:54 +0000 (20:52 +0000)] 
realtek: pcs: fix comment

A comment sentence misses a word which likely confuses readers. Add the
missing word before everyone forgets what it might be.

Link: https://github.com/openwrt/openwrt/pull/23904
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agotools: bc: update to 1.08.2 23911/head
Jonas Jelonek [Mon, 22 Jun 2026 08:35:06 +0000 (08:35 +0000)] 
tools: bc: update to 1.08.2

Changelog included in source tar.

Removed patches:
- 000-getopt-prototype.patch
- 001-getopt-declaration.patch

Both patch changes are included upstream in this version.

Link: https://github.com/openwrt/openwrt/pull/23911
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agoairoha: account for L2 overhead in PPE MTU configuration 23875/head
Sayantan Nandy [Fri, 19 Jun 2026 06:48:29 +0000 (12:18 +0530)] 
airoha: account for L2 overhead in PPE MTU configuration

The PPE egress MTU register and WAN MTU register compare against L2
frame length without FCS, as confirmed by the hardware reset value of
0x05EA (1514 = ETH_HLEN + 1500).

Account for VLAN_ETH_HLEN when programming these registers to prevent
valid VLAN-tagged frames from being incorrectly dropped by hardware.

Signed-off-by: Sayantan Nandy <sayantann11@gmail.com>
[ add commit description ]
Link: https://github.com/openwrt/openwrt/pull/23875
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 weeks agopackage: nftables: replace patch with proper backport 23910/head
Jonas Jelonek [Mon, 22 Jun 2026 08:08:35 +0000 (08:08 +0000)] 
package: nftables: replace patch with proper backport

A patch was added without proper header and not obvious that it's a
backport. Replace that patch with a backport of the upstream commit.

Patch 001-build-simplify-the-instantiation-of-nftversion-h.patch
rebased, all others refreshed.

Fixes: 255f4c8e60 ("packages: nftables: fix build on host with busybox ash")
Link: https://github.com/openwrt/openwrt/pull/23910
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agokernel: fix wrong strlcat call 23892/head
Rosen Penev [Sun, 21 Jun 2026 05:02:34 +0000 (22:02 -0700)] 
kernel: fix wrong strlcat call

strlcat takes the total buffer size, not the remaining space.
Passing strlen(cmdline) + l caused it to truncate by one byte
when the appended string fit within the buffer.

This is also more consistent with the rest of the file.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23892
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agokernel: handle bootargs-override the same everywhere
Rosen Penev [Sat, 20 Jun 2026 23:52:51 +0000 (16:52 -0700)] 
kernel: handle bootargs-override the same everywhere

l is an int. No need for a cast. Also might as well use l since it's
available.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23892
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agokernel: replace strncpy with safer alternatives
Rosen Penev [Sat, 20 Jun 2026 20:07:38 +0000 (13:07 -0700)] 
kernel: replace strncpy with safer alternatives

strncpy is deprecated. Replace with:
- strscpy() for NUL-terminated destinations
- strscpy_pad() for NUL-terminated destinations with zero-padding
- memcpy() for fixed-length in-place overwrites (bootargs mangle/cmdline replacement)

Assisted-by: Opencode:Big-Pickle
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23892
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agokernel: replace open-coded arithmetic in allocators
Rosen Penev [Sat, 20 Jun 2026 20:21:46 +0000 (13:21 -0700)] 
kernel: replace open-coded arithmetic in allocators

Dynamic size calculations in allocator arguments can overflow,
leading to undersized allocations. Replace with:
- kcalloc() for count * sizeof() patterns
- devm_kcalloc() for managed allocations
- array_size()/size_add()/size_mul() for complex cases

Assisted-by: Opencode:Big-Pickle
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23892
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 weeks agokernel: replace BUG_ON/BUG with WARN_ON/WARN_ON
Rosen Penev [Sat, 20 Jun 2026 20:19:44 +0000 (13:19 -0700)] 
kernel: replace BUG_ON/BUG with WARN_ON/WARN_ON

BUG() and BUG_ON() are deprecated - they destabilize the system
and make debugging impossible. Replace with:
- WARN_ON() + return error for assertion failures
- WARN_ON_ONCE() for bounds checks
- WARN_ON() + return -EPERM for in_interrupt() guards

Assisted-by: Opencode:Big-Pickle
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23892
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorockchip: enable dwc3 usb dual-role mode for otg 23770/head
Chukun Pan [Fri, 5 Jun 2026 12:08:18 +0000 (20:08 +0800)] 
rockchip: enable dwc3 usb dual-role mode for otg

Most Rockchip boards have an OTG port. Enable DWC3 USB Dual-role
mode for the OTG port to fix the following error:

Configuration mismatch. dr_mode forced to host

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/23770
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorockchip: replace rk3528 usb patch with upstream
Chukun Pan [Thu, 4 Jun 2026 12:26:19 +0000 (20:26 +0800)] 
rockchip: replace rk3528 usb patch with upstream

Replace the RK3528 USB driver and DT patch with the upstream version.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/23770
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorockchip: replace nvmem otp patch with upstream
Chukun Pan [Wed, 3 Jun 2026 12:20:01 +0000 (20:20 +0800)] 
rockchip: replace nvmem otp patch with upstream

Replace the rockchip-otp patch with the upstream version.
Also backports OTP support for RK3562 and RK3568 SoCs.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/23770
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agobcm53xx: nvmem conversions 22181/head
Rosen Penev [Tue, 17 Feb 2026 04:47:33 +0000 (20:47 -0800)] 
bcm53xx: nvmem conversions

Add upstream patches for devices with nvram definitions in dts.

For others, replace * with all devices that have no nvram definitions.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22181
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agopackage: nftables: bump PKG_RELEASE
Jonas Jelonek [Sun, 21 Jun 2026 15:49:40 +0000 (17:49 +0200)] 
package: nftables: bump PKG_RELEASE

Bump the PKG_RELEASE as it was missed when adding a patch.

Fixes: 255f4c8e60 ("packages: nftables: fix build on host with busybox ash")
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agotools: bc: fix build on musl host 21957/head
Shine [Mon, 2 Feb 2026 22:06:44 +0000 (23:06 +0100)] 
tools: bc: fix build on musl host

Fix declaration of getenv() in getopt.c

Backport from bc 1.08.2.

Signed-off-by: Shine <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21957
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agopackages: nftables: fix build on host with busybox ash
Shine [Mon, 2 Feb 2026 22:06:44 +0000 (23:06 +0100)] 
packages: nftables: fix build on host with busybox ash

Numeric for loops are a bashism and won't work in BusyBox' ash. Replace
with a portable equivalent.

Backport of a post-1.1.6 nftables fix.

Signed-off-by: Shine <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21957
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agopackages: arm-trusted-firmware-tools: fix build on musl host
Shine [Mon, 2 Feb 2026 22:06:44 +0000 (23:06 +0100)] 
packages: arm-trusted-firmware-tools: fix build on musl host

Due to POSIX style ioctl() declaration in MUSL, arm-trusted-firmware-tools
fails to build on MUSL based hosts with -Werror and -pedantic GCC switches
enabled. Alpine Linux, for example, fixes this with an unconditional cast
to "int". This commit tries to apply this cast only for MUSL based build
hosts, while keeping the type as-is where the cast isn't needed. Maybe
overkill, but cleaner than an unconditional cast.

Fixes: #13339
Signed-off-by: Shine <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21957
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoeconet: replace pending patches with upstream backports 23879/head
Ahmed Naseef [Fri, 19 Jun 2026 12:29:12 +0000 (16:29 +0400)] 
econet: replace pending patches with upstream backports

The EN751221 clock/reset bindings and driver, along with the PCI bridge
window fix, have all been accepted upstream. Replace the downstream
patches with the exact versions merged upstream and add the kernel
version tag:

  910: dt-bindings: clock, reset: Add econet EN751221           (v7.1, 35af99f7482673)
  911: clk: airoha: Add econet EN751221 clock/reset support     (v7.1, d8b034525fd954)
  913: PCI: Prevent assignment to unsupported bridge windows    (v7.1, 92427ab4378faa)

Refresh the patches as a result.

Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23879
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoeconet: use kernel 6.18 by default and drop 6.12
Ahmed Naseef [Fri, 19 Jun 2026 10:26:37 +0000 (14:26 +0400)] 
econet: use kernel 6.18 by default and drop 6.12

Switch the econet target to use kernel 6.18 and drop 6.12.

Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23879
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoipq40xx: add beginning space to bootargs-append 23899/head
Rosen Penev [Sat, 20 Jun 2026 23:22:14 +0000 (16:22 -0700)] 
ipq40xx: add beginning space to bootargs-append

Technically not needed but more consistent with other users.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23899
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorealtek: rtl930x: add support for Zyxel XGS1010-12 B1 23882/head
Shine [Fri, 19 Jun 2026 14:09:27 +0000 (16:09 +0200)] 
realtek: rtl930x: add support for Zyxel XGS1010-12 B1

This commit adds support for the Zyxel XGS1010-12 B1 revision, which is
basically the unmanaged version of the XGS1210-12 B1. It features a newer
uBoot build and slightly different 2.5G PHYs than the A1 revision of this
model.

SoC:         RTL9302B
RAM:         128MB DDR3
Flash:       16MB SPI-NOR
Ethernet:    8x 1GBE RJ45 (RTL8218D)
             2x 2.5GBE (2x RTL8226B)
             2x SFP+ cage (10G/2.5G/1G)
UART:        3.3V 115200 8N1, accessible from the right side of the case
             Pinout (top to bottom): Vcc - Tx - Rx - Gnd

MAC address:
The base MAC is stored in uBoot env variable 'ethaddr', which contains only
a placeholder ('00:E0:4C:00:00:00') in the factory default configuration.
Will be generated randomly at boot unless manually preset (see installation
instructions). Additional port MACs are assigned incrementally per port.

This contribution is based on the already existing support for the Zyxel
XGS1010-12-A1 and XGS1210-12-B1.

Installation instructions:

1. Set your PC's IP address to 192.168.1.111 and serve the OpenWrt Initramfs
   image via TFTP (e.g. as "initramfs.bin")
2. Connect to the device via UART, power on and press Esc within 1 second
   after prompted.
3. (Optional) Set a unique MAC address:
   setenv ethaddr AA:BB:CC:DD:EE:FF
4. Populate the uBoot env partition with the command:
   saveenv
5. Enter the following command line to boot the Initramfs OpenWrt image:
   rtk network on; tftpboot 0x84f00000 initramfs.bin; bootm
6. Wait until OpenWrt has booted and connect via SSH.
7. (Optional) Back up the original partitions (at least mtd5-mtd9) in order
   to be able to revert to stock later.
8. Update the boot command needed to boot OpenWrt:
   fw_setenv bootcmd "rtk network on; bootm 0xb4900000"
9. Install the OpenWrt sysupgrade image and wait for the device to boot
   OpenWrt from flash. Enjoy.

Back to stock:

1. Boot the Initramfs image as described above.
2. Write the previously backed up mtd5-mtd9 partitions to flash.
3. Restore the boot command to stock:
   fw_setenv bootcmd boota
4. Reboot into stock firmware.

Signed-off-by: Shine <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23882
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
3 weeks agorealtek: rtl930x: use common DTSI for Zyxel XGS1010-12
Shine [Fri, 19 Jun 2026 14:09:27 +0000 (16:09 +0200)] 
realtek: rtl930x: use common DTSI for Zyxel XGS1010-12

In preparation for adding support for the B1 revision of this model,
introduce a common DTSI and image recipe.

Signed-off-by: Shine <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23882
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
3 weeks agotreewide: use _scoped for loops 23872/head
Rosen Penev [Thu, 4 Dec 2025 04:48:57 +0000 (20:48 -0800)] 
treewide: use _scoped for loops

Done for local patches. Potential upstreaming will be using these
anyway.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23872
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agobcm53xx: backport meraki mx6x warning fix 23870/head
Rosen Penev [Thu, 18 Jun 2026 19:54:37 +0000 (12:54 -0700)] 
bcm53xx: backport meraki mx6x warning fix

The kernel ended up fixing this dts problem at runtime, but fix it
directly instead. Upstream backport.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23870
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoath79: improve reset-controller driver 21027/head
Rosen Penev [Tue, 16 Jun 2026 20:39:11 +0000 (13:39 -0700)] 
ath79: improve reset-controller driver

Use _scoped loop to about fwnode_handle_put everywhere.

Remove usage of of_node.

Use devm_led_classdev_register_ext to avoid fwnode handle leaks.

Remove custom struct_size function.

Fix other various issues found with AI.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21027
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoath79: move leds-reset driver to files
Rosen Penev [Tue, 16 Jun 2026 20:19:45 +0000 (13:19 -0700)] 
ath79: move leds-reset driver to files

This driver looks like it will never be upstreamed. Keep it local for
easier modification.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21027
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorealtek: rtl931x: add support for Hasivo F5800W-12S+ 23443/head
Lars Gierth [Tue, 19 May 2026 01:52:03 +0000 (03:52 +0200)] 
realtek: rtl931x: add support for Hasivo F5800W-12S+

This commit adds support for the Hasivo F5800W-12S+ 12-port SFP+ switch.
Based on board revision `RTL_12S+ v1.01`.

Hardware
--------

|          |                                                                |
|----------|----------------------------------------------------------------|
| SoC      | RTL9313 rev B                                                  |
| RAM      | 512 MB Samsung K4B4G1646E                                      |
| Flash    | 32 MB Macronix MX25L25645G SPI NOR, 29 MB usable by OpenWrt    |
| Ethernet | 12x SFP+ via SoC (10G/2.5G/1G)                                 |
| LEDs     | 12x green 10G link, 12x green 1G link,                         |
|          | 3x green power and PSUs -- no system status LED                |
| Button   | Reset                                                          |
| Console  | RJ45 38400 bps 8n1                                             |
| Watchdog | via Hasivo MCU                                                 |
| Power    | 2x internal 100-240V AC PSUs with 2x C14 inputs                |
| Clock    | NXP PCF8563 with coin cell battery                             |
| Fans     | 2x 40mm case fan via Hasivo MCU                                |

Installing OpenWrt
------------------

1. Attach to RJ45 serial console port using a cisco cable.
2. Attach SFP to port 12.
3. Serve initramfs-kernel.bin on TFTP 192.168.1.111.
4. Power on the device.
5. Interrupt U-Boot by pressing `Ctrl+c`, then `z`, then `h`, during 3 second countdown.
6. Bring up networking: `rtk network on ; rtk 10g 55 fiber10g`.
7. Boot from TFTP: `tftpboot 0x84f00000 initramfs-kernel.bin ; bootm 0x84f00000`.
8. Use `mtd dump` to make backups of all flash partitions.
9. Use SCP to copy `squashfs-sysupgrade.bin` to the device, then run `sysupgrade`.

Restoring factory firmware
--------------------------

OpenWrt uses the `RUNTIME` and `RUNTIME2` partitions as one combined partition.
To restore them from backups, boot from `initramfs-kernel.bin` just like during
the installation, then use `mtd write` to write your backups of the factory
`mtd5` and `mtd6` partitions to the live `mtd5` partition.

Notes/Quirks
------------

- U-Boot interruption is obfuscated. Press `Ctrl+c`, then `z`, then `h`,
  during the 3 second countdown.
- MAC address is stored on the `RUNTIME` or `RUNTIME2` partitions,
  which are used by OpenWrt. Instead, we generate one random MAC address
  and store it in the U-Boot environment.
- There is no system status LED. The three non-network LEDs are for
  primary PSU (MS label), secondary PSU (SL), and powered on/off (PW).

Signed-off-by: Lars Gierth <larsg@systemli.org>
Link: https://github.com/openwrt/openwrt/pull/23443
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
3 weeks agorealtek: uci-defaults: refactor and expand fwenv ethaddr hack
Lars Gierth [Thu, 28 May 2026 23:33:24 +0000 (01:33 +0200)] 
realtek: uci-defaults: refactor and expand fwenv ethaddr hack

With the upcoming addition of the Hasivo F5800W-12S+ switch model,
another invariant of the u-boot env ethaddr fixup will be neccessary.
While previously all devices used the exact "zero" dummy ethaddr,
this new Hasivo ends in :10 instead of :00.

Make the hack work based on the 5-byte prefix of the ethaddr.
The currently known possible values for the 6th byte are 0x00 and 0x10.
This can be further expanded in the future if neccessary.

The separate XGS1010-12-A1 case doesn't need to deal with ethaddr prefixes
as it only covers one single device with one single dummy ethaddr.

Also use this opportunity to add more documentation,
and extract the common json and fw_setenv logic to a separate function.

Signed-off-by: Lars Gierth <larsg@systemli.org>
Link: https://github.com/openwrt/openwrt/pull/23443
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
3 weeks agonet: pcs: airoha: fix swapped JCPLL SDM DI_LS/DI_EN REG_FIELD entries 23876/head
Wayen Yan [Fri, 19 Jun 2026 08:03:52 +0000 (16:03 +0800)] 
net: pcs: airoha: fix swapped JCPLL SDM DI_LS/DI_EN REG_FIELD entries

The JCPLL SDM DI_LS and DI_EN REG_FIELD entries have their bit
positions swapped compared to the #define macros:

  #define JCPLL_SDM_DI_LS   GENMASK(25,24)  → bits 24-25
  #define JCPLL_SDM_DI_EN   BIT(16)          → bit 16

But the REG_FIELD mapping is:
  DI_LS → REG_FIELD(..., 16, 16)  ← wrong, should be (24, 25)
  DI_EN → REG_FIELD(..., 24, 25)  ← wrong, should be (16, 16)

Fix by swapping the enum and REG_FIELD order so DI_EN comes before
DI_LS, keeping the bit values in ascending order and matching the
register layout. This way:

  [DI_EN] = REG_FIELD(..., 16, 16)  ← BIT(16) ✓
  [DI_LS] = REG_FIELD(..., 24, 25)  ← GENMASK(25,24) ✓

The TXPLL section in the same file already follows this bit-order
convention (DI_EN at bit 0, DI_LS at bits 8-9).

Signed-off-by: Wayen Yan <win847@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23876
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
3 weeks agoairoha: replace multi serdes patch with upstream kernel version 23849/head
Christian Marangi [Wed, 17 Jun 2026 17:47:16 +0000 (19:47 +0200)] 
airoha: replace multi serdes patch with upstream kernel version

Now that multi serdes patch are accepted upstream, reorder the current
patch in the 1xx numbering and add the kernel version tag.

Also replace the downstream patch with the exact version merged upstream.

Downstream PCS implementation is updated with a new revision for the
ethernet code.

Update any patch affected by these changes.

Link: https://github.com/openwrt/openwrt/pull/23849
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
3 weeks agogeneric: 6.18: backport netdev_from_priv() helper
Christian Marangi [Wed, 17 Jun 2026 17:44:29 +0000 (19:44 +0200)] 
generic: 6.18: backport netdev_from_priv() helper

Backport netdev_from_priv() helper from upstream kernel to reduce patch
delta on backporting new driver and fixes from upstream kernel.

Link: https://github.com/openwrt/openwrt/pull/23849
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
3 weeks agorealtek: pcs: drop setup_serdes 23861/head
Jonas Jelonek [Thu, 18 Jun 2026 07:46:12 +0000 (07:46 +0000)] 
realtek: pcs: drop setup_serdes

Introducing the setup_serdes hook in the PCS driver was always intended
to be only a temporary solution. It was needed to be able to collect all
scattered code in the PCS driver first. Later, refactoring can be done
to bring everything into a proper shape.

Now we've reached the point where the setup of all variants has been
refactored in such a way that all share the same high-level sequence.
This is fully orchestrated in pcs_config now. Thus, the setup_serdes hook
is no longer needed. Move the last piece out of it into another SerDes
op hook, then drop setup_serdes.

Link: https://github.com/openwrt/openwrt/pull/23861
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorealtek: pcs: rtl931x: call CMU config from hw mode config
Jonas Jelonek [Thu, 18 Jun 2026 07:24:46 +0000 (07:24 +0000)] 
realtek: pcs: rtl931x: call CMU config from hw mode config

One deviating piece left is the extra call in 931x's setup_serdes to
config_cmu. It is called right after the hw mode configuration, in
contrast to 930x. Until we find a better home, move it to the end of
config_hw_mode to retain behavior but to pave the way for the final
unification steps.

Link: https://github.com/openwrt/openwrt/pull/23861
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorealtek: pcs: move media configuration to pcs_config
Jonas Jelonek [Thu, 18 Jun 2026 07:20:21 +0000 (07:20 +0000)] 
realtek: pcs: move media configuration to pcs_config

As next step, move the media configuration to pcs_config by adding
another optional SerDes ops hook which is called from pcs_config. Drop
the redundant call sites in setup_serdes then.

Link: https://github.com/openwrt/openwrt/pull/23861
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorealtek: pcs: rtl931x: adjust function naming
Jonas Jelonek [Wed, 17 Jun 2026 09:09:17 +0000 (09:09 +0000)] 
realtek: pcs: rtl931x: adjust function naming

Rename the RTL931x function _sds_set_media to _sds_config_media to (1)
match the RTL930x name and (2) better express what it's doing. It's not
just setting the media type, it's configuring media-specific parameters.

Link: https://github.com/openwrt/openwrt/pull/23861
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorealtek: pcs: encapsule rtl930x media config in function
Jonas Jelonek [Wed, 17 Jun 2026 09:06:00 +0000 (09:06 +0000)] 
realtek: pcs: encapsule rtl930x media config in function

Move the two pieces for media configuration from RTL930x's setup_serdes
into a separate function, having the same encapsulation as RTL931x. This
will further allow to unify the setup sequence, and play a central role
in refactoring of the whole calibration code later.

Link: https://github.com/openwrt/openwrt/pull/23861
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorealtek: pcs: carve out media selection as generic
Jonas Jelonek [Wed, 17 Jun 2026 08:35:52 +0000 (08:35 +0000)] 
realtek: pcs: carve out media selection as generic

So far, RTL931x implemented its media selection logic within
setup_serdes, unavailable to potential other users. One of those is
RTL930x which needs this too. To easy further refactoring, carve out the
logic to a generic helper providing the equal selection for all variants
anyway.

Link: https://github.com/openwrt/openwrt/pull/23861
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorealtek: pcs: move mode setting to pcs_config
Jonas Jelonek [Wed, 17 Jun 2026 14:21:45 +0000 (14:21 +0000)] 
realtek: pcs: move mode setting to pcs_config

Right now, setting the hardware mode of a SerDes is always the last step
in setup_serdes for each variant and more or less does exactly the same.
Drop that redundancy, replacing it with a ops hook and unified call from
pcs_config.

This changes behavior for RTL839x. Before, setup for 5G SerDes was
skipped entirely. Now, the mode is set properly. Tested on a device,
this has no negative effect.

Link: https://github.com/openwrt/openwrt/pull/23861
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorealtek: pcs: rtl83xx: move reset into activation
Jonas Jelonek [Wed, 17 Jun 2026 09:20:02 +0000 (09:20 +0000)] 
realtek: pcs: rtl83xx: move reset into activation

RTL838x and RTL839x call a reset at the end of their setup procedure
while RTL93xx do not do that. Since this is another hurdle for unifying
the setup procedure, move them to the activation hooks for now.

This retains behavior for both variants. Though something is called now
for RTL839x, the reset still skips 5G SerDes.

Link: https://github.com/openwrt/openwrt/pull/23861
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agouart: airoha: fix out-of-bounds access in baud rate calculation 23783/head
Wayen Yan [Sun, 14 Jun 2026 03:19:21 +0000 (11:19 +0800)] 
uart: airoha: fix out-of-bounds access in baud rate calculation

The baud rate table lookup does not check if the requested index
is within bounds before accessing the array. This can cause
out-of-bounds read when an unsupported baud rate is requested.

Signed-off-by: Wayen Yan <win847@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23783
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agothermal: airoha: fix wrong variable in TEMPOFFSETL regmap_write 23780/head
Wayen Yan [Sun, 14 Jun 2026 03:14:11 +0000 (11:14 +0800)] 
thermal: airoha: fix wrong variable in TEMPOFFSETL regmap_write

The regmap_write for TEMPOFFSETL should use low_temp but incorrectly
uses high_temp, causing the low temperature threshold to be misconfigured.

This prevents the low temperature trip point from working properly.

Fixes: 7d55e75edc87 ("thermal: airoha: convert to regmap API")
Signed-off-by: Wayen Yan <win847@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23780
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorealtek: rtl931x: remove unused thermal-sensor-cells from DTS 23865/head
Lars Gierth [Thu, 18 Jun 2026 16:34:14 +0000 (18:34 +0200)] 
realtek: rtl931x: remove unused thermal-sensor-cells from DTS

Quote @jonasjelonek: It's all not really wired up correctly,
the thermal driver has no support for RTL931x and nothing else
really links e.g. SFP slots with a fan or whatever.

Signed-off-by: Lars Gierth <larsg@systemli.org>
Link: https://github.com/openwrt/openwrt/pull/23865
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorealtek: rtl930x: remove SFP power settings for Hasivo F1100W
Lars Gierth [Thu, 18 Jun 2026 14:51:55 +0000 (16:51 +0200)] 
realtek: rtl930x: remove SFP power settings for Hasivo F1100W

I think these were copied from a different device's DTS at the very
beginning of the porting work. We don't know the actual maximums
of these SFP ports, so let's stick with the 1W default, unless someone
researches what the Hasivo vendor firmware does for this setting.

Signed-off-by: Lars Gierth <larsg@systemli.org>
Link: https://github.com/openwrt/openwrt/pull/23865
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agothermal: airoha: fix wrong variable in AN7583 error check 23781/head
Wayen Yan [Sun, 14 Jun 2026 14:25:37 +0000 (22:25 +0800)] 
thermal: airoha: fix wrong variable in AN7583 error check

In an7583_thermal_probe(), the code assigns priv->chip_scu from
device_node_to_regmap() but then checks IS_ERR(priv->map)
and returns PTR_ERR(priv->map). The variable priv->map is
not assigned in this function, so the error check uses a
different variable than what was actually assigned.

This should check chip_scu instead of map.

Fixes: 5891a9e5fbdf ("thermal/drivers: airoha: Add support for AN7583")
Signed-off-by: Wayen Yan <win847@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23781
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoramips: pax1800-lite: do not attach both ubi partitions on boot 23857/head
Sven Eckelmann (Plasma Cloud) [Thu, 18 Jun 2026 09:49:54 +0000 (11:49 +0200)] 
ramips: pax1800-lite: do not attach both ubi partitions on boot

The dual-boot mechanism depends on the fact that the bootloader specifies
the ubi.mtd= of the currently active slot. And the Linux is expected to
only attach the specified ubi-partition. Otherwise the kernel will use the
"rootfs" partition of the initially attached ubi partition as its root
partition. Which is of course wrong when the kernel parameter specified
ubi.mtd=firmware2.

Fixes: c7c54f313425 ("ramips: add support for Plasma Cloud PAX1800-Lite")
Signed-off-by: Sven Eckelmann (Plasma Cloud) <se@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/23857
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoan7581/base-files: use IPKG_INSTROOT when sourcing functions.sh 23814/head
Stan Grishin [Mon, 15 Jun 2026 20:47:54 +0000 (20:47 +0000)] 
an7581/base-files: use IPKG_INSTROOT when sourcing functions.sh

* fixes the following error message when using image builder to create an
  image for an7581 devices:

build_dir/target-aarch64_cortex-a53_musl/root-airoha/etc/init.d/airoha_fan: line 8: /lib/functions.sh: No such file or directory

Signed-off-by: Stan Grishin <stangri@melmac.ca>
Link: https://github.com/openwrt/openwrt/pull/23814
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoopenssl: update to 3.5.7 23852/head
Hauke Mehrtens [Wed, 17 Jun 2026 23:44:32 +0000 (01:44 +0200)] 
openssl: update to 3.5.7

This release incorporates the following bug fixes and mitigations:

 * Fixed heap use-after-free in PKCS7_verify(). (CVE-2026-45447)
 * Fixed CMS AuthEnvelopedData processing may accept forged messages. (CVE-2026-34182)
 * Fixed unbounded memory growth in the QUIC PATH_CHALLENGE handler. (CVE-2026-34183)
 * Fixed NULL pointer dereference in QUIC server initial packet handling. (CVE-2026-42764)
 * Fixed AES-OCB IV ignored on EVP_Cipher() path. (CVE-2026-45445)
 * Fixed possible heap buffer overflow in ASN.1 multibyte string conversion. (CVE-2026-7383)
 * Fixed out-of-bounds read in CMS password-based decryption. (CVE-2026-9076)
 * Fixed heap buffer over-read in ASN.1 content parsing. (CVE-2026-34180)
 * Fixed PKCS#12 files with PBMAC1 are accepted with short HMAC keys. (CVE-2026-34181)
 * Fixed possible NULL dereference in password-dased CMS decryption. (CVE-2026-42766)
 * Fixed NULL pointer dereference in CRMF EncryptedValue decryption. (CVE-2026-42767)
 * Fixed multi-RecipientInfo Bleichenbacher Oracle in CMS_decrypt() and PKCS7_decrypt(). (CVE-2026-42768)
 * Fixed trust anchor substitution via cert/issuer typo in CMP rootCaKeyUpdate. (CVE-2026-42769)
 * Fixed FFC-DH peer validation uses attacker-supplied q. (CVE-2026-42770)
 * Fixed incorrect tag processing for empty messages in AES-GCM-SIV and AES-SIV modes. (CVE-2026-45446)

Link: https://github.com/openwrt/openwrt/pull/23852
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agoodhcpd: update to Git HEAD (2026-06-18)
Hauke Mehrtens [Wed, 17 Jun 2026 23:30:57 +0000 (01:30 +0200)] 
odhcpd: update to Git HEAD (2026-06-18)

0320032ae313 odhcpd: fix out of bounds write in dhcpv6_ia_handle_IAs
26b122007030 dhcpv6-ia: avoid dangling first lease pointer
03dacc23356b dhcpv6-ia: fix Reconfigure Accept Auth option write offset

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: remove legacy iptables patches 23749/head
Qingfang Deng [Fri, 12 Jun 2026 08:30:02 +0000 (16:30 +0800)] 
kernel: remove legacy iptables patches

These patches were introduced 15 years ago by commit 19eaf1c5f78a to
speed up iptables match. We have been using fw4 and nftables for a long
time, so they are obsolete.

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23749
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
3 weeks agoairoha: introduce HW-GRO support 23828/head
Lorenzo Bianconi [Tue, 16 Jun 2026 09:47:18 +0000 (11:47 +0200)] 
airoha: introduce HW-GRO support

- Introduce HW-GRO support in order to allow bridging HW-GRO interfaces
- Enable LRO for queues (7-0)
- Rework LAN/WAN dynamic switching according to upstream requests:
  now in order to set GDM3/GDM4 as WAN it is necessary to enable Qdisc
  offloading without any dedicated ethool command.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://github.com/openwrt/openwrt/pull/23828
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
3 weeks agorealtek: add support for NicGiga S100-0800S-M 23579/head
Greg Patrick [Tue, 2 Jun 2026 12:32:39 +0000 (12:32 +0000)] 
realtek: add support for NicGiga S100-0800S-M

The NicGiga S100-0800S-M is an 8-port 10G SFP+ managed switch built on
the Realtek RTL9303 reference design (vendor U-Boot reports board model
"RTL9303_8XGE", board id 1). It is closely related to the TP-Link
TL-ST1008F v2 and shares its general layout, but differs in how the SFP
cages and port LEDs are wired (see below).

This DTS is derived from the TP-Link TL-ST1008F v2 support added by
Jonas Jelonek <jelonek.jonas@gmail.com> and Balazs Triszka
<balika011@gmail.com> in commit 39b9b491bb ("realtek: add support for
TP-Link TL-ST1008F v2.0").

Specifications:
- SoC: Realtek RTL9303
- RAM: 512 MiB DDR3
- Flash: 32 MiB SPI-NOR
- Ethernet: 8x 10G SFP+ (RTL9303 SerDes 2-9)
- UART: 115200 8N1 on the front-panel RJ45 console port (Cisco-style pinout)

MAC address:
The MAC addresses are read from the ethaddr variable in the vendor U-Boot
environment via the u-boot-env nvmem layout: the base address is assigned
to the SoC ethernet controller and an incrementing per-port offset to each
SFP port.

SFP presence and port LEDs:
Unlike the TP-Link TL-ST1008F v2, this board does not route the cage
MOD_ABS lines to the SoC GPIO controller (gpio0 pins 0-7 read stuck-low,
so an empty cage reads "present"), and the single PCA9534 I2C expander is
fully used for TX_DISABLE. No mod-def0-gpio is therefore provided; module
presence, including runtime hot-insertion and removal, is detected by
polling the SFP EEPROM over I2C. Each cage has a single green LED, driven
active-low.

Installation:
Interrupt the vendor U-Boot and TFTP-boot an OpenWrt initramfs image:
  setenv ipaddr 192.168.1.1
  setenv serverip <tftp-server>
  tftpboot 0x82000000 <...-initramfs-kernel.bin>
  bootm 0x82000000
From the running initramfs, flash with:
  sysupgrade -n <...-squashfs-sysupgrade.bin>

Signed-off-by: Greg Patrick <gregspatrick@hotmail.com>
Link: https://github.com/openwrt/openwrt/pull/23579
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agokernel/mediatek: fix null dereference in dynamic calibration patch 23237/head
Peter Collingbourne [Sun, 3 May 2026 04:51:12 +0000 (21:51 -0700)] 
kernel/mediatek: fix null dereference in dynamic calibration patch

KASAN reported a null dereference in this patch. Fix it.

Signed-off-by: Peter Collingbourne <peter@pcc.me.uk>
Link: https://github.com/openwrt/openwrt/pull/23237
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agomediatek: creatlentem clt-r30b1: add all-in-UBI layout 20666/head
Andrii Kuiukoff [Wed, 29 Oct 2025 20:05:19 +0000 (22:05 +0200)] 
mediatek: creatlentem clt-r30b1: add all-in-UBI layout

This commit introduces OpenWrt U-Boot all-in-ubi layout support
for the CreatLentem CLT-R30B1, enabling:
- Fully-featured U-Boot
- Effective recovery mechanisms
- Prolonged device lifetime by allocating most of the flash
  to UBI (which takes care of wear-leveling)
- Maximum available storage space for OpenWrt
- Unified firmware across different device variants

OpenWrt U-Boot UBI flash instructions
-------------------------------------

Using the installer image
-------------------------
To simplify the installation process, this method uses a fork
of Daniel Golle's (@dangowrt) UBI Installer
https://github.com/dangowrt/owrt-ubi-installer

1. Ensure your router is running the latest generic OpenWrt firmware.
   Upgrade it if necessary.
2. Obtain the installer image:
   Build the installer from source
   https://github.com/andros-ua/owrt-ubi-installer/tree/clt-r30b1
   or download a prebuilt image from the
   https://github.com/andros-ua/owrt-ubi-installer/releases
3. Flash the openwrt*creatlentem_clt-r30b1-ubi-initramfs-recovery-installer.itb
   image using sysupgrade.
4. Wait for installation: the green status LED will blink rapidly,
   indicating that the all-in-UBI installer is running.
5. Once the installation finishes,
   the status LED will turn solid white (lime) for 5 seconds.
6. After the device reboots, perform a final sysupgrade using the
   openwrt*creatlentem_clt-r30b1-ubi-squashfs-sysupgrade.itb image.

Return to stock layout
----------------------
1. Flash openwrt*creatlentem_clt-r30b1(-112m)-initramfs-kernel.bin
   via sysupgrade
2. Copy files to /tmp on the device via SCP:
   BL2.bin
   u-boot-env.bin
   Factory.bin
   FIP.bin
   openwrt*creatlentem_clt-r30b1(-112m)-squashfs-sysupgrade.bin
3. Restore stock MTD partitions:
   apk add kmod-mtd-rw
   insmod mtd-rw i_want_a_brick=1
   mtd write /tmp/BL2.bin BL2
   mtd write /tmp/u-boot-env.bin u-boot-env
   mtd write /tmp/Factory.bin Factory
   mtd write /tmp/FIP.bin FIP
4. Install the system:
   sysupgrade /tmp/*sysupgrade.bin

Recovery
--------
Use mtk_uartboot to recover corrupted BL2 or FIP via UART:
https://github.com/981213/mtk_uartboot

Stock layout
----------------------------------------
| dev:    size   erasesize  name       |
| mtd0: 00100000 00020000 "BL2"        |
| mtd1: 00080000 00020000 "u-boot-env" |
| mtd2: 00200000 00020000 "Factory"    |
| mtd3: 00200000 00020000 "FIP"        |
| mtd4: 07000000 00020000 "ubi"        |
----------------------------------------

OpenWrt U-Boot UBI layout
----------------------------------
| dev:    size   erasesize  name |
| mtd0: 00100000 00020000 "BL2"  |
| mtd1: 07f00000 00020000 "ubi"  |
----------------------------------

Signed-off-by: Andrii Kuiukoff <andros.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20666
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agomediatek: creatlentem clt-r30b1: correct alternate model to EP-RT2980
Andrii Kuiukoff [Fri, 29 May 2026 22:55:11 +0000 (01:55 +0300)] 
mediatek: creatlentem clt-r30b1: correct alternate model to EP-RT2980

Update DEVICE_ALT0_MODEL for the EDUP entry from "RT2980" to "EP-RT2980"
to correct the alternate device model string.

Signed-off-by: Andrii Kuiukoff <andros.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20666
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agobcm53xx: ac87u: set WAN MAC in dts 22059/head
Rosen Penev [Tue, 17 Feb 2026 04:47:33 +0000 (20:47 -0800)] 
bcm53xx: ac87u: set WAN MAC in dts

Userspace handling is deprecated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22059
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agogeneric: 6.18: backport SFP I2C presence detection without MOD_DEF0 GPIO 23836/head
Carlo Szelinsky [Tue, 16 Jun 2026 19:12:23 +0000 (21:12 +0200)] 
generic: 6.18: backport SFP I2C presence detection without MOD_DEF0 GPIO

Backport upstream net-next commit 8ac44d24c3a1. An SFP cage whose MOD_DEF0
signal is not wired to a readable GPIO currently uses sff_gpio_get_state(),
which always reports the module present: an empty cage gets stuck in
MOD_ERROR, hot-insertion is never detected and empty cages spam -EIO at
boot. Derive presence from a throttled single-byte I2C read of the module
EEPROM instead, so hot-plug works and the boot spam stops. A soldered-down
"sff,sff" module stays always-present.

This helps RTL93xx SFP boards that route no cage presence signal to a GPIO.

Remaining sfp.c patches refreshed.

Link: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=8ac44d24c3a1
Signed-off-by: Carlo Szelinsky <github@szelinsky.de>
Link: https://github.com/openwrt/openwrt/pull/23836
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agotoolchain: binutils: partially revert commit 525a1e94b343 "fix update to 2.45.1" 23773/head
Konstantin Demin [Wed, 17 Jun 2026 00:27:03 +0000 (03:27 +0300)] 
toolchain: binutils: partially revert commit 525a1e94b343 "fix update to 2.45.1"

Commit eac927fadf07 "toolchain: binutils: simplify patch management" being applied after commit 525a1e94b343 "toolchain: binutils: fix update to 2.45.1" effectively disables patching binutils 2.45.1 in OpenWrt.

Fixes: 525a1e94b343 "toolchain: binutils: fix update to 2.45.1"
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23773
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agotoolchain: binutils: update to 2.46.1
Konstantin Demin [Wed, 17 Jun 2026 00:27:03 +0000 (03:27 +0300)] 
toolchain: binutils: update to 2.46.1

Release Notes: https://sourceware.org/pipermail/binutils/2026-June/149568.html

Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23773
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorealtek: rt-loader increase gcc optimization level 23811/head
Markus Stockhausen [Mon, 15 Jun 2026 18:27:24 +0000 (20:27 +0200)] 
realtek: rt-loader increase gcc optimization level

Switch from -O2 to -O3. This increases the loader code size by
5KB and brings down the decompression time on RTL838x from
~6.5 seconds to ~3.5 seconds.

Link: https://github.com/openwrt/openwrt/pull/23811
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
3 weeks agozynq: enable NAND support
Zoltan HERPAI [Sun, 14 Jun 2026 17:40:26 +0000 (19:40 +0200)] 
zynq: enable NAND support

Enable NAND support.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>