]> git.ipfire.org Git - thirdparty/openwrt.git/log
thirdparty/openwrt.git
3 weeks agotoolchain: gcc: remove support for GCC 12 23195/head
Shiji Yang [Sat, 2 May 2026 06:39:30 +0000 (14:39 +0800)] 
toolchain: gcc: remove support for GCC 12

We will soon introduce new GCC version 16. There is no need to
maintain too many toolchain versions.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23195
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agotoolchain: gcc: remove GCC 11 leftovers
Shiji Yang [Sat, 2 May 2026 06:25:10 +0000 (14:25 +0800)] 
toolchain: gcc: remove GCC 11 leftovers

GCC 11 has been removed.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23195
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agotoolchain: gcc: drop 110-Fix-MIPS-PR-84790.patch 23196/head
Shiji Yang [Sat, 2 May 2026 06:36:05 +0000 (14:36 +0800)] 
toolchain: gcc: drop 110-Fix-MIPS-PR-84790.patch

The issue reported on the patch has been fixed in GCC 13.4.0[1],
14.2.0[2] and 15.1.0[3]. And we have already removed the GCC 14
patch variant in commit
a1b9c28edd72 ("toolchain: gcc: drop 110-Fix-MIPS-PR-84790.patch").

[1] https://gcc.gnu.org/cgit/gcc/commit/gcc/config/mips/mips.cc?h=releases/gcc-13.4.0&id=3be8fa7b19d218ca5812d71801e3e83ee2260ea0
[2] https://gcc.gnu.org/cgit/gcc/commit/gcc/config/mips/mips.cc?h=releases/gcc-14.2.0&id=201cfa725587d13867b4dc25955434ebe90aff7b
[3] https://gcc.gnu.org/cgit/gcc/commit/gcc/config/mips/mips.cc?h=releases/gcc-15.1.0&id=915440eed21de367cb41857afb5273aff5bcb737
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23196
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agomediatek: add support for ELECOM WRC-X6000GSD 22926/head
INAGAKI Hiroshi [Mon, 2 Mar 2026 13:31:03 +0000 (21:31 +0800)] 
mediatek: add support for ELECOM WRC-X6000GSD

ELECOM WRC-X6000GSD is a 4804Mbps 4xMIMO 2.4/5 GHz 11ax (Wi-Fi 6) router
with 2.5Gbps WAN (stock: 1Gbps max.), based on MT7986B

Specification:

- SoC             : MediaTek MT7986BLA
- RAM             : DDR3 512 MiB (SoC)
- Flash           : Winbond 128MiB SPI NAND (W25N01GVZEIG)
- WLAN            : 2.4/5 GHz 4T4R (MediaTek MT7986)
- Ethernet        : 5x 10/100/1000(/2500) Mbps
  - wan           : Maxlinear Ethernet GPY211C (max. 2500M)
  - lan           : MediaTek MT7531 (max. 1000M)
- LEDs/Keys (GPIO): 11x/4x
- UART            : through-hole on PCB (J1)
  - assignment    : 3.3V, TX, RX, NC, GND from tri-angle marking
  - settings      : 115200n8
- Power           : 12 VDC, 2 A

Flash layout:
dev:  offset     size        name
mtd0: 0x00000000 0x00100000 "BL2"
mtd1: 0x00100000 0x00080000 "Ubootenv"
mtd2: 0x00180000 0x00200000 "Factory"
mtd3: 0x00380000 0x00200000 "FIP"
mtd4: 0x00580000 0x00020000 "Fwheader"
mtd5: 0x005a0000 0x03200000 "ubi"
mtd6: 0x037a0000 0x00380000 "Config"
mtd7: 0x03b20000 0x00020000 "Fwheader_2"
mtd8: 0x03b40000 0x03200000 "ubi_2"
mtd9: 0x06d40000 0x00380000 "Config_2"
mtd10: 0x070c0000 0x00100000 "persist"
mtd11: 0x071c0000 0x00040000 "Mrd"
mtd12: 0x07200000 0x00380000 "Backup"

Flash instruction using factory.bin image:

1. Boot WRC-X6000GSD in router mode normally
2. Access to the WebUI ("http://192.168.2.1/") on the device
   -> その他設定 (Other settings)
   -> フォームウェア更新 (Update firmware)
   -> ローカルファイル指定 (Specify local file)
3. Select the OpenWrt factory.bin image and click apply ("適用") button
4. Wait ~120 seconds to complete flashing

Switching to the stock firmware:

1. Load the elecom.sh script
   . /lib/upgrade/elecom.sh

2. Check the current index of firmware partition
   mstc_rw_bootnum

3. Set the bootnum to opposite value between 1 and 2
   mstc_rw_bootnum value

   example:
   - step2 returned "1": mstc_rw_bootnum 2
   - step2 returned "2": mstc_rw_bootnum 1

4. Reboot, to stock FW

5. Flash the stock FW to fuly revert back to original.

Notes:

- With the stock firmware, it will flash to another partition and
  toggle boot to that partition when any firmware is flashed.
  For example when booting on ubi, the new firmware will be flashed
  to ubi_2 and the router will boot from ubi_2 afterwards.
  The 5th byte of the Persist partition is the boot value (0x01 or 0x02).

- bootmenu_delay=0 is set from factory so uboot menu is hidden by
  default.

- The hardware of WRC-X6000GSD is almost identical to WRC-X6000QS, but
  WAN (labeled as "INTERNET") port is limited to 1000 Mbps on stock FW.
  On OpenWrt FW, 2500 Mbps connection is available on that port.

MAC Addresses:

LAN   : 38:97:A4:xx:xx:58 (Factory, 0x2A(hex)/Ubootenv, "ethaddr"(text))
WAN   : 38:97:A4:xx:xx:5B (Factory, 0x24(hex))
2.4GHz: 38:97:A4:xx:xx:59 (Factory, 0x4(hex))
5GHz  : 38:97:A4:xx:xx:5A (Factory, 0xA(hex)

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22926
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agouboot-tools: envtools: add support for ELECOM WRC-X6000GSD
INAGAKI Hiroshi [Mon, 13 Apr 2026 14:13:47 +0000 (23:13 +0900)] 
uboot-tools: envtools: add support for ELECOM WRC-X6000GSD

Add support for ELECOM WRC-X6000GSD, to update U-Boot environment
variables.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22926
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agomediatek: add support for ELECOM WRC-X6000QS
INAGAKI Hiroshi [Mon, 2 Mar 2026 13:31:03 +0000 (21:31 +0800)] 
mediatek: add support for ELECOM WRC-X6000QS

ELECOM WRC-X6000QS is a 4804Mbps 4xMIMO 2.4/5 GHz 11ax (Wi-Fi 6) router
with 2.5Gbps WAN, based on MT7986b

Specification:

- SoC             : MediaTek MT7986B
- RAM             : DDR3 512 MiB
- Flash           : Winbond 128MiB SPI NAND
- WLAN            : 2.4/5 GHz 4T4R (MediaTek MT7986)
- Ethernet        : 5x 10/100/1000 Mbps
  - wan           : Maxlinear Ethernet GPY211C
  - lan           : MediaTek MT7531
- LEDs/Keys (GPIO): 11x/4x
- UART            : through-hole on PCB (J1)
  - assignment    : 3.3V, TX, RX, NC, GND from tri-angle marking
  - settings      : 115200n8
- Power           : 12 VDC, 2 A

Flash layout:
dev:  offset     size        name
mtd0: 0x00000000 0x00100000 "BL2"
mtd1: 0x00100000 0x00080000 "Ubootenv"
mtd2: 0x00180000 0x00200000 "Factory"
mtd3: 0x00380000 0x00200000 "FIP"
mtd4: 0x00580000 0x00020000 "Fwheader"
mtd5: 0x005a0000 0x03200000 "ubi"
mtd6: 0x037a0000 0x00380000 "Config"
mtd7: 0x03b20000 0x00020000 "Fwheader_2"
mtd8: 0x03b40000 0x03200000 "ubi_2"
mtd9: 0x06d40000 0x00380000 "Config_2"
mtd10: 0x070c0000 0x00100000 "persist"
mtd11: 0x071c0000 0x00040000 "Mrd"
mtd12: 0x07200000 0x00380000 "Backup"

UBI layout:
name:       size:
kernel      0x00364000  dynamic
rootfs      0x00FFC000  dynamic
rootfs_data 0x01A47000  dynamic

Flash instruction using factory.bin image:

1. Boot WRC-X6000QS in router mode normally
2. Access to the WebUI ("http://192.168.2.1/") on the device
   -> その他設定 (Other settings)
   -> フォームウェア更新 (Update firmware)
   -> ローカルファイル指定 (Specify local file)
3. Select the OpenWrt factory.bin image and click apply ("適用") button
4. Wait ~120 seconds to complete flashing

Switching to the stock firmware:

1. Load the elecom.sh script
   . /lib/upgrade/elecom.sh

2. Check the current index of firmware partition
   mstc_rw_bootnum

3. Set the bootnum to opposite value between 1 and 2
   mstc_rw_bootnum value

   example:
   - step2 returned "1": mstc_rw_bootnum 2
   - step2 returned "2": mstc_rw_bootnum 1

4. Reboot, to stock FW

5. Flash the stock FW to fuly revert back to original.

Note 1: With the stock firmware, it will flash to another partition and
  toggle boot to that partition when any firmware is flashed.
  For example when booting on ubi, the new firmware will be flashed
  to ubi_2 and the router will boot from ubi_2 afterwards.
  The 5th byte of the Persist partition is the boot value (0x01 or 0x02).

  During my tests, it never switched to another boot partition if the
  firmware failed boot. So if openwrt doesn't boot,
  UART might be required to recover.

Note 2: bootmenu_delay=0 is set from factory so uboot menu is hidden.

[original work]
Signed-off-by: Yuhei Amemiya <minihui@me.com>
[fixes, improvements]
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22926
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agouboot-tools: envtools: add support for ELECOM WRC-X6000QS
INAGAKI Hiroshi [Mon, 13 Apr 2026 14:12:19 +0000 (23:12 +0900)] 
uboot-tools: envtools: add support for ELECOM WRC-X6000QS

Add support for ELECOM WRC-X6000QS, to update U-Boot environment
variables.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22926
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agoiw: backport scan print of RSN Element Override IEs 23009/head
Hauke Mehrtens [Mon, 20 Apr 2026 22:12:50 +0000 (00:12 +0200)] 
iw: backport scan print of RSN Element Override IEs

Backport upstream iw commit d90618809e06 ("iw: scan: print RSN
Element Override IEs") as 001-*.patch so `iw scan` decodes the
RSNOE (vendor WFA type 41) and RSNO2E (type 42) elements that
hostapd emits for WPA3 Compatibility / RSN Overriding APs.

Also refresh the hunk offsets in 200-reduce_size.patch.

Link: https://github.com/openwrt/openwrt/pull/23009
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agoiw: fix IW_FULL guards in size reduction patch
Hauke Mehrtens [Mon, 20 Apr 2026 22:43:50 +0000 (00:43 +0200)] 
iw: fix IW_FULL guards in size reduction patch

Two of the IW_FULL guards in 200-reduce_size.patch were inverted
or incomplete:

 * the "unknown event" handler unconditionally replaced the
   verbose print with the short form, so IW_FULL builds lost
   the command name decoding;
 * the early return before the vendor IE parser used
   #ifdef IW_FULL, which suppressed parsing in the full build
   instead of the size-reduced one.

Wrap both with the correct #ifndef IW_FULL / #else so the full
and reduced builds produce the intended output.

Link: https://github.com/openwrt/openwrt/pull/23009
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agowifi-scripts: ucode: default sae_groups to NIST ECP 19/20/21
Hauke Mehrtens [Sun, 19 Apr 2026 23:42:51 +0000 (01:42 +0200)] 
wifi-scripts: ucode: default sae_groups to NIST ECP 19/20/21

The WPA3 and Wi-Fi Enhanced Open Deployment Guide v1.1 (Table 4,
"SAE Groups") recommends that WPA3-Personal APs advertise support
for SAE groups 19, 20 and 21:

  * group 19 - ECP 256-bit (NIST P-256)
  * group 20 - ECP 384-bit (NIST P-384)
  * group 21 - ECP 521-bit (NIST P-521)

hostapd's default is group 19 only, which leaves the two larger
ECP groups unavailable even though the peer may prefer them.

Set sae_groups = "19 20 21" as the default for any BSS whose
auth_type is sae or psk-sae (SAE, SAE Transition and SAE
Compatibility modes).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/23009
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agowifi-scripts: ucode: default BIP cipher from wpa_pairwise
Hauke Mehrtens [Sun, 19 Apr 2026 14:50:37 +0000 (16:50 +0200)] 
wifi-scripts: ucode: default BIP cipher from wpa_pairwise

The WPA3 and Wi-Fi Enhanced Open Deployment and Implementation Guide
v1.1 (Tables 4, 5, 6) requires the group-management cipher (BIP) to
match the mode and strength of the pairwise cipher: GCM-mode pairwise
ciphers pair with BIP-GMAC integrity, CCM-mode pairwise ciphers with
BIP-CMAC integrity.  The ucode pipeline hard-coded group_mgmt_cipher
to AES-128-CMAC (BIP-CMAC-128) regardless of the pairwise cipher,
except for the eap192 special case that already forced BIP-GMAC-256.
An EHT WPA3-Personal BSS therefore emitted wpa_pairwise=GCMP-256
alongside group_mgmt_cipher=AES-128-CMAC -- the integrity cipher two
steps weaker than the data cipher and a spec violation on EHT.

hostapd has a single group_mgmt_cipher knob, so the selected BIP has
to be compatible with every pairwise cipher in wpa_pairwise.  Picking
from the first token would mis-select on mixed lists -- e.g.
wpa_pairwise=\"GCMP-256 CCMP\" would yield BIP-GMAC-256, which a
CCMP-only STA cannot negotiate.

Walk the wpa_pairwise tokens and pick the BIP that matches the
weakest cipher present:

  CCMP / TKIP -> AES-128-CMAC (BIP-CMAC-128)
  CCMP-256    -> BIP-CMAC-256
  GCMP        -> BIP-GMAC-128
  GCMP-256    -> BIP-GMAC-256

Token matching uses fnmatch wildcards against a copy of wpa_pairwise
that is padded with leading and trailing spaces, so each token is
space-bounded regardless of its position in the list.

The RSN override pairwise lists are not consulted: in the only
caller that sets them (WPA3-Personal Compatibility Mode), Tables 6
and 7 require BIP-CMAC-128 across RSNE/RSNOE/RSNO2E even when the
override lists advertise GCMP-256, so wpa_pairwise=CCMP already
yields the correct BIP.

An explicit ieee80211w_mgmt_cipher UCI value still wins over the
derived default.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/23009
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agowifi-scripts: ucode: advertise Transition Disable on WPA3-only BSSes
Hauke Mehrtens [Sun, 19 Apr 2026 10:50:08 +0000 (12:50 +0200)] 
wifi-scripts: ucode: advertise Transition Disable on WPA3-only BSSes

WPA3 Specification v3.5 §13 defines the Transition Disable element sent
inside message 3 of the 4-way handshake.  An AP that is no longer
offering a transition mode for its SSID sets the matching bit so that
compliant STAs permanently stop falling back to WPA-PSK / WPA-EAP /
open for that SSID, hardening against downgrade attacks and against
operator mistakes where a transition-mode BSS is briefly brought up on
an SSID that previously ran WPA3-only.

Expose this as a UCI list 'transition_disable' with three classes of
entries:

  * The existing OpenWrt encryption tokens 'sae' (bit 0x01), 'sae-pk'
    (0x02), 'wpa3' (0x04) and 'owe' (0x08) OR into the bitmap.  SAE-PK
    itself is not yet wired through wifi-scripts; the token only lets
    an operator who configured SAE-PK out of band also hand the
    matching bit to hostapd.

  * 'on' derives the bitmap from the AP's auth_type ('sae' -> 0x01,
    'eap2'/'eap192' -> 0x04, pure 'owe' -> 0x08) and overrides any
    other explicit tokens in the same list.  Transition BSSes
    (psk-sae, eap-eap2, owe with owe_transition set) produce no
    bits even under 'on' because they are by definition still in
    transition.

  * 'off' unconditionally suppresses the element regardless of any
    other entries.  Operators who need to revert a WPA3-only SSID back
    to a transition mode can set this proactively, giving compliant
    STAs time to forget the permanent bit before the mode change.

Leave the list unset by default.  Advertising Transition Disable is a
one-way door -- once a compliant STA has seen the permanent bit for an
SSID it will refuse to associate to a transition-mode BSS of the same
name ever again -- so it must be opted in to per SSID, never flipped
on by a firmware bump.  This also matches the WPA3 and Wi-Fi Enhanced
Open Deployment and Implementation Guide v1.1 Table 4 requirement that
Transition Disable be MAND disabled by default on APs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/23009
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agowifi-scripts: ucode: default sae_pwe to H2E-only on 6 GHz
Hauke Mehrtens [Sun, 19 Apr 2026 22:36:47 +0000 (00:36 +0200)] 
wifi-scripts: ucode: default sae_pwe to H2E-only on 6 GHz

The WPA3 and Wi-Fi Enhanced Open Deployment and Implementation Guide
v1.1 (Tables 7 and 8) mandates "H2E Only" for SAE on 6 GHz, in both
WPA3-Personal Only and WPA3-Personal Compatibility Mode: the 6 GHz
band disallows the legacy Hunting-and-Pecking password element, so
the AP must advertise BSS Membership Selector 123 to force STAs onto
H2E.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/23009
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agowifi-scripts: ucode: add WPA3-Personal Compatibility Mode
Hauke Mehrtens [Sun, 19 Apr 2026 19:38:56 +0000 (21:38 +0200)] 
wifi-scripts: ucode: add WPA3-Personal Compatibility Mode

The WPA3 and Wi-Fi Enhanced Open Deployment and Implementation Guide
v1.1 §2.4 (Tables 6 and 7) defines WPA3-Personal Compatibility Mode:
the AP advertises a legacy-looking RSNE (WPA-PSK, CCMP-128, PMF
Disabled) while RSN Override Elements layered on top expose SAE and,
on EHT, SAE-EXT-KEY.  WPA2-only STAs and STAs that ignore RSN
Overriding associate unchanged; modern STAs pick up the stronger WPA3
AKM via RSNOE or RSNO2E.

Only the pairwise cipher differs between elements: RSNE and RSNOE
advertise CCMP-128, RSNO2E advertises GCMP-256 (EHT only).  Group
data (CCMP-128) and group management cipher (BIP-CMAC-128) are the
same in all three per Tables 6/7, so hostapd's BSS-wide group_cipher
and group_mgmt_cipher singletons produce the spec-correct values.

Unlike WPA3-Personal Transition Mode (sae-mixed), which puts PSK and
SAE together in the main RSNE with PMF Capable, Compatibility Mode
keeps the main RSNE strictly WPA2-shaped so clients that choke on a
mixed AKM list or PMF=Capable still see a pure WPA2 BSS.  The trade-
off is that clients without RSN Overriding support never pick up SAE.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/23009
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agowifi-scripts: ucode: enable Beacon Protection by default with PMF
Hauke Mehrtens [Sat, 18 Apr 2026 21:12:56 +0000 (23:12 +0200)] 
wifi-scripts: ucode: enable Beacon Protection by default with PMF

The WPA3 and Wi-Fi Enhanced Open Deployment and Implementation Guide
v1.1, Table 4 (Common security configuration) marks Beacon Protection
as MAND for EHT-enabled APs and RECOM otherwise for all WPA3 and
Wi-Fi Enhanced Open modes.

The ucode path blindly passed beacon_prot through from UCI in iface
setup, which ran before encryption and MFP had been configured, and
left hostapd at its insecure default of 0 when the user did not
explicitly opt in.

Default beacon_prot to 1 in iface_mfp after MFP has been confirmed to
be enabled, and emit it there instead of in iface_setup so the option
is only written when PMF support is actually negotiated. Users can
still disable it explicitly via UCI.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/23009
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agowifi-scripts: ucode: advertise SAE-EXT-KEY AKM alongside SAE
Hauke Mehrtens [Sun, 19 Apr 2026 18:28:28 +0000 (20:28 +0200)] 
wifi-scripts: ucode: advertise SAE-EXT-KEY AKM alongside SAE

WPA3 Specification v3.5 §2.5.4 mandates that an AP's BSS Configuration
enables AKM suite selector 00-0F-AC:24 (SAE-EXT-KEY, SAE with a
group-dependent hash) whenever EHT or MLO is enabled. The WPA3 and
Wi-Fi Enhanced Open Deployment Guide v1.1 also recommends it on
non-EHT APs (Tables 3, 5, 6, 8).

Add a new sae_ext_key UCI option (enabled by default) that advertises
SAE-EXT-KEY, and FT-SAE-EXT-KEY when 802.11r is enabled, alongside
plain SAE/FT-SAE for the sae and psk-sae encryption modes.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/23009
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agowifi-scripts: ucode: simplify wpa_pairwise default selection
Hauke Mehrtens [Sun, 19 Apr 2026 20:26:59 +0000 (22:26 +0200)] 
wifi-scripts: ucode: simplify wpa_pairwise default selection

parse_encryption() stashed a preliminary wpa_pairwise value in a
local wpa3_pairwise variable, cleared it per auth_type, then let a
switch default either copy it back or special-case wpa3-192.  The
result was three separate places where wpa_pairwise was clobbered
and behavior that was awkward to trace when the explicit cipher
suffix (encryption[1]) and the auth_type disagreed.

Replace the scaffolding with a single block at the end of
parse_encryption() that only assigns wpa_pairwise via ??= when no
earlier branch (explicit cipher suffix, wpa3-192, or sae-compat)
has already set one:

  no WPA              -> null
  60 GHz (hw_mode=ad) -> GCMP
  HE or EHT htmode    -> GCMP-256 CCMP
  everything else     -> CCMP

wpa3-192 now sets wpa_pairwise='GCMP-256' directly in its switch
case, so the final default block can stay short.  No functional
change for existing encryption values.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/23009
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agowifi-scripts: ucode: drop the generic rsn_override UCI knob
Hauke Mehrtens [Sun, 19 Apr 2026 20:26:59 +0000 (22:26 +0200)] 
wifi-scripts: ucode: drop the generic rsn_override UCI knob

The rsn_override UCI number was scaffolding that let a Transition
Mode BSS (sae-mixed, wpa3-mixed) automatically overlay a WPA3
Compatibility-Mode-like layout: WPA3 AKMs were moved from the main
RSNE into RSNOE/RSNO2E, and with rsn_override=2 the main RSNE even
dropped SAE entirely to placate clients that refuse to associate to
a mixed AKM list.

This layout does not match any mode defined in the WPA3 and Wi-Fi
Enhanced Open Deployment and Implementation Guide v1.1: Transition
Mode (Table 5) advertises the full AKM list in a single RSNE, and
Compatibility Mode (§2.4, Tables 6 and 7) requires a specific
combination of RSNE, RSNOE and RSNO2E contents that the knob cannot
express.  In practice it also triggers interop failures: Pixel 10
phones refuse to associate to a Transition-Mode BSS whose SAE-EXT-KEY
AKM has been shoved into RSNO2E by this scaffolding, even though the
same BSS works fine when the full AKM list stays in the main RSNE.

Keep the generated configuration honest by removing the knob; the RSN
override plumbing stays in place for a future caller that sets the
override fields explicitly.  SAE-EXT-KEY advertisement will be added
back in a later commit via a dedicated sae_ext_key path that places
the AKM where the Deployment Guide actually requires it.

Drop the rsn_override schema entry and every wifi-scripts path that
read it:

  * parse_encryption no longer diverts the WPA3 pairwise cipher
    into rsn_override_pairwise.
  * wpa_key_mgmt no longer mirrors WPA-EAP into
    rsn_override_key_mgmt, moves SAE/SAE-EXT-KEY into the override
    for psk-sae, or drops the main RSNE AKM list when
    rsn_override > 1.
  * generate() no longer back-fills missing rsn_override_* fields
    from the main RSNE or duplicates the override element into an
    MLO-gated RSNO2E.

The RSN override elements are now emitted only when each of
(rsn_override_key_mgmt, rsn_override_pairwise, rsn_override_mfp) --
and their _2 counterparts -- has been populated explicitly, which
keeps the machinery from firing on transition modes where it was
never spec-compliant.

Fixes: https://github.com/openwrt/openwrt/issues/21486
Fixes: https://github.com/openwrt/openwrt/issues/22200
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/23009
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agowifi-scripts: ucode: do not leak SAE options onto non-SAE BSSes
Hauke Mehrtens [Sun, 19 Apr 2026 00:36:13 +0000 (02:36 +0200)] 
wifi-scripts: ucode: do not leak SAE options onto non-SAE BSSes

sae_require_mfp and sae_pwe are SAE-specific knobs but iface_auth_type()
set them on every auth type that requires PMF (sae, owe, eap2, eap192,
dpp) and on both PMF-optional transition modes (psk-sae, eap-eap2).
hostapd silently ignores the stray settings on non-SAE BSSes, but they
clutter the generated configuration and make it harder to tell at a
glance which knobs actually apply.

Split the grouping: keep ieee80211w (and rsn_override_mfp for transition
modes) where it was, and move sae_require_mfp / sae_pwe into a separate
check that only fires for the two auth types that actually run SAE (sae
and psk-sae).

No functional change on the air.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/23009
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: bump 6.12 to 6.12.85 23178/head
John Audia [Fri, 1 May 2026 12:03:12 +0000 (08:03 -0400)] 
kernel: bump 6.12 to 6.12.85

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

Checksum update only/no patches touched by update_kernel.sh

Fixes: CVE‑2026‑31431 ("Copy Fail")
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23178
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: bump 6.18 to 6.18.26 23177/head
John Audia [Fri, 1 May 2026 11:48:06 +0000 (07:48 -0400)] 
kernel: bump 6.18 to 6.18.26

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

Checksum update only/no patches touched by update_kernel.sh

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/23177
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agogithub: extend LLM review rules with three new categories 23184/head
Hauke Mehrtens [Fri, 1 May 2026 16:02:22 +0000 (18:02 +0200)] 
github: extend LLM review rules with three new categories

Tightened from real bot reviews:

- Patch regeneration: spell out which make ... refresh command
  to recommend for each patch directory class, so the bot stops
  suggesting git format-patch for quilt-managed patches.
- Backports / cherry-picks: a backport's diff should match the
  upstream commit on main verbatim; flag only deviations and
  the missing (cherry picked from commit <sha>) trailer, not
  pre-existing style issues.
- New device support: require Hardware specification, Flash
  instructions, and MAC address layout sections in the commit
  message that introduces a new device. Two reference commits
  (986ca4c887f4a2dcbd79a446) named so the bot can sample the
  expected shape.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/23184
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agogithub: add LLM PR review wrapper and rules 23105/head
Hauke Mehrtens [Sun, 26 Apr 2026 14:37:12 +0000 (16:37 +0200)] 
github: add LLM PR review wrapper and rules

Drop-in wrapper that calls the reusable LLM review workflows in
openwrt/actions-shared-workflows. Triggers on pull_request_target
(incl. PRs from forks), a nightly cron (03:00 UTC), and manual
workflow_dispatch with a max_prs input override.

A detect-kernels pre-step builds the extra_repos list at workflow
runtime: it reads target/linux/generic/kernel-* in the base branch
to derive gregkh/linux:v<X.Y.Z> tags for each currently-targeted
kernel, then appends u-boot/u-boot:master. The list updates
automatically when kernel versions are bumped; the routine clones
only the entries actually needed for a given diff.

The bundled .github/llm-review-rules.md teaches the bot two
project-specific deprecations to flag even when other in-tree files
still use the legacy form:

  - LED label syntax `label = "<color>:<function>";` -->
    `color = <LED_COLOR_ID_*>;` + `function = "<func>";`
  - `mediatek,mtd-eeprom` for MAC sourcing -->
    `nvmem-cells` + `nvmem-cell-names = "mac-address";`

Repository settings need LLM_ROUTINE_ID_PR / LLM_ROUTINE_TOKEN_PR
and the *_NIGHTLY counterparts populated before the workflow can
fire. See openwrt/actions-shared-workflows/docs/llm-review-setup.md
for the full setup procedure.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/23105
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: dts: rtl93xx: use macro for PHY port definitions 23118/head
Jonas Jelonek [Mon, 27 Apr 2026 08:13:54 +0000 (08:13 +0000)] 
realtek: dts: rtl93xx: use macro for PHY port definitions

Use SWITCH_PORT_LED instead of full verbose port definitions to
simplify and clean up the DTS.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23118
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: dts: rtl93xx: use PHY_* macros for Zyxel XGS1X10/1250
Jonas Jelonek [Thu, 16 Apr 2026 08:26:54 +0000 (08:26 +0000)] 
realtek: dts: rtl93xx: use PHY_* macros for Zyxel XGS1X10/1250

Replace the verbose ethernet-phy node definitions with the PHY_C45 and
PHY_C45_PAIR_ORDER macros to drop boilerplate.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23118
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: dts: rtl93xx: replace LED magic values with macros
Jonas Jelonek [Wed, 15 Apr 2026 21:37:45 +0000 (21:37 +0000)] 
realtek: dts: rtl93xx: replace LED magic values with macros

Replace the raw bitmask values for led_set entries with the
RTL93XX_LED_SET_* macros from macros.dtsi to make the LED configuration
self-explanatory.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23118
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: dts: rtl93xx: use SWITCH_PORT_SFP for ports
Jonas Jelonek [Wed, 15 Apr 2026 20:30:58 +0000 (20:30 +0000)] 
realtek: dts: rtl93xx: use SWITCH_PORT_SFP for ports

Make use of the SWITCH_PORT_SFP macro to simplify and make the DTS of
several devices cleaner.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23118
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: mdio: convert to generic regmap_bulk_write() 23092/head
Markus Stockhausen [Mon, 27 Apr 2026 16:58:59 +0000 (18:58 +0200)] 
realtek: mdio: convert to generic regmap_bulk_write()

Each architecture has its own SMI address and SMI data size. Make the
current device specific coding generic by

- adding SMI start address and SMI data size to configuration structure
- moving regmap_bulk_write() over to the generic rtmdio_run_cmd()
- deleting all device specific rtmdio_xxxx_run_cmd() versions

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/23092
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: mdio: generic read handling
Markus Stockhausen [Mon, 27 Apr 2026 16:58:59 +0000 (18:58 +0200)] 
realtek: mdio: generic read handling

Each target has a specific SMI register where the result of read
commands is stored. As the read logic is always the same convert
the current logic to a generic one. Instead of a target specific
coding move eveything into the configuration structure and let
rtmdio_run_cmd() do the work.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/23092
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: mdio: move command data into config structure
Markus Stockhausen [Mon, 27 Apr 2026 16:58:59 +0000 (18:58 +0200)] 
realtek: mdio: move command data into config structure

Until now the device specific I/O helpers are instrumented by individual
call parameters. Move this information over to the configuration structure.
This simplifies the code at the calling locations.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/23092
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: mdio: use regmap_bulk_write() in RTL931x path
Markus Stockhausen [Mon, 27 Apr 2026 16:58:59 +0000 (18:58 +0200)] 
realtek: mdio: use regmap_bulk_write() in RTL931x path

Convert the RTL931x I/O path to the new bulk write pattern. For this

- Enhance the rtmdio_931x_run_cmd() helper to take care of all register
  access and error handling.
- Convert the c22/c45/read/write functions so that they only prepare
  the I/O data without any register access.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/23092
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: mdio: use regmap_bulk_write() in RTL930x path
Markus Stockhausen [Mon, 27 Apr 2026 16:58:59 +0000 (18:58 +0200)] 
realtek: mdio: use regmap_bulk_write() in RTL930x path

Convert the RTL930x I/O path to the new bulk write pattern. For this

- Enhance the rtmdio_930x_run_cmd() helper to take care of all register
  access and error handling.
- Convert the c22/c45/read/write functions so that they only prepare
  the I/O data without any register access.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/23092
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: mdio: use regmap_bulk_write() in RTL839x path
Markus Stockhausen [Mon, 27 Apr 2026 16:58:59 +0000 (18:58 +0200)] 
realtek: mdio: use regmap_bulk_write() in RTL839x path

Convert the RTL839x I/O path to the new bulk write pattern. For this

- Enhance the rtmdio_839x_run_cmd() helper to take care of all register
  access and error handling.
- Convert the c22/c45/read/write functions so that they only prepare
  the I/O data without any register access.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/23092
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: mdio: use regmap_bulk_write() in RTL838x path
Markus Stockhausen [Mon, 27 Apr 2026 16:58:59 +0000 (18:58 +0200)] 
realtek: mdio: use regmap_bulk_write() in RTL838x path

The regmap conversion only replaced the old sw() macros with their
regmap counterparts. Neither access optimization nor error handling
took place. Redesign the mdio access as follows:

- The c22/c45/read/write functions only prepare a data structure
  that describes the to-be-executed command.
- rtmdio_xxxx_run_cmd() is enhanced to bulk write the data into the
  SoC, issue all the I/O and do proper error handling. Additionally
  the signature is changed to allow read & write operations.

The bulk commands introduce some subtle changes.

- Before this patch only the needed registers were written. After
  the conversion all phy control registers are set up.
- The register write order changes

This is no issue as the hardware starts operation when issuing the
run_cmd() and only accesses the needed registers per operation.

For now adapt only the RTL838x path. Where needed rename "err" to
"ret" for consistency with kernel conventions.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/23092
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agorealtek: refresh patches
Hauke Mehrtens [Fri, 1 May 2026 08:46:39 +0000 (10:46 +0200)] 
realtek: refresh patches

Make the patches apply cleanly again.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: Refresh patches
Hauke Mehrtens [Thu, 30 Apr 2026 22:56:52 +0000 (00:56 +0200)] 
kernel: Refresh patches

Refresh the patches.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agomediatek: filogic: add support for zbt-z8103ax-d 21626/head
Jörg Seitz [Thu, 30 Apr 2026 05:03:37 +0000 (07:03 +0200)] 
mediatek: filogic: add support for zbt-z8103ax-d

Device support for zbt-z8103ax-d

Model D DTS is identical to Model C zbt-z8103ax-c.
Both models share same motherboard.

Difference between models is

 - Model C is a cylinder shape enclosure
   containing internal antennas.
 - Model D is a sandwich shape enclosure
   with 6 external antennas.

Specifications:

SoC: MediaTek MT7981B
RAM: 256MiB
Flash: Winbond SPI-NAND 128 MiB
Switch: 1 WAN, 3 LAN (Gigabit) MediaTek MT7531
Buttons: Reset, Mesh
Power: DC 12V 1A
WiFi: MT7981B 2.4Ghz & 5.8Ghz

Led Layout from left to right:

    Power
    Mesh (RGB Led, user controllable, default set to OpenWrt Status)
    WLAN 2.4G (user controllable)
    WAN (user controllable)
    LAN3
    LAN2
    LAN1
    WLAN 5G (user controllable)

Installation:

A. Through U-Boot menu:

    - Prepare your connecting computer to use static IP
        (legacy notation) 192.168.1.10 netmask 255.255.255.0
        (CIDR notation)   192.168.1.10/24
    - Power down the router and hold in the Reset button.
    - While holding in the button power up the router again.
    - Hold the button in for 10 seconds and then release.
    - Use your browser to go to 192.168.1.1
    - If you see a GUI allowing for flashing firmware you are at the right spot.
    - Upload the **Factory** image file.

Note: U-Boot GUI it can be used to recover from an incorrect firmware flash.

B. Through OpenWrt Dashboard:

    If your router comes with OpenWrt preinstalled (modified by the seller),
    you can easily upgrade by going to the dashboard (192.168.1.1)
    and then navigate to
    System -> Backup/Flash firmware, then flash the firmware

MAC Addresses:

MAC Addresses were found in Factory partition:

offset 0x4  F8:5E:3C:xx:xx:aa --> Router Label -2
offset 0xa  F8:5E:3C:xx:xx:bb --> Router Label -1
offset 0x24 F8:5E:3C:xx:xx:cc --> Router Label +1
offset 0x2a F8:5E:3C:xx:xx:yy --> printed on Router Label

Signed-off-by: Jörg Seitz <github.joeterminal@xoxy.net>
Link: https://github.com/openwrt/openwrt/pull/21626
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agomediatek: update device tree of zbt-z8103ax for nmbm
Jörg Seitz [Thu, 30 Apr 2026 05:01:06 +0000 (07:01 +0200)] 
mediatek: update device tree of zbt-z8103ax for nmbm

Nand has a valid mediatek nand badblock management (NMBM) signature.
Gets used for non-UBI partions BL2, u-boot-env, Factory and FIT.

Signed-off-by: Jörg Seitz <github.joeterminal@xoxy.net>
Link: https://github.com/openwrt/openwrt/pull/21626
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agoramips: mt7621: disable CONFIG_PAGE_POOL_STATS 23142/head
Shiji Yang [Tue, 28 Apr 2026 13:06:36 +0000 (21:06 +0800)] 
ramips: mt7621: disable CONFIG_PAGE_POOL_STATS

Commit 15887235c1e3 ("generic: mtk_eth_soc: reduce driver memory usage")
allows building mediatek ethernet driver without CONFIG_PAGE_POOL_STATS.
This can slightly improve throughput on legacy MIPS based MT7621 SoC.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23142
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 weeks agowireless-regdb: update to version 2026.03.18 23101/head
xiao bo [Sun, 26 Apr 2026 20:40:13 +0000 (04:40 +0800)] 
wireless-regdb: update to version 2026.03.18

Changes:
  update regulatory database based on preceding
  Update regulatory rules for India (IN) on 6GHz
  Replace M2Crypto with cryptography package
  Fix regulatory.bin signing with new

Signed-off-by: xiao bo <peterwillcn@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23101
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: bump 6.12 to 6.12.84 22913/head
John Audia [Mon, 27 Apr 2026 18:44:21 +0000 (14:44 -0400)] 
kernel: bump 6.12 to 6.12.84

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

All patches automatically rebased via update_kernel.sh

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22913
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: bump 6.12 to 6.12.83
John Audia [Wed, 22 Apr 2026 19:59:11 +0000 (15:59 -0400)] 
kernel: bump 6.12 to 6.12.83

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

All patches automatically rebased via update_kernel.sh

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22913
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: bump 6.12 to 6.12.82
John Audia [Sat, 18 Apr 2026 15:26:10 +0000 (11:26 -0400)] 
kernel: bump 6.12 to 6.12.82

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

Removed upstreamed:
 generic/pending-6.12/360-Revert-MIPS-mm-kmalloc-tlb_vpn-array-to-avoid-stack-.patch[1,2]
 generic/pending-6.12/361-Revert-MIPS-mm-Prevent-a-TLB-shutdown-on-initial-uni.patch[3]

All other patches automatically rebased via update_kernel.sh

Upstream fixed booting the RealTek MIPS 4KEc SoCs. The reverts are not
needed any more.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.82&id=16a49e3fda339aa552cde7f2cdbb25b91426cb8a
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.82&id=497f7f97894684b62a86201953ca028a3836e48e
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.82&id=d937204d13f9a25b559b7fb94faf178640fb6af5

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22913
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: bump 6.12 to 6.12.81
John Audia [Mon, 13 Apr 2026 12:27:41 +0000 (08:27 -0400)] 
kernel: bump 6.12 to 6.12.81

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

Removed upstreamed:
  ramips/patches-6.12/100-mips-ralink-update-CPU-clock-index.patch[1]
  airoha/patches-6.12/135-v7.1-net-airoha-Add-missing-cleanup-bits-in-airoha_qdma_c.patch[2]

Manually rebased:
  airoha/patches-6.12/048-01-v6.15-net-airoha-Move-airoha_eth-driver-in-a-dedicated-fol.patch

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.81&id=e8fd60338545f4bc9c23d3d4686c88324aa76fb8
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.81&id=cce5027f9dc3a333ccbcd59a2c3ab2906bd08d30

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22913
[Modify airoha move patch]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: bump 6.18 to 6.18.25 22890/head
John Audia [Mon, 27 Apr 2026 18:42:59 +0000 (14:42 -0400)] 
kernel: bump 6.18 to 6.18.25

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

Manually rebased:
  generic/pending-6.18/795-09-net-ethernet-mtk_ppe-offload-flows-to-MxL862xx-switc.patch

All other patches automatically rebased via update_kernel.sh

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/22890
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: bump 6.18 to 6.18.24
John Audia [Wed, 22 Apr 2026 19:31:19 +0000 (15:31 -0400)] 
kernel: bump 6.18 to 6.18.24

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

Removed upstreamed:
  backport-6.18/710-02-v7.1-net-sfp-add-quirks-for-Hisense-and-HSGQ-GPON-ONT-SFP.patch[1]

All patches automatically rebased via update_kernel.sh

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.24&id=0a59c12ce50a768e84982b65cce9c33459ef72d0

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/22890
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: bump 6.18 to 6.18.23
John Audia [Sat, 18 Apr 2026 12:56:10 +0000 (08:56 -0400)] 
kernel: bump 6.18 to 6.18.23

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

Removed upstreamed:
  generic/pending-6.18/360-Revert-MIPS-mm-kmalloc-tlb_vpn-array-to-avoid-stack-.patch[1,2]
  generic/pending-6.18/361-Revert-MIPS-mm-Prevent-a-TLB-shutdown-on-initial-uni.patch[3]

All other patches automatically rebased via update_kernel.sh

Upstream fixed booting the RealTek MIPS 4KEc SoCs. The reverts are not
needed any more.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.23&id=ccc6a2241a49f68d8656ab1e10df377acfe2c5b4
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.23&id=6c600fc0e99180c7a1b91c93e359009be8b4cfc2
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.23&id=d8b281165a86041bb40e055eb79f735826d0df1b

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/22890
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agokernel: bump 6.18 to 6.18.22
John Audia [Mon, 13 Apr 2026 11:38:27 +0000 (07:38 -0400)] 
kernel: bump 6.18 to 6.18.22

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

Removed upstreamed:
  ramips/patches-6.18/100-mips-ralink-update-CPU-clock-index.patch[1]

Manually rebased:
  pending-6.18/361-Revert-MIPS-mm-Prevent-a-TLB-shutdown-on-initial-uni.patch

All patches automatically rebased.

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

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/22890
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agomediatek: nmbm fix for Huasifei WH3000 Pro NAND 23153/head
Fil Dunsky [Wed, 29 Apr 2026 12:57:17 +0000 (15:57 +0300)] 
mediatek: nmbm fix for Huasifei WH3000 Pro NAND

This commit adds missing nmbm parameters to device dts.

Before:
```
[   13.065277] ubi0 warning: ubi_eba_init: cannot reserve enough PEBs for bad PEB handling, reserved 36, need 40
[   13.184624] ubi0: attached mtd4 (name "ubi", size 226 MiB)
[   13.250170] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[   13.332343] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[   13.413459] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[   13.496659] ubi0: good PEBs: 1812, bad PEBs: 0, corrupted PEBs: 0
[   13.569460] ubi0: user volume: 3, internal volumes: 1, max. volumes count: 128
[   13.655780] ubi0: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 1717500926
[   13.764971] ubi0: available PEBs: 0, total reserved PEBs: 1812, PEBs reserved for bad PEB handling: 36
```

After:
```
[    0.939053] spi-nand spi0.0: Winbond SPI NAND was found.
[    0.944422] spi-nand spi0.0: 256 MiB, block size: 128 KiB, page size: 2048, OOB size: 128
[    0.953256] Signature found at block 2047 [0x0ffe0000]
[    0.958389] NMBM management region starts at block 1920 [0x0f000000]
[    0.966032] First info table with writecount 0 found in block 1920
[    0.975792] Second info table with writecount 0 found in block 1923
[    0.982076] NMBM has been successfully attached
[    0.986815] 5 fixed-partitions partitions found on MTD device spi0.0
[    0.993245] Creating 5 MTD partitions on "spi0.0":
[    0.998028] 0x000000000000-0x000000100000 : "BL2"
[    1.003825] 0x000000100000-0x000000180000 : "u-boot-env"
[    1.009867] 0x000000180000-0x000000380000 : "Factory"
[    1.016776] 0x000000380000-0x000000580000 : "FIP"
[    1.023109] 0x000000580000-0x00000e780000 : "ubi"
[    1.724925] ubi0: default fastmap pool size: 90
[    1.729444] ubi0: default fastmap WL pool size: 45
[    1.734256] ubi0: attaching mtd4
[    2.441513] ubi0: scanning is finished
[    2.451382] ubi0: attached mtd4 (name "ubi", size 226 MiB)
[    2.456876] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[    2.463753] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[    2.470528] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[    2.477481] ubi0: good PEBs: 1808, bad PEBs: 0, corrupted PEBs: 0
[    2.483567] ubi0: user volume: 3, internal volumes: 1, max. volumes count: 128
[    2.490775] ubi0: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 0
[    2.499114] ubi0: available PEBs: 0, total reserved PEBs: 1808, PEBs reserved for bad PEB handling: 38
```

Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23153
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agoca-certificates: update to 20260223 23155/head
Fengyu Wu [Wed, 29 Apr 2026 13:30:42 +0000 (21:30 +0800)] 
ca-certificates: update to 20260223

Debian changelog:

  * Update Mozilla certificate authority bundle to version 2.82
    The following certificate authorities were added (+):
    + TrustAsia TLS ECC Root CA
    + TrustAsia TLS RSA Root CA
    + SwissSign RSA TLS Root CA 2022 - 1
    + OISTE Server Root ECC G1
    +  OISTE Server Root RSA G1
    The following certificate authorities were removed (-):
    - GlobalSign Root CA
    - Entrust.net Premium 2048 Secure Server CA
    - Baltimore CyberTrust Root (closes: #1121936)
    - Comodo AAA Services root
    - XRamp Global CA Root
    - Go Daddy Class 2 CA
    - Starfield Class 2 CA
    - CommScope Public Trust ECC Root-01
    - CommScope Public Trust ECC Root-02
    - CommScope Public Trust RSA Root-01
    - CommScope Public Trust RSA Root-02
  * Use dh_usrlocal to create /usr/local/share/ca-certificates
    (closes: #1127100)

Signed-off-by: Fengyu Wu <saldry@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23155
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 weeks agorealtek: dsa: drop array from stp_get signature 23080/head
Markus Stockhausen [Fri, 24 Apr 2026 11:09:02 +0000 (13:09 +0200)] 
realtek: dsa: drop array from stp_get signature

Now that the stp_set() helpers have been refactored the stp_get()
helpers can be simplified. Drop the last array parameter. It is
no longer needed/evaluated by its callers.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/23080
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 weeks agorealtek: dsa: remove family_id check from xstp_state_set()
Markus Stockhausen [Fri, 24 Apr 2026 10:52:55 +0000 (12:52 +0200)] 
realtek: dsa: remove family_id check from xstp_state_set()

The rtldsa_port_xstp_state_set() function offers a generic interface
to its callers to set the bridge state of one port. While it calls
device specific helpers in the background it runs the data mapping
for each architecture with a family_id check on its own. So the
hardware abstraction is done in two places

- rtldsa_port_xstp_state_set() translates one half
- its helper translate the other half

Convert the signature of the device specific helpers so that this
function does not need to know any hardware details. Instead move
the table/offset/bit calculations into the helpers. This way the
code path uses a consistent hardware abstraction.

- rtldsa_port_xstp_state_set() calls the helpers
- helpers do the hardware translation

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/23080
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 weeks agosdk: add support to sign each .apk package by sdk 23104/head
Hannu Nyman [Sun, 26 Apr 2026 18:16:48 +0000 (21:16 +0300)] 
sdk: add support to sign each .apk package by sdk

Add support to signing each package's .apk file into SDK.
This adds into SDK the feature added by f20794a to the normal builds.

Currently SDK does not sign the compiled packages, causing untrusted
package errors at package installation. The reason is the logic of
defaulting to 'n' in BUILDBOT and 'y' elsewhere. As downloadable SDKs
are compiled by the buildbot, the option gets 'n' set as the default.
And the option is not among the few build options exposed in the SDK
menuconfig, so the user can't easily change it.

Enable the feature by default:

* Exclude the SIGN_EACH_PACKAGE option from sdk/convert-config.pl
* Default to 'y' and expose the option in the SDK config menu.

(Avoiding untrusted errors naturally requires the user to copy the
public key into the router, quite similar as with full builds.)

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Link: https://github.com/openwrt/openwrt/pull/23104
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
4 weeks agomicrochipsw: fix LAN8814 QSGMII soft reset
Robert Marko [Wed, 29 Apr 2026 09:35:45 +0000 (11:35 +0200)] 
microchipsw: fix LAN8814 QSGMII soft reset

Currently, moving from a port on one LAN8814 PHY package to another results
in a no traffic flowing on that new port.

It was tracked down to upstream change that fixed the issue that QSGMII
was soft reset on .config_init of each of 4 PHY-s in the package resulting
in a temporary traffic loss until QSGMII resynced.

However, it seems that the QSGMII soft reset timing is crucial and doing
the reset during probe only cause the QSGMII link to become partially
unsynced (Like 2 or 3 lanes are not synced).

So, add an upstream pending patch[1] to fix this, patch was modified as we
dont have the inband caps currently.

[1] https://patchwork.kernel.org/project/netdevbpf/patch/20260428134138.1741253-1-robert.marko@sartura.hr/

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
4 weeks agodropbear: require busybox pidof applet 23128/head
Ivan Romanov [Mon, 27 Apr 2026 13:43:53 +0000 (18:43 +0500)] 
dropbear: require busybox pidof applet

The dropbear init script uses pidof, but BusyBox may be built
without it. Add a Kconfig dependency on BUSYBOX_CONFIG_PIDOF
to ensure the applet is available at runtime.

Signed-off-by: Ivan Romanov <drizt72@zoho.eu>
Link: https://github.com/openwrt/openwrt/pull/23128
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agodnsmasq: require busybox pidof applet 23132/head
Ivan Romanov [Mon, 27 Apr 2026 16:32:57 +0000 (21:32 +0500)] 
dnsmasq: require busybox pidof applet

The dnsmasq init script uses pidof, but BusyBox may be built
without it. Add a Kconfig dependency on BUSYBOX_CONFIG_PIDOF
to ensure the applet is available at runtime.

Signed-off-by: Ivan Romanov <drizt72@zoho.eu>
Link: https://github.com/openwrt/openwrt/pull/23132
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agoipq50xx: add label-mac-device to Linksys MX5500 23134/head
Christoph Krapp [Mon, 27 Apr 2026 19:32:29 +0000 (21:32 +0200)] 
ipq50xx: add label-mac-device to Linksys MX5500

Add the label-mac-device alias to the device dts.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23134
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agobcm53xx: add ramdisk to FEATURES 22835/head
Rosen Penev [Tue, 28 Apr 2026 20:31:36 +0000 (13:31 -0700)] 
bcm53xx: add ramdisk to FEATURES

Cisco/Meraki mx64/mx65 targets require initramfs
( ramdisk) for install.
Add it to default target build.

Signed-off-by: Evan Jobling <evan.jobling at mslsc.com.au>
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22835
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agogeneric: overlay: disable OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW 23126/head
Shiji Yang [Mon, 27 Apr 2026 11:46:58 +0000 (19:46 +0800)] 
generic: overlay: disable OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW

The Kconfig symbol help text prompts:
  Disable this to get a possibly more secure configuration, but that
  might not be backward compatible with previous kernels.
  If backward compatibility is not an issue, then it is safe and
  recommended to say N here.

For OpenWrt, when updating firmware, we always update the kernel and
recreate the overlay partition. Therefore, compatibility is not a
problem.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23126
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
4 weeks agodropbear: don't spread conffiles across two packages 23041/head
Philip Prindeville [Tue, 21 Apr 2026 22:46:26 +0000 (16:46 -0600)] 
dropbear: don't spread conffiles across two packages

For some reason, /etc/config/dropbear is enumerated as a
conffile for dropbear packaging, but /etc/dropbear/ is
part of base-files packaging.  If you're an openssh-server
user, then you don't have this directory on your router in
any case.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
Link: https://github.com/openwrt/openwrt/pull/23041
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
4 weeks agoairoha: backport fixes merged in net upstream tree
Christian Marangi [Tue, 28 Apr 2026 18:09:03 +0000 (20:09 +0200)] 
airoha: backport fixes merged in net upstream tree

Airoha reported some bug in the TX/RX descriptor handling and PPE. Backport
the fix for such bug merged in net staging tree.

It's expected that these patch will be dropped in future minor kernel
version when submitted to stable staging tree.

All affected patch automatically refreshed.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
4 weeks agosunxi: drop support for 6.12
Zoltan HERPAI [Mon, 27 Apr 2026 13:02:27 +0000 (13:02 +0000)] 
sunxi: drop support for 6.12

Drop support for 6.12 by removing config and patches.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
4 weeks agosunxi: switch to 6.18
Zoltan HERPAI [Mon, 27 Apr 2026 13:02:57 +0000 (13:02 +0000)] 
sunxi: switch to 6.18

Make 6.18 the default kernel.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
4 weeks agorealtek: rtl930x: mcx3: specify RTL8224 reset GPIO 22966/head
Sven Eckelmann [Fri, 17 Apr 2026 07:46:13 +0000 (09:46 +0200)] 
realtek: rtl930x: mcx3: specify RTL8224 reset GPIO

The nRESET pins of the RTL8224 PHY on the MCX3 are wired to GPIO6 of the
SoC, but this was never described in the devicetree.

Commit c99a30668d5f ("realtek: add RTL8224 initialization to Realtek
driver") introduced support for reinitializing RTL8224 PHYs, and commit
084da38a2e74 ("realtek: mdio: activate multiple busses") allowed the MDIO
bus provider load the devicetree properties to the bus, including reset
descriptors. With both in place, a bus level PHY reset via the hardware pin
is now correctly triggered before reinitialization.

Add the missing reset-gpios property so the PHY can be reset via the
hardware pin.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Link: https://github.com/openwrt/openwrt/pull/22966
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agoramips: remove hack and use safexcel-eip93ies 22871/head
Mieczyslaw Nalewaj [Thu, 23 Apr 2026 15:13:34 +0000 (17:13 +0200)] 
ramips: remove hack and use safexcel-eip93ies

Remove legacy hack patch, switch mt7621 crypto node to the intended
Safexcel insecure EIP93 compatible string and simplify crypto module
packaging to use the inside-secure eip93 driver.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/22871
Signed-off-by: Nick Hainke <vincent@systemli.org>
4 weeks agoramips: drop 6.12 support
Mieczyslaw Nalewaj [Thu, 9 Apr 2026 20:51:47 +0000 (22:51 +0200)] 
ramips: drop 6.12 support

Drop patches and configs for Linux 6.12.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/22871
Signed-off-by: Nick Hainke <vincent@systemli.org>
4 weeks agoramips: use kernel 6.18 by default
Mieczyslaw Nalewaj [Thu, 9 Apr 2026 20:48:42 +0000 (22:48 +0200)] 
ramips: use kernel 6.18 by default

Switch to Linux kernel version 6.18.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/22871
Signed-off-by: Nick Hainke <vincent@systemli.org>
4 weeks agomold: Update to 2.41.0
Carsten Schuette [Mon, 27 Apr 2026 14:23:43 +0000 (16:23 +0200)] 
mold: Update to 2.41.0

Update mold to 2.41.0

Release notes:
https://github.com/rui314/mold/releases/tag/v2.41.0

Signed-off-by: Carsten Schuette <schuettecarsten@googlemail.com>
Link: https://github.com/openwrt/openwrt/pull/23129
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agonetifd: update to Git HEAD (2026-04-23)
Daniel Golle [Tue, 28 Apr 2026 00:37:38 +0000 (01:37 +0100)] 
netifd: update to Git HEAD (2026-04-23)

 e45b890 ethtool: avoid unneeded ioctl
 8c31959 system-linux: gate ethtool reapply on apply_mask
 1375538 device: live-apply pure-sysctl config changes without teardown
 5bddddb device: centralise device-attr diff handling in device_set_config
 18ba5f3 device: realign DEV_OPT_* bits with DEV_ATTR_* enum positions

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 weeks agokernel: backport crypto selftests 23012/head
Aleksander Jan Bajkowski [Wed, 28 Jan 2026 00:00:59 +0000 (01:00 +0100)] 
kernel: backport crypto selftests

FIPS 140-3 recommends that all crypto implementations should be tested
before first use. Testmanager performs initial tests based on existing
test vectors. Not all algorithms have defined test vectors, so to improve
this situation, this commit backports recently added test vectors for
some cipher suites.

These vectors were calculated using a software implementation and then
double-checked on Mediatek MT7981 (safexcel) and NXP P2020 (talitos).
Both platforms passed self-tests.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/23012
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 weeks agorealtek: mdio: convert to regmap_assign_bits() 23099/head
Markus Stockhausen [Sun, 26 Apr 2026 07:22:02 +0000 (09:22 +0200)] 
realtek: mdio: convert to regmap_assign_bits()

Use regmap_assign_bits() where it improves readability. With this
there is no need to calculate masks and values in separate lines.

Splitting the single update_bits() in rtmdio_931x_setup_polling()
into two separate assign_bits() is uncritical.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/23099
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 weeks agorealtek: arch: rtl-otto: add rtl9607 model info support 23023/head
Rustam Adilov [Mon, 20 Apr 2026 16:42:22 +0000 (21:42 +0500)] 
realtek: arch: rtl-otto: add rtl9607 model info support

Add the registers, family id and cpu port defines to the mach header.
Since RTL96xx SoCs has additional "subtype" info, add the respective
property to soc_info struct to be used in prom file.

The same way as rtl838x, the chip_info register requires 0xa to be
written. Similarly, 0xb must be written to get the subtype info.
There doesn't seem any check for testchip in RTL96xx so, we ignore it.

Add subtype information to set_system_type function if it is present
using the added subtype variable.

There are some RTL9607 chips out there with 512MB so add the check
for RTL9607 in the prepare_highmem. The registers are the same as
in RTL9300 so nothing else need to be changed.

Signed-off-by: Rustam Adilov <adilov@tutamail.com>
Link: https://github.com/openwrt/openwrt/pull/23023
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 weeks agorealtek: refresh 'add-pcs-rtl-otto' patch 23127/head
Jonas Jelonek [Mon, 27 Apr 2026 13:12:59 +0000 (13:12 +0000)] 
realtek: refresh 'add-pcs-rtl-otto' patch

Refresh the patch to account for recent changes in the generic kernel
patches. Makes the CI kernel patch check happy again.

Fixes: c271123724fc ("generic: 6.18: fix MediaTek USXGMII driver")
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23127
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agogeneric: 6.18: mtk_eth_soc: improve non-MTK tag_8021q DSA 23074/head
Daniel Golle [Thu, 23 Apr 2026 17:58:52 +0000 (18:58 +0100)] 
generic: 6.18: mtk_eth_soc: improve non-MTK tag_8021q DSA

Add patches to improve support for using 3rd-party DSA switches
like MaxLinear MxL862xx with MediaTek's mtk_eth_soc being the
conduit. This involves reorganizing hardware queues to avoid
overlap (currently dp->index is used -- if there is more than one
DSA switch this is problematic), and correctly programming flows
of the non-MTK DSA users ports in the PPE offloading engine.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 weeks agomodules: video: Fix DRM client lib dependency 23124/head
Paweł Owoc [Mon, 27 Apr 2026 11:57:28 +0000 (13:57 +0200)] 
modules: video: Fix DRM client lib dependency

Fix dependency for kmod-drm-client-lib module:
error: recursive dependency detected!
symbol LINUX_6_18 is selected by PACKAGE_kmod-drm-client-lib
symbol PACKAGE_kmod-drm-client-lib is selected by LINUX_6_18

Fixes: e75ba35ed837 ("modules: video: introduce DRM client setup module")
Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23124
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agobcm27xx: update irq-msi-lib.h header path 23125/head
Shiji Yang [Mon, 27 Apr 2026 11:42:55 +0000 (19:42 +0800)] 
bcm27xx: update irq-msi-lib.h header path

Fix build error:

drivers/irqchip/irq-bcm2712-mip.c:14:10: fatal error: irq-msi-lib.h: No such file or directory
   14 | #include "irq-msi-lib.h"
      |          ^~~~~~~~~~~~~~~

Fixes: ba7aa2a97153 ("generic: backport MSI affinity support for DW PCIe")
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23125
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agorealtek: pcs: rtl931x: drop USXGMII gating in setup_serdes 23120/head
Jonas Jelonek [Thu, 23 Apr 2026 11:28:45 +0000 (11:28 +0000)] 
realtek: pcs: rtl931x: drop USXGMII gating in setup_serdes

The USXGMII_10GDXGMII and USXGMII_10GQXGMII early-return was added
when the submode register was not yet programmed, making those modes
effectively unconfigurable. With the submode now wired up at probe
time and written from the set_mode path, the gating is no longer
needed.

Keep the XSGMII gate - RTL8218D/E bring-up through the proprietary
10G SGMII path is still unimplemented - and rewrite the surrounding
comment accordingly.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23120
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agorealtek: pcs: rtl93xx: add remaining USXGMII submodes
Jonas Jelonek [Thu, 23 Apr 2026 11:29:44 +0000 (11:29 +0000)] 
realtek: pcs: rtl93xx: add remaining USXGMII submodes

Complete the USXGMII submode table with the four values that were
missing so far:

  0x01  10GDX    (2 x 5G)
  0x03  5GSX     (1 x 5G)
  0x04  5GDX     (2 x 2.5G)
  0x05  2_5GSX   (1 x 2.5G)

Together with the existing 10GSX (0x00) and 10GQX (0x02) this covers
all six USXGMII modes the driver declares. Add a corresponding mapping
to the hw_mode table too to cover them properly there.

Replace the switch in rtpcs_93xx_sds_apply_usxgmii_submode() with a
sparse lookup table indexed by hw_mode, using -1 as the sentinel for
modes without a submode value. Non-USXGMII modes silently no-op as
before; a USXGMII mode hitting a SerDes without an allocated submode
register now returns -EOPNOTSUPP, catching configuration mismatches
that would previously have been silently dropped.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23120
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agorealtek: pcs: rtl931x: enable USXGMII submode selection
Jonas Jelonek [Thu, 23 Apr 2026 11:07:24 +0000 (11:07 +0000)] 
realtek: pcs: rtl931x: enable USXGMII submode selection

USXGMII submode (10GSX vs 10GQX) is selected through a dedicated
register at 0x13e8, independent of the MAC and IP mode registers.
Without programming it, USXGMII-QX ports initialise as single-lane
SX and fail to link up correctly; MAC and IP mode alone are
insufficient for a working USXGMII setup.

The register packs 12 x 5-bit entries for SerDes 2..13, six per
32-bit word, non-straddling (bits 0..29 used, 30..31 padded). This
matches the available register dumps and the SDK's
reg_array_field_write() non-CROSS_REGISTERS path, which derives the
bit position as ((index - larray) % (32 / width)) * width and
accesses only a single 32-bit word. The submode values are identical
to RTL930x, so the shared RTPCS_93XX_SDS_USXGMII_SUBMODE_* defines
are reused.

Allocate the regmap_field at probe time with coordinates computed
from the SerDes ID; the regular packing needs no lookup table. Call
rtpcs_93xx_sds_apply_usxgmii_submode() from the set_mode dispatcher
after set_ip_mode - the helper's null-guard and mode filter leave
non-USXGMII paths unchanged.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23120
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agoramips: wn575a3: fix eeprom size for 5ghz wifi 22463/head
Rosen Penev [Tue, 17 Mar 2026 05:17:14 +0000 (22:17 -0700)] 
ramips: wn575a3: fix eeprom size for 5ghz wifi

MT7613 uses 4da8 for eeprom size. eeprom + calibration.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22463
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agorefpolicy: update to 2.20260312 23082/head
Alexandru Ardelean [Fri, 24 Apr 2026 09:17:01 +0000 (12:17 +0300)] 
refpolicy: update to 2.20260312

Changelog:
  This release consists mainly of small fixes in the policy.

  New Modules:
  - ofono
  - pd_mapper
  - tee_supplicant
  - xdsprpcd
  - wayland

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
Link: https://github.com/openwrt/openwrt/pull/23082
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agosecilc: update to 3.10
Alexandru Ardelean [Fri, 24 Apr 2026 11:05:00 +0000 (14:05 +0300)] 
secilc: update to 3.10

Release Notes:
https://github.com/SELinuxProject/selinux/wiki/Releases#release-310

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
Link: https://github.com/openwrt/openwrt/pull/23082
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agopolicycoreutils: update to 3.10
Alexandru Ardelean [Fri, 24 Apr 2026 11:05:00 +0000 (14:05 +0300)] 
policycoreutils: update to 3.10

Release Notes:
https://github.com/SELinuxProject/selinux/wiki/Releases#release-310

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
Link: https://github.com/openwrt/openwrt/pull/23082
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agocheckpolicy: update to 3.10
Alexandru Ardelean [Fri, 24 Apr 2026 11:05:00 +0000 (14:05 +0300)] 
checkpolicy: update to 3.10

Release Notes:
https://github.com/SELinuxProject/selinux/wiki/Releases#release-310

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
Link: https://github.com/openwrt/openwrt/pull/23082
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agolibsemanage: update to 3.10
Alexandru Ardelean [Fri, 24 Apr 2026 11:05:00 +0000 (14:05 +0300)] 
libsemanage: update to 3.10

Release Notes:
https://github.com/SELinuxProject/selinux/wiki/Releases#release-310

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
Link: https://github.com/openwrt/openwrt/pull/23082
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agolibselinux: update to 3.10
Alexandru Ardelean [Fri, 24 Apr 2026 11:04:55 +0000 (14:04 +0300)] 
libselinux: update to 3.10

Release Notes:
https://github.com/SELinuxProject/selinux/wiki/Releases#release-310

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
Link: https://github.com/openwrt/openwrt/pull/23082
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agolibsepol: update to 3.10
Alexandru Ardelean [Fri, 24 Apr 2026 11:04:52 +0000 (14:04 +0300)] 
libsepol: update to 3.10

Release Notes:
https://github.com/SELinuxProject/selinux/wiki/Releases#release-310

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
Link: https://github.com/openwrt/openwrt/pull/23082
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agotoolchain: gcc: fix include memory against GCC 16
Lars Gierth [Sat, 25 Apr 2026 15:33:06 +0000 (17:33 +0200)] 
toolchain: gcc: fix include memory against GCC 16

This patch backports a small but important part of the upstream commit:

b3f1b9e2aa07 build: Remove INCLUDE_MEMORY [PR117737]

Its original commit message fails to mention that the commit also moves
the `#include <memory>` to an earlier position within system.h,
which is the actual change that we're after in this patch.

Building our GCC 14.3 with host GCC 16, the inclusion order starts to matter,
which is an issue that was also touched upon by the upstream commits:

9970b576b7e4 Include safe-ctype.h after C++ standard headers, to avoid over-poisoning
f6e00226a4ca build: Move sstream include above safe-ctype.h {PR117771]

Signed-off-by: Lars Gierth <larsg@systemli.org>
Link: https://github.com/openwrt/openwrt/pull/23095
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agorealtek: dsa: postpone probe due to deferred PHYs 23075/head
Sven Eckelmann [Tue, 7 Apr 2026 07:14:25 +0000 (09:14 +0200)] 
realtek: dsa: postpone probe due to deferred PHYs

PHY drivers might need access to NVMEM or the filesystem to load
calibration/initialization data. The driver will then return -EPROBE_DEFER
to signal to the device core that the probe should be retried multiple
times again in the 10s driver_deferred_probe_timeout.

But when the switch driver calls dsa_register_switch(), it needs to connect
the PHYs directly. As result, all PHYs without an driver will automatically
get the default driver (either `genphy_c45_driver` or `genphy_driver`)
assigned and initialized. But for PHYs with the additional initialization
data from NVMEM/fs, this will usually result in not working PHYs.

Since there are Realtek based boards with RTL826x PHYs and the new driver
loads the initialization/patch values from rootfs, it is necessary to check
in the beginning of the probe function whether the PHYs are ready and the
probing can continue.

If some driver is still without driver after the deferred probe period
ended, the loading will just continue and the generic PHY drivers will
still be used.

Closes: #22811
Co-authored-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Co-authored-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Link: https://github.com/openwrt/openwrt/pull/23075
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agorealtek: pcs: rtl93xx: add shared MAC mode wrapper 23040/head
Jonas Jelonek [Wed, 22 Apr 2026 07:39:58 +0000 (07:39 +0000)] 
realtek: pcs: rtl93xx: add shared MAC mode wrapper

RTL930x and RTL931x share a set of extras around MAC mode writes:

 - a post-write delay (kept for consistency with the original RTL930x
   behaviour; harmless on RTL931x)
 - the force-mode bit (RTL931x only, nullable field)

Add rtpcs_93xx_sds_set_mac_mode() as a shared wrapper around the
generic rtpcs_sds_set_mac_mode() that applies each of these extras
unconditionally; the nullable field makes the force-bit write a no-op
on RTL930x.

Route the three RTL93xx call sites (the 930x and 931x set_mode
dispatchers, and 931x set_ip_mode's OFF transition) through the
wrapper, removing the duplicated force-bit handling from each.

The USXGMII submode write stays out of the wrapper and is called
explicitly from the 930x dispatcher via rtpcs_93xx_sds_apply_usxgmii_submode().
Keeping submode as a separate step leaves room for RTL931x to apply it
from its IP-mode path once the submode register is wired up, without
retrofitting a MAC-mode wrapper with side effects.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23040
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agorealtek: pcs: rtl931x: migrate MAC mode setting to regmap_field
Jonas Jelonek [Mon, 20 Apr 2026 20:26:12 +0000 (20:26 +0000)] 
realtek: pcs: rtl931x: migrate MAC mode setting to regmap_field

RTL931x uses a regular 8-bit-per-SerDes layout in SERDES_MODE_CTRL, so
the reg_field can be computed in the probe hook with simple arithmetic.

The 8-bit-per-SerDes field is split into a 7-bit mac_mode (bits 0..6)
and a 1-bit mac_mode_force (bit 7), each written independently via its
own regmap_field. The mac_mode is widened to 7 bits (rather than the
5 bits strictly needed for the mode value) so MAC mode writes also
clear bit 5 (FEC enable) and bit 6 (10G speedup), matching the original
behaviour where the full 8-bit mask cleared these bits on every mode
change. FEC and speedup are mode-dependent and not yet programmed by
the driver; keeping them cleared leaves headroom for future support
without changing the effective register value.

rtpcs_931x_sds_reset() is updated to save and restore both fields
across the off/on cycle, preserving the original force-bit handling.
rtpcs_931x_sds_set_mode() uses the generic rtpcs_sds_set_mac_mode() and
sets the force bit explicitly; the same sequence also appears in
rtpcs_931x_sds_set_ip_mode()'s OFF transition. Both are folded into
the shared RTL93xx wrapper in a later commit.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23040
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agorealtek: pcs: rtl930x: migrate MAC mode setting to regmap_field
Jonas Jelonek [Mon, 20 Apr 2026 20:15:46 +0000 (20:15 +0000)] 
realtek: pcs: rtl930x: migrate MAC mode setting to regmap_field

RTL930x packs 5-bit mode fields across four registers at irregular
positions. Express this as a static reg_field table indexed by SerDes
ID; the probe hook allocates the corresponding regmap_field. The
USXGMII submode register follows the same pattern with its own
reg_field table, allocated only for 10G-capable SerDes (id 2..9).

The generic rtpcs_sds_set_mac_mode() replaces the old
__rtpcs_930x_sds_set_mac_mode() helper. The previous behaviour of
writing OFF before the target mode is intentionally dropped — it was
RTL930x-specific and not required by the hardware.

The variant-level rtpcs_930x_sds_set_mode() is kept as a pure dispatch
between the IP mode path (set_ip_mode) and the MAC mode path. The
USXGMII submode write is factored into rtpcs_93xx_sds_apply_usxgmii_submode(),
which derives the submode value from hw_mode and no-ops on SerDes
without the submode register.

The __rtpcs_930x_sds_get_mac_mode() and __rtpcs_930x_sds_get_usxgmii_submode()
helpers are dropped. They were __always_unused and depended on the
removed parallel arrays. A future get_mode path will be added if a
caller needs it, likely mirroring the setter's wrapper shape.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23040
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agorealtek: pcs: rtl839x: migrate MAC mode setting to regmap_field
Jonas Jelonek [Mon, 20 Apr 2026 19:43:05 +0000 (19:43 +0000)] 
realtek: pcs: rtl839x: migrate MAC mode setting to regmap_field

RTL839x packs the SerDes MAC mode in MAC_SERDES_IF_CTRL with a regular
per-SerDes layout, so the regmap_field can be computed directly in the
probe hook rather than declared as a static table.

Mode values (currently only OFF and QSGMII) move into a static
rtpcs_839x_sds_hw_mode_vals[] table. Values for 100BASEX, 1000BASEX
and SGMII from the vendor SDK are kept as comments for future
reference — they are not yet exercised here.

With no variant-specific extras (no force bit, no companion register,
no submode), rtpcs_839x_sds_set_mode() is removed; setup_serdes calls
the generic rtpcs_sds_set_mac_mode() directly.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23040
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agorealtek: pcs: rtl838x: migrate MAC mode setting to regmap_field
Jonas Jelonek [Mon, 20 Apr 2026 19:35:13 +0000 (19:35 +0000)] 
realtek: pcs: rtl838x: migrate MAC mode setting to regmap_field

Replace rtpcs_838x_sds_set_mode()'s inline shift/mask arithmetic with
a regmap_field computed and allocated at probe time. The field layout
is regular (5-bit per SerDes, reverse-packed in SDS_MODE_SEL), so the
position can be derived arithmetically from the SerDes ID rather than
declared in a table.

The function keeps its wrapper role because SerDes 4 and 5 have a
second companion register (INT_MODE_CTRL) with its own per-mode value
encoding. Since RTL838x is the only variant with this quirk and the
register is written from only one call site, it is kept inline rather
than abstracted into its own config table.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23040
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agorealtek: pcs: add regmap-based MAC mode infrastructure
Jonas Jelonek [Mon, 20 Apr 2026 19:20:49 +0000 (19:20 +0000)] 
realtek: pcs: add regmap-based MAC mode infrastructure

All four Realtek PCS variants (RTL838x, RTL839x, RTL930x, RTL931x)
configure the SerDes MAC mode by writing a register field whose layout
varies per variant — different base registers, different bit positions,
and in some cases per-SerDes packing that isn't arithmetically regular.

Add the common infrastructure to express this uniformly:

 - per-SerDes regmap_field pointers in a new 'swcore_regs' anonymous
   struct on rtpcs_serdes: mac_mode, mac_mode_force (931x only, nullable)
   and usxgmii_submode (930x only, nullable).

 - a per-variant mode-value table pointer (sds_hw_mode_vals) on
   rtpcs_config, keyed by enum rtpcs_sds_mode. Values are s16 with -1 as
   the "unsupported" sentinel — u8 with 0 would collide with RTL839x's
   OFF value (0x0).

 - a generic rtpcs_sds_set_mac_mode() that looks up the value for the
   requested mode and writes it via the regmap_field.

Variant-specific extras (post-write delay, force bit, companion register
writes, USXGMII submode handling) will be added in per-variant wrappers
in the following commits.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23040
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agokirkwood: switch to 6.18 kernel 22680/head
Pawel Dembicki [Sun, 29 Mar 2026 20:22:14 +0000 (22:22 +0200)] 
kirkwood: switch to 6.18 kernel

This target is not popular among active developers.
If nobody is using the testing kernel, this phase is pointless.

Switch this niche target to kernel 6.18 for testing.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22680
Signed-off-by: Linus Walleij <linusw@kernel.org>
4 weeks agokirkwood: kernel: 6.18: refresh config
Pawel Dembicki [Sun, 29 Mar 2026 20:20:41 +0000 (22:20 +0200)] 
kirkwood: kernel: 6.18: refresh config

Done by `kernel_oldconfig`.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22680
Signed-off-by: Linus Walleij <linusw@kernel.org>
4 weeks agokernel/kirkwood: restore files for v6.12
Pawel Dembicki [Sat, 28 Mar 2026 22:39:16 +0000 (23:39 +0100)] 
kernel/kirkwood: 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: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22680
Signed-off-by: Linus Walleij <linusw@kernel.org>
4 weeks agokernel/kirkwood: create files for v6.18 (from v6.12)
Pawel Dembicki [Sat, 28 Mar 2026 22:39:16 +0000 (23:39 +0100)] 
kernel/kirkwood: 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: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22680
Signed-off-by: Linus Walleij <linusw@kernel.org>
4 weeks agogeneric: 6.18: add and fix support for Aquantia PHYs
Daniel Golle [Mon, 27 Apr 2026 00:52:38 +0000 (01:52 +0100)] 
generic: 6.18: add and fix support for Aquantia PHYs

Add support for Aquantia CUX3410 and fix/sync support for the AQR112
variants.

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