]> git.ipfire.org Git - thirdparty/openwrt.git/log
thirdparty/openwrt.git
20 hours agoath79: add calibration variant for TP-Link TL-WA1201 v2 21736/head
Christoph Krapp [Mon, 26 Jan 2026 21:13:25 +0000 (22:13 +0100)] 
ath79: add calibration variant for TP-Link TL-WA1201 v2

Now that we have a board file, add calibration variant for TP-Link
TL-WA1201 v2 and add ipq-wifi package for it.

Tested-by: Jim McDonald <122668301+jimmyd998@users.noreply.github.com>
Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21736
Signed-off-by: Robert Marko <robimarko@gmail.com>
20 hours agoipq-wifi: Add entry for TP-Link TL-WA1201 v2
Christoph Krapp [Mon, 26 Jan 2026 21:12:35 +0000 (22:12 +0100)] 
ipq-wifi: Add entry for TP-Link TL-WA1201 v2

Add IPQ Wifi entry for ath79 TP-Link TL-WA1201 v2.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21736
Signed-off-by: Robert Marko <robimarko@gmail.com>
20 hours agoipq-wifi: update to Git HEAD (2026-01-28)
Robert Marko [Wed, 28 Jan 2026 11:02:10 +0000 (12:02 +0100)] 
ipq-wifi: update to Git HEAD (2026-01-28)

88514e5aab3e qca9888: add bdf for TP-Link TL-WA1201 v2

Signed-off-by: Robert Marko <robimarko@gmail.com>
21 hours agomvebu: cortex-a53: fix Methode eDPU migration to upstream DTS 21739/head
Robert Marko [Tue, 27 Jan 2026 12:53:37 +0000 (13:53 +0100)] 
mvebu: cortex-a53: fix Methode eDPU migration to upstream DTS

Migration of the eDPU DTS to upstream one broke the eDPU plus model
since the required ethernet aliases are missing and U-Boot then cannot
find the required ethernet nodes.

So, after sending the required fix upstream, lets apply it in OpenWrt
as well.

Fixes: 9852dda4105c ("mvebu: move DTS diff into a patch for Methode uDPU")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
23 hours agogemini: select CONFIG_BLK_DEV_LOOP
Linus Walleij [Tue, 27 Jan 2026 19:52:37 +0000 (20:52 +0100)] 
gemini: select CONFIG_BLK_DEV_LOOP

The gemini is using split squashfs/jffs2 root filesystems on
all devices, so without CONFIG_BLK_DEV_LOOP the device does
not gain a writeable root filesystem with these boot messages:

mount_root: unable to create loop device
mount_root: jffs2 not ready yet, using temporary tmpfs overlay

and then it never gets out of that. Fix this so we get writeable
rootfs again.

Link: https://github.com/openwrt/openwrt/pull/21748
Signed-off-by: Linus Walleij <linusw@kernel.org>
31 hours agoairoha: reduce HWRNG quality 21722/head
Aleksander Jan Bajkowski [Mon, 26 Jan 2026 22:49:55 +0000 (23:49 +0100)] 
airoha: reduce HWRNG quality

Backport a patch that reduces the quality of HWRNG. HWRNG has lower
entropy than expected. Thanks to this patch, it has a lower priority.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/21722
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
31 hours agorealtek: rtl930x: Add Hasivo s1100wp-8gt-se (excl. PoE) 21576/head
Bevan Weiss [Sun, 15 Sep 2024 08:42:19 +0000 (18:42 +1000)] 
realtek: rtl930x: Add Hasivo s1100wp-8gt-se (excl. PoE)

This commit adds support for Hasivo S1100WP-8GT-SE switch.

Device specification
--------------------
SoC Type: Realtek RTL9303
RAM: Samsung K4B2G1646F-BYMA (256MB DDR3 SDRAM)
Flash: Fudan FM25Q128A (16 MB)
Ethernet: 8x RTL8221B 10/100/1000/2500Mbps PHY
LEDs: 2 LEDs + 4 LEDs/port
1x power green (no control)
1x system green (via RLT9303 GPIO)
3x RJ45 LEDs/port (via HC595 shift registers on LED spi)
1x Green
1x Green/Orange
1x Orange LED/port for PoE status (below RJ45, on STC8)
Button: Reset
USB ports: None
Bootloader: Realtek U-Boot 2011.12.(3.6.6.55087) (Nov 13 2022 - 14:37:31)
Fan: None installed (but board provision for temp/FET/fan)
POE: 2x HS104PTI for 802.3af/at/bt PoE (Not yet working)

Installing OpenWrt
------------------
1. UART RJ45 requires soldering a connector to the empty footprint (RJ1).
   (Amphenol RJHSEE380 or similar)
2. Connect to UART 38400@8n1, using Cisco Console Rollover cable (RS232)
3. Set computer IP to 192.168.0.111, and plug in with 2.5Gbps
4. Enter bootloader by pressing esc key during boot
5. Enter password `Hs2021cfgmg`
6. Type `XXXX` to get into U-Boot
7. Type `rtk network on`
8. Use tftp if you have a 2.5G link (other speeds won't work).
   If serial, you can increase baudrate in uboot with `setenv baudrate 115200`
9.1. `tftpboot 0x84f00000 <openwrt-initramfs-filename>`
9.2. Otherwise use serial transfer (Y modem): `loady 0x84f00000`
10. `bootm 0x84f00000`

Now you should be in OpenWRT, and can use sysupgrade to install.

Signed-off-by: Bevan Weiss <bevan.weiss@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21576
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
31 hours agorealtek: add support for XikeStor SKS8300-8T 21511/head
FUKAYA Toshikuni [Mon, 12 Jan 2026 08:51:23 +0000 (17:51 +0900)] 
realtek: add support for XikeStor SKS8300-8T

XikeStor SKS8300-8T is a 8 ports Multi-Gig switch, based on the RTL9303.

Specifications:

- SoC                : Realtek RTL9303
- RAM                : DDR3 512 MiB
- Flash              : SPI-NOR 32 MiB (Macronix)
- CPU                : 800MHz
- Ethernet           : 8× 1G/2.5G/5G/10G Base-T RJ45 ports (RTL8261N)
- Keys (GPIO)        : 1x
- UART               : "Console" port on the front panel
  - type             : RS-232C
  - connector        : RJ-45
  - settings         : 115200 8N1
- Power              : 12 VDC, 4A
- Temperature sensor : LM75 or compatible
- Fan controller     : SensyLink CTF2302

Flash instruction using initramfs image:

 1. Prepare TFTP server & connect to serial port.
 2. Connect your computer to one of the RJ45 ports on SKS8300-8T
 3. Power on SKS8300-8T and interrupt autoboot with Shift + A.
 4. Use Shift + Q to drop from vendor CLI to U-Boot CLI.
 5. Set the boot command to enable network on boot.
       > setenv bootcmd 'mw.l 0x8401da94 0; rtk network on; boota'
 6. Set switch IP and TFTP server IP (optional, adjust to your setup).
       > setenv ipaddr <ip>
       > setenv serverip <ip>
 7. Download initramfs image from TFTP server.
       > tftpboot 0x83000000 <image name>
 8. Boot with the downloaded image.
       > bootm 0x83000000
 9. With rambooted OpenWrt, backup the stock firmware if needed.
10. Copy sysupgrade image to the device.
11. Perform sysupgrade with the sysupgrade image.
12. After reboot, you should have functional OpenWrt.

In OpenWrt, it is necessary to execute "rtk network on" to enable full
networking functionality. However, the internal U-Boot initialization
(which shares logic with "rtk network init" initializing MAC only and
configures the fan controller) sets a flag at memory address 0x8401da94.
Once this flag is set, any subsequent calls to "rtk network on" are
blocked. To bypass this, resetting 0x8401da94 to 0 by step 5, ensuring
that the network can be properly initialized later. This specific
address was confirmed in U-Boot 2011.12.(3.6.11.55242) (Jan 06 2025 -
14:39:46) by decompiling the function that references the "rtk_mac_init"
string.

Reverting to stock firmware:

1. Connect to serial port.
2. Power on SKS8300-8T and interrupt autoboot with Shift + A.
3. Use Shift + Q to drop from vendor CLI to U-Boot CLI.
4. Set the boot command to the firmware default.
       > setenv bootcmd boota
5. Enable network.
       > rtk network on
6. Boot OpenWrt.
       > boota
7. Download latest firmware from XikeStor and upload to your device.
8. Write firmware with 'sysupgrade -F'.
9. After reboot, stock firmware should boot automatically.

Co-authored-by: Samy Younsi <kame@duck.com>
Signed-off-by: FUKAYA Toshikuni <toshiq2@neenana.org>
Link: https://github.com/openwrt/openwrt/pull/21511
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
31 hours agorealtek: phy: replace hard coded pages 30/31 with define 21716/head
Markus Stockhausen [Mon, 26 Jan 2026 13:34:07 +0000 (14:34 +0100)] 
realtek: phy: replace hard coded pages 30/31 with define

Some of the code forgot to use the register defines for page
selection. Replace the hard coded values with their define.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21716
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
31 hours agorealtek: phy: align page select register naming with upstream
Markus Stockhausen [Mon, 26 Jan 2026 13:25:00 +0000 (14:25 +0100)] 
realtek: phy: align page select register naming with upstream

The downstream driver has different naming conventions than upstream.

Register: 31
Downstream name: RTL8XXX_PAGE_SELECT
Upstream name: RTL821x_PAGE_SELECT

Register: 30
Downstream name: RTL821XEXT_MEDIA_PAGE_SELECT
Upstream name: RTL821x_EXT_PAGE_SELECT

Align to upstream.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21716
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
31 hours agorealtek: phy: cleanup RTL8214C configuration
Markus Stockhausen [Mon, 26 Jan 2026 13:11:09 +0000 (14:11 +0100)] 
realtek: phy: cleanup RTL8214C configuration

RTL8214C configuration is currently useless.

- It uses register 29 (write only companion of ext. page register 30)
- "configuration" only reads registers 2/3 and writes a message
- "configuration" is run during probing

Drop the useless coding. As this was the last consumer drop register
29 define too.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21716
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
31 hours agowifi-scripts: fix ucode mobility_domain default value 21732/head
Youfu Zhang [Tue, 27 Jan 2026 07:11:15 +0000 (15:11 +0800)] 
wifi-scripts: fix ucode mobility_domain default value

The mobility_domain value generated by ucode differed from the previous
shell script implementation. The legacy shell script used `echo` on the
SSID, which appended a trailing newline.

To maintain roaming compatibility with pre-25.12 releases and OpenWrt
forks in default configuration, update the ucode logic to include this
newline character when generating the default value.

Fixes: #21731
Signed-off-by: Youfu Zhang <zhangyoufu@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21732
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
32 hours agomac80211: update to version 6.18.7 21711/head
Hauke Mehrtens [Mon, 26 Jan 2026 00:17:54 +0000 (01:17 +0100)] 
mac80211: update to version 6.18.7

This is based on Linux kernel 6.18.7.

This update contains the following upstream fixes:
f75b9d2c9f5b wifi: rtl8xxxu: Add USB ID 2001:3328 for D-Link AN3U rev. A1
401b10a72f5a wifi: rtw88: Add USB ID 2001:3329 for D-Link AC13U rev. A1
c0d93d69e147 staging: rtl8723bs: fix out-of-bounds read in rtw_get_ie() parser
e841d8ea7223 staging: rtl8723bs: fix stack buffer overflow in OnAssocReq IE parsing
bf323db1d883 staging: rtl8723bs: fix out-of-bounds read in OnBeacon ESR IE parsing
b1497ea24639 wifi: ath10k: move recovery check logic into a new work
99fc0689a588 wifi: ath11k: restore register window after global reset
ab0554f51e5f wifi: ath12k: Fix MSDU buffer types handling in RX error path
d911fa97dab3 wifi: ath12k: fix VHT MCS assignment
ca2a33cee1ef wifi: ath12k: fix TX and RX MCS rate configurations in HE mode
18d4706956b7 wifi: ath11k: fix VHT MCS assignment
6b1a0da75932 wifi: ath11k: fix peer HE MCS assignment
d0a5b5d56438 wifi: ath12k: restore register window after global reset
1564c04afa92 wifi: iwlwifi: mld: add null check for kzalloc() in iwl_mld_send_proto_offload()
d0bb3db7b295 wifi: ath12k: fix potential memory leak in ath12k_wow_arp_ns_offload()
36faecac7a2c wifi: ath12k: fix reusing m3 memory
4f93750fa588 wifi: ath12k: fix error handling in creating hardware group
41b623129175 wifi: ath12k: enforce vdev limit in ath12k_mac_vdev_create()
e442e820e953 wifi: ath12k: unassign arvif on scan vdev create failure
bcf44fe565bf wifi: rtw89: usb: use common error path for skbs in rtw89_usb_rx_handler()
87cc6fe79c3e wifi: rtw89: usb: fix leak in rtw89_usb_write_port()
c7ca777c5879 wifi: ath12k: Fix timeout error during beacon stats retrieval
51b823d7723f wifi: cw1200: Fix potential memory leak in cw1200_bh_rx_helper()
c9d1c4152e6d wifi: rtl818x: Fix potential memory leaks in rtl8180_init_rx_ring()
a6fb8785b179 wifi: mac80211: fix CMAC functions not handling errors
5ebf0fe7eaef wifi: rtl818x: rtl8187: Fix potential buffer underflow in rtl8187_rx_cb()
b8f34c1c5c4f wifi: mt76: mt7996: fix null pointer deref in mt7996_conf_tx()
cbeca0b7ea20 wifi: mt76: mt7996: Remove unnecessary link_id checks in mt7996_tx
d582d0e988d6 wifi: mt76: wed: use proper wed reference in mt76 wed driver callabacks
d2d11298dfc3 wifi: mt76: mt7996: Remove useless check in mt7996_msdu_page_get_from_cache()
2cde732373a7 Revert "wifi: mt76: mt792x: improve monitor interface handling"
74bb080717a3 wifi: mt76: mt7996: fix max nss value when getting rx chainmask
95bb36f8d6b3 wifi: mt76: mt7996: fix implicit beamforming support for mt7992
ee94375d06b5 wifi: mt76: mt7996: fix several fields in mt7996_mcu_bss_basic_tlv()
d64e6f27260e wifi: mt76: mt7996: fix teardown command for an MLD peer
e5c42efeb162 wifi: mt76: mt7996: set link_valid field when initializing wcid
9a43ed9ab800 wifi: mt76: mt7996: fix MLD group index assignment
7d6cd8f51ad8 wifi: mt76: mt7996: fix MLO set key and group key issues
1a4b481a21ae wifi: mt76: mt7996: fix using wrong phy to start in mt7996_mac_restart()
b4b789d24319 wifi: mt76: mt7996: fix EMI rings for RRO
46f0648e261c wifi: mt76: mt7996: grab mt76 mutex in mt7996_mac_sta_event()
70656b45467c wifi: mt76: Move mt76_abort_scan out of mt76_reset_device()
c319967690d4 wifi: mt76: mt7996: skip deflink accounting for offchannel links
abdedd46dc58 wifi: mt76: mt7996: skip ieee80211_iter_keys() on scanning link remove
f4c57afff3b0 wifi: mt76: mt7996: Add missing locking in mt7996_mac_sta_rc_work()
4d42aba0ee49 mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()
ad26a7ef0488 wifi: ieee80211: correct FILS status codes
40257a2ef1bc wifi: rtl8xxxu: Fix HT40 channel config for RTL8192CU, RTL8723AU
c3ab9657866f wifi: cfg80211: stop radar detection in cfg80211_leave()
0283fac52b42 wifi: cfg80211: use cfg80211_leave() in iftype change
9c6f9b2a80ed wifi: mt76: mt792x: fix wifi init fail by setting MCU_RUNNING after CLC load
f5323b43019d wifi: brcmfmac: Add DMI nvram filename quirk for Acer A1 840 tablet
498e286941b9 wifi: mt76: Fix DTS power-limits on little endian systems
e5c129a05531 wifi: rtw88: limit indirect IO under powered off for RTL8822CS
90a15ff32464 wifi: rtlwifi: 8192cu: fix tid out of range in rtl92cu_tx_fill_desc()
7ea38152a289 wifi: cfg80211: sme: store capped length in __cfg80211_connect_result()
182a2786d248 wifi: mac80211: do not use old MBSSID elements
de5eb6b65e9f wifi: iwlwifi: Fix firmware version handling
a21704df4024 wifi: mac80211: Discard Beacon frames to non-broadcast address
e3c35177103e wifi: avoid kernel-infoleak from struct iw_point
b97be67dc06e wifi: mac80211: restore non-chanctx injection behaviour
1251bbdb8f5b wifi: mac80211_hwsim: fix typo in frequency notification

The following patches were applied upstream:
build/130-backports-move-__counted_by-to-compiler_types.h-head.patch patch [1]
build/999-kernel-6.12.64.patch [2]

[1]: https://github.com/openwrt/backports/commit/b63f79524e6f30e58692bc9ee57c6e6e0dd10de4
[2]: https://github.com/openwrt/backports/commit/ed8c176dfab1ae8962435576face472aaa7294c3

Link: https://github.com/openwrt/openwrt/pull/21711
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
46 hours agorealtek: pcs: rtl931x: add sequence for LC PLL 21707/head
Jonas Jelonek [Sun, 25 Jan 2026 19:52:37 +0000 (19:52 +0000)] 
realtek: pcs: rtl931x: add sequence for LC PLL

The RTL931X CMU code was only capable of setting up ring PLL. This is
fine so far as most modes use this PLL type. Other modes are not handled
by the code, neither here nor in the SDK. Though, the SDK has the needed
sequence to setup the LC PLL. Using LC PLL seems to be handled somewhere
else.

Include the small sequence from the SDK to have it, though not used yet.
This could be helpful for further development which goes beyond the SDK.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21707
Signed-off-by: Robert Marko <robimarko@gmail.com>
46 hours agorealtek: pcs: rtl93xx: improve CMU terminology
Jonas Jelonek [Sun, 25 Jan 2026 19:45:37 +0000 (19:45 +0000)] 
realtek: pcs: rtl93xx: improve CMU terminology

The implementations for CMU management for RTL930x and RTL931x differ in
their terminology but not that much in their technical aspect. For both
it seems to be the case that two adjacent SerDes share a CMU. This CMU
contains a ring PLL for low speeds (capable of 1G/2.5G) and an LC PLL for
high speeds (capable of 1G/2.5G/10G).

Introduce an enum for the PLL type, used for both RTL93xx variants.
Align the naming of internal variables, especially in the RTL931x
implementation. Rename cmu_type to pll_type because this is much more
accurate. Use 'force_' instead of 'frc_' to make clear what it means.
Also rename the function from 'cmu_type_set' to 'config_cmu' because it
obviously does more than just setting the CMU type but rather configures
the CMU.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21707
Signed-off-by: Robert Marko <robimarko@gmail.com>
46 hours agorealtek: pcs: rtl931x: fix and cleanup CMU functions
Jonas Jelonek [Sun, 25 Jan 2026 19:35:44 +0000 (19:35 +0000)] 
realtek: pcs: rtl931x: fix and cleanup CMU functions

Fix the wrong values bit values when setting CMU band which were the
same for both 'enable == true' and 'enable == false'.

While at it, fix some coding issues in the CMU functions:
- drop confusing debug output
- use ternary value instead of if-else
- return proper error
- make variable declaration in reverse christmas tree
- drop unneeded temporary value

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21707
Signed-off-by: Robert Marko <robimarko@gmail.com>
46 hours agorealtek: pcs: rtl931x: use SerDes hw mode for CMU setup
Jonas Jelonek [Sun, 25 Jan 2026 18:52:45 +0000 (18:52 +0000)] 
realtek: pcs: rtl931x: use SerDes hw mode for CMU setup

Switch the CMU setup functions to use the SerDes hardware mode instead
of the PHY interface mode.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21707
Signed-off-by: Robert Marko <robimarko@gmail.com>
46 hours agorealtek: pcs: rtl930x: enhance symbol error reset 21718/head
Markus Stockhausen [Mon, 26 Jan 2026 16:32:05 +0000 (17:32 +0100)] 
realtek: pcs: rtl930x: enhance symbol error reset

The symbol error reset function misses the default sequence. E.g. kernel
spits the message "rtpcs_930x_sds_sym_err_reset unsupported phy mode" when
working on 2500base-x.

Align the function with the SDK by

- adding QSGMII mode
- adding the "all other modes" switch
- working with "channels" to make clearer what happens

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21718
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 days agomdadm: move init before fstab init runs 21553/head
Joe Hohertz [Thu, 15 Jan 2026 19:36:41 +0000 (14:36 -0500)] 
mdadm: move init before fstab init runs

Ensure md volumes are ready before attempting to mount volumes.

Signed-off-by: Joe Hohertz <jhohertz@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21553
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 days agorealtek: add Zyxel GS1900-24 B1 device definition 21595/head
Joe Holden [Sat, 30 Aug 2025 20:35:28 +0000 (20:35 +0000)] 
realtek: add Zyxel GS1900-24 B1 device definition

The Zyxel GS1900-24 B1 is a 24 port switch with two SFP ports, it is
identical to the A1 except for doubling the ram.

Specifications
--------------
* Device:    Zyxel GS1900-24 B1
* SoC:       Realtek RTL8382M 500 MHz MIPS 4KEc
* Flash:     16 MiB
* RAM:       128 MiB DDR2 SDRAM
* Ethernet:  24x 10/100/1000 Mbps, 2x SFP 100/1000 Mbps
* LEDs:
  * 1 PWR LED (green, not configurable)
  * 1 SYS LED (green, configurable)
  * 24 ethernet port link/activity LEDs (green, SoC controlled)
  * 2 SFP status/activity LEDs (green, SoC controlled)
* Buttons:
  * 1 "RESET" button on front panel (soft reset)
  * 1 button ('SW1') behind right hex grate (hardwired power-off)
* Power:     120-240V AC C13
* UART:      Internal populated 10-pin header ('J5') providing RS232;
             connected to SoC UART through a SIPEX 3232EC for voltage
             level shifting.

* 'J5' RS232 Pinout (dot as pin 1):
  2) SoC RXD
  3) GND
  10) SoC TXD

Serial connection parameters: 115200 8N1.

Installation
------------

OEM upgrade method:

* Log in to OEM management web interface

* Navigate to Maintenance > Firmware > Management

* If "Active Image" has the first option selected, OpenWrt will need to be
  flashed to the "Active" partition. If the second option is selected,
  OpenWrt will need to be flashed to the "Backup" partition.

* Navigate to Maintenance > Firmware > Upload

* Upload the openwrt-realtek-rtl838x-zyxel_gs1900-24-b1-initramfs-kernel.bin
  file by your preferred method to the previously determined partition.
  When prompted, select to boot from the newly flashed image, and reboot
  the switch.

* Once OpenWrt has booted, scp the sysupgrade image to /tmp and flash it:

  > sysupgrade /tmp/openwrt-realtek-rtl838x-zyxel_gs1900-24-b1-squashfs-sysupgrade.bin

U-Boot TFTP method:

* Configure your client with a static 192.168.1.x IP (e.g. 192.168.1.10).

* Set up a TFTP server on your client and make it serve the initramfs
  image.

* Connect serial, power up the switch, interrupt U-boot by hitting the
  space bar, and enable the network:

  > rtk network on

> Since the GS1900-24 B1 is a dual-partition device, you want to keep the
  OEM firmware on the backup partition for the time being. OpenWrt can
  only be installed in the first partition anyway (hardcoded in the
  DTS). To ensure we are set to boot from the first partition, issue the
  following commands:

  > setsys bootpartition 0
  > savesys

* Download the image onto the device and boot from it:

  > tftpboot 0x81f00000 192.168.1.10:openwrt-realtek-rtl838x-zyxel_gs1900-24-b1-initramfs-kernel.bin
  > bootm

* Once OpenWrt has booted, scp the sysupgrade image to /tmp and flash it:

  > sysupgrade /tmp/openwrt-realtek-rtl838x-zyxel_gs1900-24-b1-squashfs-sysupgrade.bin

Co-authored-by: Goetz Goerisch <ggoerisch@gmail.com>
Signed-off-by: Joe Holden <jwh@zorins.us>
Add memory size and adapt supported device.
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21595
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 days agorealtek: use common dtsi for Zyxel GS1900-24
Joe Holden [Sat, 30 Aug 2025 20:34:52 +0000 (20:34 +0000)] 
realtek: use common dtsi for Zyxel GS1900-24

As there are actually 2 versions of the GS1900-24 where the only
difference is the amount of ram, use a common dtsi and make the
original A1 model dts include the dtsi and only override the memory size.

Signed-off-by: Joe Holden <jwh@zorins.us>
Move memory size to device dts.
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21595
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 days agotools/mkimage: update to version 2026.01 21674/head
Stefan Kalscheuer [Sat, 24 Jan 2026 08:47:56 +0000 (09:47 +0100)] 
tools/mkimage: update to version 2026.01

Update package to the latest stable version.

Patches manually refreshed:
* 030-allow-to-use-different-magic.patch

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/21674
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 days agouboot-tools: update to version 2026.01
Stefan Kalscheuer [Sat, 24 Jan 2026 08:38:13 +0000 (09:38 +0100)] 
uboot-tools: update to version 2026.01

Update package to the latest stable version.

Patches manually refreshed:
* 003-tools-dumpimage-fix-tools-compile.patch

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/21674
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 days agorealtek: eth: simplify mac port control access 21691/head
Markus Stockhausen [Sun, 25 Jan 2026 09:23:23 +0000 (10:23 +0100)] 
realtek: eth: simplify mac port control access

The ethernet driver uses an indirection for access to the MAC_PORT_CTRL
register (aka. MAC_L2_PORT_CTRL on RTL93xx). It defines the base address
and adds up the cpu port offset. This is not needed as the driver does
not handle the non-cpu ports. Use direct register access instead and
avoid register confusion by always using the "_L2_" naming.

While we are here:

- Drop the functions and use defines instead
- Add CPU port defines for better readability

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21691
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 days agorealtek: mdio: rename driver data structure from priv to ctrl 21701/head
Markus Stockhausen [Sun, 25 Jan 2026 17:00:35 +0000 (18:00 +0100)] 
realtek: mdio: rename driver data structure from priv to ctrl

Align with the other Realtek switch drivers and use "ctrl" instead
of "priv" for the central data structure.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21701
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 days agokernel: add missing kernel config option 21710/head
Hauke Mehrtens [Mon, 26 Jan 2026 00:32:23 +0000 (01:32 +0100)] 
kernel: add missing kernel config option

The CONFIG_SOFTLOCKUP_DETECTOR_INTR_STORM option shows up when the
OpenWrt option CONFIG_KERNEL_SOFTLOCKUP_DETECTOR is activated.

Link: https://github.com/openwrt/openwrt/pull/21710
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 days agokernel: reorder configuration options
Hauke Mehrtens [Mon, 26 Jan 2026 00:32:35 +0000 (01:32 +0100)] 
kernel: reorder configuration options

Reorder the kernel configuration options by running:
./scripts/kconfig-reorder.sh

Link: https://github.com/openwrt/openwrt/pull/21710
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 days agoqualcommax: ipq807x: fix sysupgrade for TCL LINKHUB HH500V 21721/head
Milan Krstic [Mon, 26 Jan 2026 19:32:54 +0000 (19:32 +0000)] 
qualcommax: ipq807x: fix sysupgrade for TCL LINKHUB HH500V

Fix missing reference to bootconfig.sh that was breaking root partition
swap.

Signed-off-by: Milan Krstic <milan.krstic@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21721
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2 days agoodhcp6c: update to Git HEAD (2026-01-25) 21705/head
Álvaro Fernández Rojas [Sun, 25 Jan 2026 18:44:22 +0000 (19:44 +0100)] 
odhcp6c: update to Git HEAD (2026-01-25)

ee2949e3a70a dhcpv6: add config for strict RFC7550
abf6677391f0 dhcpv6: replace hash_ifname() with MD5 implementation

https://github.com/openwrt/odhcp6c/compare/8abb45065f5e...24485bb4b35a

Link: https://github.com/openwrt/openwrt/pull/21705
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2 days agotcpdump: add PROVIDES=tcpdump to tcpdump-tiny
Felix Fietkau [Mon, 26 Jan 2026 17:46:04 +0000 (17:46 +0000)] 
tcpdump: add PROVIDES=tcpdump to tcpdump-tiny

Improves handling of dependencies on tcpdump

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 days agohostapd: add raw beacon report data to ubus notification
John Crispin [Mon, 4 Aug 2025 05:37:47 +0000 (07:37 +0200)] 
hostapd: add raw beacon report data to ubus notification

Add the complete base64-encoded beacon report structure to the
"beacon-report" ubus notification event.

Signed-off-by: John Crispin <john@phrozen.org>
2 days agohostapd: add association frame to taxonomy data
John Crispin [Tue, 29 Jul 2025 12:20:19 +0000 (14:20 +0200)] 
hostapd: add association frame to taxonomy data

Extend the taxonomy subsystem to capture the complete association frame
in addition to the existing probe and association IE data.

This adds a new assoc_frame_taxonomy field to struct sta_info and exposes
it via the get_sta_ies ubus method as a base64-encoded "assoc_frame" field.

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 days agohostapd: add reporting detail support to RRM beacon request
John Crispin [Tue, 29 Jul 2025 12:04:16 +0000 (14:04 +0200)] 
hostapd: add reporting detail support to RRM beacon request

Extend the hostapd_rrm_beacon_req ubus method to support the optional
reporting_detail parameter as defined in IEEE 802.11-2016 section 9.4.2.21.7.

Also fix missing assignment operators (=) in the beacon_req_policy array
initialisation.

Signed-off-by: John Crispin <john@phrozen.org>
2 days agohostapd: fix beacon_req_policy syntax issues
Felix Fietkau [Thu, 22 Jan 2026 11:58:24 +0000 (11:58 +0000)] 
hostapd: fix beacon_req_policy syntax issues

Use the correct syntax for array element assignment

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 days agonetifd: add loglevel config option (fixes #18001) 19737/head
Peter Meiser [Sun, 10 Aug 2025 08:05:32 +0000 (10:05 +0200)] 
netifd: add loglevel config option (fixes #18001)

Add netifd_loglevel to /etc/config/network:

config globals 'globals'
option netifd_loglevel '1'

The netifd's default value is 2.

Signed-off-by: Peter Meiser <peter.meiser@gmx.com>
Link: https://github.com/openwrt/openwrt/pull/19737
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 days agorealtek: dsa: rtl839x: fix uninitialized global access 21703/head
Markus Stockhausen [Sun, 25 Jan 2026 18:07:32 +0000 (19:07 +0100)] 
realtek: dsa: rtl839x: fix uninitialized global access

Setup for DSA QOS on RTL839x accesses unitialized memory. For some
reason the handover of the priv structure was realized via global
intermediate variable switch_priv. During refactoring for adbb9a6
("realtek: dsa: rtl83xx: fix init section mismatch") this was not
noticed. Since then RTL839x devices crash during startup.

Fix this by using standard handover via function parameters.

Fixes: adbb9a6 ("realtek: dsa: rtl83xx: fix init section mismatch")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21703
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 days agomt76: mt7996: fix crash when using mesh 21643/head
Hauke Mehrtens [Thu, 22 Jan 2026 23:13:46 +0000 (00:13 +0100)] 
mt76: mt7996: fix crash when using mesh

Backport a fix from upstream mt76 to fix a crash in 802.11s mesh mode.

Fixes: https://github.com/openwrt/openwrt/issues/20751
Link: https://github.com/openwrt/openwrt/pull/21643
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agoqualcommax: ipq807x: add support for TCL LINKHUB HH500V 19182/head
Milan Krstic [Fri, 13 Jun 2025 14:49:18 +0000 (14:49 +0000)] 
qualcommax: ipq807x: add support for TCL LINKHUB HH500V

TCL LINKHUB HH500V also known as Vodafone Gigacube B157 is a dual band
802.11ax 5G NR CPE with an FXS port.

Specifications:
* SoC: Qualcomm IPQ8072A
* RAM: 1024 MB
* NAND flash: 256MB NAND (MT29F2G08ABBGAH4)
* NOR flash: 64MB NOR (MX25U25635F) - only in some variants
* WiFi 5G: Qualcomm QCN5054
* WiFi 2.4G: Qualcomm QCN5024
* Ethernet 2.5G: Qualcomm QCA8081
* Ethernet 1G: Qualcomm QCA8075
* Modem: GosunCn GM800 (Qualcomm Snapdragon X55)
* SIM: 1 nano-SIM card slot
* Buttons: Power, Reset, WPS
* LEDs: Power (B/R), WiFi (B), 4G (B/Y/R), 5G (B/Y/R)
* VoIP: 1 FXS RJ11 port (not supported in OpenWrt)
* Power: 12V, 3A

UART serial console:

* 115200,8N1,1.8V
* Three unmarked test points next to QJ2012A:

 +---------+
 | QJ2012A |
 +---------+
 o TX
 o GND
 o RX
 o
 o
 o

Installation via OEM firmware:

* Use the following process to obtain root ssh access
https://forum.openwrt.org/t/150371/24
* Connect using root with no password on port 42000
* Optionally for serial bootloader access run :
fw_setenv bootdelay=3
* SCP factory.bin to /tmp
* Run:
sysupgrade -n /tmp/factory.bin

Installation via serial console and OEM firmware::

* Use console to access OEM firmware shell
* Proceed with SCP & sysupgrade as described above

Other notes:

* This device uses active partition rotation
* Some versions (TCL branded?) have a NOR chip in addition to NAND
* The above is supported by u-boot patching DT partitions
* DT patching does NOT occur on tftpboot/bootm
* Modem is detected as foxconn-sdx55 by kernel (same VID/PID)
* This works OK-ish and should be improved if we can get OEM modem details

Signed-off-by: Milan Krstic <milan.krstic@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19182
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 days agoqualcommax: ipq807x: add functions for bootconfig partition
Milan Krstic [Sat, 24 Jan 2026 11:17:13 +0000 (11:17 +0000)] 
qualcommax: ipq807x: add functions for bootconfig partition

The BOOTCONFIG partition is used by Qualcomm's boot chain to store
metadata about the device's startup configuration. It contains info such
as versioning, configuration flags, primary boot partition, and more.

Newer devices with dual boot partitions not only store the active boot
partition in a U-boot variable but also in partition info in the
BOOTCONFIG partition. As such, add library functions to set and toggle
the active boot partition.

Signed-off-by: Milan Krstic <milan.krstic@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19182
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 days agogeneric: 6.12: backport aw9523 fix can_sleep flag
Milan Krstic [Fri, 13 Jun 2025 06:56:14 +0000 (06:56 +0000)] 
generic: 6.12: backport aw9523 fix can_sleep flag

The GPIO expander is connected via I2C, thus the can_sleep flag has to
be set to true. This fixes spurious "scheduling while atomic" bugs
in the kernel ringbuffer.

Signed-off-by: Milan Krstic <milan.krstic@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19182
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 days agorealtek: eth: use new prefix for ring operations 21685/head
Markus Stockhausen [Sat, 24 Jan 2026 21:43:33 +0000 (22:43 +0100)] 
realtek: eth: use new prefix for ring operations

Align the functions with rest of driver.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21685
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 days agorealtek: eth: use new prefix for open/stop operations
Markus Stockhausen [Sat, 24 Jan 2026 21:35:45 +0000 (22:35 +0100)] 
realtek: eth: use new prefix for open/stop operations

Align the functions with rest of driver.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21685
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 days agorealtek: dsa: remove half-cooked SoC version determination 21684/head
Markus Stockhausen [Sat, 24 Jan 2026 21:17:13 +0000 (22:17 +0100)] 
realtek: dsa: remove half-cooked SoC version determination

There are some code pieces that determine the SoC version of the
running system. For RTL83xx it reads out the registers, for RTL93xx
it simply uses a constant value. Without any consumer of this data
drop it.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21684
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 days agorealtek: phy: drop external RTL8218B firmware blob 21679/head
Markus Stockhausen [Sat, 24 Jan 2026 11:52:45 +0000 (12:52 +0100)] 
realtek: phy: drop external RTL8218B firmware blob

No one has looked into the firmware based RTL8218B initializations
for a long time. Instead the basic setup sequences have evolved
so that they can start the RTL8218B PHY from scratch. See

19bc6e8 ("realtek: phy: add basic RTL8218B setup")
4fa90d8 ("realtek: phy: enhance RTL8218B initialization")

Drop the legacy coding.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21679
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 days agoipq40xx: fix image pipeline for MR6350 21682/head
Zeyu Dong [Sat, 24 Jan 2026 18:51:50 +0000 (13:51 -0500)] 
ipq40xx: fix image pipeline for MR6350

Add two missing $$ in the factory image build pipeline for MR6350

Signed-off-by: Zeyu Dong <dzy201415@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21682
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 days agoipq40xx: enable PoE output on Meraki MR30H 20645/head
Hal Martin [Tue, 4 Nov 2025 19:31:04 +0000 (20:31 +0100)] 
ipq40xx: enable PoE output on Meraki MR30H

This commit enables PoE output on port 1 of the Meraki MR30H if
the device is powered via 802.3at PoE.

No PoE output is enabled if the device is powered via 802.3af PoE,
as there is insufficient power.

Signed-off-by: Hal Martin <hal.martin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20645
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 days agomicrochipsw: lan969x: include ip-bridge and dcb tools 21695/head
Robert Marko [Sun, 25 Jan 2026 13:44:45 +0000 (14:44 +0100)] 
microchipsw: lan969x: include ip-bridge and dcb tools

Now that DCB is enabled by default, it makes sense to include it on
lan969x.

While we are here, lets include ip-bridge as these devices are switches
and the Busybox applet does not expose enough functionality.

These devices have no space constraints.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
3 days agomicrochipsw: enable DCB by default
Robert Marko [Sun, 25 Jan 2026 11:04:04 +0000 (12:04 +0100)] 
microchipsw: enable DCB by default

Switchdev driver used by microchipsw supports DCB and has not storage
constraints, so enable kernel and driver DCB support by default.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
3 days agoodhcpd: update to Git HEAD (2026-01-19) 21636/head
Paweł Owoc [Mon, 19 Jan 2026 19:56:25 +0000 (20:56 +0100)] 
odhcpd: update to Git HEAD (2026-01-19)

5a13d875ac71 dhcpv6: set static defines for DHCPv6 option header size
9857adb8ac99 dhcpv6-ia: switch case refactor in dhcpv6_handle_ias()
3cbbea830ddd netlink: clean up sockets, close files
13ef483716a5 dhcpv4: de-escalate error logging to debug

https://github.com/openwrt/odhcpd/compare/3fda5f8b121b...13ef483716a5

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21636
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
3 days agogemini: create a copy-kernel for 3072k kernels
Linus Walleij [Sat, 24 Jan 2026 17:13:24 +0000 (18:13 +0100)] 
gemini: create a copy-kernel for 3072k kernels

The Raidsonic devices do not use a 2048k kernel "Kern"
partition like the Storlink reference designs. Instead
it uses a 3072k partition to fit a slightly
larger kernel.

Sadly the current OpenWrt Gemini kernel is still bigger
than 3072k so we need to make use of the Ramdisk
partition as well.

Create a special "copy-kernel" version that can deal
with the Raidsonic 3072k kernels. Tested on the
Raidsonic IB-4220-B booting kernel v6.12.66.

Fix a copy/paste error in the image generation makefile
while we are at it.

Link: https://github.com/openwrt/openwrt/pull/21686
Signed-off-by: Linus Walleij <linusw@kernel.org>
3 days agoqualcommax: ipq60xx: add support for TP-Link EAP620HD v3 21467/head
John Christoforidis [Thu, 8 Jan 2026 20:13:27 +0000 (22:13 +0200)] 
qualcommax: ipq60xx: add support for TP-Link EAP620HD v3

Specifications:
  * SoC: Qualcomm IPQ6018/AP-CP03-C1 (64-bit Quad-core Arm Cortex-A53 @ 1.2 GHz)
  * RAM: 2x Zentel A3T4GF40BBF-HP (1 GiB DDR3-1866 (13-13-13))
  * Serial Port: 1v8 TTL 115200n8
  * Wi-Fi: Qualcomm QCN5022 (802.11ax/b/g/n)
  * Wi-Fi: Qualcomm QCN5052 (802.11ac/ax/n)
  * Ethernet: RTL8211FS (10/100/1000BASE-T)
  * Flash: GigaDevice PSR1GA30DT (128 MiB)
  * LEDs: 1x Blue Status (GPIO 35 Active High)
  * Buttons: 1x Reset (GPIO 9 Active Low)
  * FCCID: 2AXJ4EAP620HDV3
  * UART: 4-pin unpopulated header by the J1 footprint

Installation Instructions (Serial+TFTP):
  1. Locate the J1 footprint which contains 4 unpopulated pins
  where starting from the arrow, the pins are TX, RX, VCC and GND
  respectively.
  2. Connect a 1v8 TTL port to the 4 pins. Ensure RX and TX are crossed
     over.
  3. Copy openwrt-qualcommax-ipq60xx-tplink_eap620-hd-v3-initramfs-uImage.itb
  to your TFTP server.
  4. Power up the AP and hold Ctrl+B in the serial console (115200n8) until autoboot is halted.
  5. Run the following commands in the U-boot prompt:
     IPQ6018# setenv serverip <TFTP server addr>
     IPQ6018# setenv ipaddr <addr of the AP>
     IPQ6018# tftpboot 0x44000000 openwrt-qualcommax-ipq60xx-tplink_eap620-hd-v3-initramfs-uImage.itb
     IPQ6018# bootm 0x44000000
     You may need to type Ctrl+C and Enter before running these commands
     to clear invisible characters from the buffer.
  6. Run the following command in a terminal to copy the sysupgrade image
     to be installed (check IP address):
     $ scp -O openwrt-qualcommax-ipq60xx-tplink_eap620-hd-v3-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/
  7. Activate the OpenWrt serial console and run the following commands:
     # cd /tmp
     # sysupgrade -n openwrt-qualcommax-ipq60xx-tplink_eap620-hd-v3-squashfs-sysupgrade.bin
  8. The AP will reboot and OpenWrt will be successfully installed.

Installation Instructions (Web UI method):
  1. Set up the device using the vendor's web UI. Navigate to
     Management->SSH and enable the "SSH Login" checkbox. Select "Save".

  2. Connect to the machine via SSH:
     $ ssh -o hostkeyalgorithms=ssh-rsa <ip_of_device>

  3. Disable signature verification:
     $ cliclientd stopcs
  4. Rename the "-web-ui-factory" image to something less than 63
     characters, maintaining the ".bin" suffix.

  5. Go to System -> Firmware Update.
     Under "New Firmware File", click "Browse" and select the image.
     Select "Update" and confirm by clicking "OK".

  6. If the update fails, the web UI should show an error message.
     Otherwise, the device should reboot into OpenWrt.

Device support followed from EAP620HD v2 and eap6xx-outdoor for DTS.
Links: openwrt/openwrt#18227

Signed-off-by: John Christoforidis <github@yanny.dev>
Link: https://github.com/openwrt/openwrt/pull/21467
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 days agoeconet: major rewrite of ethernet driver 21557/head
Caleb James DeLisle [Thu, 15 Jan 2026 21:53:20 +0000 (21:53 +0000)] 
econet: major rewrite of ethernet driver

Update the econet-eth driver to a new version which is of
sufficient quality that it is realistic to think about upstreaming.

This version is now NAPI based, collects stats, downloads without
dropped packets anymore, has debugfs introspection, and can be
unloaded and reloaded (providing the reset controller is present).

PR #21545 is recommended but not required, without this the
ethernet driver will log a warning on startup because it can't get
the resets and it will be impossible to unload and reload the
driver without a reboot. However, the PoC driver was not capable of
reloading so this is not a regression.

Signed-off-by: Caleb James DeLisle <cjd@cjdns.fr>
Link: https://github.com/openwrt/openwrt/pull/21557
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agorealtek: dsa: rtl83xx: fix init section mismatch 21690/head
Markus Stockhausen [Sun, 25 Jan 2026 08:27:56 +0000 (09:27 +0100)] 
realtek: dsa: rtl83xx: fix init section mismatch

Compilation currently spits this message:

WARNING: modpost: vmlinux: section mismatch in reference:
rtl83xx_sw_probe+0x6a4 (section: .text.rtl83xx_sw_probe)
-> rtl83xx_setup_qos (section: .init.text)

That means that we have a "normal" function caller (can be
called during the whole uptime) and a "initialization" function
callee (only available during init.

Fix this and directly fix the unwanted family checks.

Fixes: a91c3ab ("realtek: dsa: avoid use-after-free")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21690
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agouboot-mediatek: fix malformed patch 21693/head
Shiji Yang [Sun, 25 Jan 2026 09:45:32 +0000 (17:45 +0800)] 
uboot-mediatek: fix malformed patch

This patch was manually edited but not refreshed.

Fixes: 794b4dee65ed ("uboot-mediatek: add 8g check to bpi-r4 environment for bl2")
Fixes: 46ee5209aaeb ("uboot-mediatek: add command for getting size of ram")
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21693
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agorealtek: mdio: add more Aquantia PHY IDs 21515/head
Jonas Jelonek [Sun, 11 Jan 2026 11:12:57 +0000 (11:12 +0000)] 
realtek: mdio: add more Aquantia PHY IDs

Add a PHY ID for Aquantia AQR813 which is an Octa-PHY found in some
Realtek switches.

Add another PHY ID for another revision of AQR113C, also found in some
Realtek switches.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21515
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
3 days agorealtek: mdio: apply phy polling config for RTL931x
Jonas Jelonek [Sun, 11 Jan 2026 10:59:54 +0000 (10:59 +0000)] 
realtek: mdio: apply phy polling config for RTL931x

Apply the PHY polling configuration for RTL931x too, as previously
implemented for RTL930x. This is needed for several PHYs on that
platform to function properly.

Add another flag called 'force_res' to the phy_info struct which is for
RTL931x only. The SDK mentions this as a flag to force polling the
Realtek proprietary PHY status resolution register. Effectively, this
changes the polling to proprietary format instead of standard format,
and sets an enable bit in another private polling register field.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21515
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
3 days agorealtek: mdio: enhance reading phy id
Jonas Jelonek [Sun, 11 Jan 2026 10:12:00 +0000 (10:12 +0000)] 
realtek: mdio: enhance reading phy id

Reading the PHY ID to assign a PHY config is currently simple. For C45
two MDIO reads of a hardcoded MMD are done to get the standard PHY ID
registers. MMD 31 (MMD_VEND2) is used for that purpose, assuming there
will be a valid PHY ID stored in this MMD in all cases. However, with
Aquantia AQR813 there's at least one example for which this isn't true.
This PHY returns 0 for the PHY ID in MMD_VEND2, instead MMD_VEND1 would
have the correct ID.

Enhance reading the PHY by accessing a common set of MMDs of which most
PHY at least implement one and have a valid PHY ID in. To keep overhead
low, do not scan all MMDs. As soon as a valid PHY ID is found, exit and
use that. This is similar to the kernel logic, jsut reduced to fewer
MMDs.

Also handle possible errors coming from MDIO reads to avoid reading garbage.

While at it, move reading the PHY ID to a separate function to not
pollute the poll fixup retrievel function.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21515
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
3 days agoipq-wifi: update to Git HEAD (2026-01-24)
Robert Marko [Sun, 25 Jan 2026 10:38:59 +0000 (11:38 +0100)] 
ipq-wifi: update to Git HEAD (2026-01-24)

38804f59fbb9 ci: add ath12k BDF-s
d28bc0724dc6 ipq8074: add TCL LINKHUB  HH500V BDF
8e1fb2f59893 ipq6018:add TP-Link EAP620 HD v3 BDF Add board file for TP-Link EAP620 HD v3. bdwlan_US.bin sourced from EAP620 HD(US)_V3_1.4.4 Build 20250718 stock firmware.

Signed-off-by: Robert Marko <robimarko@gmail.com>
4 days agorockchip: add HINLINK H66K / H68K support 21270/head
Chukun Pan [Sun, 31 Aug 2025 14:01:15 +0000 (22:01 +0800)] 
rockchip: add HINLINK H66K / H68K support

Hardware (common):
- RK3568 SoC
- 2/4GB LPDDR4
- 1x HDMI Type A
- 3.5mm jack with mic
- 1x PCIE 2.0 WiFi slot
- 1x USB 3.0, 2x USB 2.0
- 2x 2.5GbE RTL8125B Ethernet
- MicroSD card slot / eMMC 32GB

Additions to HINLINK H68K:
- 2x 1GbE RTL8211F/YT8531 Ethernet

Installation:
  Use dd or balenaEtcher to flash the firmware.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/21270
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agouboot-rockchip: add HINLINK H66K / H68K support
Chukun Pan [Fri, 19 Dec 2025 14:06:02 +0000 (22:06 +0800)] 
uboot-rockchip: add HINLINK H66K / H68K support

Add pending support for the HINLINK H66K / H68K.
Tested on HINLINK H66K, H68K and H68K-V2.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/21270
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agorealtek: mdio: drop driver lock 21529/head
Markus Stockhausen [Tue, 13 Jan 2026 21:15:15 +0000 (22:15 +0100)] 
realtek: mdio: drop driver lock

The Realtek mdio driver does not need to track a separate lock.
Rely on the default kernel mdio bus lock instead.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21529
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agorealtek: mdio: use generic bus command function for RTL931x
Markus Stockhausen [Tue, 13 Jan 2026 21:06:27 +0000 (22:06 +0100)] 
realtek: mdio: use generic bus command function for RTL931x

Refactor RTL931x mdio commands to use the new helper function.
Remove unneeded goto and debug statements.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21529
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agorealtek: mdio: use generic bus command function for RTL930x
Markus Stockhausen [Tue, 13 Jan 2026 20:36:13 +0000 (21:36 +0100)] 
realtek: mdio: use generic bus command function for RTL930x

Refactor RTL930x mdio commands to use the new helper function.
Remove unneeded goto and debug statements.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21529
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agorealtek: mdio: use generic bus command function for RTL839x
Markus Stockhausen [Tue, 13 Jan 2026 16:41:55 +0000 (17:41 +0100)] 
realtek: mdio: use generic bus command function for RTL839x

Refactor RTL839x mdio commands to use the new helper function.
Remove unneeded goto and debug statements.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21529
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agorealtek: mdio: use generic bus command function for RTL838x
Markus Stockhausen [Tue, 13 Jan 2026 19:45:39 +0000 (20:45 +0100)] 
realtek: mdio: use generic bus command function for RTL838x

The Realtek mdio bus works similar for all devices with only
minor family specific differences. Basically command issuing
follows a generic style. Write command type and a trigger.
Afterwards wait until the trigger flag goes back to zero (aka
"command complete"). Unify this sequence in a central helper.

RTL838x read/write callers of this helper use a strange style of
error handling by issuing goto statements. Refactor this for better
readability. Additionally remove all debug prints. These are not
needed as the central read/write handlers provide a common logging
mechanism.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21529
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agokernel: add TIMERLAT_TRACER kernel config option 21413/head
Thomas Richard [Mon, 5 Jan 2026 15:32:44 +0000 (16:32 +0100)] 
kernel: add TIMERLAT_TRACER kernel config option

This adds the TIMERLAT_TRACER kernel configuration option. The timelat
tracer helps to find sources of wakeup latencies of real-time threads.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agokernel: add OSNOISE_TRACER kernel config option
Thomas Richard [Mon, 5 Jan 2026 15:31:36 +0000 (16:31 +0100)] 
kernel: add OSNOISE_TRACER kernel config option

This adds the OSNOISE_TRACER kernel configuration option. The osnoise
tracer allows to track interference experienced by an application due to
activities inside the operating system (like NMIs, IRQs ...).

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agokernel: add HWLAT_TRACER kernel config option
Thomas Richard [Mon, 5 Jan 2026 12:54:42 +0000 (13:54 +0100)] 
kernel: add HWLAT_TRACER kernel config option

This adds the HWLAT_TRACER kernel configuration option. The hwlat tracer
allows to detect hardware latencies.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agoloongarch64: set PREEMPT_NONE as default preemption model
Thomas Richard [Wed, 21 Jan 2026 12:49:32 +0000 (13:49 +0100)] 
loongarch64: set PREEMPT_NONE as default preemption model

Loongarch64 currently uses the PREEMPT_VOLUNTARY model, which is not
aligned with OpenWrt's default. Switch to PREEMPT_NONE for consistency with
OpenWrt's default configuration. Preemption model selection is now
available via menuconfig for further customization.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agomediatek: mt7623: set PREEMPT_NONE as default model
Thomas Richard [Wed, 21 Jan 2026 12:34:33 +0000 (13:34 +0100)] 
mediatek: mt7623: set PREEMPT_NONE as default model

Mediatek/mt7623 currently uses the PREEMPT model, which is not aligned with
OpenWrt's default. Switch to PREEMPT_NONE for consistency with OpenWrt's
default configuration. Preemption model selection is now available via
menuconfig for further customization.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
[Added some config options again]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agogemini: set PREEMPT_NONE as default preemption model
Thomas Richard [Wed, 21 Jan 2026 12:08:23 +0000 (13:08 +0100)] 
gemini: set PREEMPT_NONE as default preemption model

Gemini currently uses the PREEMPT model, which is not aligned with
OpenWrt's default. Switch to PREEMPT_NONE for consistency with OpenWrt's
default configuration. Preemption model selection is now available via
menuconfig for further customization.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agolayerscape: set PREEMPT_NONE as default preemption model
Thomas Richard [Wed, 21 Jan 2026 10:54:14 +0000 (11:54 +0100)] 
layerscape: set PREEMPT_NONE as default preemption model

Layerscape currently uses the PREEMPT model, which is not aligned with
OpenWrt's default. Switch to PREEMPT_NONE for consistency with
OpenWrt's default configuration. Preemption model selection is now
available via menuconfig for further customization.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agokernel: add preemption models
Thomas Richard [Mon, 5 Jan 2026 12:46:52 +0000 (13:46 +0100)] 
kernel: add preemption models

Introduce preemption model selection with PREEMPT_NONE as the default.
PREEMPT_NONE is the traditional Linux preemption model and also the best
choice for servers.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agouboot-mediatek: add 8g check to bpi-r4 environment for bl2 21437/head
Frank Wunderlich [Sat, 17 Jan 2026 20:25:19 +0000 (21:25 +0100)] 
uboot-mediatek: add 8g check to bpi-r4 environment for bl2

Add check for 8g and replace filename for bl2 to install the right file.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Link: https://github.com/openwrt/openwrt/pull/21437
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agouboot-mediatek: add command for getting size of ram
Frank Wunderlich [Sat, 17 Jan 2026 18:00:56 +0000 (19:00 +0100)] 
uboot-mediatek: add command for getting size of ram

Add command which gets ramsize and write it to env variable.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Link: https://github.com/openwrt/openwrt/pull/21437
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agomediatek: filogic: add 8GB builds for BPI-R4
Frank Wunderlich [Tue, 6 Jan 2026 22:17:08 +0000 (23:17 +0100)] 
mediatek: filogic: add 8GB builds for BPI-R4

Add builds for Bananapi R4 with 8GB RAM.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Link: https://github.com/openwrt/openwrt/pull/21437
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agouboot-mediatek: add mt7988 4bg builds
Frank Wunderlich [Tue, 6 Jan 2026 22:16:14 +0000 (23:16 +0100)] 
uboot-mediatek: add mt7988 4bg builds

This allows builds for Bananapi R4 (Pro) with 8GB RAM.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Link: https://github.com/openwrt/openwrt/pull/21437
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agoarm-trusted-firmware-mediatek: add mt7988 4bg build
Frank Wunderlich [Tue, 6 Jan 2026 22:15:32 +0000 (23:15 +0100)] 
arm-trusted-firmware-mediatek: add mt7988 4bg build

This allows builds for Bananapi R4 (Pro) with 8GB RAM.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Link: https://github.com/openwrt/openwrt/pull/21437
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agokernel: bump 6.12 to 6.12.67 21629/head
John Audia [Fri, 23 Jan 2026 21:22:18 +0000 (16:22 -0500)] 
kernel: bump 6.12 to 6.12.67

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

Manually rebased:
  rockchip/patches-6.12/160-01-phy-rockchip-inno-usb2-Simplify-rockchip-usbgrf-handling.patch

Build system: x86/64
Build-tested: flogic/glinet_gl-mt6000
Run-tested: flogic/glinet_gl-mt6000

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21629
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agofirewall: change synflood_protect option name 21642/head
Hauke Mehrtens [Thu, 22 Jan 2026 22:54:33 +0000 (23:54 +0100)] 
firewall: change synflood_protect option name

The `syn_flood` option name is deprecated, `synflood_protect` should
be used instead. firewall3 and firewall4 both support this option since
a long time. LuCI already replaces the option name.
https://github.com/openwrt/luci/commit/0abcb39b623f0eff0fbcdfb99fca8f3224701e86

Suggested-by: rparge in OpenWrt forum
Link: https://github.com/openwrt/openwrt/pull/21642
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agoiproute2: add dcb utility 21606/head
David Yang [Mon, 19 Jan 2026 17:51:02 +0000 (01:51 +0800)] 
iproute2: add dcb utility

KERNEL_DCB was introduced in 40f1db9cb11d, however the dcb utility is not
enabled for iproute2. Although DCB is not generally available among
Ethernet cards, not having the dcb utility renders it completely
unchangeable.

On aarch64, it takes ~85.3KiB.

Signed-off-by: David Yang <mmyangfl@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21606
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agomediatek: enable wan led for Keenetic KN-(3711/3811) 21635/head
Maxim Anisimov [Thu, 22 Jan 2026 08:17:49 +0000 (11:17 +0300)] 
mediatek: enable wan led for Keenetic KN-(3711/3811)

The indicator is unused by default and not associated
with the wan port. So let’s fix this.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21635
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agomediatek: simplify nvmem mac for Keenetic KN-(3811/3911)
Maxim Anisimov [Thu, 22 Jan 2026 08:09:26 +0000 (11:09 +0300)] 
mediatek: simplify nvmem mac for Keenetic KN-(3811/3911)

This is a cosmetic change. There is no need to use mac
address increment/decrement in the dts on these devices,
so this can be simplified.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21635
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agomediatek: drop spi cal for Keenetic KN-(3711/3811/3911)
Maxim Anisimov [Thu, 22 Jan 2026 08:04:44 +0000 (11:04 +0300)] 
mediatek: drop spi cal for Keenetic KN-(3711/3811/3911)

In the original DTS from the device firmware, there are
no entries that enable SPI calibration. Therefore, it
should be disabled.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21635
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agomediatek: fix label mac for Keenetic KN-(3711/3811/3911)
Maxim Anisimov [Thu, 22 Jan 2026 08:00:35 +0000 (11:00 +0300)] 
mediatek: fix label mac for Keenetic KN-(3711/3811/3911)

Keenetic devices always use the WAN port MAC address as
the MAC address printed on the label.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21635
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agobase-files: remove ftp user and group 19418/head
John Audia [Tue, 15 Jul 2025 09:46:52 +0000 (05:46 -0400)] 
base-files: remove ftp user and group

Any ftpd package such as vsftpd or atftpd (are there others?) should
create their own unprivileged user. Both of the aforementioned
packages do not even use this ftp user and run as root. That should be
addressed in separate commits.

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19418
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agogemini: support upgrade on reference designs
Linus Walleij [Wed, 21 Jan 2026 21:24:46 +0000 (22:24 +0100)] 
gemini: support upgrade on reference designs

The Gemini reference design-derived devices uses a partition
format which is predictable and we can exploit this to offer
some proper upgrade path.

The kernel for these contains a hack to use this partition
format unaltered by combining the partitions "Kern" and "Ramdisk"
to one image with all of the kernel+ramdisk in memory.

Then the "Application" which is used for the rootfs go into its
own partition.

Standard flash layout:
Kern         2048k |
Ramdisk      6144k | = 9216k
Application  6144k | = 15360k

Following the pattern of the factory image we create three
images named zImage, rd.gz and hddapp.tgz (these filenames
are misleading! They are just required by the old firmware.)
and flash each individually with "mtd" during upgrades.

Since the IB-4220-V has a different layout with a bigger kernel
space we parameterize this so we can handle this too. (More
fixes are needed for that device though.)

A way to upgrade older OpenWrt on these platforms to the latest
and greatest will be to copy the file
target/linux/gemini/base-files/lib/upgrade/platform.sh
to /lib/upgrade/platform.sh
on your running system and then run sysupgrade from the image
produced after this patch.

The script is picky to sanity check the partitions before
commencing upgrade.

This was tested with a full sysupgrade on the iTian SQ201.

Link: https://github.com/openwrt/openwrt/pull/21680
Signed-off-by: Linus Walleij <linusw@kernel.org>
4 days agorealtek: phy: fix RTL8214FC fibre/copper initialization 21582/head
Markus Stockhausen [Sun, 18 Jan 2026 21:09:00 +0000 (22:09 +0100)] 
realtek: phy: fix RTL8214FC fibre/copper initialization

A phy is configured in two stages

- phy_probe() for setup of structures
- config_init() for device setup (after reset)

RTL8214FC is a combo phy and the currently active port can be switched
with the SFP helper functions that are triggered during SFP insertion
and removal. In case a fibre SFP is inserted while booting the SFP
trigger is run between the above mentioned stages. During the final
setup in config_init() the phy is reset to the copper port. Thus no
link is available on fibre and the SFP must be reinserted for normal
operation.

For a consistent behaviour the fibre/copper port setup must run before
the SFP probing and not afterwards. Move the setup code from config_init()
into phy_probe().

Fixes: 10ae743 ("realtek: phy: simplify RTL8214FC configuration")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21582
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 days agorealtek: phy: optimize RTL8214FC register usage during media set
Markus Stockhausen [Sun, 18 Jan 2026 12:05:30 +0000 (13:05 +0100)] 
realtek: phy: optimize RTL8214FC register usage during media set

There are some shortcomings in rtl8214fc_media_set()

- It always uses the mdio raw page (4095) of RTL838x for writes.
  That is wrong when the phy is attached to an RTL839x (raw = 8191)
- It uses the internal write only extended page companion (29)
- The extended page content is not preserved

Fix the three issues.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21582
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 days agorealtek: phy: save RTL8214FC extended page during power set
Markus Stockhausen [Sun, 18 Jan 2026 11:58:51 +0000 (12:58 +0100)] 
realtek: phy: save RTL8214FC extended page during power set

Changing the fibre/copper power of a RTL8214FC changes the
extended page via register 29. This is the write only companion
of register 30. The register is afterwards overwritten to 0.

Use the proper extended page register 30 and preserve its content
during the operation.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21582
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 days agorealtek: phy: convert confusing BMCR_PDOWN usage for RTL8214FC
Markus Stockhausen [Sat, 17 Jan 2026 18:50:32 +0000 (19:50 +0100)] 
realtek: phy: convert confusing BMCR_PDOWN usage for RTL8214FC

Bit 11 of registers 16, 19, 20, 21 in page 0x266 denotes if a port
of a RTL8214FC is set/favoured to fibre (0) or copper (1). For unknown
reasons the bit was mixed with BMCR_PDOWN. Convert this to a meaningful
define.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21582
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 days agorealtek: mdio: rtl838x: activate combo PHY media detection 21653/head
Markus Stockhausen [Fri, 23 Jan 2026 12:36:06 +0000 (13:36 +0100)] 
realtek: mdio: rtl838x: activate combo PHY media detection

There is a misunderstanding about BIT(7) aka EX_PHY_MAN_24_27 in
SMI_GLB_CTRL register. The SDK sets/clears it at different places and
it is not clear what it is for. Observation shows that it is essential
for a working MAC_LINK_MEDIA_STS register.

A RTL838x device has usally two configurations

- port 24/26 are 2 serdes driven fiber ports
- port 24-27 are 4 PHY driven combo ports

In the combo case the above bit must be set so that a switch between
copper and fiber can be detected. Cleanup the MDIO initialization
and remove the unneeded bit handling in the DSA driver.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21653
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 days agobuild: purge DESCRIPTION 21668/head
George Sapkin [Sat, 24 Jan 2026 02:30:48 +0000 (04:30 +0200)] 
build: purge DESCRIPTION

DESCRIPTION field has been deprecated since 2007, yet internal exporting
causes intermittent package build failures due to the deprecation check,
even with packages that don't have that fields set. Replace all
DESCRIPTION exports with alternative variables defined through shexport
and shvar helpers and remove the check.

Fixes: 547b127d ("make kernel module packaging code reusable and use it in madwifi")
Fixes: 7558f028 ("DESCRIPTION:= is obselete, so complain if it is used and use TITLE if no description is set")
Fixes: cc435322 ("build: optimize target metadata dump")
Fixes: d081edf7 ("build: clean up and optimize ipkg control generator code")
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21668
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 days agoimagebuilder: fix parsing ABI for apk packages 21660/head
George Sapkin [Fri, 23 Jan 2026 18:07:53 +0000 (20:07 +0200)] 
imagebuilder: fix parsing ABI for apk packages

Fix parsing ABI when package has multiple tags and apk returns them in a
single line.

Fixes: 31cdd13d ("imagebuilder: add ABI suffix to packages when using apk")
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21660
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 days agokexec-tools: remove upstreamed patch 21652/head
Roc Lai [Fri, 23 Jan 2026 11:54:41 +0000 (19:54 +0800)] 
kexec-tools: remove upstreamed patch

Remove upstreamed patch:
- 020-i386-improve-basename-compatibility.patch

Link: https://github.com/horms/kexec-tools/commit/4fd0553cdfe397920d418d8b90ac52f8f1303a2d
Fixes: e75218ef4a27 ("kexec-tools: bump to 2.0.32")
Signed-off-by: Roc Lai <laipeng668@qq.com>
Link: https://github.com/openwrt/openwrt/pull/21652
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agolantiq: AVM Fritz 736x: fix PCIe reset GPIO 21641/head
Hauke Mehrtens [Thu, 22 Jan 2026 22:14:21 +0000 (23:14 +0100)] 
lantiq: AVM Fritz 736x: fix PCIe reset GPIO

The vr9.dtsi configures the GPIO 38 as reset GPIO. Also the fon LED is
configured on GPIO 38. This conflicts and makes the probing of the PCIe
controller fail in OpenWrt 25.12.

The AVM GPL source code configured GPIO 21 as PCIe reset.

Fixes: https://github.com/openwrt/openwrt/issues/21562
Link: https://github.com/openwrt/openwrt/pull/21641
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agouboot-mediatek: update to v2026.01 21424/head
Shiji Yang [Tue, 6 Jan 2026 12:50:06 +0000 (20:50 +0800)] 
uboot-mediatek: update to v2026.01

Remove upstreamed patches:
  100-08-cmd-mtd-add-markbad-subcommand-for-NMBM-testing.patch [1]
  101-01-mtd-spinand-add-support-for-FORESEE-F35SQA002G.patch [2]
  101-02-mtd-spinand-add-support-for-FORESEE-F35SQA001G.patch [3]
  110-mtd-spi-nand-add-support-for-FudanMicro-FM25S01A.patch [4]

Some SPI-NAND driver macro definitions and function parameters have
been changed in the latest release[3]. Hence we also had to rework
the related local patches to follow the upstream changes.

Tested on MT7981 SPI-NOR/EMMC.

[1] https://github.com/u-boot/u-boot/commit/21c1098cf443ea225090520cbe3ac7fc9e75cd33
[2] https://github.com/u-boot/u-boot/commit/2a0f8e7da0e5db93df8d48c5aab05037e071ca1e
[3] https://github.com/u-boot/u-boot/commit/2cbdd3e4491b6fc278c54d2a490939ecccc76127
[4] https://github.com/u-boot/u-boot/commit/8b984b5a397bc5fe829ca95e64f990c1e287beaa

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
[daniel@makrotopia.org: tested MT7622 SNAND and SPI-NOR]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
5 days agogemini: Fix up the rootfs device for SQ201
Linus Walleij [Fri, 23 Jan 2026 20:24:47 +0000 (21:24 +0100)] 
gemini: Fix up the rootfs device for SQ201

The rootfs partition is /dev/mtdblock3, fix it up.

Link: https://github.com/openwrt/openwrt/pull/21662
Signed-off-by: Linus Walleij <linusw@kernel.org>
5 days agogemini: Add DTS fix from upstream kernel
Linus Walleij [Fri, 23 Jan 2026 15:32:10 +0000 (16:32 +0100)] 
gemini: Add DTS fix from upstream kernel

This contains small but important DTS fixes for the
RedBoot partitions.

Link: https://github.com/openwrt/openwrt/pull/21662
Signed-off-by: Linus Walleij <linusw@kernel.org>
5 days agoimagebuilder: skip repository file when standalone 21658/head
George Sapkin [Fri, 23 Jan 2026 16:58:36 +0000 (18:58 +0200)] 
imagebuilder: skip repository file when standalone

Standalone image builder doesn't have a repositories file as all
packages are included, which causes:

ERROR: failed to read repositories: PATH_TO_BUILDER/repositories: No such file or directory

The images are still built, so this is more of an informational error.

Pass related argument to apk only when CONFIG_IB_STANDALONE is not set.

Fixes: a8d17c21 ("imagebuilder: actually support IB from buildbot")
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21658
Signed-off-by: Robert Marko <robimarko@gmail.com>