Commit graph

67290 commits

Author SHA1 Message Date
Hauke Mehrtens
9bdb1b4eb4 mac80211: update to version 6.18.7
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
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]: b63f79524e
[2]: ed8c176dfa

Link: https://github.com/openwrt/openwrt/pull/21711
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-27 23:24:02 +01:00
Jonas Jelonek
180f53d285 realtek: pcs: rtl931x: add sequence for LC PLL
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
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>
2026-01-27 09:22:10 +01:00
Jonas Jelonek
638ccb6760 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>
2026-01-27 09:22:10 +01:00
Jonas Jelonek
48ada316f2 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>
2026-01-27 09:22:10 +01:00
Jonas Jelonek
a477315f7e 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>
2026-01-27 09:22:10 +01:00
Markus Stockhausen
81f6eca5ec 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>
2026-01-27 09:19:54 +01:00
Joe Hohertz
ebf169afa6 mdadm: move init before fstab init runs
Some checks are pending
Build all core packages / Build all core packages for selected target (push) Waiting to run
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>
2026-01-27 01:45:10 +01:00
Joe Holden
17003bb0c5 realtek: add Zyxel GS1900-24 B1 device definition
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Waiting to run
Build host tools / Build host tools for linux and macos based systems (push) Waiting to run
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>
2026-01-27 01:34:21 +01:00
Joe Holden
c4cf9da881 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>
2026-01-27 01:34:21 +01:00
Stefan Kalscheuer
1e678eb223 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>
2026-01-27 01:29:57 +01:00
Stefan Kalscheuer
6796bace3e 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>
2026-01-27 01:29:57 +01:00
Markus Stockhausen
6ac2a17ebf 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>
2026-01-27 01:22:08 +01:00
Markus Stockhausen
fff4fe32dd 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>
2026-01-27 01:18:11 +01:00
Hauke Mehrtens
bf9e90c94e 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>
2026-01-26 23:57:25 +01:00
Hauke Mehrtens
daa36b7770 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>
2026-01-26 23:57:25 +01:00
Milan Krstic
30378ffea4
qualcommax: ipq807x: fix sysupgrade for TCL LINKHUB HH500V
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
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>
2026-01-26 22:01:09 +01:00
Álvaro Fernández Rojas
118d369ea6 odhcp6c: update to Git HEAD (2026-01-25)
Some checks are pending
Build all core packages / Build all core packages for selected target (push) Waiting to run
ee2949e3a70a dhcpv6: add config for strict RFC7550
abf6677391f0 dhcpv6: replace hash_ifname() with MD5 implementation

8abb45065f...24485bb4b3

Link: https://github.com/openwrt/openwrt/pull/21705
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2026-01-26 18:49:51 +01:00
Felix Fietkau
0b302ec658 tcpdump: add PROVIDES=tcpdump to tcpdump-tiny
Improves handling of dependencies on tcpdump

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-26 17:46:16 +00:00
John Crispin
b44d4290fe 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>
2026-01-26 17:46:16 +00:00
John Crispin
79cd45ddee 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>
2026-01-26 17:46:16 +00:00
John Crispin
c1492838f7 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>
2026-01-26 17:46:16 +00:00
Felix Fietkau
6fb3e95baa hostapd: fix beacon_req_policy syntax issues
Use the correct syntax for array element assignment

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-26 17:46:16 +00:00
Peter Meiser
168d5affc3 netifd: add loglevel config option (fixes #18001)
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
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>
2026-01-26 10:33:28 +01:00
Markus Stockhausen
ac96463944 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>
2026-01-26 09:58:13 +01:00
Hauke Mehrtens
17d45f677b mt76: mt7996: fix crash when using mesh
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
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>
2026-01-26 00:43:11 +01:00
Milan Krstic
ac8b5526bc qualcommax: ipq807x: add support for TCL LINKHUB HH500V
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
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>
2026-01-25 22:21:58 +01:00
Milan Krstic
8dd1be5f7b 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>
2026-01-25 22:21:58 +01:00
Milan Krstic
fcb988be1f 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>
2026-01-25 22:21:58 +01:00
Markus Stockhausen
cf51728467 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>
2026-01-25 22:18:48 +01:00
Markus Stockhausen
7b89702504 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>
2026-01-25 22:18:48 +01:00
Markus Stockhausen
5dbfbe59bb 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>
2026-01-25 22:18:10 +01:00
Markus Stockhausen
5ebb93158e 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>
2026-01-25 22:16:56 +01:00
Zeyu Dong
979f70cc7e 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>
2026-01-25 22:15:48 +01:00
Hal Martin
561a8858f5 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>
2026-01-25 22:11:17 +01:00
Robert Marko
51710e9dd4
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>
2026-01-25 22:10:22 +01:00
Robert Marko
4c0c7442db
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>
2026-01-25 22:10:22 +01:00
Paweł Owoc
7a5aa24706 odhcpd: update to Git HEAD (2026-01-19)
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
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

3fda5f8b12...13ef483716

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>
2026-01-25 19:29:20 +01:00
Linus Walleij
691aa70e16 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>
2026-01-25 19:08:01 +01:00
John Christoforidis
428bcee2f8 qualcommax: ipq60xx: add support for TP-Link EAP620HD v3
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
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>
2026-01-25 16:17:08 +01:00
Caleb James DeLisle
8291fdedad econet: major rewrite of ethernet driver
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
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>
2026-01-25 15:59:42 +01:00
Markus Stockhausen
adbb9a6423 realtek: dsa: rtl83xx: fix init section mismatch
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
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>
2026-01-25 13:58:48 +01:00
Shiji Yang
4ed5fa3379 uboot-mediatek: fix malformed patch
This patch was manually edited but not refreshed.

Fixes: 794b4dee65 ("uboot-mediatek: add 8g check to bpi-r4 environment for bl2")
Fixes: 46ee5209aa ("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>
2026-01-25 13:55:50 +01:00
Jonas Jelonek
19e1e508ea
realtek: mdio: add more Aquantia PHY IDs
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
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>
2026-01-25 12:12:16 +01:00
Jonas Jelonek
4fa27cb325
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>
2026-01-25 12:12:15 +01:00
Jonas Jelonek
322041ffeb
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>
2026-01-25 12:12:15 +01:00
Robert Marko
12fd85eb79 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>
2026-01-25 11:39:25 +01:00
Chukun Pan
cf84e8ee86 rockchip: add HINLINK H66K / H68K support
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
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>
2026-01-24 23:46:23 +01:00
Chukun Pan
9de9a15427 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>
2026-01-24 23:46:23 +01:00
Markus Stockhausen
48b4160329 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>
2026-01-24 23:40:24 +01:00
Markus Stockhausen
5c0e415a4b 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>
2026-01-24 23:40:24 +01:00