]> git.ipfire.org Git - thirdparty/openwrt.git/log
thirdparty/openwrt.git
4 weeks agogeneric: mxl862xx: allow CPU/SerDes ports to probe on firmware < 1.0.84 23664/head
Aliaksandr Babrykovich [Fri, 5 Jun 2026 08:16:44 +0000 (10:16 +0200)] 
generic: mxl862xx: allow CPU/SerDes ports to probe on firmware < 1.0.84

The firmware-version gate in mxl862xx_phylink_get_caps() leaves
config->supported_interfaces empty for the CPU/SerDes ports (9, 13) when
the switch runs firmware older than 1.0.84. phylink rejects an empty
supported_interfaces bitmap, so the switch fails to probe at all:

  mxl862xx mdio-bus:10: switch ready after 2480ms, firmware 1.0.70 (build 70)
  mxl862xx mdio-bus:10: phylink: error: empty supported_interfaces
  error creating PHYLINK: -22
  mxl862xx mdio-bus:10: probe with driver mxl862xx failed with error -22

This regresses boards still shipping the older vendor firmware (e.g. the
BananaPi BPi-R4 Pro 8X, which ships 1.0.70) where all LAN ports disappear.

Ungate only the CPU/SerDes ports (9, 13) so the switch probes and the user
can update the firmware; ports 10..12 and 14..16 stay gated as they are
genuinely unsupported by the old firmware.

Tested on a BPi-R4 Pro 8X with switch firmware 1.0.70 (kernel 6.18); the
6.12 patch receives the identical change for parity.

Fixes: 028dc3f57a6f ("generic: 6.18: update MxL862xx DSA switch driver")
Fixes: 5b69e6a4a658 ("generic: 6.12: update MxL862xx DSA switch driver")
Signed-off-by: Aliaksandr Babrykovich <abobrikovich@gmail.com>
[refreshed patches]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 weeks agouboot-mediatek: migrate memsize cmd to the upstream implementation 22848/head
Shiji Yang [Tue, 9 Jun 2026 12:12:56 +0000 (20:12 +0800)] 
uboot-mediatek: migrate memsize cmd to the upstream implementation

The upstream repository accepted a newer patch revision[1].

[1] https://github.com/u-boot/u-boot/commit/e202eca183b0f1d6747b934482dc6249abdd742b
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
4 weeks agouboot-mediatek: drop redundant TOOLS_LIBCRYPTO symbol hack
Shiji Yang [Fri, 10 Apr 2026 11:00:26 +0000 (19:00 +0800)] 
uboot-mediatek: drop redundant TOOLS_LIBCRYPTO symbol hack

This symbol was already disabled via UBOOT_CUSTOMIZE_CONFIG.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
4 weeks agouboot-mediatek: use kernel DTC on mediatek ARM targets
Shiji Yang [Fri, 10 Apr 2026 11:00:26 +0000 (19:00 +0800)] 
uboot-mediatek: use kernel DTC on mediatek ARM targets

The u-boot build for mediatek ARM SoCs doesn't require pylibfdt. We
can use pre-build kernel DTC to save some build time.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
4 weeks agouboot-mediatek: update to v2026.04
Shiji Yang [Fri, 10 Apr 2026 11:00:25 +0000 (19:00 +0800)] 
uboot-mediatek: update to v2026.04

Remove upstreamed patches:
  001-pinctrl-mediatek-MT7981-fix-GPIO9-register-map.patch [1]
  010-clk-mediatek-mt7622-fix-infracfg-and-pericfg-clock-o.patch [2]

We also need to backport two new patches from v2026.07-rc2 to address
the yaml build error[3] and MT7621 boot issue[4].

[1] https://github.com/u-boot/u-boot/commit/a1d1fc8d8c8699d80e1b9ab3214752e5882d3740
[2] https://github.com/u-boot/u-boot/commit/52d84fccfd7d8b99e91a70192eec8e0379d63b4b
[3] https://github.com/u-boot/u-boot/commit/8ef8dee4f3a2b2021decfefd853dbd2a1632b77f
[4] https://github.com/u-boot/u-boot/commit/de79075f0f6b8795d1f9e30ff36435583b1a119a
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
4 weeks agouboot-mediatek: drop upstreamed patch
Shiji Yang [Fri, 10 Apr 2026 11:00:25 +0000 (19:00 +0800)] 
uboot-mediatek: drop upstreamed patch

Patch 280 was already included in u-boot v2022.07.

Link: https://github.com/u-boot/u-boot/commit/5f2d5915f8ea4785bc2b8a26955e176a7898c15b
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Suggested-by: Daniel Golle <daniel@makrotopia.org>
4 weeks agoath79: mikrotik: also compile AG71XX_LEGACY as a module 23748/head
Michał Kępień [Fri, 12 Jun 2026 07:28:03 +0000 (09:28 +0200)] 
ath79: mikrotik: also compile AG71XX_LEGACY as a module

Commit 9091c9f8cbd9 ("ath79: mikrotik: compile SWCONFIG and AR8216_PHY
as modules") caused the hybrid PHY/MDIO ar8xxx driver to be built as a
module instead of built-in.  On at least MikroTik RouterBOARD 951G-2HnD,
this prevents the kernel from binding the correct PHY driver at boot
because the ar8xxx driver is not yet available when the MDIO bus is
probed:

  - before:

    ag71xx-legacy 19000000.eth: invalid MAC address, using random address
    switch0: Atheros AR8327 rev. 4 switch registered on mdio.0
    ag71xx-legacy 19000000.eth: connected to PHY at mdio.0:00 [uid=004dd034, driver=Atheros AR8216/AR8236/AR8316]
    eth0: Atheros AG71xx at 0xb9000000, irq 4, mode: rgmii

  - after:

    ag71xx-legacy 19000000.eth: invalid MAC address, using random address
    ag71xx-legacy 19000000.eth: connected to PHY at mdio.0:00 [uid=004dd034, driver=Generic PHY]
    eth0: Atheros AG71xx at 0xb9000000, irq 4, mode: rgmii

As the PHY is already bound to the fallback "Generic PHY" driver when
the ar8xxx module is loaded, the switch remains non-functional and the
router has no network connectivity.

Fix by also compiling the MAC driver (ag71xx-legacy) as a module,
deferring switch initialization until control is transferred to
userspace during boot.  The configured module autoload priorities
(ar8xxx: 43, ag71xx-legacy: 50) ensure that the ar8xxx driver is loaded
before ag71xx-legacy.

Fixes: https://github.com/openwrt/openwrt/issues/23739
Fixes: 9091c9f8cbd9 ("ath79: mikrotik: compile SWCONFIG and AR8216_PHY as modules")
Suggested-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Michał Kępień <openwrt@kempniu.pl>
Link: https://github.com/openwrt/openwrt/pull/23748
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agorealtek: pcs: rtl838x: drop redundant reset writes 23746/head
Jonas Jelonek [Thu, 11 Jun 2026 22:05:16 +0000 (22:05 +0000)] 
realtek: pcs: rtl838x: drop redundant reset writes

Sometimes redundancy is so obvious that one likely misses it. Trying to
bring all SerDes setup into a unified shape, one thinks twice if
something is really needed or not.

For the RTL838x case, the single writes for take/release reset were still
an outlier. Looking closer at them one can see that the same bits are all
covered already in deactivate/activate. So before, they have been put
into the desired state but those outlier writes mess with them again.

[0, 3, 0x7146/0x7106] just deals with the SOFT_RST bit that is already
covered by rtpcs_838x_sds_reset.

[0, 0, 0xc00] touches multiple bits, amongst the EN_RX/EN_TX bits
already covered in deactivate/active. Moreover, it potentially forces
other bits into a state causing broken functionality, e.g.
INV_HSI/INV_HSO which deal with the polarity. This has no effect right
no right now but might be a latent issue in the future.

Also move the reset call down to the end of the function, doing a
soft/RX reset after every configuration is done. This is likely what the
SDK also intended, and mirrors the 839x behavior.

Link: https://github.com/openwrt/openwrt/pull/23746
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agorealtek: pcs: rtl838x: replace literal with macro
Jonas Jelonek [Thu, 11 Jun 2026 18:40:32 +0000 (18:40 +0000)] 
realtek: pcs: rtl838x: replace literal with macro

Replace 0 with MII_BMCR because in this context, it maps cleanly to
normal PHY register structure. BMCR_PDOWN is already used there to show
which bits are set.

Link: https://github.com/openwrt/openwrt/pull/23746
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agodnsmasq: update to 2.93 23669/head
John Audia [Fri, 5 Jun 2026 16:48:56 +0000 (12:48 -0400)] 
dnsmasq: update to 2.93

Changelog: https://github.com/imp/dnsmasq/blob/master/CHANGELOG#L1-L35

Removed upstreamed patches:
- 001-CVE-2026-2291.patch
- 002-CVE-2026-4890.dnsmasq-2.92.patch
- 003-CVE-2026-4891.patch
- 004-CVE-2026-4892.patch
- 005-CVE-2026-4893.patch
- 006-CVE-2026-5172.patch

All other patches rebased.

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/23669
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoath79: ws-ap3610: assign MAC address with nvmem 23146/head
Rosen Penev [Tue, 28 Apr 2026 21:52:29 +0000 (14:52 -0700)] 
ath79: ws-ap3610: assign MAC address with nvmem

Userspace handling is deprecated.

As with all ws-ap devices, a redundant u-boot environment is used.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23146
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agorealtek: pcs: rtl838x: merge and simplify patching 23741/head
Jonas Jelonek [Sat, 6 Jun 2026 21:03:07 +0000 (21:03 +0000)] 
realtek: pcs: rtl838x: merge and simplify patching

Reduce the per-SerDes patching to a per-mode patching since they share a
lot of similarities, especially for QSGMII.

For fiber patching, the differences are bigger. This takes an approach
to merge the sequences completely despite applying some settings which
weren't applied before on one of the SerDes. Testing and SerDes dumps
showed no or minimal differences, and no practical effect on
functionality. A look at the SerDes register documentation we have shows
reordering the writes isn't problematic because most of the bits aren't
any trigger bits.

With all its users gone, we can now drop also the workaround SDS macro.

Link: https://github.com/openwrt/openwrt/pull/23741
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agorealtek: pcs: rtl838x: carve out writes for SerDes 0/1
Jonas Jelonek [Thu, 11 Jun 2026 08:28:27 +0000 (08:28 +0000)] 
realtek: pcs: rtl838x: carve out writes for SerDes 0/1

For an attempt to simplify and reduce patching, carve out two special
writes for SerDes 0/1. While their exact purpose isn't fully known, they
need to match to make QSGMII on those two SerDes work. In order to be
able to merge the per-SerDes QSGMII patching sequences, carve them out
to the patching function one level above.

Link: https://github.com/openwrt/openwrt/pull/23741
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agorealtek: pcs: rtl838x: set mode after patching
Jonas Jelonek [Sat, 6 Jun 2026 19:17:32 +0000 (19:17 +0000)] 
realtek: pcs: rtl838x: set mode after patching

In order to have a unified SerDes setup sequence, align RTL838x to all
other variants. Set the mode after patching has been applied. Testing on
devices showed the order is rather irrelevant.

Link: https://github.com/openwrt/openwrt/pull/23741
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agorealtek: pcs: rtl838x: carve out latching writes
Jonas Jelonek [Sat, 6 Jun 2026 17:09:24 +0000 (17:09 +0000)] 
realtek: pcs: rtl838x: carve out latching writes

Carve out two latching writes present in all patching sequences at the
end. They are redundant and can be moved to the caller.

Link: https://github.com/openwrt/openwrt/pull/23741
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agorealtek: pcs: rtl838x: fold lane enables and fiber path into {de,}activate
Jonas Jelonek [Wed, 22 Apr 2026 13:54:15 +0000 (13:54 +0000)] 
realtek: pcs: rtl838x: fold lane enables and fiber path into {de,}activate

Expand the 838x deactivate/activate helpers to also cover the analog lane
enables (REG0 EN_RX/EN_TX) and the fiber path power-down (FIB_REG0
CFG_FIB_PDOWN), which are operational-state concerns rather than reset
concerns:

 - _deactivate: clear EN_RX/EN_TX and set CFG_FIB_PDOWN in addition to
   block-level power off.
 - _activate: clear CFG_FIB_PDOWN and set EN_RX/EN_TX before block-level
   power on. The pulse-start EN=0 is omitted since _deactivate already
   established EN=0 and nothing in between touches REG0[1:0].

Shrink rtpcs_838x_sds_reset() accordingly: it now owns only the SOFT_RST
toggle, making it a pure digital reset primitive. The stale "SerDes %d
reset" dev_info was dropped along with the analog/fiber writes.

Behavioural note: the EN and FIB_PDOWN writes now happen *after* the
SOFT_RST release inside rtpcs_838x_sds_reset(), rather than before it as
in the old combined sds_reset. This creates a brief window where the
SerDes is out of digital reset with lanes still disabled, before
activate re-enables them. Consistent with the new
power_off/deactivate -> configure -> reset -> activate/power_on phase
structure, but diverges from the SDK ordering (EN pulse before SOFT_RST
release). Testing on real hardware shows no difference.

Link: https://github.com/openwrt/openwrt/pull/23741
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agorealtek: support Teltonika TSW202 21003/head
Patrick Grimm [Thu, 11 Jun 2026 17:52:05 +0000 (19:52 +0200)] 
realtek: support Teltonika TSW202

Add support for TSW202 PoE switch. This is an RTL8380 based switch
with two SFP slots, and 8 PoE 802.3af one every RJ-45 port.

The max budget is 240W.
The vendor firmware configures the PSE
with a per-port budget of 30.0W.

Specifications:
---------------
* SoC:       Realtek RTL8380M
* Flash:     16 MiB SPI NOR W25Q80RV, 8Mb_Serial_Flash, low_power
* RAM:       128 MiB Winbond W631GG8NB 151
* Ethernet:  8x 10/100/1000 Mbps with PoE
             2x SFP slots
* Buttons:   1 "Reset" button on front panel
* Power:     48V-54V DC barrel jack
* UART:      1 serial header with terminal on the back side.
             With ground, rx, tx, and 3.3V
* PoE:       2 XS2184
* LED:       2 i2c SL74HC164

Works:
------
  - (8) RJ-45 ethernet ports
  - (2) SFP with ethernet or fiber
  - Switch functions

TODO:
------
  - LEDs are always on
  - Power-over-Ethernet are always on

Install via web interface:
-------------------------

The openwrt firmware will not accept and flash the sysupgrade image.

It is recommended to flash with sysupgrade -n -f over ssh.

Dokumantation, Bootlogs, and Fotos can be found on

https://git.f2a.space/patrick/openwrt-24.10-tsw202/-/wikis/home

Signed-off-by: Patrick Grimm <patrick@lunatiki.de>
Link: https://github.com/openwrt/openwrt/pull/21003
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agokernel: backport rtl8365mb DSA driver improvements 23738/head
Luiz Angelo Daros de Luca [Sat, 16 May 2026 16:32:04 +0000 (18:32 +0200)] 
kernel: backport rtl8365mb DSA driver improvements

Backport several fixes and enhancements for the rtl8365mb DSA driver
from upstream.

The backport includes the following changes:
- Fix for rtl8_4 tag (from v7.1)
- VLAN and Forwarding offload (from v7.2)

Before this backport, all bridge forwarding was handled by the CPU,
causing a significant performance drop between LAN ports, similar
to standard WAN/LAN routing. Enabling hardware forwarding offload
alleviates CPU overhead and restores line-rate switching performance.

Link: https://patch.msgid.link/20260408-realtek_fixes-v1-0-915ff1404d56@gmail.com
Link: https://patch.msgid.link/20260606-realtek_forward-v13-0-b9e409687cbe@gmail.com
Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23738
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agoqualcommbe: kiwi: include Realtek PHY kmod and RTL8261N firmware
Robert Marko [Thu, 11 Jun 2026 11:33:09 +0000 (13:33 +0200)] 
qualcommbe: kiwi: include Realtek PHY kmod and RTL8261N firmware

Since 6.18 RTL8261N support was added to the generic Realtek PHY driver
and was dropped from the downstream driver.

So, fix the missing RTL8261N support by including the Realtek PHY kmod
and the relevant firmware.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
4 weeks agoqualcommbe: ipq95xx: 6.18: refresh config
Robert Marko [Thu, 11 Jun 2026 11:32:27 +0000 (13:32 +0200)] 
qualcommbe: ipq95xx: 6.18: refresh config

Refresh the really outdated kernel config.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
4 weeks agoscripts: dhcp/dhcpv6: handling of invalid client ID values 23662/head
Shine [Sun, 31 May 2026 13:16:09 +0000 (15:16 +0200)] 
scripts: dhcp/dhcpv6: handling of invalid client ID values

Verify and clean up client ID and global DUID config values before use, in
order to prevent DHCP client malfunction and loss of IPv4 and/or IPv6
connectivity.

- Accept common separators in the string (colon, dash, spaces/tabs, lf)
- Ignore invalid values (non-hex or odd-numbered length)
- Log a warning for invalid settings

The fall back mechanism is as follows:

If a (user-configured) network.<ifname>.clientid setting is found invalid,
ignore and fall back to using network.globals.dhcp_default_duid. In case
that's also invalid (e.g. has been tampered with), don't pass a client
ID to updhc/odhcpc. In that case, udhcpc/odhcpc will use their defaults,
which currently is the i/f MAC address resp. the i/f DUID-LL.

Only error handling is introduced, no behavior change for valid settings.

Signed-off-by: Shine <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23662
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agoipq40xx: remove ethernet0 alias 22550/head
Rosen Penev [Sat, 21 Mar 2026 01:19:37 +0000 (18:19 -0700)] 
ipq40xx: remove ethernet0 alias

Not needed when using nvmem. All others left alone.

Move some swport nvmem definitions to the root gmac to avoid a
randomized MAC address for the GMAC. The former inherits from the latter anyway.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22550
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoath79: iodata etg3-r: set eth MAC in dts 21119/head
Rosen Penev [Tue, 9 Dec 2025 00:49:32 +0000 (16:49 -0800)] 
ath79: iodata etg3-r: set eth MAC in dts

Userspace handling is deprecated. WAN stuff needs to remain as no DSA
yet.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21119
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agonvram: use strdup 22370/head
Rosen Penev [Mon, 23 Feb 2026 02:06:07 +0000 (18:06 -0800)] 
nvram: use strdup

No need for malloc + strcpy.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22370
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agonvram: move variable assignment out of if
Rosen Penev [Sun, 22 Feb 2026 21:08:16 +0000 (13:08 -0800)] 
nvram: move variable assignment out of if

More readable.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22370
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agonvram: use flex array
Rosen Penev [Wed, 11 Feb 2026 02:10:15 +0000 (18:10 -0800)] 
nvram: use flex array

Clarifies that the struct needs to be over allocated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22370
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoramips: mt7621: use dts for label mac 22306/head
Rosen Penev [Sun, 1 Mar 2026 01:57:16 +0000 (17:57 -0800)] 
ramips: mt7621: use dts for label mac

Userspace handling was needed before band mac overrides.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22306
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoramips: mr600-v2-eu: fix WAN MAC address
Rosen Penev [Fri, 20 Mar 2026 01:56:08 +0000 (18:56 -0700)] 
ramips: mr600-v2-eu: fix WAN MAC address

78110c3 states that the MAC for the WAN interface is LAN + 1.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22306
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoipq40xx: use nvmem for mikrotik mac address 16257/head
Rosen Penev [Sat, 24 Aug 2024 20:54:10 +0000 (13:54 -0700)] 
ipq40xx: use nvmem for mikrotik mac address

Userspace handling is deprecated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16257
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agogpio-rb91x-key: add gc owner 23731/head
Rosen Penev [Thu, 23 Apr 2026 22:01:41 +0000 (15:01 -0700)] 
gpio-rb91x-key: add gc owner

For platform drivers themselves this is not needed. but for gpiochips,
it is to avoid module unload.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23731
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agogpio-rb4xx: use GPIO_LINE_DIRECTION_OUT
Rosen Penev [Thu, 23 Apr 2026 21:56:29 +0000 (14:56 -0700)] 
gpio-rb4xx: use GPIO_LINE_DIRECTION_OUT

Remove the comment since the macro is descriptive enough.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23731
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agogpio-rb4xx: fix rb4xx_gpio_set on newer kernels
Rosen Penev [Thu, 23 Apr 2026 21:54:33 +0000 (14:54 -0700)] 
gpio-rb4xx: fix rb4xx_gpio_set on newer kernels

Propagate error code from rb4xx_gpio_cpld_set instead of just returning
0.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23731
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agogpio-rb4xx: use dev and remove of_node
Rosen Penev [Thu, 23 Apr 2026 21:49:11 +0000 (14:49 -0700)] 
gpio-rb4xx: use dev and remove of_node

Claude seems to get confused by a supposedly NULL of_node. Just use dev.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23731
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agogpio-rb4xx: fix unset ret
Rosen Penev [Thu, 23 Apr 2026 21:45:11 +0000 (14:45 -0700)] 
gpio-rb4xx: fix unset ret

Add an else branch to do so.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23731
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agolibnl: add host package 22889/head
John Audia [Sat, 11 Apr 2026 13:16:44 +0000 (09:16 -0400)] 
libnl: add host package

Add a host package, which is a new requirement for nfs-kernel-server.

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22889
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agopackage: nftables backport of reproducible builds patches 23735/head
Paul Spooren [Wed, 10 Jun 2026 14:21:40 +0000 (16:21 +0200)] 
package: nftables backport of reproducible builds patches

Building `nftables` twice results in slightly different binaries and since
it's including in the OpenWrt default firmware, breaks reproducibility of
shipped artifacts.

Enabling autoreconf, since the patches introduce a `nftvbersion.h.in` file.

This commit backports patches netfilter to fix this:

* https://git.netfilter.org/nftables/commit/?id=ca86f206c92704170a295b8dc7a41f6448835dde
* https://git.netfilter.org/nftables/commit/?id=b92571cc59ce49fdd9fe2daac9350529adfb2424
* https://git.netfilter.org/nftables/commit/?id=2a0ec8a7246e5c5eb85270e3d4de43e20a00c577

Fixes: https://github.com/openwrt/openwrt/issues/23709
Link: https://github.com/openwrt/openwrt/pull/23735
Signed-off-by: Paul Spooren <mail@aparcar.org>
4 weeks agopackage: make APK embedded help gzip reproducible 23736/head
Paul Spooren [Wed, 10 Jun 2026 15:18:37 +0000 (17:18 +0200)] 
package: make APK embedded help gzip reproducible

APK compresses it's helptext using LUA and require `zlib`, which isn't
available on the Buildbots. It thens falls back to `gzip`, which embeds the
MTIME, making the binary itself unreproducible.

This commits adds a downstream patch to run `gzip` with `-n`, setting the time
to 0.

Link: https://github.com/openwrt/openwrt/pull/23736
Signed-off-by: Paul Spooren <mail@aparcar.org>
4 weeks agoprereq-build: increase GCC requirement to 10 23718/head
Rosen Penev [Tue, 9 Jun 2026 02:25:58 +0000 (19:25 -0700)] 
prereq-build: increase GCC requirement to 10

With ccache 4.13, it mandates a minimum of 10.

Fixes: 84cb042e3a8e ("tools/ccache: update to 4.13.3")
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23718
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agoath79: wndap360: switch MACs to newer firmware 22895/head
Rosen Penev [Sat, 11 Apr 2026 22:31:22 +0000 (15:31 -0700)] 
ath79: wndap360: switch MACs to newer firmware

Original ar71xx has this setup:

define WNDAP360_WMAC0_MAC_OFFSET               0x120c
define WNDAP360_WMAC1_MAC_OFFSET               0x520c

/* Reusing wifi MAC with offset of 1 as eth0 MAC */
ath79_init_mac(ath79_eth0_data.mac_addr,
               art + WNDAP360_WMAC0_MAC_OFFSET, 1);

ap94_pci_init(art + WNDAP360_CALDATA0_OFFSET,
              art + WNDAP360_WMAC0_MAC_OFFSET,
              art + WNDAP360_CALDATA1_OFFSET,
              art + WNDAP360_WMAC1_MAC_OFFSET);

The ath79 port made a questionable change for eth0 being just art with
no offset. That MAC ends up being the OUI for Atheros.

WNDAP360_WMAC1_MAC_OFFSET is the same as WNDAP360_WMAC0_MAC_OFFSET
except with the first hex value being subtracted by 2, which is not a
valid OUI.

And newer Netgear firmware seems to assign differently as well,
art_120C as a base and the others incremented by 0x8.

Switch the assignment to the latest firmware and add label-mac-device to
document that the first Wi-FI MAC address is printed on the device.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22895
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agotreewide: remove usage of of_device.h 23071/head
Rosen Penev [Thu, 23 Apr 2026 22:12:31 +0000 (15:12 -0700)] 
treewide: remove usage of of_device.h

of_device.h was used only for of_match_device. That is no longer
used in most places so we can drop the extra header.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23071
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoprereq-build: bump python requirement to 3.8 23521/head
Rosen Penev [Mon, 25 May 2026 01:49:04 +0000 (18:49 -0700)] 
prereq-build: bump python requirement to 3.8

Even though 3.8 is quite old, it's still used by Ubuntu 20.04 LTS. Bump
the version to get some extra features.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23521
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoath79: mynet-wifi-rangeextender: use nvmem 14666/head
Rosen Penev [Sat, 9 May 2026 20:57:32 +0000 (13:57 -0700)] 
ath79: mynet-wifi-rangeextender: use nvmem

Convert the last remaining userspace eeprom for ath9k to nvmem. Well,
easily converted at least.

wifi MAC has to be handled in userspace as the kernel nvram driver works
on memory mapped addresses, not mtd ones.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14666
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoath79: fix label-mac-device
Rosen Penev [Thu, 4 Dec 2025 03:15:05 +0000 (19:15 -0800)] 
ath79: fix label-mac-device

It appears 683-of_net-add-mac-address-to-of-tree.patch relies on the
mac-address nvmem property being present. These nodes don't need it as
they take it from the eeprom but label-mac-device needs it.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14666
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agomicrochipsw: lan969x: refresh config
Robert Marko [Wed, 29 Apr 2026 15:39:26 +0000 (17:39 +0200)] 
microchipsw: lan969x: refresh config

Refresh the kernel config.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
4 weeks agomicrochipsw: use upstreamed NVMEM support
Robert Marko [Tue, 9 Jun 2026 09:27:38 +0000 (11:27 +0200)] 
microchipsw: use upstreamed NVMEM support

NVMEM OTP support was upstreamed, so backport those patches instead of
our downstream ones.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
4 weeks agomicrochipsw: replace hwmon patch with upstreamed one
Robert Marko [Tue, 9 Jun 2026 09:08:31 +0000 (11:08 +0200)] 
microchipsw: replace hwmon patch with upstreamed one

Selection of Sparx5 hwmon driver for LAN969x was upstreamed, so use that
instead of the downstream patch.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
4 weeks agomicrochipsw: renumber upstreamed patches
Robert Marko [Tue, 9 Jun 2026 09:01:57 +0000 (11:01 +0200)] 
microchipsw: renumber upstreamed patches

Lets restart the numbering from 0 as most of the patches were upstreamed.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
4 weeks agomicrochipsw: backport MDIO probe defferal silencing
Robert Marko [Tue, 9 Jun 2026 07:48:11 +0000 (09:48 +0200)] 
microchipsw: backport MDIO probe defferal silencing

Currently, MDIO driver will print the probe defferal as error.
So, instead of spaming the log, backport the upstream fix for it.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
4 weeks agorealtek: rtl930x: add support for Sirivision SR-ST3408F 23686/head
Darell Tan [Sat, 6 Jun 2026 11:35:53 +0000 (11:35 +0000)] 
realtek: rtl930x: add support for Sirivision SR-ST3408F

This commit adds support for the Sirivision SR-ST3408F,
an 8-port 10G switch with 4x RJ45 ports and 4x SFP ports.

SoC:      Realtek RTL9303
RAM:      512 MiB DDR3
Flash:    SPI-NOR 16 MiB (Winbond)
Ethernet: 4x RJ45 via RTL8261BE PHY (10G/5G/2.5G/1G/100M/10M)
          4x SFP+
LEDs:     1x power, 1x system green
          2x RJ45 LEDs/port (link/act, 10G)
          1x SFP+ LED/port (link/act)
Button:   Reset
Console:  Cisco-style RJ45, 115200 8n1
Fan:      4040 12V fan (hardwired)
Power:    12V 3A internal PSU

OpenWrt installation
---------------------

1. Attach to serial console using a Cisco cable, 115200 8n1
2. Power on the switch and rapidly press Esc to interrupt U-Boot
3. Initialize the RJ45 ports by running `rtk network on`
4. Serve the initramfs-kernel.bin image on TFTP, IP 192.168.1.111
5. Use any RJ45 port to connect to your TFTP server
6. Run `tftpboot 0x81000000 initramfs-kernel.bin; bootm`
7. Use `mtd dump` or `dd` to backup the original firmware at `mtd5` first
8. Run sysupgrade to flash sysupgrade.bin into the switch and reboot

Restoring original firmware
-----------------------------

Vendor does not provide firmware images, so you should have made a backup.
Use `mtd write` to restore your backed up copy into the `mtd5` partition.

MAC Address
------------
All interfaces are assigned the same MAC address, from the U-Boot env
`ethaddr`. This MAC address is also printed on the device label.

Signed-off-by: Darell Tan <darell.tan@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23686
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agokernel: iio: add kmod-iio-ad7405 package 22989/head
Thomas Richard [Sat, 18 Apr 2026 12:54:38 +0000 (14:54 +0200)] 
kernel: iio: add kmod-iio-ad7405 package

Create kernel package for the AD7405 ADC driver.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agostm32: add kmod-stm32-omm package
Thomas Richard [Sat, 18 Apr 2026 12:53:22 +0000 (14:53 +0200)] 
stm32: add kmod-stm32-omm package

This adds STM32 Octo Memory Manager support.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agostm32: add kmod-stm32-csi package
Thomas Richard [Sat, 18 Apr 2026 12:52:20 +0000 (14:52 +0200)] 
stm32: add kmod-stm32-csi package

This adds STM32 Camera Serial Interface (CSI) support.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agostm32: add kmod-spi-stm32-ospi and kmod-spi-stm32-qspi
Thomas Richard [Sat, 18 Apr 2026 12:50:26 +0000 (14:50 +0200)] 
stm32: add kmod-spi-stm32-ospi and kmod-spi-stm32-qspi

This adds STM32 OCTO and QUAD SPI controller support.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agostm32: 6.18: disable some unnecessary options
Thomas Richard [Sat, 18 Apr 2026 12:37:33 +0000 (14:37 +0200)] 
stm32: 6.18: disable some unnecessary options

The COMMON_CLK_STM32MP215 option is for clock support on MP215 platforms,
and PINCTRL_STM32_HDP is for Hardware Debug Port pin control. They can be
safely removed.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agostm32: enable 6.18 testing kernel
Thomas Richard [Sat, 18 Apr 2026 12:30:44 +0000 (14:30 +0200)] 
stm32: enable 6.18 testing kernel

The stm32 target now supports 6.18 kernel as testing.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agostm32: 6.18: update kernel 6.18 config
Thomas Richard [Sat, 18 Apr 2026 12:28:34 +0000 (14:28 +0200)] 
stm32: 6.18: update kernel 6.18 config

Update stm32mp1 kernel config for 6.18.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agostm32: fix return value of phy_power_on() in dwmac-stm32 driver
Thomas Richard [Mon, 18 May 2026 08:36:04 +0000 (10:36 +0200)] 
stm32: fix return value of phy_power_on() in dwmac-stm32 driver

Patch 700-net-stmmac-dwmac-stm32-add-support-of-phy-supply-pro.patch
introduces phy-supply support in dwmac-stm32 driver. But the phy_power_on()
function always returns 0 even if it failed to drive the regulator. So fix
phy_power_on() to return an error if something wrong happened.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agostm32: 6.18: refresh kernel patches
Thomas Richard [Sat, 18 Apr 2026 12:24:16 +0000 (14:24 +0200)] 
stm32: 6.18: refresh kernel patches

Drop upstreamed patches and refresh remaining ones.

Manually rebased:
- 700-net-stmmac-dwmac-stm32-add-support-of-phy-supply-pro.patch

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agokernel/stm32: restore files for v6.12
Thomas Richard [Fri, 17 Apr 2026 18:55:39 +0000 (20:55 +0200)] 
kernel/stm32: 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: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agokernel/stm32: create files for v6.18 (from v6.12)
Thomas Richard [Fri, 17 Apr 2026 18:55:39 +0000 (20:55 +0200)] 
kernel/stm32: 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: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/22989
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agouclient: update to Git HEAD (2026-06-07) 23693/head
Hauke Mehrtens [Sun, 7 Jun 2026 11:31:36 +0000 (13:31 +0200)] 
uclient: update to Git HEAD (2026-06-07)

f227ab4f1285 uclient: fix memory leak of url when backend alloc fails
645236607a3d uclient: free proxy_url in uclient_free
53d2d11fb00d uclient-http: fix NULL deref when digest WWW-Authenticate lacks params
0ba1b8718be5 ucode: check calloc return in uc_uclient_new
5cb19466d076 uclient-fetch: reset redirect counter per request
568c447950c1 uclient-fetch: retry short writes and surface errors
4c4a61a69ac3 uclient-fetch: use strtoull to parse Content-Length
440ca260622d uclient-http: validate Content-Length and chunk sizes from the server
8658324bd234 uclient: cast to unsigned char before ctype classifications
bf403fa0f8e5 uclient-fetch: reject CR in --header values
ec47f4176b1e uclient-fetch: always allocate auth_str and free it on exit
391dacd10d31 uclient-http: fail digest auth when the cnonce cannot be randomized
ba1f4311b099 ucode: clamp read length to the size of the static buffer
0ba47f319b09 uclient-fetch: advance to the next URL between requests
9dd0055d527d uclient: initialize *port for unknown address families
f816506651d5 uclient-http: start digest nonce count at 1
9b9b2da40835 uclient-http: fix 2-byte buffer undercount in digest add_field
80fb1e5ee68b ucode: avoid double-free of SSL context on ssl_init error
d44fb561bbcf ucode: don't clear an unrelated registry slot on free
02562403d2a3 uclient-fetch: close the output file before fetching the next URL
4a63561d0012 uclient-http: initialize fd to -1 so a failed connect can't close stdin
428ae8342118 uclient: cancel pending timers in uclient_free()
ffd8db308289 uclient-fetch: guard SSL debug setup against a missing SSL context
9f4db039a263 ucode: release callback argument references
d2af92b0aad9 uclient-http: resolve redirects against the proxy target URL
5dddda023267 uclient-utils: avoid out-of-bounds pointer in get_url_filename
8507588e7ce7 uclient-http: use the proxy target URL for HTTP authentication
322c89c6ca0a uclient-http: retry 401 auth for all body-less request methods
db3bb00ddda7 uclient-http: accept unquoted digest auth parameter values
5ce9983b2a11 uclient-http: follow 303 and 308 redirects
070c868486dc uclient-fetch: finalize request on invalid 206 Content-Range
83659a5a9bc1 uclient-fetch: concatenate multiple URLs into a single -O file
43bed2753998 ucode: don't leak string references in status()/get_headers()
03b17e4fc793 uclient-fetch: attach credentials to the proxy target, not the proxy
74c07b12f7ab uclient-fetch: don't run the progress meter in spider mode
daad21fa2c17 uclient-fetch: handle init_request failure on the 204 resume retry

Link: https://github.com/openwrt/openwrt/pull/23693
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 weeks agomtd: fix buffer leak and fd leak in mtd_dump() 23706/head
Anna Kiri [Mon, 8 Jun 2026 09:07:05 +0000 (11:07 +0200)] 
mtd: fix buffer leak and fd leak in mtd_dump()

Two leaks in mtd_dump():

- The buffer allocated with malloc(erasesize) is never freed before
  returning, leaking erasesize bytes on every call.
- The pre-existing malloc-NULL early return path also leaked the just-
  opened fd by returning directly instead of going through cleanup.

Initialize buf to NULL, route the malloc-NULL case through the
existing 'out:' label, and add free(buf) on the cleanup path so both
fd and buf are released consistently on every exit.

Signed-off-by: Anna Kiri <bredcorn@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23706
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agomtd: check malloc() return value in mtd_check() 23705/head
Anna Kiri [Mon, 8 Jun 2026 09:06:32 +0000 (11:06 +0200)] 
mtd: check malloc() return value in mtd_check()

After malloc(erasesize) in mtd_check(), the result was never checked
for NULL. On allocation failure, the buf pointer remained NULL and
would later be used in image_check() via read(imagefd, buf + buflen,
...), causing a NULL pointer dereference.

Add a NULL check after the allocation and return early. The early
return path also closes the just-opened fd and frees the strdup'd
colon-separated device-list copy to avoid leaks.

Signed-off-by: Anna Kiri <bredcorn@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23705
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agomtd: check return values of lseek() and write() in mtd_write_buffer() 23552/head
Anna Kiri [Mon, 8 Jun 2026 09:05:55 +0000 (11:05 +0200)] 
mtd: check return values of lseek() and write() in mtd_write_buffer()

Two ignored return values in mtd_write_buffer() caused silent failures:

- lseek() return value was ignored. A failed seek (e.g. EBADF, ESPIPE)
  followed by write() would silently write at the wrong offset.
- write() return value was ignored, silently discarding write errors.
  This could lead to data corruption on the MTD device without any
  indication.

Check both return values, report errors to stderr and return -1 on
failure.

Signed-off-by: Anna Kiri <bredcorn@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23552
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agolinux-firmware: improve firmware package descriptions 23688/head
Tim Small [Fri, 5 Jun 2026 11:52:57 +0000 (12:52 +0100)] 
linux-firmware: improve firmware package descriptions

Improve some descriptions so that they make the purpose of the
particular firmware package clearer to the user (e.g. as viewed in
verbose package listings).

Signed-off-by: Tim Small <tim@seoss.co.uk>
Link: https://github.com/openwrt/openwrt/pull/23688
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 weeks agoipq806x: ap3935: disable hibernation on LAN1 23208/head
Grische [Sun, 3 May 2026 14:34:46 +0000 (16:34 +0200)] 
ipq806x: ap3935: disable hibernation on LAN1

The Extreme Networks AP3935's LAN1 port (gmac0/RGMII to AR8035 at MDIO
addr 1) fails to acquire a link if no Ethernet cable is connected at
power-on; the port stays dead even after a cable is later inserted, and
only a network restart recovers it.

The AR803x family enables hibernation mode by default, this setting
overrides it.

Signed-off-by: Grische <github@grische.xyz>
Link: https://github.com/openwrt/openwrt/pull/23208
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 weeks agoqualcommax: update qca8k fixed link patch to v2
Robert Marko [Sun, 7 Jun 2026 21:01:50 +0000 (23:01 +0200)] 
qualcommax: update qca8k fixed link patch to v2

Update the qca8k fixed link patch to v2 that is pending upstream.

Signed-off-by: Robert Marko <robimarko@gmail.com>
5 weeks agorealtek: pcs: replace __free() auto-cleanup stuff 23694/head
Jonas Jelonek [Tue, 2 Jun 2026 21:44:22 +0000 (21:44 +0000)] 
realtek: pcs: replace __free() auto-cleanup stuff

Upstream netdev maintainers disregard both variable declarations
mid-function and usage of __free() for auto-cleanup [1]. To avoid any
pain when trying to upstream the PCS driver at some point, adjust that
now before forgetting it.

[1] https://www.kernel.org/doc/html/next/process/maintainer-netdev.html#using-device-managed-and-cleanup-h-constructs

Link: https://github.com/openwrt/openwrt/pull/23694
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agox86/64: config-6.18 remove obsolete options from config 23687/head
John Audia [Sat, 6 Jun 2026 12:17:46 +0000 (08:17 -0400)] 
x86/64: config-6.18 remove obsolete options from config

Remove some dead weight from the config due to changes in the CRYPTO API
in 6.18. These are now internal library optimizations rather than selectable
algorithms, the corresponding Kconfig options were removed.

ref: https://www.mail-archive.com/linux-yocto@lists.yoctoproject.org/msg06813.html

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23687
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agoomap: drop v6.12 and default to v6.18 22728/head
Andre Heider [Tue, 5 May 2026 19:51:54 +0000 (21:51 +0200)] 
omap: drop v6.12 and default to v6.18

Switch to kernel v6.18 and drop v6.12.

Signed-off-by: Andre Heider <a.heider@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22728
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agoomap: enable 6.18 testing kernel
Andre Heider [Wed, 1 Apr 2026 06:39:59 +0000 (08:39 +0200)] 
omap: enable 6.18 testing kernel

The omap target now supports 6.18 kernel as testing.

Signed-off-by: Andre Heider <a.heider@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22728
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agoomap: update kernel 6.18 config
Andre Heider [Wed, 1 Apr 2026 06:39:40 +0000 (08:39 +0200)] 
omap: update kernel 6.18 config

Plain `make kernel_oldconfig`

Signed-off-by: Andre Heider <a.heider@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22728
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agokernel: 6.18: update config for new knobs
Andre Heider [Tue, 7 Apr 2026 07:14:20 +0000 (09:14 +0200)] 
kernel: 6.18: update config for new knobs

These were discovered when migrating omap to 6.18.

Signed-off-by: Andre Heider <a.heider@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22728
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agokernel/omap: restore files for v6.12
Andre Heider [Wed, 1 Apr 2026 13:13:40 +0000 (15:13 +0200)] 
kernel/omap: 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: Andre Heider <a.heider@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22728
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agokernel/omap: create files for v6.18 (from v6.12)
Andre Heider [Wed, 1 Apr 2026 13:13:40 +0000 (15:13 +0200)] 
kernel/omap: 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: Andre Heider <a.heider@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22728
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agoomap: switch to the 8250 serial driver
Andre Heider [Wed, 1 Apr 2026 10:33:34 +0000 (12:33 +0200)] 
omap: switch to the 8250 serial driver

Prepare the linux 6.18 update.

Signed-off-by: Andre Heider <a.heider@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22728
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agoomap: update kernel 6.12 config
Andre Heider [Wed, 1 Apr 2026 06:19:38 +0000 (08:19 +0200)] 
omap: update kernel 6.12 config

Plain `make kernel_oldconfig`

Signed-off-by: Andre Heider <a.heider@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22728
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agouboot-omap: update to 2024.07
Andre Heider [Wed, 1 Apr 2026 12:18:18 +0000 (14:18 +0200)] 
uboot-omap: update to 2024.07

This is the last version supporting the boards omap3_beagle and omap4_panda.

Because we use a boot script we need to enable CONFIG_LEGACY_IMAGE_FORMAT.

Signed-off-by: Andre Heider <a.heider@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22728
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agoramips: enable fw_printenv for D-Link COVR-X1860 A1 23192/head
Florian Maurer [Fri, 24 Apr 2026 09:46:29 +0000 (09:46 +0000)] 
ramips: enable fw_printenv for D-Link COVR-X1860 A1

Vendor U-Boot stores its environment at offset 0x2000 inside the
"config" partition (size 0x4000). The offset is not erase-block
aligned, so the fw_env tool's alignment check rejects the natural
secsize=0x20000. Declaring secsize=0x2000 passes the check, lets
fw_printenv read the real env (factory_mac, hw_version,
bundle_number, ...), and causes fw_setenv to fail cleanly on erase
rather than corrupting anything (the kernel rejects sub-erase-block
MEMERASE).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Florian Maurer <fmaurer@disroot.org>
Link: https://github.com/openwrt/openwrt/pull/23192
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agoramips: expand storage space on U6 lite 22316/head
Fabian Groffen [Fri, 6 Mar 2026 15:27:03 +0000 (16:27 +0100)] 
ramips: expand storage space on U6 lite

While still sufficient for the base image, space runs out quickly with
the ~15MiB available in kernel0.  The identical space in kernel1 is
unused, and standard installation instructions flash to both areas so it
isn't an easy fallback to stock either.

Merge the regions for kernel0 and kernel1 so there's more space
available to the user to install packages and some data.

Signed-off-by: Fabian Groffen <grobian@bitzolder.nl>
Link: https://github.com/openwrt/openwrt/pull/22316
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agoca-certificates: update to 20260601 23675/head
Fengyu Wu [Sat, 6 Jun 2026 01:51:54 +0000 (09:51 +0800)] 
ca-certificates: update to 20260601

changelog: https://salsa.debian.org/debian/ca-certificates/-/blob/master/debian/changelog

  * Remove ca-certificates-local example (closes: #988912, #1127101).
  * Update Mozilla certificate authority bundle to version 2.86
    The following certificate authority was added (+):
    + e-Szigno TLS Root CA 2023
    The following certificate authorities were removed (-):
    - QuoVadis Root CA 2
    - QuoVadis Root CA 3
    - DigiCert Assured ID Root CA
    - DigiCert Global Root CA
    - DigiCert High Assurance EV Root CA
    - SwissSign Gold CA - G2
    - SecureTrust CA
    - Secure Global CA
    - COMODO Certification Authority
    - Certigna
    - certSIGN ROOT CA
    - AffirmTrust Commercial
    - AffirmTrust Networking
    - AffirmTrust Premium
    - AffirmTrust Premium ECC
    - TeliaSonera Root CA v1
    - Entrust Root Certification Authority - G2
    - Entrust Root Certification Authority - EC1
    - Trustwave Global Certification Authority
    - Trustwave Global ECC P256 Certification Authority
    - Trustwave Global ECC P384 Certification Authority
    - GLOBALTRUST 2020
    - GTS Root R2
    - FIRMAPROFESIONAL CA ROOT-A WEB
    The following certificate authority was renamed (~):
    ~ "OISTE Server Root RSA G1" (removed leading space)

Signed-off-by: Fengyu Wu <saldry@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23675
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agoramips: yuncore 1200f: fix label-mac-device alias and remove comments 23691/head
Ryan Leung [Sun, 7 Jun 2026 02:22:33 +0000 (10:22 +0800)] 
ramips: yuncore 1200f: fix label-mac-device alias and remove comments

Fix label-mac-device alias (from "label-mac") and remove MAC address comments.

Fixes: 1ba7b38cfc82 ("ramips: add support for Yuncore 1200F")
Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23691
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agorealtek: eth: rename ring steering bits 23676/head
Markus Stockhausen [Sat, 30 May 2026 15:23:34 +0000 (17:23 +0200)] 
realtek: eth: rename ring steering bits

A network interface card (NIC) hardware ring of the Realtek Otto switch
SoCs is nothing more than a list of pointers to the ring headers. I.E.

address | content   | comment
--------+-----------+------------------------
x + 0   | pointer 0 | points to ring header 0
x + 4   | pointer 1 | points to ring header 1
...
x + 4*n | pointer n | points to ring header n

Headers must be 4 byte aligend. So the lower two bits of the pointers
are unused. Hardware designers desided to give them special meanings.

- Bit 0: Owner of this ring entry, 1 = hardware, 0 = software
- Bit 1: Wrap, 1 = last ring pointer, 0 = normal ring pointer

The driver uses constant defines with slightly confusing naming. Replace
OWN_CPU with OWN_HW to make clear what it is about. Align prefix and
make the defines bitmasks for better readability.

Link: https://github.com/openwrt/openwrt/pull/23676
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
5 weeks agorealtek: eth: sort structures and defines
Markus Stockhausen [Sat, 30 May 2026 15:14:22 +0000 (17:14 +0200)] 
realtek: eth: sort structures and defines

Align indentation of defines and move structures to the top of
the source code. This is only cosmetic. No functional changes.

Link: https://github.com/openwrt/openwrt/pull/23676
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
5 weeks agorealtek: mdio: backport upstream patches 23678/head
Markus Stockhausen [Sat, 6 Jun 2026 06:33:27 +0000 (08:33 +0200)] 
realtek: mdio: backport upstream patches

This backports the upstream efforts for the mdio driver. No downstream
functionality is affected as OpenWrt still uses the mdio-realtek-otto
driver.

Link: https://github.com/openwrt/openwrt/pull/23678
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
5 weeks agoramips: add support for Yuncore 1200F 23613/head
Gunther Stammwitz [Mon, 1 Jun 2026 16:00:29 +0000 (18:00 +0200)] 
ramips: add support for Yuncore 1200F

The Yuncore 1200F is an outdoor 802.11ac access point based on the
MediaTek MT7628AN SoC with an MT7663E PCIe 5 GHz radio. The device is
also sold under the KuWFi AP1200F name.

Hardware:
- SoC: MediaTek MT7628AN
- CPU: MIPS 24KEc
- RAM: 64 MiB
- Flash: 8 MiB SPI NOR
- Ethernet: 2x 10/100 Mbps
- WiFi 2.4 GHz: MT7628AN WMAC
- WiFi 5 GHz: MT7663E PCIe
- LEDs: status, LAN, WAN
- Button: reset
- Watchdog: GPIO watchdog

MAC addresses:
- Ethernet: factory 0x0004
- 2.4 GHz WiFi: factory 0x0028
- 5 GHz WiFi: factory 0x8004

Network:
- LAN: eth0.1, switch port 4
- WAN: eth0.2, switch port 3

Installation:
- Build the sysupgrade image:
  openwrt-ramips-mt76x8-yuncore_1200f-squashfs-sysupgrade.bin
- The stock firmware provides a U-Boot recovery web interface. It can be
  entered by holding the reset button while powering on the device. Connect to
  http://192.168.0.100/ and upload openwrt-sysupgrade.bin file.

Recovery:
- Reverting to stock firmware has not been tested.

The 5 GHz radio is detected as PCI ID 14c3:7663 and uses mt7615e
together with the MT7663 AP firmware. kmod-mt76x2 is explicitly
excluded because this board uses MT7663E, not MT76x2.

Tested:
- Build succeeds for ramips/mt76x8
- Sysupgrade image boots
- Ethernet LAN/WAN work
- 2.4 GHz AP starts on phy0
- 5 GHz AP starts on phy1
- Stable MAC addresses are assigned to Ethernet, phy0 and phy1

Signed-off-by: Gunther Stammwitz <gstammw@gmx.net>
Link: https://github.com/openwrt/openwrt/pull/23613
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agorealtek: rtl930x: add support for Horaco ZX-SWTGW2C8F 23648/head
Manuel Stocker [Wed, 29 Apr 2026 18:55:41 +0000 (20:55 +0200)] 
realtek: rtl930x: add support for Horaco ZX-SWTGW2C8F

Device specification
--------------------
SoC Type:              Realtek RTL9303
RAM:                   128MB
Flash:                 Winbond 16MiB
Ethernet               8x SFP+ 10G
LEDs:                  1x power green hardwired
                       1x SYS green
                       8x2 LEDs per RJ45 port
                           1x green  ( 1G link/activity)
                           1x blue   (10G link/activity)
Button:                Reset
Console:               1x CISCO-style RJ45 RS232 port
Bootloader:            Realtek U-Boot 2011.12

Installing OpenWrt
------------------
Install the factory image through the web interface.

Signed-off-by: Manuel Stocker <mensi@mensi.ch>
Link: https://github.com/openwrt/openwrt/pull/23648
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agorealtek: pcs: rtl931x: enable XSGMII setup 23674/head
Jonas Jelonek [Fri, 5 Jun 2026 22:15:13 +0000 (22:15 +0000)] 
realtek: pcs: rtl931x: enable XSGMII setup

The setup path has been adjusted before to at least not break a working
XSGMII setup. On the currently single affected device, the U-boot
pre-init runs unconditionally anyway. Thus, we can drop the top-level
gate and let our driver "setup" this mode. This enables further
structural changes.

Link: https://github.com/openwrt/openwrt/pull/23674
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agorealtek: pcs: rtl931x: fix media config for XSGMII
Jonas Jelonek [Fri, 5 Jun 2026 22:09:07 +0000 (22:09 +0000)] 
realtek: pcs: rtl931x: fix media config for XSGMII

While this doesn't claim to be a standalone setup for XSGMII, at least
it doesn't break the working XSGMII setup from U-boot on Linksys
LGS352C, the currently only supported device using this mode. Later
during further refactoring, this should be improved to make sure
everything is properly set.

Link: https://github.com/openwrt/openwrt/pull/23674
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agorealtek: pcs: rtl931x: release IP mode force-lock for XSGMII
Jonas Jelonek [Thu, 4 Jun 2026 22:32:07 +0000 (22:32 +0000)] 
realtek: pcs: rtl931x: release IP mode force-lock for XSGMII

rtpcs_931x_sds_deactivate() forces the SerDes IP mode register to OFF
(force-bit set, mode OFF) via apply_ip_mode(OFF). For IP-driven modes a
subsequent bring-up re-asserts the force-bit with the target mode, so the
lock is released. XSGMII, however, is MAC-driven: rtpcs_931x_sds_set_mode
only wrote the MAC mode and never released the IP force-lock, leaving the
IP block pinned OFF. XSGMII therefore only worked when the bootloader had
already configured the SerDes before deactivate ran.

Route the XSGMII branch through rtpcs_93xx_sds_set_mac_driven_mode(),
which unforces the IP mode (page 0x1f reg 0x09 bit 6) before writing the
MAC mode -- the same fix applied to RTL930x in 383c4469e4fd.

Link: https://github.com/openwrt/openwrt/pull/23674
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agorealtek: pcs: rtl93xx: extract MAC-driven mode bring-up helper
Jonas Jelonek [Thu, 4 Jun 2026 22:30:17 +0000 (22:30 +0000)] 
realtek: pcs: rtl93xx: extract MAC-driven mode bring-up helper

The MAC-driven set_mode path on RTL930x performs three steps: release the
IP mode force-lock so the MAC side takes over (deactivate forces IP=OFF),
write the MAC mode, then apply the USXGMII submode for modes that need
one. Pull these into a shared rtpcs_93xx_sds_set_mac_driven_mode() helper.

No functional change: rtpcs_930x_sds_set_mode now calls the helper instead
of open-coding the sequence. This prepares the helper for reuse by the
RTL931x XSGMII path, which currently lacks the IP force-unlock and so is
left pinned OFF by a preceding deactivate.

Link: https://github.com/openwrt/openwrt/pull/23674
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agogeneric: mips: add pending patch to fix reboot 23619/head 23656/head
Jonas Jelonek [Thu, 4 Jun 2026 17:59:04 +0000 (17:59 +0000)] 
generic: mips: add pending patch to fix reboot

Add a pending hotfix to fix reboot functionality on MIPS platforms, at
least the Realtek target being affected.

The kernel bump from 6.18.33 to 6.18.34 introduced a backported commit
intending to fix a use-after-free issue [1]. As a side effect, it also
causes RCU to wait for CPUs which are already dead but RCU doesn't know
of.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=18c0456ea2615b1a743a6db739c74411c3b42bc6

Fixes: 94f3f9a845e8 ("kernel: bump 6.18 to 6.18.34")
Link: https://github.com/openwrt/openwrt/pull/23656
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 weeks agobase-files: move config_generate to preinit
Florian Eckert [Mon, 2 Sep 2024 13:22:41 +0000 (15:22 +0200)] 
base-files: move config_generate to preinit

The mutex file via '/tmp/.config_pending' should prevent the command
'/sbin/wifi config' from being called in the ieee80211 hotplug when loading
the kernel modules [1]. Since the file '/etc/board.json' does not yet exist
and could be incomplete.

The '/etc/board.json' file is modified in the '/sbin/wifi config' script.
This is only generated during the first boot when '/bin/config_generate' is
called.

This whole handling is unclean. Therefore the creation of the default
configuration '/etc/config/network', '/etc/config/system' and
'/etc/board.json' via '/sbin/config_generate' is moved to the preinint
after the rootfile system has been mounted

The advantage now is that on an ieee80211 hotplug event, the
'/etc/board.json' is already present which simplifies the whole thing.

[1] https://github.com/openwrt/openwrt/blob/main/package/network/config/wifi-scripts/files/etc/hotplug.d/ieee80211/10-wifi-detect

Fixes: b993a00b82b1 ("base-files: fix duplicate wifi radio sections when using phy renaming")
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
5 weeks agoleds: add "network" LED trigger (lan/wan/wlan) 19903/head
Mieczyslaw Nalewaj [Thu, 27 Nov 2025 12:17:50 +0000 (13:17 +0100)] 
leds: add "network" LED trigger (lan/wan/wlan)

LED trigger for network interfaces.

 - Aggregated per-family (lan/wan/wlan).
 - Family and flags are taken from device tree properties:
   - "family" : simple family string "lan" | "wan" | "wlan"
   - "mode"   : any combination of "link", "tx", "rx" flags
  Priority/combination:
   * If "mode" present: flags come from "mode" and take precedence.
     Family is taken from "family" if present, otherwise from the LED name.
   * If only "family" present: use its family and default flags = link+tx+rx.
   * If neither present: fall back to LED device name parsing.

 - Suffix "-online" is valid ONLY in the LED name (label),
   e.g. "green:wlan-online". It indicates the online variant but is applied
   only when DT "mode" is absent.

Behaviour:
 - wlan (normal): blink/solid driven by throughput table
 - lan/wan (normal): one-shot blink on TX/RX packet change
 - *-online variants: steady ON while any interface of the family has carrier

 Interfaces are auto-tracked by name match (lan0, wan1, wlan2, phy0, wl1,
 ath0, ra0...). Up to MAX_IFACES (16) interfaces per family

This trigger is intended for board/device authors and drivers to provide simple
network-activity LED behaviour without per-interface wiring in userspace.

Refresh bcm27xx patches in the same commit to account for line shifts in
drivers/leds/trigger/Kconfig and Makefile, ensuring clean applies for
bisectability.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/19903
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 weeks agowireless-regdb: update to version 2026.05.30 23594/head
Hafiz Zafran [Sat, 30 May 2026 22:31:08 +0000 (06:31 +0800)] 
wireless-regdb: update to version 2026.05.30

Change-log since version 2026.03.18, retrieved from the wireless-regdb mailing lists:
  wireless-regdb: update regulatory database based on preceding changes
  wireless-regdb: Update regulatory info for Brunei Darussalam (BN) for 2022
  wireless-regdb: allow 320MHz channel width for Russia
  wireless-regdb: Update 6 GHz rules for Hong Kong (HK)
  wireless-regdb: Update 5/6 GHz power rules for Russia (RU)
  wireless-regdb: Fix 60 GHz power unit for Ukraine (UA)
  wireless-regdb: Update 6 GHz rules for South Africa (ZA)
  wireless-regdb: Update 6 GHz rules for South Korea (KR)
  wireless-regdb: Update regulatory rules for Sri Lanka (LK)
  wireless-regdb: Add regulatory info for CEPT countries FO, GI, IM, SM and VA listed by WiFi Alliance

Signed-off-by: Hafiz Zafran <hfzz7@duck.com>
Link: https://github.com/openwrt/openwrt/pull/23594
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 weeks agoodhcp6c: update to Git HEAD (2026-06-04) 23652/head
Hauke Mehrtens [Wed, 3 Jun 2026 23:40:29 +0000 (01:40 +0200)] 
odhcp6c: update to Git HEAD (2026-06-04)

08bd058e0246 ra: skip malformed options instead of aborting RA processing
2550a1dd276e dhcpv6: fix inverted Authentication option validation in Reply
496e55d43de6 dhcpv6: use host-order option length in Authentication validation
b6f0c70f5fc2 dhcpv6: fix out-of-bounds end pointer when parsing IA in Advertise
92fd11cd9547 dhcpv6: fix OOB read and 1-byte heap overflow on captive-portal option
0dab8feec55a ra: fix OOB read on captive-portal option comparison
a4d6a3232c24 script: fix string_to_env writing garbage and reading past input
2521bf732b9f script: avoid kill(0) when SIGCHLD races script_call
56cec7a15816 odhcp6c: drop stale hash_ifname() declaration
49d9c0112bb8 odhcp6c: propagate allocation failure from insert_state
4bd976fd60c0 dhcpv6: ensure hostname buffer is NUL-terminated for dn_comp
6d12865fb89c ubus: validate element type when parsing reconfigure_dhcp opt_send
01130f80338a script: handle allocation failures in env helpers
0a19052dc9fb odhcp6c: refuse to follow symlinks when writing pidfile
d6c2fbdc255c odhcp6c: skip malformed /proc/net/if_inet6 entries
b6add6c0e30e dhcpv6: avoid signed-shift undefined behaviour in IAID derivation
ce52fe118b13 ubus: clear cached object type id on disconnect
91f88c694f6f config: stop mutating caller-supplied buffers in send-options parser
c938c168cbef script: handle fork() failure when launching state script
1546a48255b2 ubus: avoid out-of-bounds read when serializing captive-portal URI
3270f081039d all: fix inverted captive-portal URI equality check (RFC 8910 §3)
e9a9e9d45f38 odhcp6c: bound the address length when parsing the -P argument
5ad94c86e864 script: walk entries with odhcp6c_next_entry in entry_to_env
df4f199c02fc ubus: walk entries correctly and don't leak an open table in entry_to_blob
6c1c4c48d4a2 ubus: don't leak an open table on malformed S46 rule/bind in s46_to_blob
1797d2bca3c0 odhcp6c: remove pidfile on exit
86a6665e4bb0 ra: clear captive-portal state when router signals unrestricted URI
0a4e51db30d5 dhcpv6: require known SERVERID when validating Reconfigure
afc3c8534864 dhcpv6: reject Reconfigure with malformed or duplicate Message option
df27a49c98d8 dhcpv6: enforce monotonic replay counter on Reconfigure RKAP
9177f236c2d7 odhcp6c: do not treat DHCPv6 option type 0 as end-of-list
daf4ec3054e7 example: write all DNS servers to resolv.conf

Link: https://github.com/openwrt/openwrt/pull/23652
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 weeks agoodhcpd: update to Git HEAD (2026-06-04) 23651/head
Hauke Mehrtens [Wed, 3 Jun 2026 23:39:42 +0000 (01:39 +0200)] 
odhcpd: update to Git HEAD (2026-06-04)

b3e65ef700e6 config: add dhcpv6_relay_servers
e432dd62c288 dhcpv6: relay to dhcpv6_relay_server server(s)
ed38cffa927d dhcpv6: fix out-of-bounds read in self-loop detection memcmp
ee0a11f40fa4 dhcpv6: bound nested-relay recursion to HOP_COUNT_LIMIT
d89caa59c005 dhcpv6: reject undersized encapsulated DHCPv4 messages in 4o6 path
db034cfd5eab dhcpv4: honor Pad/End option encoding when iterating options
a6fe4633bb69 ubus: drop spurious ntohl() of DHCPv4 lease IAID
19bf3b73580b dhcpv6-ia: avoid undefined shifts in assign_pd()
a212daeace27 netlink: avoid 32-bit-wide shift when computing /0 IPv4 netmask
374d8174207d dhcpv4: never return NULL from dhcpv4_msg_to_string()
0eade3d4b7a3 ndp: enforce RFC4861 §7.1.1 hop-limit and ICMP-code checks on NS
cc04882b3fac dhcpv6: validate minimum length in relay_client_request()
a14884ea7d01 config: guard captive_portal_uri parsing against strdup() failure
7c834a54ae6d dhcpv4: copy ifname into arpreq without reading past the source
2b1ade346f1d statefiles: skip dn_expand() when no search domain is configured
fa270221504c dhcpv6: avoid unaligned uint16_t reads in ORO option parsing
f3743a862b36 config: invert ipv6_pxe_from_uci() return value
3e1dd3b16c9a dhcpv6-pxe: free previous default entry on replacement
78aa06a30da8 statefiles: clean up tmpfile error path
f3fdcf4d3fe2 dhcpv6: validate length and alignment when reading CLIENT_ARCH option
f2275efc72a8 dhcpv6-ia: validate IA_NA/IA_PD option size before reading header
461043731085 config: bound DNR 'mandatory' SvcParam key count
d119e1abc35f router: restore upstream DNS/MTU between relayed RAs
60f488192d5d router: keep RA DNS option lengths within the uint8 length field
c2f94ee5c8e7 dhcpv4: pass &dest.sin_addr to inet_ntop() when logging
5b1e3befb0b2 dhcpv6: validate rewritten RELAY_MSG length in update_nested_message()
1782f3f2aad2 dhcpv6-ia: signal buffer-full from build_ia() IA_ADDR branch

Link: https://github.com/openwrt/openwrt/pull/23651
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 weeks agorpcd: update to Git HEAD (2026-06-04) 23650/head
Hauke Mehrtens [Wed, 3 Jun 2026 23:41:05 +0000 (01:41 +0200)] 
rpcd: update to Git HEAD (2026-06-04)

69b62b1990bc rpc-sys: packagelist: increase input buffer size
e655a0d69492 exec: defer async reply teardown to avoid use-after-free
5b078674a592 optimize by reusing timeout member
d005c885dbe4 session: clamp uloop timeout to avoid int overflow
a545f008da91 ucode: add request.defer() for async method handling
ab6549a99c7c file: avoid sending uninitialized stack memory for broken symlinks
7af2dd81cd53 main: prevent integer overflow when parsing -t timeout argument
680705e4b76d plugin: use snprintf in ubus lookup callback to prevent buffer overflow
fb0302dc0e51 session: detect short read of /dev/urandom in rpc_random()
dc091afa5860 rpc-sys: packagelist: check calloc() result for world array
4fbd48515d6a rpc-sys: packagelist: avoid size_t underflow when stripping ABI version
46fce7d5efc9 ucode: fix off-by-one truncation of generated ubus object type name
26dba5206e17 exec: prevent double close() of exec pipe descriptors
af5d6f431186 uci: prevent integer overflow of client supplied apply timeout
d06d2a81dc29 rc: fix memory leak of list request context
0de666811559 rc: copy list "name" filter to avoid use-after-free
75470f4b5124 rc: use a per-request blob_buf for the list reply
3037a0e36856 treat exec failures in forked children with _exit() instead of return
f5ffec54d7c7 rc: reap killed child on list "running" check timeout
fd4fcdeb186b rpc-sys: packagelist: close status file on world parsing error paths
e22aea1a51df rpc-sys: packagelist: read world file instead of mmap to avoid SIGBUS
79c8087c8e8e file: avoid zero-length b64_decode() on empty write data
cd1d9588da63 ucode: bound recursion when converting blob arguments to ucode values
2decaec3ef1b iwinfo: fix error handling and backend leak in survey
28faf6403792 cast char arguments to unsigned char for ctype.h functions

Link: https://github.com/openwrt/openwrt/pull/23650
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 weeks agoramips: fix Phicomm K2G WAN by enabling rgmii1 23629/head
Dixiao-L [Tue, 2 Jun 2026 13:17:54 +0000 (21:17 +0800)] 
ramips: fix Phicomm K2G WAN by enabling rgmii1

The K2G's WAN port is an external RTL8211F gigabit PHY on switch
port 5, reached over the SoC's rgmii1 pins. The device tree only
requests rgmii2_pins though, so nothing ever claims rgmii1 and the
pins keep whatever the bootloader left them as.

When rgmii1 is muxed to GPIO the WAN port comes up but receives
nothing: port 5 RxGPC stays at 0 and wan never gets a DHCP lease.

rgmii1 vs GPIO is GPIOMODE (SYSC + 0x60) bit 9. Requesting
rgmii1_pins makes the pinmux driver clear it, which is enough to
get the WAN RX path working again. The rgmii1 pads (GPIO 24-35)
aren't used for anything else on this board.

Tested on a K2G: WAN gets a DHCP lease and passes traffic.

Signed-off-by: Dixiao-L <stgowl@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23629
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 weeks agompc85xx: p1010: TL-WDR4900v1: DTS update for RFKILL switch 22494/head
Shine [Thu, 19 Mar 2026 07:53:44 +0000 (08:53 +0100)] 
mpc85xx: p1010: TL-WDR4900v1: DTS update for RFKILL switch

The TL-WDR4900v1, like many other similarly-aged TP-Link devices, is
using a flipswitch for toggling WiFi, not a pushbutton. Update the DTS
to reflect that. The debounce time used here has been chosen based on
other supported (but different target) TP-Link devices that are using
such a flipswitch.

Requires usage of the gpio-button-hotplug driver to work.

Fixes: #13552
Signed-off-by: Shine <4c.fce2@proton.me>
Tested-by: Edward Chow <equu@openmail.cc>
Link: https://github.com/openwrt/openwrt/pull/22494
Signed-off-by: Robert Marko <robimarko@gmail.com>