1
1
Commit Graph

24360 Commits

Author SHA1 Message Date
Robert Marko
e65d3f9052 qca-nss-dp: update to Git HEAD (2026-03-13)
22fb70661799 fix flex array not at end of struct
6a5c4716ca25 convert memcpy + ETH_GSTRING_LEN to ethtool_puts

Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-13 11:40:03 +01:00
Hauke Mehrtens
1d63b427ba libubox: update to Git HEAD (2026-03-13)
815633847cd3 CMakeLists.txt: remove -Werror=format-nonliteral

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-03-13 00:04:05 +01:00
Jonas Gorski
8a7eb57ab8 umdns: update to Git HEAD (2026-02-06)
a52cdb354d13 dns: validate IPv4 record addresses
b798c24205b5 dns: validate IPv6 record addresses
a3dcb4adc635 dns: validate reverse dns query name lengths

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
2026-03-12 20:32:25 +01:00
John Audia
48b8ff890b
linux-firmware: update to 20260309
% git log --no-merges --pretty=oneline --abbrev-commit 20260110...20260309
6d5c4e499d32 mediatek MT7922: update bluetooth firmware to 20260224103448
e426f99ddbe6 linux-firmware: update firmware for MT7922 WiFi device
21d670224ad1 cirrus: cs42l45: Add CS42L45 SDCA codec firmware for Dell laptops
bfebfc16a8b3 cirrus: cs35l63: Add firmware for Cirrus CS35L63 for various Dell laptops
cf2d1a574838 linux-firmware: Remove duplicate fw and Rename Lenovo ISH LNLM firmware files accordingly
b9e372cffcb0 amdgpu: DMCUB updates for various ASICs
397e9a13dbb4 linux-firmware: Add firmware file for Intel BlazarIGfp2 core
b251087087e8 QCA: Update Bluetooth QCA6698 firmware to 2.1.2-00069
f58642691280 qcom: Update CDSP firmware for QCM6490 platform
f4fccdeaa58a linux-firmware: add firmware for Lontium LT8713SX DP hub
822ba35b15b1 linux-firmware: qcom: sync audioreach firmwares from v1.0.2 build
6b986839e4bc qcom: update ADSP, CDSP firmware for sm8750  platform
eb48837f8acc qcom: update ADSP dtb.mbn for glymur platform
87768b59c878 qca: Update Bluetooth WCN6750 1.1.3-00105 firmware to 1.1.3-00106
64330a97f0f2  QCA: Update Bluetooth WCN6856 firmware 2.1.0-00659 to 2.1.0-00665
bcc17f274d19 amdgpu: update PSP 13.0.14 firmware
bed8b292d199 amdgpu: update GC 9.4.4 firmware
40518428a964 amdgpu: update PSP 13.0.5 firmware
6f3948e1a80f amdgpu: update GC 10.3.6 firmware
c5c71a6b42ef amdgpu: update PSP 13.0.0 kicker firmware
936b64f49831 amdgpu: update VCN 4.0.0 firmware
ca25e8cea638 amdgpu: update PSP 13.0.0 firmware
652378d0d156 amdgpu: update GC 11.0.0 firmware
ca31625e94c9 amdgpu: update SDMA 6.1.3 firmware
d1b9b7263627 amdgpu: update PSP 14.0.5 firmware
ab1f658c787b amdgpu: update GC 11.5.3 firmware
58b10704da49 amdgpu: update beige goby firmware
127e3755fe43 amdgpu: update SDMA 6.1.2 firmware
a7669eb10e78 amdgpu: update PSP 14.0.4 firmware
e2d3b43db975 amdgpu: update GC 11.5.2 firmware
c0bec6f13e3f amdgpu: update dimgrey cavefish firmware
7ab313a9f169 amdgpu: update vangogh firmware
60bd7581c608 amdgpu: update navy flounder firmware
6237f479d99e amdgpu: update PSP 13.0.11 firmware
29ffce4483d3 amdgpu: update GC 11.0.4 firmware
8746dc896220 amdgpu: update VCN 4.0.2 firmware
afe6f8da8aec amdgpu: update SDMA 6.0.1 firmware
f940f4540549 amdgpu: update PSP 13.0.4 firmware
4e47f7fa71fb amdgpu: update GC 11.0.1 firmware
f789bb032a9c amdgpu: update sienna cichlid firmware
48f3c77d8f79 amdgpu: update navi14 firmware
2d7345645d59 amdgpu: update green sardine firmware
31d1b0dd5396 amdgpu: update VCN 4.0.6 firmware
212257aad62c amdgpu: update SDMA 6.1.1 firmware
28dd17d1d31b amdgpu: update PSP 14.0.1 firmware
dea4e8a3376c amdgpu: update GC 11.5.1 firmware
8669af2dd952 amdgpu: update VCN 5.0.0 firmware
7177f2135df7 amdgpu: update SMU 14.0.3 firmware
2a0af58da356 amdgpu: update PSP 14.0.3 firmware
1dd31ea90f7f amdgpu: update GC 12.0.1 firmware
4db65e675ed0 amdgpu: update VPE 6.1.0 firmware
4b81a4817629 amdgpu: update VCN 4.0.5 firmware
d23903078c5f amdgpu: update SDMA 6.1.0 firmware
dea480a1b32b amdgpu: update PSP 14.0.0 firmware
de99d0fd70ca amdgpu: update GC 11.5.0 firmware
683aace3644f amdgpu: update navi12 firmware
eba8a69fb7b6 amdgpu: update SMU 14.0.2 firmware
b39b4a98582b amdgpu: update PSP 14.0.2 firmware
37e9adcb709d amdgpu: update GC 12.0.0 firmware
aaca282a05b6 amdgpu: update renoir firmware
18461c2329d1 amdgpu: update navi10 firmware
4773307708e9 amdgpu: update VCN 4.0.4 firmware
897d73a7b650 amdgpu: update SDMA 6.0.2 firmware
1d4fdf2cbdc4 amdgpu: update PSP 13.0.7 firmware
1d5d7a62ebff amdgpu: update GC 11.0.2 firmware
ffbc28980e23 amdgpu: update VCN 4.0.3 firmware
138597a4e0bd amdgpu: update PSP 13.0.6 firmware
19e0d4624bdb amdgpu: update GC 9.4.3 firmware
a9004d5a0ba4 amdgpu: update yellow carp firmware
b5d25d858b7e amdgpu: update PSP 13.0.10 firmware
c6feb53895f6 amdgpu: update GC 11.0.3 firmware
95c430cdd81a amdgpu: update VCN 5.0.1 firmware
ad7910db6e83 amdgpu: update PSP 13.0.12 firmware
e7f955441b97 amdgpu: update GC 9.5.0 firmware
1d609638b772 linux-firmware:Renaming the file back for HP EliteBook X Flip G1i
26668fabcfea linux-firmware:Renaming the file back for HP EliteBook X Flip G1i
49cf497556b9 linux-firmware:Renaming the file back for HP EliteBook X Flip G1i
58cf579b98c0 amdnpu: Restore old NPU firmware for compatibility
4aaa9c557e90 cirrus: cs42l45: Add CS42L45 SDCA codec firmware for Dell laptops
feba387aac8f lenovo: remove obsolete ish_lnlm_53c4ffad_2a17559f.bin firmware
df954d275a07 linux-firmware: update firmware for MT7902 BT device
edc18bd4dc29 linux-firmware: update firmware for MT7902 WiFi device
30a139cb6561 qcom: vpu: fix SC7280 VPU Gen2 firmware and add compatibility symlink
65c7ff3ec808 amdgpu: DMCUB updates for various ASICs
6a24a5a92c32 qcom: Update DSP firmware for qcs8300 platform
39f04545b26f cirrus: cs35l41: Add Firmware for ASUS Zenbook Laptop using CS35L41 HDA
664f8b6adeba qcom: Update DSP firmware for sa8775p platform
bed52d78bc0c amdgpu: DMCUB updates for various ASICs
342ce02256f3 rtw89: 8851b: add format-1 for fw v0.29.41.5 with fw elements
4a216696655b rtw89: 8852a: add format-1 for fw v0.13.36.2 with fw elements
0579ff05d882 rtw89: 8852bt: add regd and diag_mac and update txpwr to R09
af193c46b6bd rtw89: 8852b: update txpwr element to R43
81eae19b21a0 rtw89: 8852b: add format-2 with v0.29.29.15 and fw elements
1cfed3e213c5 Revert "rtw89: 8852b: update fw to v0.29.128.0 with format suffix -2"
86725d7351e8 xe: Update GUC to v70.58.0 for LNL, BMG, PTL
cbd0f9753754 ath11k: WCN6855 hw2.0: update board-2.bin
65a3c868b360 ath11k: QCA6390 hw2.0: update board-2.bin
0364daaa28a2 qcom: Add gpu firmwares for Glymur chipset
6c1e2562f626 amdgpu: DMCUB updates for various ASICs
2bb21553d510 qcom: vpu: add video firmware for Glymur
8fafd2481eed qcom: add QUPv3 firmware for x1e80100 platform
fd38db51a2a6 Bluetooth: Add symbolic links for Intel Solar JfP2/1 firmware variants
07b822cc556d Bluetooth: Add symbolic links for Intel Solar firmware variants
1b902aa966e4 Bluetooth: Add symbolic links for Intel Pulsar firmware variants
949dba8936ab Bluetooth: Add symbolic links for Intel AX201 firmware variants
81a99dba039a ath10k: WCN3990 hw1.0: update board-2.bin
b69afa29d3f6 qcom: add ADSP, CDSP firmware for glymur platform
4e83a67a5637 ASoC: tas2783: Add Firmware files for tas2783A
87972e133405 linux-firmware: Update firmware file for Intel Solar core
a693bc58e2ac mediatek MT7921: update bluetooth firmware to 20251223091725
fbf93476b789 rtl_bt: Update RTL8822C BT USB and UART firmware to 0x0673
a712a43ff2c0 ath12k: WCN7850 hw2.0: update board-2.bin
ec76089d563e ath12k: QCN9274 hw2.0: update to WLAN.WBE.1.6-01243-QCAHKSWPL_SILICONZ-1
49df41843d27 ath11k: WCN6855 hw2.0: update board-2.bin
fd8bdffeabe4 ath11k: QCA6698AQ hw2.1: update board-2.bin
af03e44a2029 WHENCE: Correct 2 trailing whitespaces
1043c0303910 linux-firmware: Add firmware for airoha-npu-7581 driver used for MT7990 offloading
f18b40ebf5e8 linux-firmware: Add Dell ISH firmware for Intel panther lake systems
9a727f07bc60 amdgpu: DMCUB updates for various ASICs
fb1cfb1989ea linux-firmware: update Aeonsemi AS21x1x firmware to 1.9.1
0fa5e69a0d9e rtl_nic: add firmware rtl8125cp-1 for RTL8125cp
dfff492a66a0 ice: update DDP LAG package to 1.3.2.0
db024df1e153 cirrus: cs35l56: Add WHENCE links for 17aa233c spkid0 firmware
a80ebbccb826 rtw89: 8922a: update REGD R73-R08, txpwr R46 and element of diag MAC
f9c84ebaefbf rtw89: 8852c: update REGD R73-R60, txpwr R82 and element of diag MAC
d8fc35003355 Update firmware for NPU PHX, STX and STX HALO
a7bd257ea496 qcom: Update ADSP and add CDSP firmware for qcs6490-radxa-dragon-q6a
1ccefae136c4 qcom: Remove ADSP SensorPD json for Radxa Dragon Q6A
afae3262fa2f amdgpu: DMCUB updates for various ASICs
ff3470eca79b intel/ish: Add Lenovo ISH firmware support for X1 and X9 systems
53ec87319d28 cirrus: cs42l45: Add CS42L45 SDCA codec firmware for Lenovo laptops
8ca12d6383d0 cirrus: cs42l45: Add CS42L45 SDCA codec firmware for Dell laptops
ecf00f092a8e cirrus: cs35l57 cs35l63: Add firmware for Cirrus Amps for some Lenovo laptops
d01a86bd2b35 cirrus: cs35l56 cs35l57: Add and update firmware for some Dell laptops
e22074558beb Intel IPU7: Update firmware binary for Panther Lake
a80dabbc28fa linux-firmware: update firmware for MT7921 WiFi device
1e2c15348485 amdgpu: DMCUB updates for various ASICs
9e79ce04180f linux-firmware: Add firmware file for Intel ScorpiusGfp2 core
f401a31ab5ba linux-firmware: Update firmware file for Intel Scorpius core
6be3bd6cc295 linux-firmware: Update firmware file for Intel BlazarIGfP core
99a2479f94e1 linux-firmware: Update firmware file for Intel BlazarI core
9bf06b2bdf74 linux-firmware: Update firmware file for Intel BlazarU-HrPGfP core
40a812ce5880 linux-firmware: Update firmware file for Intel BlazarU core
634af751cc56 rtl_bt: Update RTL8852BT/RTL8852BE-VT BT USB FW to 0x06EB_C65F
4cc877a7c241 linux-firmware: Add firmware for airoha-npu-7583 driver
9a9285ce9b44 iwlwifi: add Bz/Sc FW for core102-56 release
579ca4320f6b iwlwifi: Add Hr/Gf firmware for core102-56 release
90af9c636906 iwlwifi: update ty/So/Ma firmwares for core102-56 release
05a6a40bbba8 xe: Add GSC 105.0.2.1301 for PTL
087f9b0a8d23 mediatek: rename MT8188 SCP firmware
a438fce32e0e qcom: Update DSP firmware for QCM6490 platform
bfc1d7433ddd linux-firmware: qcom: sync audioreach firmwares from v1.0.1 build

Build system: x86/64
Build-tested: x86/64-glibc
Run-tested: Intel N150 based system

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22364
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-11 19:53:32 +01:00
Felix Fietkau
ab0872a734 procd: update to Git HEAD (2026-03-11)
129b729f757c service: fix use-after-free in per-instance set_data handler

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-11 18:30:37 +01:00
Andrew LaMarche
99307582de
airoha: add support for Gemtek W1700K
This commit adds support for Gemtek (Centurylink/Lumen/Quantum Fiber)
W1700K.

Device specification
--------------------
SoC Type:	Airoha AN7581
RAM:		ESMT M16U8G16512A (2GB)
Flash:		Winbond 25N04KVZEIR (512MB)
Ethernet:	2x gigabit via AN7581, 2x 10g via RTL8261N
Wi-Fi:		MT7996 - BE19000
LEDs:		1 LED, power/status
Button:		Reset
USB ports:	None
Bootloader:	U-Boot 2014.04-rc1 (Jun 12 2024 - 08:14:34) AXON 2.0
Fan:		1x controlled by Nuvoton NCT7511Y

This device is pretty useless with the stock firmware as it requires an
account to completely set it up. Additionally, the vendor bootloader is
signed and uses Airoha/Mediatek's BBT/BMT for bad block management on
the flash. It does not support UBI, thus kernel updates are subject to
BMT/BBT which OpenWrt does not support. In turn, if a kernel update
happens and a block is marked bad in the process, the device will fail
to boot and will need to be recovered via serial.

The workaround is to chainload U-Boot in place of the kernel, as it
should not need frequent updates and thus should not cause BBT/BMT to
misbehave and soft-brick the device. Upstream U-Boot supports loading
a FIT image from UBI, so we create a UBI partition for the new u-boot
env, FIT image and factory data. This way, bad blocks are managed by UBI
instead, which will not soft-brick the device should a block be marked
bad during a normal OpenWrt update. Users wishing to update U-Boot can
do so, but should be prepared to recover if a block goes bad.

Because the device is not useful with stock firmware, this is a one-way
ticket for most users and reverting will not be documented.

The following steps can be used to install OpenWrt on the W1700K.

Connect to serial console. There is a Torx T10 screw underneath the QR
code printed onto the label. Then, pry between the gray and white
plastic, starting by the ports on the back. There are clips arount the
entire device. Starting closest to the screw next to the UART header,
TX - GND - VCC - N/A - RX. The bootloader can be interrupted by
pressing any key.

Configuring Vendor Bootloader and Installing U-Boot Chainloader:
The bootloader's default bootcmd will only run a signed image. However,
we can still bootm our own image from flash.

NOTE: The vendor's ethernet drivers are flaky. You may have to reboot
and try the tftpboot part several times for it to work.

- setenv one flash read 0x600000 0x1000000 \$loadaddr
- setenv two "; bootm"
- setenv bootcmd "$one$two"
- setenv one
- setenv two
- saveenv
- setenv serverip 192.168.1.10; setenv ipaddr 192.168.1.1; tftpboot
0x89000000 openwrt-airoha-an7581-gemtek_w1700k-ubi-chainload-uboot.itb
- flash erase 0x600000 0x100000
- flash write 0x600000 0x100000 0x89000000
- reset

The device will now reboot into the U-Boot chainloader.

Loading the W1700K UBI Installer:
The installer can be downloaded at
https://github.com/hurrian/w1700k-ubi-installer/releases

- Boot the installer via the TFTP option in the U-Boot menu. This
  process is automatic, though you may be prompted to answer some
  questions.
- Once it is done, you may upgrade to your preferred build.
- For more information: https://github.com/hurrian/w1700k-ubi-installer

For those wishing to explore the stock firmware:

Rooting Stock FW (for making backups, recommended):
- Boot the router and watch serial console until presented with failsafe
  mode. Enter it (f + enter).
- mount_root
- Change the root password (passwd).
- Open /etc/config/axon_platform_manager and set sshServerEnable,
  localAccessEnable and remoteAccessEnable to 1.
- Search for "SSH". You'll find a long string with 3 matches such as
  Enabled%25252c1%25252cSSH%Drop. Change any instances of "Disabled"
  preceding SSH to "Enabled" and any instances of "Drop" to "Accept"
  that follow SSH. Same for "Local SSH" and "Remote SSH".
- Set /etc/config/dropbear to:

config dropbear
	option PasswordAuth 'on'
	option RootPasswordAuth 'on'
	option Port '22'

- Reboot.
- Connect 10g WAN port to existing network and SSH in with the password
  you set.
- SSH into rooted stock fw.

Signed-off-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17869
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-11 00:42:34 +01:00
Hauke Mehrtens
1a4ffafeef rtc-rv5c386a: fix build with kernel 6.12
`no_llseek` was defined as NULL since 2 years already and was removed in
Linux 6.12, see:
https://git.kernel.org/linus/cb787f4ac0c2e439ea8d7e6387b925f74576bdf8

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-03-10 23:50:54 +01:00
Hauke Mehrtens
a919299993 wifi-scripts: fix handling spaces in wifi client config
Escape identity anonymous_identity password ca_cert and ca_cert2 in a wifi
client configuration. This fixes the handling of configuration options
containing spaces and other strings which need escaping.

Fixes: https://github.com/openwrt/openwrt/issues/22212
Link: https://github.com/openwrt/openwrt/pull/22237
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-03-10 00:48:19 +01:00
Eric Fahlgren
5d71d9a4be firewall4: prefer over firewall as dependency
When the virtual package "uci-firewall" is installed, the choice
between "firewall" and "firewall4" is arbitrary, sometimes resulting
in one, sometimes the other.

Set the default variant on "firewall4" to make it the preferred
package when installed as a dependency.

Link: https://forum.openwrt.org/t/owut-openwrt-upgrade-tool/200035/1126
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22328
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-03-10 00:47:21 +01:00
Hauke Mehrtens
e558d763be ustream-ssl: update to Git HEAD (2026-03-01)
99f1c0db5a72 ustream-openssl: Fix use-after-free crash under high load and optimize BIO_METHOD lifecycle

Fixes: https://github.com/openwrt/openwrt/issues/19349
Fixes: https://github.com/openwrt/openwrt/issues/20134
Link: https://github.com/openwrt/openwrt/pull/22335
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-03-10 00:46:12 +01:00
Eric Fahlgren
c9f612bf45 apk: point help message to openwrt wiki
Instead of directing users to the useless 'man 8 apk', we direct
them to the wiki help page.

Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22271
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-09 10:33:15 +01:00
Felix Fietkau
91cff1a6d3 apk: add --force-reinstall option
Allow reinstalling already-installed packages without a version change.
Only the named packages are reinstalled, not their dependencies.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-08 16:35:04 +01:00
Álvaro Fernández Rojas
56bf67d474 omcproxy: update to Git HEAD (2026-03-07)
3abb601ab77f mrib: receive_mrt: workaround for RTL8373 queries
e25491f27af3 Revert "mrib: receive_mrt: workaround for RTL8373 queries"
cd20f3a4b4f1 mrib: receive_mrt: workaround for RTL8373 queries
cad82dc5cb65 formal: fix workflow permissions
997a981ae375 github: ci: add MIPS64, PowerPC64 and RISCV64
e646f462daeb github: ci: add powerpc arch
b3d1e2e48cf4 github: ci: add cmake build and source directories
de4353546064 github: ci: disable json-c tests
2be7e63d9b68 scripts: devel-build: disable json-c tests
36adc79c7b76 github: fix CI apt dependencies
11e45f6cfe10 README: update build instructions
78eea9b83a93 omcproxy: use syslog mask for logging level
9f0a1454de10 github: add CI build
49df5f5b8704 omcproxy: add a simple build script
757c1c704c9d libubox: remove submodule
8957f6c2557b omcproxy: update cmake file
848d696419eb proxy: fix indentation warning

Link: https://github.com/openwrt/openwrt/pull/22317
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2026-03-08 08:23:20 +01:00
Marco von Rosenberg
cd1b70f6f9 ipq40xx: add support for Huawei AP4050DN
Hardware
========
SoC: Qualcomm IPQ4018
ETH: Qualcomm QCA8075 (2 x RJ-45)
WDG: OnSemi SCT706
RAM: Micron MT41K128M16JT-125 (256MB)
NOR: Infineon S25FL512S (64MB)

Installation
============

1. Create a ramboot-able image with the command

   { dd if=/dev/zero bs=32 count=1 2>/dev/null; \
     cat openwrt-ipq40xx-generic-huawei_ap4050dn-initramfs-uImage.itb; \
   } > ramboot.bin`

2. Start a TFTP server in the folder with the ramboot.bin.

3. Plug in a USB-RJ45 serial adapter to the CONSOLE port of the device
   and start a serial console session with
   9600 baud, no parity, 1 stop bit.

4. Plug in either 12V power or PoE to the device.

5. On the prompt `Press f or F  to stop Auto-Boot in 3 seconds`,
   press `f` to enter the Huawei U-Boot command line

6. Enter a new password for the u-boot command line

7. In the command line, run these commands to ramboot OpenWrt:

      setenv serverip <IPv4 address of TFTP server>
      setenv ipaddr <IPv4 address for this AP>
      setenv rambootfile ramboot.bin
      run ramboot

8. In OpenWrt, set up the network and then `scp` the files
   `u-boot-huawei_ap4050dn/uImage` and
   `openwrt-ipq40xx-generic-huawei_ap4050dn-squashfs-sysupgrade.bin`
   into `/tmp/`

9. To backup the original firmware, run the following:

      cat /dev/mtd12 /dev/mtd13 > huawei_ap4050dn_fw_backup.bin.bin

10. Run the following commands to flash u-boot and OpenWrt to the device:

      mtd erase uboot
      mtd write /tmp/uImage uboot
      sysupgrade -n /tmp/openwrt-ipq40xx-generic-huawei_ap4050dn-squashfs-sysupgrade.bin

11. The device should now boot OpenWrt! (sometimes the boot process takes a bit
    longer due to the watchdog resetting the device before the watchdog driver runs)

Signed-off-by: Marco von Rosenberg <marcovr@selfnet.de>
2026-03-07 18:52:31 +01:00
Marco von Rosenberg
156550abd8 uboot-fritz4040: add Huawei AP4050DN support
Add support for the Huawei AP4050DN. Due to vendor bootloader size
limitations, we require a second-stage U-Boot.

Signed-off-by: Marco von Rosenberg <marcovr@selfnet.de>
2026-03-07 18:48:57 +01:00
David Bauer
215f0127d1 ipq-wifi: update to latest HEAD
beaf466 ipq4019: add Huawei AP4050DN BDF

Signed-off-by: David Bauer <mail@david-bauer.net>
2026-03-07 18:45:42 +01:00
Paul Donald
1e9da9798a ppp: add memmove fortify and remove MRU patch
memcpy() with overlapping src and dest buffers is an undefined behavior
in C. In the current code, a ConfRej response is generated by copying
input data in-place, where the dest address is lower than the src.
This happens to work in practice because memcpy() forward-copies data,
matching the behavior of memmove() in this case.

However, if FORTIFY_SOURCE or Address Sanitizer is enabled, memcpy()
will detect the overlap at run time and abort the program.

Replace the memcpy() with memmove() to ensure a well-defined behavior.

Reported-by: Filippo Carletti <filippo.carletti@gmail.com>

MRU patch https://github.com/ppp-project/ppp/pull/573

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22286
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-03-07 00:04:48 +01:00
Rosen Penev
f01807e353 mac80211: ath9k: rework led allocation
Embed gpio_led struct in ath_led. Simpler Allocation.

Use a flex array for the name. Allows using a single allocation.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21933
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-06 12:03:10 +01:00
Rosen Penev
06f5205dc8 mac80211: ath5k: remove ath79 bugfix
ath79 at this point supports no ath5k devices.

The only targets with ath5k usage are bcm47xx, ixp4xx, and lantiq.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19848
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-06 12:01:56 +01:00
Jonas Jelonek
3b2e52d52f generic: drop downstream gpio-cascade driver
The single user of the downstream gpio-cascade driver has been switched
to use the upstream gpio-line-mux driver. Thus, we can drop the former
now.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22206
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-06 11:33:05 +01:00
Jonas Jelonek
d50b296727 generic: add kernel module for gpio-line-mux
Add the GPIO line mux driver as a kernel module for selected usage by
devices.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22206
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-06 11:33:05 +01:00
Christian Marangi
59862e9ffe
kernel: iio: Add Richtek RTQ6056 ADC support
Add support for Richtek RTQ6056 Current and Power Monitor ADC.

RTQ6056 is a high accuracy current-sense monitor with I2C and SMBus
compatible interface, and the device provides full information for
system by reading out the load current and power.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-06 10:55:27 +01:00
Felix Fietkau
6c7dd69ce4 mt76: update to Git HEAD (2026-03-05)
1958eaf46fde firmware: update mt7992 and mt7996 firmware to the latest version
da6227dc3029 firmware: add mt7990 firmware
9f95baf93a07 wifi: mt76: mt7996: Add missing CHANCTX_STA_CSA property

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-05 18:06:00 +00:00
Felix Fietkau
ba3c6ff302 mac80211: fix a crash triggered by CSA with AP VLAN enabled
Fix getting the correct operating channel for stations on VLAN

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-05 18:25:59 +01:00
Dirk Buchwalder
133e01b95e
uboot-airoha: add a label to the spi node
Add a label to the spi node to allow device trees to reference it
(i.e. to mark status = "okay").

Signed-off-by: Dirk Buchwalder <buchwalder@posteo.de>
Link: https://github.com/openwrt/openwrt/pull/22151
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-05 11:17:47 +01:00
Kenneth Kasilag
442e67d31f
airoha: an7581: add uboot chainloader
Due to issues surrounding the implementation of the vendor BMT/BBT
on Airoha, upstream ATF + uboot has switched to UBI flash partitions.

However, some devices shipped on this platform are bootloader locked,
and thus it is impossible to replace ATF + uboot.

During testing for the Gemtek W1700K (#17869), sysupgrades from Linux
(which is unaware of the underlying BMT/BBT) would occasionally write
data into blocks which were remapped by the vendor uboot when it was
read on the following reboot, causing a soft brick.

An acceptable workaround [1],[2] was discussed where an intermediate
uboot would be written by the vendor uboot (which is aware of Airoha
BMT/BBT). This chainloader would then ignore the regions of flash
used by the vendor uboot, and store all relevant data inside of UBI.

UBI would then be used to handle bad block management. As the vendor
ATF + uboot do not read or interact with the UBI region, we would avoid
unwanted remaps from BMT/BBT.

This commit introduces support for building such a chainloader, by
packaging u-boot and DTS into a FIT image; to be flashed like a kernel.

Configuration for the Gemtek W1700K is provided as an example of how the
chainloader is used.

[1] https://github.com/openwrt/openwrt/pull/17869#discussion_r2836066746
[2] https://github.com/openwrt/openwrt/pull/17869#discussion_r2838395671

Signed-off-by: Kenneth Kasilag <kenneth@kasilag.me>
[ move FIP_COMPRESS to Build/Compile, wrap some long lines ]
Link: https://github.com/openwrt/openwrt/pull/22151
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-05 11:17:46 +01:00
Kenneth Kasilag
97035a5e7f
uboot-airoha: rename FIP_COMPRESS to LZMA_COMPRESS
It is more accurate to describe the contents of the FIP as
compressed, instead of the FIP itself becoming compressed.

Update variable naming accordingly.

Signed-off-by: Kenneth Kasilag <kenneth@kasilag.me>
Link: https://github.com/openwrt/openwrt/pull/22151
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-05 11:17:46 +01:00
Ruslan Isaev
67cf9c0cc7 qualcommax: ipq807x: ipq6018: ath11k: fix monitor rx length
OpenWrt issue:
https://github.com/openwrt/openwrt/issues/16183

Problem summary:
On qualcommax (ipq60xx/ipq807x) with ath11k, monitor-mode captures contain
frames that are consistently longer than expected by 8 bytes.

The symptom is visible in pcap/radiotap captures, and Wireshark parsing
becomes correct after manually cutting these 8 bytes from captured frames.

This patch:
- Remove merge-stage FCS/tail manipulations in ath11k_dp_rx_mon_merg_msdus().
- add length fix in ath11k_dp_rx_mon_deliver(), trim 8 bytes right
  before radiotap update and delivery to mac80211.

This targets monitor capture length correctness only and keeps the fix scoped
to the monitor RX delivery path.

Tested-on: ipq8072 yuncore,ax880; ipq6018 yuncore,ax840; yuncore,fap650
Signed-off-by: Ruslan Isaev <legale.legale@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22244
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-05 10:50:21 +01:00
Daniel Golle
2a9dce2d9e uboot-mediatek: port RNG drivers and enable them
Port drivers for the hardware true random number generator found in
MediaTek SoCs and enable them for all boards.
This has the side-effect of U-Boot now providing '/chosen/kaslr-seed'
to Linux which is required to enabled KASLR.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-03-05 02:28:32 +00:00
Christian Marangi
57bf713ef7
firmware: Add support for Airoha EN7581/AN7583 NPU variant firmware
Add support for Airoha EN7581/AN7583 NPU variant firmware present in
linux-firmware. The Airoha EN7581 NPU variant is to support devices
equipped with the MT7996 WiFi chip.

While at it also add an extra new line to follow pattern of double new line to
separate each firmware package.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-04 13:34:43 +01:00
Oliver Sedlbauer
49a0acb12c
base-files: avoid rm error messages in failsafe_wait
The fs_wait_for_key function runs multiple background processes that all
try to delete the same temporary file ($keypress_wait) when they exit.
This creates a race condition where one process successfully deletes the
file while others fail with ENOENT.

Busybox rm only suppresses "file not found" errors during the initial lstat()
check, not during the actual unlink() call. This causes error messages in the
boot log even with rm -f:

  rm: can't remove '/tmp/tmp.hKjPDH': No such file or directory

Fixed by redirecting stderr to /dev/null for rm calls in concurrent contexts.
This change does not affect functionality and only avoids confusing log
output during boot.

Signed-off-by: Oliver Sedlbauer <os@dev.tdt.de>
Link: https://github.com/openwrt/openwrt/pull/22079
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-04 12:54:16 +01:00
Paul Spooren
07c29c4482 package: drop apk cheatsheet from base-files
This has been up for a while, let's drop it.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2026-03-04 10:15:21 +01:00
Kuan-Yi Li
ed94d3eea7
apk: bump to 3.0.5
Several OpenWrt-related fixes are included in this release.

Drop upstreamed patches and refresh the rest.

Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
Link: https://github.com/openwrt/openwrt/pull/22240
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-04 00:48:12 +01:00
Chester A. Unal
e83da3bada uqmi: introduce devpath option
Introduce the devpath option to find the control channel device from a
hardware path for a USB or a WWAN device.

This option is useful when there are multiple modems connected to the
system. The name of the control channel device of a modem can change
depending on which modem initialises first or if it was recently plugged
in. The devpath option allows specifying the hardware path of the modem
where the control channel device will be found using that.

For the USB device hardware path, it is allowed to specify the USB port
number the modem is directly connected to.

If the device and devpath options are both set, devpath takes precedence
over device.

The USB device hardware path of a control channel device can be found by:

readlink -f /sys/class/usbmisc/cdc-wdmX/device

The WWAN device hardware path of a control channel device can be found by:

readlink -f /sys/class/wwan/wwanXqmiX/device

An example uci configuration would be:

config interface 'wwan_usb1'
	option proto 'qmi'
	option auth 'none'
	option devpath '/sys/devices/platform/1e1c0000.xhci/usb1/1-1'
	option apn 'internet'
	option pdptype 'ipv4v6'

Or:

config interface 'wwan_pcie1'
	option proto 'qmi'
	option auth 'none'
	option devpath '/sys/devices/platform/soc/11280000.pcie/pci0003:00/0003:00:00.0/0003:01:00.0'
	option apn 'internet'
	option pdptype 'ipv4v6'

Signed-off-by: Chester A. Unal <chester.a.unal@arinc9.com>
2026-03-03 14:17:48 +02:00
Chester A. Unal
764c503a2c umbim: introduce devpath option
Introduce the devpath option to find the control channel device from a
hardware path for a USB or a WWAN device.

This option is useful when there are multiple modems connected to the
system. The name of the control channel device of a modem can change
depending on which modem initialises first or if it was recently plugged
in. The devpath option allows specifying the hardware path of the modem
where the control channel device will be found using that.

For the USB device hardware path, it is allowed to specify the USB port
number the modem is directly connected to.

If the device and devpath options are both set, devpath takes precedence
over device.

The USB device hardware path of a control channel device can be found by:

readlink -f /sys/class/usbmisc/cdc-wdmX/device

The WWAN device hardware path of a control channel device can be found by:

readlink -f /sys/class/wwan/wwanXmbimX/device

An example uci configuration would be:

config interface 'wwan_usb1'
	option proto 'mbim'
	option auth 'none'
	option devpath '/sys/devices/platform/1e1c0000.xhci/usb1/1-1'
	option apn 'internet'
	option pdptype 'ipv4v6'

Or:

config interface 'wwan_pcie1'
	option proto 'mbim'
	option auth 'none'
	option devpath '/sys/devices/platform/soc/11280000.pcie/pci0003:00/0003:00:00.0/0003:01:00.0'
	option apn 'internet'
	option pdptype 'ipv4v6'

Signed-off-by: Chester A. Unal <chester.a.unal@arinc9.com>
2026-03-03 14:17:48 +02:00
Rosen Penev
c4e285049e button-hotplug: use flex array and not pointer hack
The &pointer + 1 trick is a C89 trick to point to area allocated after
the size of the struct. We have struct_size and flex arrays now.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22170
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-03 13:09:35 +01:00
Robert Marko
b897db9c44 Revert "kernel: netdevices: add KSZ9477 DSA switch packages"
This reverts commit c053b22573.

KSZ DSA driver is the only thing in the kernel selecting DCB support
instead of depending on it if required.
So, it will enable DCB support without asking and we do not want the
kernel size increase, as well as current Layerscape ARMv8 build failure.

So, revert this until its fixed upstream or worked around.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-02 18:05:55 +01:00
Nick Hainke
89f57d48f9 hostapd: update to 2026-02-27
Add patch:
- 001-PASN-Fix-the-compilation-errors-without-CONFIG_PASN.patch

Manually edit patches:
- 110-mbedtls-TLS-crypto-option-initial-port.patch
- 190-hostapd-Fix-hostapd-crash-if-setup-a-iface-with-.patch
- 191-hostapd-add-support-for-specifying-the-link-id-in-th.patch
- 220-indicate-features.patch
- 360-acs_retry.patch
  -> Remove the extra check for -EBUSY (see below) because the code we
     want to skip is now already guarded by:
     https://git.w1.fi/cgit/hostap/commit/?id=af6473761f07ae4f13ef228dec618ca62faf6ef4
      ```
      + if (ret == -EBUSY)
      +         goto fail;
      ```
- 341-mesh-ctrl-iface-channel-switch.patch
- 600-ubus_support.patch
- 601-ucode_support.patch
  -> The patch had this and similar changes:
     ```
      -		if (os_strcmp(drv->first_bss->ifname, ifname) != 0) {
      +		if (drv->first_bss->ifindex != ifi->ifi_index) {
     ```
     Those changes should be unnecessary due to the commit:
     https://git.w1.fi/cgit/hostap/commit/?id=2bf6d85963b9857b411b57cc7949e30ee2cb1216
- 780-Implement-APuP-Access-Point-Micro-Peering.patch
  -> Needs adjustement because of Enhanced Privacy Protection (EPP):
     https://git.w1.fi/cgit/hostap/commit/?id=1e13ee9c382a5d88c4bb0ffdfaf434fbb31123f3

Remove patch:
- 030-Revert-nl80211-Accept-a-global-nl80211-event-to-a-br.patch
- 060-nl80211-fix-reporting-spurious-frame-events.patch
  -> https://git.w1.fi/cgit/hostap/commit/?id=ca266cc24d8705eb1a2a0857ad326e48b1408b20
- 190-hostapd-Fix-hostapd-crash-if-setup-a-iface-with-.patch
  -> https://git.w1.fi/cgit/hostap/commit/?id=e275c3dc70e1c2947e02e43aeee6c4f9975c3dc7
- 192-nl80211-cancel-scans-whenever-the-first-bss-is-remov.patch
  -> https://git.w1.fi/cgit/hostap/commit/?id=5ce1d41803866782bbd96d575f53d43358a20a2e
- 350-nl80211_del_beacon_bss.patch
  -> https://git.w1.fi/cgit/hostap/commit/?id=b777ecb16274235974edb5c1dfcea6abab25f6c4

Tested-By: Daniel Pawlik <pawlik.dan@gmail.com>
Co-developed-by: Agustin Lorenzo <agustin.lorenzo@thinco.es>
Link: https://github.com/openwrt/openwrt/pull/20912
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-03-02 11:58:26 +01:00
Valerio 'ftp21' Mancini
09a0462ea8
mediatek: add support for Zyxel WX5600-T0
This access point is a ‘friend’ of the T56 supplied by Odido but with DDR3 RAM and with two Ethernet 2.5 (GPY211)

The flash procedure is similar to other Zyxel T56/EX5600/EX5601

If you need backup please use the T56 guide
Please refer to https://openwrt.org/inbox/toh/zyxel/wx5600-t0 for detailed flash informations

Specifications:
SOC: MT7986b
RAM: 512MB
Flash: 512 MB SPI NAND
Ports: 2 LAN 2.5Gbps (GPY211C)
WIFI: MT7976GN + MT7976AN
LED: 3 bicolor LED - 1 monocolor LED
Buttons: Reset and WPS

We can install all with U-boot and mtk_uartboot.
Load Uboot:

```
./mtk_uartboot -a -p ./mt7986-ram-ddr3-bl2.bin -s /dev/ttyUSB0 -f openwrt-mediatek-filogic-zyxel_wx5600-t0-ubootmod-bl31-uboot.fip
```
**WARNING: Please use a GBIT ethernet or force it on system**
**WARNING: Please use only LAN2 port in Uboot**
Press 0 on Bootmenu
```
mtd erase ubi
run ubi_format
bootmenu
```
Load and write BL2 and U-boot:
```
8
7
```

Load and write recovery and production
```
6
5
```

Signed-off-by: Valerio 'ftp21' Mancini <ftp21@ftp21.eu>
Co-authored-by: Hal Martin <halmartin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18364
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-02 11:43:43 +01:00
Valerio 'ftp21' Mancini
1dbb2d55ac
uboot-mediatek: add support for Zyxel WX5600-T0
This access point is a ‘friend’ of the T56 supplied by Odido but with DDR3 RAM and with two Ethernet 2.5 (GPY211)

The flash procedure is similar to other Zyxel T56/EX5600/EX5601

If you need backup please use the T56 guide

Please refer to https://openwrt.org/inbox/toh/zyxel/wx5600-t0 for detailed flash informations

We can install all with U-boot and mtk_uartboot.
Load Uboot:

```
./mtk_uartboot -a -p ./mt7986-ram-ddr3-bl2.bin -s /dev/ttyUSB0 -f openwrt-mediatek-filogic-zyxel_wx5600-t0-ubootmod-bl31-uboot.fip
```
**WARNING: Please use a GBIT ethernet or force it on system**
**WARNING: Please use only LAN2 port in Uboot**
Press 0 on Bootmenu
```
mtd erase ubi
run ubi_format
bootmenu
```
Load and write BL2 and U-boot:
```
8
7
```

Load and write recovery and production
```
6
5
```

Signed-off-by: Valerio 'ftp21' Mancini <ftp21@ftp21.eu>
Link: https://github.com/openwrt/openwrt/pull/18364
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-02 11:43:43 +01:00
Mathijs Rietbergen
c88e8a9816 kernel: add kmods for vsockets over virtio
Add menuconfig options to include modules for (virtio) vsockets. These are
used when running as Guest OS in a VM.

OpenWRT can be run in a vm (mostly commonly on the x86/64 and armsr
targets). Often it is convenient to have some sort of guest agent running,
to ease communication from host to guest.
Virtual Sockets provide this communication channel.
Virtio is a transport for this communication channel.

Virtual Sockets over virtio are for example used by Incus.
Virtual Sockets in general are used by most hypervisors, including VMware,
Hyper-V, and libvirt (qemu). These may need other transport-specific
modules not included in this commit.

Signed-off-by: Mathijs Rietbergen <mathijs.rietbergen@proton.me>
2026-03-01 19:54:12 +01:00
Felix Fietkau
ed66c2dfa3 mt76: update to Git HEAD (2026-03-01)
a47ad19275e9 wifi: mt76: mt7996: fix out-of-bounds array access during hardware restart
a34adb961be5 wifi: mt76: mt7996: add missing max_remain_on_channel_duration
751ae55c0d87 wifi: mt76: improve fix for multi-radio on-channel scanning
9337d2f25d91 wifi: mt76: avoid sending probe requests on active DFS channels
d62f5a0d1d2d wifi: mt76: update fix for backoff fields and max_power calculation
8831fa78cb23 wifi: mt76: add external EEPROM support for mt799x chipsets
f656567eff2c wifi: mt76: mt7996: add variant for MT7992 chipsets
36c59c31bfc8 wifi: mt76: mt7996: apply calibration-free data from OTP
f1c32003333e wifi: mt76: connac: use is_connac2() to replace is_mt7921() checks
95df5c591507 wifi: mt76: mt7921: use mt76_for_each_q_rx() in reset path
c3d742932a3c wifi: mt76: mt7921: handle MT7902 irq_map quirk with mutable copy
772c51c2ebc1 wifi: mt76: mt7921: add MT7902e DMA layout support
2175fa76bfff wifi: mt76: connac: mark MT7902 as hw txp devices
135ebed77517 wifi: mt76: mt792x: add PSE handling barrier for the large MCU cmd
cc343793ad65 wifi: mt76: mt792x: ensure MCU ready before ROM patch download
5ee904252aad wifi: mt76: mt7921: add MT7902 MCU support
4b104a082e72 wifi: mt76: mt792x: add MT7902 WFDMA prefetch configuration
eaa09af12bf4 wifi: mt76: mt7921: add MT7902 PCIe device support
66067d203bd0 wifi: mt76: mt7921: add MT7902 SDIO device support
f21748c6cdae wifi: mt76: mt7996: fix wrong DMAD length when using MAC TXP
88ed9f8abcf3 wifi: mt76: mt7996: fix struct mt7996_mcu_uni_event
19b5d0918ba1 wifi: mt76: avoid to set ACK for MCU command if wait_resp is not set
365f006322aa wifi: mt76: mt7996: fix queue pause after scan due to wrong channel switch reason
2eb5d1e3cfbf wifi: mt76: don't return TXQ when exceeding max non-AQL packets
3129d0a6b185 wifi: mt76: mt7915: fix use-after-free bugs in mt7915_mac_dump_work()
cb906c88ca92 wifi: mt76: mt7996: fix use-after-free bugs in mt7996_mac_dump_work()
4aa63d4c5bf2 wifi: mt76: mt7996: Add eMLSR support
be3aad4c2e10 wifi: mt76: mt7915: sync station power save state
f564cc612813 wifi: mt76: mt7996: Disable Rx hdr_trans in monitor mode
a6761a9892d9 wifi: mt76: mt7921: fix 6GHz regulatory update on connection
003216cc04b7 wifi: mt76: add missing lock protection in mt76_sta_state for sta_event callback
699a4aa3b88a wifi: mt76: mt7925: fix incorrect TLV length in CLC command
aee736a27ea2 wifi: mt76: mt7996: Fix possible oob access in mt7996_mac_write_txwi_80211()
f29ff603012e wifi: mt76: mt7925: Fix possible oob access in mt7925_mac_write_txwi_80211()
ee84094d71ba wifi: mt76: Fix possible oob access in mt76_connac2_mac_write_txwi_80211()

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-01 18:41:24 +00:00
Felix Fietkau
d9ac485146 ucode: nl80211: add missing survey info attributes and fix DFS CAC time
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-01 18:41:24 +00:00
Felix Fietkau
94a7c4a443 ucode: update to Git HEAD (2026-02-27)
d768823fea50 vm: rework I_DYNLOAD instruction to read module name from stack
9e265b9a1e15 program: support encoding export symbols in precompiled bytecode
926f20b55e13 compiler: add support for runtime module imports
e3d7d77f0e5d lib: avoid stack operations if required code invoked exit()
7f3a0512f49d compiler: turn static imports of precompiled modules into dynamic loads
ccc25285471b nl80211.h: update to version 6.18
bb145163147a nl80211: add WiFi 7 EHT and MLD attributes
65d268546453 nl80211: add scan, BSS status and BSS use-for constants

Fixes: https://github.com/jow-/ucode/issues/336#issuecomment-3415635374
Fixes: https://github.com/jow-/ucode/pull/338#issuecomment-3442569831
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-01 18:41:24 +00:00
Ivan Pavlov
fce39a8d7f libunistring: update to 1.4.2
sync with gnulib, fixes compilation with gcc15

Signed-off-by: Ivan Pavlov <AuthorReflex@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22225
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-03-01 17:07:58 +01:00
John Audia
b0e0d51aec
linux-firmware: update to 20260221
% git log --no-merges --pretty=oneline --abbrev-commit 20260221...20260110
30a139cb6561 qcom: vpu: fix SC7280 VPU Gen2 firmware and add compatibility symlink
65c7ff3ec808 amdgpu: DMCUB updates for various ASICs
6a24a5a92c32 qcom: Update DSP firmware for qcs8300 platform
39f04545b26f cirrus: cs35l41: Add Firmware for ASUS Zenbook Laptop using CS35L41 HDA
664f8b6adeba qcom: Update DSP firmware for sa8775p platform
bed52d78bc0c amdgpu: DMCUB updates for various ASICs
342ce02256f3 rtw89: 8851b: add format-1 for fw v0.29.41.5 with fw elements
4a216696655b rtw89: 8852a: add format-1 for fw v0.13.36.2 with fw elements
0579ff05d882 rtw89: 8852bt: add regd and diag_mac and update txpwr to R09
af193c46b6bd rtw89: 8852b: update txpwr element to R43
81eae19b21a0 rtw89: 8852b: add format-2 with v0.29.29.15 and fw elements
1cfed3e213c5 Revert "rtw89: 8852b: update fw to v0.29.128.0 with format suffix -2"
86725d7351e8 xe: Update GUC to v70.58.0 for LNL, BMG, PTL
cbd0f9753754 ath11k: WCN6855 hw2.0: update board-2.bin
65a3c868b360 ath11k: QCA6390 hw2.0: update board-2.bin
0364daaa28a2 qcom: Add gpu firmwares for Glymur chipset
6c1e2562f626 amdgpu: DMCUB updates for various ASICs
2bb21553d510 qcom: vpu: add video firmware for Glymur
8fafd2481eed qcom: add QUPv3 firmware for x1e80100 platform
fd38db51a2a6 Bluetooth: Add symbolic links for Intel Solar JfP2/1 firmware variants
07b822cc556d Bluetooth: Add symbolic links for Intel Solar firmware variants
1b902aa966e4 Bluetooth: Add symbolic links for Intel Pulsar firmware variants
949dba8936ab Bluetooth: Add symbolic links for Intel AX201 firmware variants
81a99dba039a ath10k: WCN3990 hw1.0: update board-2.bin
b69afa29d3f6 qcom: add ADSP, CDSP firmware for glymur platform
4e83a67a5637 ASoC: tas2783: Add Firmware files for tas2783A
87972e133405 linux-firmware: Update firmware file for Intel Solar core
a693bc58e2ac mediatek MT7921: update bluetooth firmware to 20251223091725
fbf93476b789 rtl_bt: Update RTL8822C BT USB and UART firmware to 0x0673
a712a43ff2c0 ath12k: WCN7850 hw2.0: update board-2.bin
ec76089d563e ath12k: QCN9274 hw2.0: update to WLAN.WBE.1.6-01243-QCAHKSWPL_SILICONZ-1
49df41843d27 ath11k: WCN6855 hw2.0: update board-2.bin
fd8bdffeabe4 ath11k: QCA6698AQ hw2.1: update board-2.bin
af03e44a2029 WHENCE: Correct 2 trailing whitespaces
1043c0303910 linux-firmware: Add firmware for airoha-npu-7581 driver used for MT7990 offloading
f18b40ebf5e8 linux-firmware: Add Dell ISH firmware for Intel panther lake systems
9a727f07bc60 amdgpu: DMCUB updates for various ASICs
fb1cfb1989ea linux-firmware: update Aeonsemi AS21x1x firmware to 1.9.1
0fa5e69a0d9e rtl_nic: add firmware rtl8125cp-1 for RTL8125cp
dfff492a66a0 ice: update DDP LAG package to 1.3.2.0
db024df1e153 cirrus: cs35l56: Add WHENCE links for 17aa233c spkid0 firmware
a80ebbccb826 rtw89: 8922a: update REGD R73-R08, txpwr R46 and element of diag MAC
f9c84ebaefbf rtw89: 8852c: update REGD R73-R60, txpwr R82 and element of diag MAC
d8fc35003355 Update firmware for NPU PHX, STX and STX HALO
a7bd257ea496 qcom: Update ADSP and add CDSP firmware for qcs6490-radxa-dragon-q6a
1ccefae136c4 qcom: Remove ADSP SensorPD json for Radxa Dragon Q6A
afae3262fa2f amdgpu: DMCUB updates for various ASICs
ff3470eca79b intel/ish: Add Lenovo ISH firmware support for X1 and X9 systems
53ec87319d28 cirrus: cs42l45: Add CS42L45 SDCA codec firmware for Lenovo laptops
8ca12d6383d0 cirrus: cs42l45: Add CS42L45 SDCA codec firmware for Dell laptops
ecf00f092a8e cirrus: cs35l57 cs35l63: Add firmware for Cirrus Amps for some Lenovo laptops
d01a86bd2b35 cirrus: cs35l56 cs35l57: Add and update firmware for some Dell laptops
e22074558beb Intel IPU7: Update firmware binary for Panther Lake
a80dabbc28fa linux-firmware: update firmware for MT7921 WiFi device
1e2c15348485 amdgpu: DMCUB updates for various ASICs
9e79ce04180f linux-firmware: Add firmware file for Intel ScorpiusGfp2 core
f401a31ab5ba linux-firmware: Update firmware file for Intel Scorpius core
6be3bd6cc295 linux-firmware: Update firmware file for Intel BlazarIGfP core
99a2479f94e1 linux-firmware: Update firmware file for Intel BlazarI core
9bf06b2bdf74 linux-firmware: Update firmware file for Intel BlazarU-HrPGfP core
40a812ce5880 linux-firmware: Update firmware file for Intel BlazarU core
634af751cc56 rtl_bt: Update RTL8852BT/RTL8852BE-VT BT USB FW to 0x06EB_C65F
4cc877a7c241 linux-firmware: Add firmware for airoha-npu-7583 driver
9a9285ce9b44 iwlwifi: add Bz/Sc FW for core102-56 release
579ca4320f6b iwlwifi: Add Hr/Gf firmware for core102-56 release
90af9c636906 iwlwifi: update ty/So/Ma firmwares for core102-56 release
05a6a40bbba8 xe: Add GSC 105.0.2.1301 for PTL
087f9b0a8d23 mediatek: rename MT8188 SCP firmware
a438fce32e0e qcom: Update DSP firmware for QCM6490 platform
bfc1d7433ddd linux-firmware: qcom: sync audioreach firmwares from v1.0.1 build

Build system: x86/64
Build-tested: x86/64-glibc
Run-tested: Intel N150 based system

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22139
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-01 13:29:46 +01:00
Nora Schiffer
67fe34932e
procd: update to git HEAD
2881a59f3043 rcS: allow overriding init.d/rc.d paths
4e4a34b1a833 rcS, ubus: constify char * arguments and variables where appropriate

Link: https://github.com/openwrt/openwrt/pull/22204
Signed-off-by: Nora Schiffer <neocturne@universe-factory.net>
2026-03-01 11:52:02 +01:00
Bevan Weiss
145408a592 packages: add PSE (PoE) packages
There are a number of pse chips already present in upstream Linux.
OpenWrt is starting to support a number of devices can contain various pse
chips.  But having all the pse chip combinations defined at the target
level will result in bloat on images.
Present the current upstream Linux pse drivers as packages so that they
can be selectively included per board (rather than per target).

Signed-off-by: Bevan Weiss <bevan.weiss@gmail.com>
[Make it depend on REGULATOR_SUPPORT, and !SMALL_FLASH]
Link: https://github.com/openwrt/openwrt/pull/22172
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-01 10:59:19 +01:00
Thomas Richard
6678487f16 arm-trusted-firmware-stm32: bump to v2.14
Bump arm-trusted-firmware-stm32 to upstream release v2.14.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21965
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-26 23:34:10 +01:00
Thomas Richard
0903b398a3 uboot-stm32: bump to 2026.01
Bump uboot-stm32 to upstream release 2026.01.

Two upstream patches were backported to resolve silent crash on
STM32MP135F-DK board.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21965
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-26 23:34:10 +01:00
Thomas Richard
02d64076aa optee-os-stm32: bump to 4.9.0
Bump optee-os-stm32 to upstream release 4.9.0.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21965
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-26 23:34:10 +01:00
Hauke Mehrtens
efcd70cb19 mac80211: activate BRCMFMAC_SDIO on x86
Activate the option BRCMFMAC_SDIO by default on x86 too. x86 already
compiles MMC support into the kernel. This will just compile brcmfmac
with MMC support.

Fixes: https://github.com/openwrt/openwrt/issues/22155
Link: https://github.com/openwrt/openwrt/pull/22171
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-26 20:19:01 +01:00
Hauke Mehrtens
69daeebc9a wifi-scripts: fix handling of 64 character WPA key
The key variable is not defined in the scope when setting wpa_psk. Use
config.key instead.
This fixes configuration the 64 characters wpa_psk directly.

Reported-by: donjoe in OpenWrt Forum
Link: https://github.com/openwrt/openwrt/pull/22182
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-26 20:17:31 +01:00
Felix Fietkau
c4d875cae2 netifd: update to Git HEAD (2026-02-26)
69a5afc9713a bridge: skip present toggle in bridge_free_member() when device is active

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-26 12:05:35 +00:00
Hauke Mehrtens
7c5e329b54 wireless-regdb: update to version 2026.02.04
75bedc5 wireless-regdb: Update regulatory info for Australia (AU) for 2025
a6e5195 wireless-regdb: Update broken link in regulatory.bin(5) manpage
9e8c67f wireless-regdb: Update regulatory info for Malaysia (MY) for 2024
61a4637 wireless-regdb: Update regulatory info for Malaysia (MY) for 2025
5cefe55 wireless-regdb: Update regulatory info for Tunisia (TN) on 6GHz for 2025
1a729ae wireless-regdb: Update regulatory info for Canada (CA) for 2025
ea20dfa wireless-regdb: update regulatory database based on preceding changes

Link: https://github.com/openwrt/openwrt/pull/22150
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-24 20:24:25 +01:00
Jonas Lochmann
5f063d18bd iproute2: include upstream patch for musl libc
Due to a missing include, the constant UINT_MAX is undefined. This
fixes issues when building v25.12.0-rc5. Including a newer version of
iproute2 would include the patch, but causes other building issues.

Signed-off-by: Jonas Lochmann <openwrt@jonaslochmann.de>
Link: https://github.com/openwrt/openwrt/pull/22128
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-24 20:21:50 +01:00
Felix Fietkau
55c01365de mac80211: backport eMLSR/eMLMR parsing support
Needed for an upcoming mt76 update

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-24 19:40:55 +01:00
Tim Harvey
c053b22573 kernel: netdevices: add KSZ9477 DSA switch packages
This adds kernel packages for the Microchip KSZ9477 switch family.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/22120
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-24 10:48:00 +01:00
Rosen Penev
2eb1f7df26 mac80211: ath9k: fix memory leak
sc->gpiochip is assigned to gc when it should be the other way around.
This allows gpiod_free to work properly.

Fixes: e78dc2eae4 ("mac80211: ath9k: clean up gpiochi")
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22158
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-24 09:58:42 +01:00
Robert Marko
f0c9cbd35b netifd: update to Git HEAD (2026-02-23)
299a51f0c301 global: add support for PSE-PD control

Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-23 21:46:49 +01:00
Shiji Yang
b18518c2f0 uboot-mediatek: backport various pinctrl fixes
Backport patches from upstream u-boot and mtk-openwrt-feeds to fix
MT7981 register offset issue and correct MT798x IES register config.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21423
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-22 23:07:18 +01:00
Daniel Golle
c69beade60 Revert "package: kernel: dtc: Add DTO support"
It looks like commit 6d2f3b1b19 ("package: kernel: dtc: Add DTO support")
added this patch file 9 years ago without it ever being applied anywhere.
Back then there wasn't even a 'dtc' package, but we just used 'dtc' from
the Linux kernel sources.
Nowadays there is package/utils/dtc which is used to build dtc to be used
on the target (*not* a host-build!), and it of course already contains
support for device tree overlays since v1.4.3 from 2017...

This reverts commit 6d2f3b1b19.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Link: https://github.com/openwrt/openwrt/pull/22118
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-20 22:51:59 +01:00
Felix Fietkau
2256cfac68 wireguard-tools: fix string indexing in endpoint host check
Use substr() instead of array index syntax to access the first
character of the endpoint host string, as ucode does not support
array-style indexing on strings.

Fixes: https://github.com/openwrt/openwrt/issues/22116
Fixes: 8f977b4a40 ("wireguard-tools: fix handling of multi-value config options")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-20 19:10:13 +01:00
Daniel Golle
e95cfd2ad7 procd: update to git HEAD
180ffcc instance: use mkdir_p helper
 9493a3d signal: handle SIGUSR1 as halt
 4dd22d0 cgroups: fix syntax error

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-02-20 14:06:58 +00:00
Felix Fietkau
75975b8c5c uclient: update to Git HEAD (2026-02-20)
7a0aa2e4afb4 uclient-http: fix data_eof for body-less responses

Fixes: https://github.com/openwrt/openwrt/issues/22103
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-20 09:07:59 +00:00
Felix Fietkau
8f977b4a40 wireguard-tools: fix handling of multi-value config options
Config options like addresses and ip6prefix can be passed as either a
space-separated string or an array. Add a to_array() helper and use it
consistently for all multi-value options (addresses, ip6prefix,
allowed_ips).

Fixes: https://github.com/openwrt/openwrt/issues/22102
Fixes: 41bc454602 ("wireguard-tools: rewrite proto handler in ucode")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-20 08:54:41 +00:00
Yaroslav Isakov
9d78b2f53c hostapd: fix EAP-PWD in experimental hostapd-radius server
Without initializing pwd_group, it's set to 0, which is reserved value.
When EAP-PWD is used in wpa_supplicant/eapol_test, next error is seen:
EAP-PWD: Server EAP-pwd-ID proposal: group=0 random=1 prf=1 prep=0
EAP-pwd: Unsupported or disabled proposal

Signed-off-by: Yaroslav Isakov <yaroslav.isakov@gmail.com>
2026-02-19 16:13:02 +01:00
Chad Monroe
50d3d287e4 hostapd: initialize first BSS radio_mask during driver init
Secondary BSSes inherit the alloc value which bypasses
NL80211_ATTR_VIF_RADIO_MASK in nl80211_create_iface() and causes the
kernel to default new interfaces to all radios.

The ucode bss_create fallback fails to correct this because
the interface is already UP.. the kernel rejects SET_INTERFACE with
-EBUSY.

Signed-off-by: Chad Monroe <chad@monroe.io>
2026-02-19 15:08:12 +00:00
Felix Fietkau
41bc454602 wireguard-tools: rewrite proto handler in ucode
This fixes automatic config reload on peer changes

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-19 12:10:38 +00:00
Felix Fietkau
c504cbd47c netifd: update to Git HEAD (2026-02-15)
Adds ucode proto handler support

51fa9ed6d4d6 interface-ip: fix fortify build error
ca33316f8552 proto-ext: extract shared protocol handler code from proto-shell.c
2098f29810e8 proto: add config_load callback to proto_handler
aaf5b194b15d proto-ucode: add ucode protocol handler infrastructure
3fc8b83c8b62 proto-ucode: add ucode proto handler scripts
c6122254eb70 examples: sync wireless scripts with openwrt

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-19 12:10:38 +00:00
Hauke Mehrtens
c3f2a09a25 ucode-mod-bpf: add CPPFLAGS
Forward the OpenWrt CPPFLAGS to the compile process. This fixes fortify
sources support.

Link: https://github.com/openwrt/openwrt/pull/22056
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-17 22:25:31 +01:00
Hauke Mehrtens
77d896725f ebtables: add CPPFLAGS
Add the OpenWrt CPPFLAGS to the CFLAGS. ebtables does not
support CPPFLAGS. This fixes fortify sources support.

Link: https://github.com/openwrt/openwrt/pull/22056
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-17 22:25:26 +01:00
Hauke Mehrtens
33b2c6f955 arptables: add CPPFLAGS
Add the OpenWrt CPPFLAGS to the CFLAGS. arptables does not
support CPPFLAGS. This fixes fortify sources support.

Link: https://github.com/openwrt/openwrt/pull/22056
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-17 22:25:22 +01:00
Hauke Mehrtens
379d5b8bc4 iwinfo: add CPPFLAGS
Add the OpenWrt CPPFLAGS to the FLAGS. iwinfo does not support CPPFLAGS.
This fixes fortify sources support.

Link: https://github.com/openwrt/openwrt/pull/22056
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-17 22:25:09 +01:00
Hauke Mehrtens
b8ea5004f4 zyxel-bootconfig: add CPPFLAGS
Add the OpenWrt CPPFLAGS to the CFLAGS. zyxel-bootconfig does not
support CPPFLAGS. This fixes fortify sources support.

Link: https://github.com/openwrt/openwrt/pull/22056
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-17 22:25:09 +01:00
Hauke Mehrtens
ddb1c1ab33 ravpower-mcu: add CPPFLAGS
Forward the OpenWrt CPPFLAGS to the compile process. This fixes fortify
sources support.

Link: https://github.com/openwrt/openwrt/pull/22056
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-17 22:25:09 +01:00
Hauke Mehrtens
d69b283068 wireless-tools: add CPPFLAGS
Add the OpenWrt CPPFLAGS to the CFLAGS. wireless-tools does not
support CPPFLAGS. This fixes fortify sources support.

Link: https://github.com/openwrt/openwrt/pull/22056
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-17 22:25:09 +01:00
Hauke Mehrtens
0f1c1c581f resolveip: add CPPFLAGS
Forward the OpenWrt CPPFLAGS to the compile process. This fixes fortify
sources support.

Link: https://github.com/openwrt/openwrt/pull/22056
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-17 22:25:09 +01:00
Hauke Mehrtens
bfd57eab3d iwcap: add CPPFLAGS
Forward the OpenWrt CPPFLAGS to the compile process. This fixes fortify
sources support.

Link: https://github.com/openwrt/openwrt/pull/22056
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-17 22:25:09 +01:00
Hauke Mehrtens
53e6935960 libcap: add CPPFLAGS
Forward the OpenWrt CPPFLAGS to the compile process. This fixes fortify
sources support.

Allow to extend the CPPFLAGS and not only overwrite.

Link: https://github.com/openwrt/openwrt/pull/22056
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-17 22:25:09 +01:00
Hauke Mehrtens
cd1fda5c8b bzip2: add CPPFLAGS
Add the OpenWrt CPPFLAGS to the CFLAGS. bzip2 does not support CPPFLAGS.
This fixes fortify sources support.

Link: https://github.com/openwrt/openwrt/pull/22056
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-17 22:25:05 +01:00
Hauke Mehrtens
b497c3f68f 6rd: add CPPFLAGS
Forward the OpenWrt CPPFLAGS to the compile process. This fixes fortify
sources support.

Link: https://github.com/openwrt/openwrt/pull/22056
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-17 22:16:58 +01:00
Hauke Mehrtens
2ca7c2b846 464xlat: add CPPFLAGS
Forward the OpenWrt CPPFLAGS to the compile process. This fixes fortify
sources support.

Link: https://github.com/openwrt/openwrt/pull/22056
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-17 22:16:58 +01:00
Hauke Mehrtens
39e5f11631 gdb: add CPPFLAGS
Forward the OpenWrt CPPFLAGS to the compile process. This fixes fortify
sources support.

Link: https://github.com/openwrt/openwrt/pull/22056
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-17 22:16:58 +01:00
Hauke Mehrtens
35939e4db9 binutils: add CPPFLAGS
Forward the OpenWrt CPPFLAGS to the compile process. This fixes fortify
sources support.

Link: https://github.com/openwrt/openwrt/pull/22056
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-17 22:16:58 +01:00
Mikhail Kshevetskiy
2639c9ce47 uboot-airoha: an7583: fix wrong bits for SPI and SLIC clock
The change was taken from commit
907386ca6c

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Link: https://github.com/openwrt/openwrt/pull/21984
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-17 20:46:36 +01:00
Mikhail Kshevetskiy
052318bc62 uboot-airoha: update to U-Boot v2026.01
Changes:
 * update to v2026.01 (this brings up EN7523 SoC support)
 * drop upstream patches
 * refresh and adapt an7583 support patches (changes based on
   https://github.com/Ansuel/openwrt/commits/main-airoha-6.12/)
 * add ethernet switch mdio support from upstream U-Boot

Notable changes:
 * make an7583 memory initialization similar to an7581 one
 * add an7583 scu/chip_scu helpers to access scu/chip_scu regmaps.
 * fix misprint in an7583 'system-controller@1fb00000' node name
 * always use board dts for nand partitioning

Notes about en7523 support
--------------------------
This set of patches brings up more or less complete support of EN7523 SoC.
Unfortunately, building of en7523 bootloader will require en7523-bl2.bin
and en7523-bl31.bin blobs which is not available at the moment.

This is the only known blocker for adding en7523 bootloader support.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Link: https://github.com/openwrt/openwrt/pull/21984
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-17 20:46:36 +01:00
Mikhail Zhilkin
3a39f682df qualcommax: ipq50xx: add support for CMCC MR3000D-CI
CMCC MR3000D-CI is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based on
IPQ5000.

Device specification
--------------------
- SoC			: Qualcomm IPQ5018
- RAM			: 512 MiB DDR3L
- Flash			: 128 MiB SPI-NAND (GigaDevice GD5F1GQ5REYIG)
- WLAN			: 2.4/5 GHz 2T2R
- 	2.4 GHz		: Qualcomm IPQ5018 (SoC)
- 	5 GHz		: Qualcomm Atheros QCN6102
- Ethernet		: 4x 10/100/1000 Mbps
- 	Switch		: Qualcomm Atheros QCA8337
- LEDs/Keys (GPIO)	: 2x LEDs, 2x Buttons
- UART			: Through-hole on PCB
- 	Voltage		: 3.3 V
- 	Assignment	: Silkscreened on PCB
- 	Settings	: 115200n8
- Power			: 12 VDC, 1.5 A

Installation
-----------------
1. Telnet method
    a. Enable telnet
    Log in to http://192.168.10.1/ with the password on the sticker
    Modify URL according to example (keep your unique hash after ";stok=")
    and press Enter:
    http://192.168.10.1/cgi-bin/luci/;stok=78becad1b1490e45be2776025cde2b7d/api/NPCnetwork/ping?url=$(telnetd)
    You should get the following in the browser:
    {"link":0}

    b. Run tftp server on IP 192.168.10.254 and put factory image
    'openwrt-qualcommax-ipq50xx-cmcc_mr3000d-ci-squashfs-factory.ubi'
    in the tftp root dir.

    c. Login to 192.168.10.1 with telnet (user: root, pass: from the
    sticker).

    d. Download factory image from the tftp:
    tftp -l factory.ubi -r openwrt-qualcommax-ipq50xx-cmcc_mr3000d-ci-squashfs-factory.ubi -g 192.168.10.254

    e. Flash factory image:
    export rootfs=$(cat /proc/mtd | grep rootfs | grep -v _ | cut -d: -f1)
    ubidetach -f -p /dev/${rootfs}
    ubiformat /dev/${rootfs} -y -f /tmp/factory.ubi

    f. Reboot:
    reboot

2. U-Boot Method using UBI Image (using UART)
    a. Place the factory.ubi file on your TFTP server, enter U-Boot CLI
    and exec these commands:
    tftpboot <your_tftp_server_ip>:factory.ubi
    flash rootfs
    reset

3. U-Boot Method using initramfs Image (using UART)
    a. Place the openwrt-*-initramfs-fit-uImage.itb file on your TFTP
    server and rename it to initramfs.bin

    b. Enable serial console, enter to U-Boot CLI and exec these commands:
    tftpboot <your_tftp_server_ip>:initramfs.bin
    bootm

    c. Once boot completed, upload the sysupgrade.bin file to router's
    /tmp directory (using scp or wget) and execute the following command
    in openwrt shell:
    sysupgrade -n /tmp/sysupgrade.bin

MAC Addresses
-------------
+--------------+-------------------+-------------+
| Interface    | MAC example       | Location    |
+--------------+-------------------+-------------+
| LAN          | 84:7a:xx:xx:xx:dd | 0:ART, 0x6  |
| WAN (label)  | 84:7a:xx:xx:xx:dc | 0:ART, 0x0  |
| WLAN 2.4 GHz | 84:7a:xx:xx:xx:de | 0:ART, 0xc  |
| WLAN 5       | 84:7a:xx:xx:xx:df | 0:ART, 0x12 |
+--------------+-------------------+-------------+

Notes
-----
1. U-Boot is protected by a password (pass: netpower).

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21952
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-17 20:45:18 +01:00
Robert Marko
f5a63c9eda ipq-wifi: update to Git HEAD (2026-02-17)
97af8a2a2dcb ipq6018: add Link NN6000 BDF Link: https://github.com/openwrt/firmware_qca-wireless/pull/124
4b7ccdeadfc0 ipq5018: add BDFs for CMCC MR3000D-CI

Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-17 20:44:48 +01:00
Hauke Mehrtens
0f4e4a41b2 fstools: update to Git HEAD (2026-02-15)
8d377aa627be libfstools: Rename PATH_MAX to MTD_PATH_MAX

Link: https://github.com/openwrt/openwrt/pull/22042
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-17 01:28:59 +01:00
Felix Fietkau
8b994ed397 wifi-scripts: netifd: fix null dereference in config_init for missing devices
Add optional chaining when accessing device config in the wifi-iface
loop to handle cases where a referenced device doesn't exist.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit ebd2fefea5152d032cded1ccc7cf6e731b5bbcc2)
2026-02-16 09:19:37 +01:00
Rany Hany
f012e8d50a wifi-scripts: ucode: fix ieee80211w default
This should not be defaulted to anything in the schema.

What seemed like a minor cleanup actually broke this
as the schema defines a default value already. I did
not notice as I had this explictly set in my config.

Fixes: 70ba7512 ("wifi-scripts: ucode: allow sae_pwe to be modified for AP mode")
Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/22043
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-16 01:50:53 +01:00
Felix Fietkau
a570b9cbed unetd: update to Git HEAD (2026-02-15)
35c182b74fa4 host: fix for_each_routed_host macro using wrong variable name
52e504192ea7 host: fix gateway peers getting allowed IPs of unrelated hosts

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-15 14:42:03 +01:00
Rany Hany
70ba7512e7 wifi-scripts: ucode: allow sae_pwe to be modified for AP mode
Some Android devices have issues with H2E causing downgrades to PSK
when using WPA2/3. With WPA3 it doesn't work reliably whatsoever.

My Samsung A55/6 for example has the following behavior:

daemon.info hostapd: lan5g: STA <redacted> IEEE 802.11: authenticated
daemon.notice hostapd: SAE: <redacted> indicates support for SAE H2E, but did not use it
daemon.info hostapd: lan2g: STA <redacted> IEEE 802.11: authenticated
daemon.info hostapd: lan2g: STA <redacted> IEEE 802.11: associated (aid 1)
daemon.notice hostapd: lan5g: Prune association for <redacted>
daemon.notice hostapd: lan2g: AP-STA-CONNECTED <redacted> auth_alg=open
daemon.info hostapd: lan2g: STA <redacted> RADIUS: starting accounting session 8234C696AAC1AE7D
daemon.info hostapd: lan2g: STA <redacted> WPA: pairwise key handshake completed (RSN)
daemon.notice hostapd: lan2g: EAPOL-4WAY-HS-COMPLETED <redacted>

This is also brought up in the issue: https://github.com/openwrt/openwrt/issues/9963

Ultimately this allows users to have the option to at the very least
disable H2E.

Unrelated: a minor cleanup was done so that ieee80211w uses set_default instead.
There is no functional change on that front.

Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/22021
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-15 01:18:18 +01:00
Ahmed Naseef
32df0bdf59 econet: en7528: add basic ethernet support
EN7528 shares the same clock/reset controller as EN7523. Enable
COMMON_CLK_EN7523 and RESET_CONTROLLER for ethernet hardware resets.
Update econet-eth driver and add it as default package.

Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21326
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-15 01:12:52 +01:00
Rany Hany
862b46dd8f 6in4: improve HE tunnel update procedure
- uclient-fetch timeout bumped from 5s to 15s. If we do not do this
  we get flagged by HE as the update request is expensive and takes
  more than 5s to execute. Currently 5s timeout causes uclient-fetch
  to be killed prematurely as can be seen by the following log:

  10:34:57 user.notice 6in4-henet: update 1/3: timeout
  10:35:07 user.notice 6in4-henet: update 2/3: timeout
  10:35:17 user.notice 6in4-henet: update 3/3: timeout
  10:35:22 user.notice 6in4-henet: update failed

  The above is the worst case, what usually happens is:

  10:53:59 user.notice 6in4-henet: update 1/3: timeout
  10:54:06 user.notice 6in4-henet: update 2/3: abuse
  10:54:06 user.notice 6in4-henet: updated

- We now use an exponential backoff starting from 5 seconds.

- Detect ca-bundle so we don't use --no-check-certificates
  unnecessarily.

- The while loop was changed so we don't retry unnecessarily
  after the final failure.

- Worst-case total time the update operation might take before
  bailing out is:

     (sum(15 + (5 × (2^(x − 1))), 1, 2) + 15) seconds = 1 min

Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/22016
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-15 00:01:57 +01:00
Robert Marko
b325e6e5ee ipq-wifi: fix botched rebase
I botched the rebase of ipq-wifi, so fix it.

Fixes: 67e6baf05e ("qualcommax: ipq60xx: add Netgear RBx350 support")
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-13 23:36:30 +01:00
Michael Lotz
785492e4c1 qualcommax: ipq807x: add Zyxel NWA110AX support
The Zyxel NWA110AX is a dual band 2x2:2 802.11ax wireless access point
with PoE.

The device is very similar to the NWA210AX except for being 2x2 instead
of 4x4 in the 5GHz band and not having the 2.5GbE ethernet port. This
commit factors out a common DTS and device definition and reuses it for
both devices.

Hardware:
* SoC: Qualcomm IPQ8070A
* RAM: 1GiB 1x Samsung K4A8G165WC-BCTD
* Flash: 8MiB Winbond W25Q64DW SPI-NOR, 256MiB Winbond W29N02GZ SPI-NAND
* WLAN 2.4GHz: QCN5024 2x2:2 802.11b/g/n/ax
* WLAN 5GHz: QCN5054 2x2:2 802.11n/ac/ax
* Ethernet: 1x 1GbE with AR8033 PHY
* Serial Config: 3.3V TTL 115200-8-N-1, externally accessible
* Serial Layout: GND TX RX 3.3V (don't connect, marked with triangle)
* LEDs: 1x red, 1x green, 1x blue, 1x white
* Buttons: 1x reset

MAC addresses:
* Uplink: base address on label
* 2.4GHz WLAN: base + 1
* 5GHZ WLAN: base + 2

Flashing Notes:
The device uses a dual-image setup and OpenWrt can only be installed as
image 0. When the currently running stock firmware is image 0, OpenWrt
will be installed as image 1, fail to boot and the device returns to stock
firmware. If this happens, install any version of stock firmware so that
it runs as image 1, before installing OpenWrt. Alternatively, if there
already is a valid stock firmware in image 1, the "debug dual-image show"
and "debug dual-image set boot-image image1" commands can be used in the
stock CLI via serial/SSH/telnet to switch to image 1.

Flashing with Stock Web Interface:
* Get the OpenWrt factory image and rename it to a shorter name, for
  example "openwrt.bin" (the stock firmware has a character limit)
* In the web interface, go to "Maintenance" -> "File Manager" ->
  "Firmware Package" (or click the link next to "Firmware Version" under
  "Device Information" on the dashboard)
* Under "Upload File" browse to the renamed OpenWrt factory image and
  click on "Upload"

Switch Boot Image:
* OpenWrt to stock: "zyxel-bootconfig-ipq807x set image1"
* Stock to OpenWrt: "debug dual-image set boot-image image0"

Unbrick / Revert to Stock with the Boot Module:
* Disconnect the device from power
* Configure your machine to 192.168.1.103/24 and start a TFTP server
* Put the stock firmware image into the TFTP server root and rename it to
  "ZLD-current"
* Establish a serial connection to the device through the console port
* Connect the device to power
* When prompted, press a key to abort automatic boot and enter debug mode
* Use the "atnz" command to flash the firmware image
* Use the "atgo" command to boot from the newly flashed image

Signed-off-by: Michael Lotz <mmlr@mlotz.ch>
Link: https://github.com/openwrt/openwrt/pull/21849
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-13 21:35:49 +01:00
Michael Lotz
67e6baf05e qualcommax: ipq60xx: add Netgear RBx350 support
Netgear RBx350 are dual band 4 stream 802.11ax mesh devices from the Orbi
series. The RBR350 is a router with a WAN and 3 LAN ports. The RBS350 is a
satellite without WAN port, only 2 LAN ports and half the flash. The
hardware is otherwise identical. They were sold in kits as RBK352, RBK353,
RBK354 or RBK355, with one router and 1-4 satellites.

Hardware:
* SoC: Qualcomm IPQ6018
* RAM: 512MiB 1x Nanya NT5CC256M16ER-EK
* Flash: 512MiB Winbond W29N04GZ or 256MiB Winbond W29N02GZ
* WLAN 2.4GHz: QCN5022 2x2:2 b/g/n/ax
* WLAN 5GHz: QCN5052 2x2:2 a/n/ac/ax
* Ethernet: QCA8075 switch with 1 WAN and 3 LAN ports or 2 LAN ports
* Serial Config: 3.3V TTL 115200-8-N-1, internal populated header
* Serial Layout: 3.3V (don't connect, marked with dot) RX TX GND
* LEDs: green/red power, white/red/green/blue status
* Buttons: 1x Reset, 1x WPS

MAC addresses:
* LAN1: base address on label, stored in boarddata partition at 0x8
* LAN2: base + 1
* LAN3: base + 2
* WAN: base + 3
* 2.4GHz WLAN: base + 1
* 5GHz WLAN: base + 2

Flashing Notes:
The stock firmware images are signed. Both the bootloader and the stock
web interface check the signature and will fail to boot/flash.
The bootloader automatically does NMRP when a gigabit LAN connection is
present. The stock and factory images contain a U-Boot script that is
executed when flashing using NMRP. This is used to alter and persist the
U-Boot env with a boot command that works with unsigned firmware.

Install OpenWrt:
* Get the nmrpflash utility [0] and OpenWrt factory image
* Find network interface to use: nmrpflash -L
* Start nmrpflash: nmrpflash -i interface -f openwrt-...-factory.img
* Connect the device LAN port closest to the power jack to the same
  network using gigabit
* Plug the device in and wait for the bootloader to flash
* Unplug and replug the device once the power LED blinks amber

Revert to Stock:
The boot command needs to be reverted before flashing the stock firmware,
otherwise it will fail to boot and get stuck in recovery mode (red power
LED flashing).

* Run: fw_setenv bootcmd bootipq
* Restart the device
* Flash the stock firmware RBx350-Va.b.c.d.img using nmrpflash

[0]: https://github.com/jclehner/nmrpflash

Signed-off-by: Michael Lotz <mmlr@mlotz.ch>
Link: https://github.com/openwrt/openwrt/pull/21656
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-13 21:32:15 +01:00
Michael Lotz
d0bd7ad1a2 qualcommax: ipq807x: add Netgear RBx750 support
Netgear RBx750 are tri band, 2.4GHz and 2x 5GHz, 8 stream 802.11ax mesh
devices from the Orbi series. The RBR750 is a router with a WAN and 3 LAN
ports. The RBS750 is a satellite without WAN port, only 2 LAN ports and
half the flash. The hardware is otherwise identical. They were sold in
kits as RBK752-RBK757, with one router and 1-6 satellites.

Hardware:
* SoC: Qualcomm IPQ8074
* RAM: 1GiB 1x Samsung
* Flash: 512MiB Winbond W29N04GZ or 256MiB Winbond W29N02GZ
* WLAN 2.4GHz: QCN5024 2x2:2 b/g/n/ax
* WLAN 5GHz Low Band: QCN5054 2x2:2 a/n/ac/ax 5180-5320MHz
* WLAN 5GHz High Band: QCN5054 4x4:4 a/n/ac/ax 5500-5700MHz
* Ethernet: QCA8075 switch with 1 WAN and 3 LAN ports or 2 LAN ports
* Serial Config: 3.3V TTL 115200-8-N-1, internal populated header
* Serial Layout: Bottom <- RX, TX, GND, 3.3V (don't connect) -> Top
* LEDs: green/red power, white/red/green/blue status
* Buttons: 1x Reset, 1x WPS

MAC addresses:
LAN1: base address on label
LAN2: base + 1
LAN3: base + 2
WAN: base + 1
2.4GHz: base + 2
5GHz-Low: base + 3
5GHz-High: base + 4

Flashing Notes:
The stock firmware images are signed. Both the bootloader and the stock
web interface check the signature and will fail to boot/flash.
The bootloader automatically does NMRP when a gigabit LAN connection is
present. The stock and factory images contain a U-Boot script that is
executed when flashing using NMRP. This is used to alter and persist the
U-Boot env with a boot command that works with unsigned firmware.

Install OpenWrt:
* Get the nmrpflash utility [0] and OpenWrt factory image
* Find network interface to use: nmrpflash -L
* Start nmrpflash: nmrpflash -i interface -f openwrt-...-factory.img
* Connect the device LAN port closest to the power jack to the same
  network using gigabit
* Plug the device in and wait for the bootloader to flash
* Unplug and replug the device once the power LED blinks amber

Revert to Stock:
The boot command needs to be reverted before flashing the stock firmware,
otherwise it will fail to boot and get stuck in recovery mode (red power
LED flashing).

* Run: fw_setenv bootcmd bootipq
* Restart the device
* Flash the stock firmware RBx750-Va.b.c.d.img using nmrpflash

[0]: https://github.com/jclehner/nmrpflash

Signed-off-by: Michael Lotz <mmlr@mlotz.ch>
Link: https://github.com/openwrt/openwrt/pull/21938
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-13 21:27:16 +01:00
Robert Marko
c6eb8b84d2 ipq-wifi: update to Git HEAD (2026-02-13)
114c5199dce8 ipq6018: add Netgear RBK350 BDF
296f8fda7c42 ipq8074: add Netgear RBK750 BDF
30241cba74cf ipq8074: add Zyxel NWA110AX BDF

Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-13 21:26:42 +01:00
Matt Merhar
fcb07b00ec build: propagate errors when generating apk indexes
The build would continue even if the some of the intermediate commands
failed, as long as the last command in the final iteration of the loop
was successful.

Add 'set -e' to the subshell so that we immediately exit. Previously,
only the exit status of the final make-index-json.py mattered.

Fixes: https://github.com/openwrt/openwrt/issues/21981
Signed-off-by: Matt Merhar <mattmerhar@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/21993
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-13 21:17:21 +01:00
Wei-Ting Yang
cd39bc2c5b elfutils: fix license
Remove OR between GPL-2.0-or-later and LGPL-3.0-or-later to avoid
incorrect parsing of OR as a separate license in the SBOM.

Fixes: 9a157b5d83

Signed-off-by: Wei-Ting Yang <williamatcg@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22003
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-13 12:07:07 +01:00
Felix Fietkau
88f3c0eeb0 uclient: update to Git HEAD (2026-02-13)
63413daa8760 uclient-http: fix HTTP authentication after deferred header processing
4fa6fae02f74 uclient-fetch: Extract opt_post variable
8df3120639a4 uclient-fetch: Use HEAD for --spider
0392dfc8e8c4 uclient-fetch: Support of --method, --body-data and --body-file
115c92824b6d uclient-fetch: add OPTIONS request type
a1531e89f6c2 uclient-fetch: support for WebDAV methods

Fixes: https://github.com/openwrt/uclient/issues/14
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-13 10:10:14 +01:00
Felix Fietkau
7bc8aa492f libubox: update to Git HEAD (2026-02-13)
d324c0503040 libubox: send warnings to stderr
5a65cb5a79b7 libubox: document positional arguments
8c7b489daa02 libubox: add anonymous strings, ints, et al in arrays
5ec7ff2effb3 uloop: use volatile sig_atomic_t for do_sigchld flag
0efa2cd3b74c usock: check SO_ERROR after poll in usock_inet_timeout()
1a73ded9f738 usock: fix timeout handling in usock_inet_timeout()
1aa36ee774c8 usock: implement RFC 8305 Happy Eyeballs for usock_inet_timeout()

Fixes: https://github.com/openwrt/uclient/issues/8
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-13 10:10:14 +01:00
Fil Dunsky
0f713d5d11 mediatek: add support for netis NX32U
This PR adds support for netis NX32U router.

Specification
-------------
- SoC       : MediaTek MT7981BA dual-core ARM Cortex-A53 1.3 GHz
- RAM       : 256 MiB DDR3
- Flash     : SPI-NAND 128 MiB (ESMT)
- WLAN      : MediaTek MT7976CN dual-band WiFi 6
  - 2.4 GHz : b/g/n/ax, MIMO 2x2
  - 5 GHz   : a/n/ac/ax, MIMO 2x2
- Ethernet  : 10/100/1000 Mbps x3 (LAN, MediaTek MT7531AE)
              10/100/1000 Mbps x1 (WAN, SoC internal phy)
- USB       : 3.0
- Buttons   : Mesh, Reset
- LEDs      : 1x Power (green), unmanaged
              1x Internet (green), gpio-controlled
              1x WPS (green), gpio-controlled
              1x WiFi 2.4 GHz (green), gpio-controlled
              1x WiFi 5 GHz (green), gpio-controlled
              1x LAN activity (green), switch-controlled
              1x WAN activity (green), switch-controlled
              1x USB (green), gpio-controlled
- Power     : 12 VDC, 1 A

Installation
------------
1. Connect to the router using ssh (user: admin, pass: web interface
   password)
2. Backup:
```
cat /dev/mtd0 | gzip -1 -c > /tmp/mtd0_spi0.0.bin.gz
cat /dev/mtd1 | gzip -1 -c > /tmp/mtd1_BL2.bin.gz
cat /dev/mtd2 | gzip -1 -c > /tmp/mtd2_u-boot-env.bin.gz
cat /dev/mtd3 | gzip -1 -c > /tmp/mtd3_Factory.bin.gz
cat /dev/mtd4 | gzip -1 -c > /tmp/mtd4_FIP.bin.gz
cat /dev/mtd5 | gzip -1 -c > /tmp/mtd5_ubi.bin.gz
```
3. Download mtd backup from the /tmp dir of the router to your PC using
   scp protocol
4. Upload OpenWrt 'bl31-uboot.fip', 'preloader.bin' images to the /tmp
   dir of the router using scp protocol
5. Write FIP and BL2 (replace bootloader):
```
mtd write /tmp/openwrt-mediatek-filogic-netis_nx32u-bl31-uboot.fip FIP
mtd write /tmp/openwrt-mediatek-filogic-netis_nx32u-preloader.bin BL2
```
6. Place OpenWrt
   'openwrt-mediatek-filogic-netis_nx32u-initramfs-recovery.itb' image on
   the tftp server (IP: 192.168.1.254)
7. Erase 'ubi' partition and reboot the router:
   mtd erase ubi
   reboot
8. U-Boot automatically boot OpenWrt recovery image from tftp server to
   the RAM
9. Upload OpenWrt 'sysupgrade.itb' image to the /tmp dir of the router
   (IP: 192.168.1.1) using scp protocol
10. Connect to the router using ssh and run:
```
ubidetach -p /dev/mtd4; ubiformat /dev/mtd4 -y; ubiattach -p /dev/mtd4
ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB
ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB
sysupgrade -n openwrt-mediatek-filogic-netis_nx32u-squashfs-sysupgrade.itb
```

Recovery
--------
1. Place OpenWrt
   'openwrt-mediatek-filogic-netis_nx32u-initramfs-recovery.itb' image on
   the tftp server (IP: 192.168.1.254)
2. Press “Reset” button and power on the router. After ~10 sec release
   the button.
3. Use OpenWrt initramfs system for recovery

+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| LAN     | dc:xx:xx:d1:xx:18 | label     |
| WAN     | dc:xx:xx:d1:xx:1a | label+2   |
| WLAN 2g | de:xx:xx:11:xx:19 |           |
| WLAN 5g | de:xx:xx:71:xx:19 |           |
+---------+-------------------+-----------+
The LAN MAC was found in 'Factory', 0x1fef20
The WAN MAC was found in 'Factory', 0x1fef26
The WLAN 2g/5g MAC prototype was found in 'Factory', 0x4

Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21368
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-12 23:02:05 +01:00
Tomáš Macholda
0271f2ee36 mvebu: add support for RIPE Atlas Probe v5
RIPE Atlas Probe v5 is a network measurement device based on Turris MOX.

u-boot bootscript supports booting both from the original Turris BTRFS
layout and default OpenWrt ext4 boot + root partition layout.

Specifications:
* SoC: Marvell ARMADA 3720
* RAM: 512 MiB, DDR3
* eMMC: 4G
* Ethernet: 1x 1GbE

MAC:
LAN MAC: label on board

Flash instructions:
* For using the default ext4 layout, boot into a live system using
tftpboot in u-boot and flash an OpenWrt SD image onto /dev/mmcblk0.
* For the Turris layout, put the new rootfs into subvolume '@', not
forgetting to add Image, device tree, and boot.scr to /boot.

Misc:
* USB connection is only for power. For UART access use the pin header:
  1: GND
  2: +1.8V
  5: TX
  6: RX
* Flashing the image onto Turris Shield won't work. Use Turris MOX image
  instead.

Signed-off-by: Tomáš Macholda <tomas.macholda@nic.cz>
Link: https://github.com/openwrt/openwrt/pull/20031
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-12 22:21:51 +01:00
Matt Merhar
8c6ed4e927 apk: handle edge case when parsing .apk files
This was a regression introduced in the recent alignment changes and led
to failures when reading (i.e. 'mkndx') certain packages like follows:

ERROR: python3-botocore-1.31.7-r1.apk: unexpected end of file

It affected packages with a header size greater than the read buffer
size of 128KB but less than 160KB (128KB + (128KB / 4)).

In those cases, we'd attempt a 0 byte read, leading to APKE_EOF.

Based on some tests of files across multiple archs and feeds, it seems
the only packages meeting those criteria were python3-botocore and
golang-github-jedisct1-dnscrypt-proxy2-dev.

Fixes: 64ec08eee1 ("apk: backport upstream fixes for unaligned access")
Signed-off-by: Matt Merhar <mattmerhar@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/21992
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-12 10:23:56 +01:00
Zihao Diao
2e5b44a989 usbmode: add modeswitch rule for ZTE MF833U1
ZTE MF833U1 is a LTE dongle that expose a cdc_ether interface for data link
and WebUI for management. It handles all the "modem" functionalities
internally and does not expose any serial interface. Instead it acts like a
"router in a stick".

It initially enumerates as a USB mass-storage device and does not bind any
network driver, so no netdev is created until a modeswitch is performed.

The test is done on Cudy TR3000 256MB v1.0 running OpenWrt 24.10.5 with an
unit targeting Chinese market:

 - Hardware Version: MF883U1_V1.0.0
 - Software Version: BD_MF883U1V1.0.0B06
 - CMIT ID: 2019CP2106

There are report online that the device have different variants that have
different behavior across different firmware, HW revisions or SKUs.

Before the switch:

```
root@OpenWrt:~# lsusb -t
  /:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci-mtk/1p, 480M
      |__ Port 001: Dev 003, If 0, Class=[unknown], Driver=[none], 480M

root@OpenWrt:~# lsusb Bus 001 Device 001: ID 1d6b:0002 Linux 6.6.119
xhci-hcd xHCI Host Controller Bus 001 Device 004: ID 19d2:1705
DEMO,Incorporated DEMO Mobile Boardband Bus 002 Device 001: ID 1d6b:0003
Linux 6.6.119 xhci-hcd xHCI Host Controller ```

After the switch:

```
root@OpenWrt:~# lsusb -t
  /:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci-mtk/1p, 480M
      |__ Port 001: Dev 003, If 0, Class=[unknown], Driver=cdc_ether, 480M
      |__ Port 001: Dev 003, If 1, Class=[unknown], Driver=cdc_ether, 480M
      |__ Port 001: Dev 003, If 2, Class=[unknown], Driver=[none], 480M
  /:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci-mtk/1p, 20000M/x2

root@OpenWrt:~# lsusb Bus 001 Device 001: ID 1d6b:0002 Linux 6.6.119
xhci-hcd xHCI Host Controller Bus 001 Device 003: ID 19d2:1706
DEMO,Incorporated DEMO Mobile Boardband Bus 002 Device 001: ID 1d6b:0003
Linux 6.6.119 xhci-hcd xHCI Host Controller ```

The following kernel debug log is presented:

``` cdc_ether 1-1:1.0 eth2: register 'cdc_ether' at usb-11200000.usb-1, ZTE
CDC Ethernet Device, 34:4b:50:00:00:00 ```

Signed-off-by: Zihao Diao <hi@ericdiao.com>
Link: https://github.com/openwrt/openwrt/pull/21867
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-11 23:21:42 +01:00
Nick Hainke
626494fb25 xdp-tools: bump PKG_RELEASE
Increase PKG_RELEASE so buildbots pick up and rebuild the updated
package files.

Fixes: c752525511 ("xdp-tools: add patch to fix stddef.h build issue")
Link: https://github.com/openwrt/openwrt/pull/21988
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-02-11 22:05:25 +01:00
Nick Hainke
c752525511 xdp-tools: add patch to fix stddef.h build issue
Add a patch that avoids including <stddef.h> in BPF headers, fixing
build failures on OpenWrt toolchains where the header is unavailable:

  In file included from xdpfilt_dny_udp.c:10:
  In file included from ./xdpfilt_prog.h:24:
  ../lib/../headers/xdp/parsing_helpers.h:18:10: fatal error: 'stddef.h' file not found
    18 | #include <stddef.h>
        |          ^~~~~~~~~~
  1 error generated.
  make[5]: *** [../lib/common.mk:111: xdpfilt_dny_udp.o] Error 1
  make[4]: *** [Makefile:40: xdp-filter] Error 2

Link: https://github.com/openwrt/openwrt/pull/21972
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-02-11 08:22:32 +01:00
Rui Salvaterra
f9320e8d2d
iproute2: add cake_mq support
Add two patches backported from iproute2-next.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21964
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-02-11 02:07:50 +01:00
Mario Andrés Pérez
7aa1f7e814 mediatek: filogic: gl-mt2500 fix compatibles PHY variants
These devices share the same "compatible" in device tree causing some
incompatibilities (sysupgrades, ASU profile identification), assign a
unique "compatible" and "model" to each variant.

Context:
Commit [1] added each variant's dts compatible to the SUPPORTED_DEVICES
field of the other variant to make easy sysupgrades between these
physically indistinguishable devices variants possible.

But there were found three issues which does not allow this:
- the sysupgrade's stricter check still used in some sysupgrade
paths(this check is being replaced(and redundant) with the newer fwtool's
SUPPORTED_DEVICES check using the info in images METADATA), this check
will fail when sysupgrading from a different board_name(compatible dts)
that the image was created for (image profile name).[2]
- ASU needs unique "dts compatible" to identify the devices profile.
- and an ASU's profile identification limitation when several devices from
a common target share SUPPORTED_DEVICES entries.[3]

There is a proposal for these issues but not yet implemented [4][3].

Until these issues are fixed we won't allow "easy" sysupgrades between
these two device variants.

Commit [5] avoided the ASU profile identification limitation but
missed the required two unique dts compatibles in order to make the two
variants fully work, although not allowing easy sysupgrade between them.

[1]: 8d30e07180
[2]: sysupgrade stricter check https://github.com/openwrt/openwrt/issues/20566#issuecomment-3583555482
[3]: ASU proposal https://github.com/openwrt/asu/pull/1533
[4]: allow easy sysupgrade proposal https://github.com/openwrt/openwrt/pull/20947
[5]: b71f4665cd
Fixes: b71f466 ("mediatek: filogic: fix supported_devices list for gl-mt2500")
Fixes: 8d30e07 ("mediatek: filogic: fix for new GL.iNet GL-MT2500/GL-MT2500A hardware revision")
Fixes: https://github.com/openwrt/openwrt/issues/20566
Fixes: https://github.com/openwrt/asu/issues/1525

Signed-off-by: Mario Andrés Pérez <mapb_@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21842
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-11 00:03:05 +01:00
Matt Merhar
64ec08eee1
apk: backport upstream fixes for unaligned access
On the kirkwood target, packages would frequently fail to install with
APKE_ADB_SCHEMA, APKE_ADB_BLOCK, and/or segfaults. The culprit was
unaligned access leading to bogus values being read out of memory on
these particular ARMv5 CPUs.

Pull in the relevant upstream fixes to address this.

Fixes: https://github.com/openwrt/openwrt/issues/21307
Link: https://gitlab.alpinelinux.org/alpine/apk-tools/-/merge_requests/391
Link: https://gitlab.alpinelinux.org/alpine/apk-tools/-/merge_requests/392
Signed-off-by: Matt Merhar <mattmerhar@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/21958
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-02-10 15:06:52 +01:00
Daniel Golle
361885b133 procd: update to git HEAD
7e5b324 instance: check length of names when creating cgroups
 014f94c procd: jail/cgroups: fix OOB write in cgroups_apply()
 e08cdc8 hotplug-dispatch: fix filter disallowing setting PATH
 afa4391 service instance: Improve handling of watchdog config changes
 52c64d2 service instance: Fix overwriting of watchdog linked list members
 96c827f coldplug: fix missing header include
 6b10c71 hotplug-dispatch: fix missing header include
 58d7aaa initd/coldplug: create /dev/null before running udevtrigger
 64f97ff hotplug-dispatch: redirect output to /dev/null
 c4e9859 hotplug-dispatch: use stat if d_type is DT_UNKNOWN
 bafdfff system: fix arguments validation in ubus handler

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-02-09 16:41:57 +00:00
Felix Fietkau
3553eda283 wifi-scripts: fix spurious teardown on config_change during setup
When config_change is set during an active setup (e.g. by a concurrent
reconf call), wdev_mark_up() attempted to call setup() while still in
"setup" state. Since setup() requires state "up" or "down", it silently
returned, leaving the state as "setup". The subsequent wdev_setup_cb()
then treated this as a setup failure, triggering an unnecessary
teardown+restart cycle.

Fix this by removing the config_change handling from wdev_mark_up() and
moving it to wdev_setup_cb() instead. wdev_mark_up() now always
transitions to "up" state. When wdev_setup_cb() runs afterwards and
finds the device already "up" with config_change set, it initiates a
clean re-setup from the "up" state where setup() can run.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-08 19:46:45 +01:00
Shine
4ab5fcc04f wifi-scripts: fix encryption setting of default OpenWrt SSID
Commit 01a87f4bd0 changed the encryption
setting of the default SSID "OpenWrt" from "none" to "open". The correct
setting as per the documentation [1] is "none", though.
While this invalid setting won't cause a wrong hostapd setup, it will
at least cause malfunction in LuCI.

Change the default encryption setting back to "none".

[1] https://openwrt.org/docs/guide-user/network/wifi/basic#encryption_modes

Fixes: 01a87f4bd0
Signed-off-by: Shine <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21925
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-08 19:04:24 +01:00
Rosen Penev
387e5d57cc uboot-envtools: fix meraki mr24 definition
These two are redundant definitions according to dts. A value of 4 (CRC
no redundancy) makes no sense.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16618
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-08 18:37:43 +01:00
Rosen Penev
6e3c8d95f4 uboot-envtools: fix meraki mx60 definition
There are two redundant sections. One at 0x0 and the other at 0x80000.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16618
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-08 18:37:43 +01:00
Nick Hainke
7585450d37 hostapd: fix 601-ucode_support.patch not applying
Code was moved from 601-ucode_support.patch into ucode.{c,h},
but the patch still contained the old hunks. As a result, the patch
no longer applies.

Fix this by dropping the moved code from 601-ucode_support.patch.

Fixes: a7756346c7 ("hostapd: extend DPP ucode API with WPS M7/M8 encrypted settings handling")
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-02-08 17:00:12 +01:00
Felix Fietkau
a7756346c7 hostapd: extend DPP ucode API with WPS M7/M8 encrypted settings handling
Add callbacks to intercept WPS M7 reception (registrar side) and M8
reception (enrollee side), allowing external code to inject extra
encrypted attributes and optionally skip credential building.

On the registrar side, the m7_rx callback receives the decrypted M7
content and can return extra data to include in M8's encrypted settings
as well as a flag to skip credential generation.

On the enrollee side, add a wps_set_m7 method to set extra encrypted
data for M7, and a m8_rx callback to handle the decrypted M8 content
externally.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-08 12:25:20 +01:00
Zoltan HERPAI
e40d416c54 uboot-sunxi: bump to 2025.10
Compile-tested: all targets
Runtime-tested:
 - Linksprite pcDuino v2 (A10)
 - Banana Pro (A20)
 - Banana Pi M2 Berry (V40)
 - Banana Pi P2 Zero (H2+)
 - Pine64+ (A64)

Patches refreshed as required.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-02-08 00:56:16 +01:00
Zoltan HERPAI
9f5558fa71 arm-trusted-firmware-sunxi: bump to 2.14
As prep work to support the A52x/T52x-series, bump the TFA to use
the 2.14 release.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-02-08 00:56:16 +01:00
Fil Dunsky
658e4adca4 mediatek: filogic: add support for Bazis AX3000WM
- SoC: MediaTek MT7981B
 - CPU: 2x 1.3 GHz Cortex-A53
 - Flash: 128 MiB SPI NAND (Winbond W25N01GV)
 - RAM: 256 MiB (Nanya NT5CC128M16JR-EK)
 - WLAN: 2.4 GHz, 5 GHz (MediaTek MT7976CN, 802.11ax)
 - Ethernet: 1x 10/100/1000/2500 Mbps MaxLinear GPY211C WAN, 1x10/100/1000 Mbps MT7981 LAN
 - USB 3.0 port
 - 2x buttons: Reset, Mesh
 - 3x LEDs on top panel (red, green, blue)
 - 3x PHY port LEDs (1 amber, 2 green)
 - Board version: WD830M V2.0
 - Power: 5 VDC, 3 A

UART: internal test points, 3V3 115200 8N1 (RX, TX, GND)

Interface	MAC			Algorithm
LAN (label)	1c:bf:ce:xx:xx:x1	0x4
WAN		1c:bf:ce:xx:xx:x2	0xa
WLAN 2.4G	1c:bf:ce:xx:xx:x3	0x2a
WLAN 5G		1c:bf:ce:xx:xx:x4	0x24

At the moment installation is possible via UART only since SSH root
is password protected.

Set a static ip on the ethernet interface of your PC:
(ip address: 192.168.1.2, subnet mask:255.255.255.0).
Boot into initramfs via TFTP:
```
setenv serverip 192.168.1.2
tftpboot 0x46000000 openwrt-mediatek-filogic-bazis_ax3000wm-initramfs-recovery.itb
bootm 0x46000000
```

Install kmod-mtd-rw and activate it:
```
apk update && apk add kmod-mtd-rw
insmod mtd-rw i_want_a_brick=1
```
Upload to the router and write OpenWrt BL2 and FIP bootloader:
```
mtd write openwrt-mediatek-filogic-bazis_ax3000wm-preloader.bin BL2
mtd write openwrt-mediatek-filogic-bazis_ax3000wm-bl31-uboot.fip FIP
```
Prepare ubi partition:
```
ubidetach -p /dev/mtd4
ubiformat /dev/mtd4 -y
ubiattach -p /dev/mtd4
```

Upgrade via luci web interface with sysupgrade file or by issuing a command:
```
sysupgrade -n openwrt-mediatek-filogic-bazis_ax3000wm-squashfs-sysupgrade.itb
```
Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21813
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-07 22:25:47 +01:00
Felix Fietkau
09de759506 hostapd: add DPP ucode API for external frame handling
Add a ucode API to hostapd and wpa_supplicant for external DPP frame
handling. This allows an external controller to intercept DPP frames
and handle the DPP protocol externally.

The API provides:
- RX callbacks (dpp_rx_action, dpp_rx_gas) called when DPP frames are
  received, allowing external handling before internal processing
- TX methods (dpp_send_action, dpp_send_gas_resp/dpp_send_gas_req) for
  transmitting DPP frames
- A ubus channel-based API (dpp_channel) for bidirectional communication
  with exclusive hook registration per interface
- CCE control for hostapd (set_cce method)

The wpa_supplicant API mirrors hostapd but adapted for STA role:
- Uses tx_gas_req instead of tx_gas_resp
- GAS RX provides full frame instead of parsed query
- No CCE control (AP-only feature)

Both implementations include:
- Timeout handling with automatic channel disconnect after 3 failures
- Hook cleanup on interface removal
- Last-caller-wins semantics for hook registration

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-07 09:27:57 +00:00
Felix Fietkau
68c2ab8f5f wifi-scripts: fix nested config accumulation in wdev_set_data
When storing device-level data, wdev_set_data() spread the entire wdev
object into handler_data. Since handler_config.data is set from the
previous handler_data[wdev.name] before each setup, this created
exponentially growing nesting with each reload, eventually causing
"nesting too deep" JSON parse errors.

Fix by initializing cur to a simple object containing only the device
name instead of the entire wdev object.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-07 09:23:22 +00:00
Felix Fietkau
6e25c8bd78 wifi-scripts: add DPP encryption support
Add support for DPP (Device Provisioning Protocol) as both a primary
encryption type and as an optional addition to existing authentication.

Primary DPP mode (encryption=dpp):
- Sets WPA2 with key_mgmt=DPP
- Requires Management Frame Protection (ieee80211w=2)
- Supports dpp_connector, dpp_csign, dpp_netaccesskey options

Optional DPP mode (dpp=1 boolean on AP):
- Adds DPP to existing key management methods
- Allows AP to accept both DPP and other auth types
- Supports the same connector options

Both ucode and legacy shell implementations are updated for AP and STA
modes.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-07 09:23:22 +00:00
John Crispin
706c416a30 cli: add cidr6 data type
Signed-off-by: John Crispin <john@phrozen.org>
2026-02-07 10:04:18 +01:00
John Crispin
b8407e6021 cli: object-editor: merge named_args into create parameters
Allow callers of edit_create_destroy to pass additional named arguments
via info.named_args that get merged into the create command parameters.

Signed-off-by: John Crispin <john@phrozen.org>
2026-02-07 10:04:18 +01:00
John Crispin
7fd71f2c74 unetmsg: notify subscribers when remote peer connection drops
When a remote peer's connection drops (device powered off, unetmsgd
crash, network failure), network_rx_cleanup_state silently removed
the remote publish/subscribe handles without notifying local
subscribers. This meant local clients had no way to detect that a
remote peer had disappeared.

Call handle_publish for each channel where a remote publish handle
is removed during connection cleanup, so local subscribers receive
the publisher change notification and can react accordingly.

Signed-off-by: John Crispin <john@phrozen.org>
2026-02-07 10:04:18 +01:00
Felix Fietkau
e0722d0ac4 unetmsg: only send publish notifications for remote publisher changes
handle_publish() notifies local subscribers about publisher state
changes. The publish/subscribe handler in network_socket_handle_request()
was calling it for both remote publish and subscribe changes, but
subscriber changes are not relevant to local subscribers.

Guard the handle_publish() calls with a msgtype == "publish" check,
matching the local client paths in unetmsgd-client.uc which already
have this guard.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-07 10:04:18 +01:00
Felix Fietkau
212040b5ca unetmsg: fix reconnect loop when RX authenticates before TX
When both peers connect simultaneously, the RX side can authenticate
before the TX handshake completes. network_check_auth() was sending a
ping on the unauthenticated TX channel, which gets rejected by the
remote's pre-auth handler as "Auth failed", killing the connection and
triggering an endless reconnect cycle.

Check chan.auth before interacting with the TX channel. If TX auth
hasn't completed yet, just schedule a reconnect timer - auth_data_cb
already handles state sync when TX auth completes.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-07 10:04:18 +01:00
Felix Fietkau
389a79d972 unetmsg: close all channels on network removal
network_close() only closed the listening socket without shutting down
established RX/TX connections. This left remote state in
core.remote_publish/core.remote_subscribe for hosts on the removed
network, causing stale entries in channel listings and failed routing
attempts.

Close all RX and TX channels before removing the network, which also
triggers remote state cleanup via network_rx_socket_close().

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-07 10:04:17 +01:00
Felix Fietkau
f09596f84f unetmsg: fix inverted condition in network_rx_socket_close()
The cleanup condition checked != instead of ==, inverting the logic.
This caused two problems:

When an authenticated RX connection disconnected, remote state for that
host was never cleaned up since the stored entry matched the one being
closed.

When a stale unauthenticated connection from a peer closed, any existing
authenticated connection from the same peer was incorrectly deleted and
its remote state wiped.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-07 10:04:17 +01:00
Felix Fietkau
3efcf444a1 unetmsg: fix publish notification timing around remote auth
When a remote peer's publish registrations arrive via RX before the
local TX connection is authenticated, handle_publish fires but the
subscriber can't reach the remote publisher yet since the TX channel
isn't ready.

Suppress publish notifications on the RX side when no authenticated TX
channel exists for the remote host. After TX authentication completes,
re-trigger handle_publish only for topics that the specific peer
publishes and that have local subscribers.

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-07 10:04:17 +01:00
Felix Fietkau
a2368e0f69 unetmsg: fix stale network cleanup in unetd_network_update()
The condition checked !data.networks instead of !data.networks[name],
making it always false since data.networks was already validated earlier
in the function. Networks removed from unetd were never closed.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-07 10:04:17 +01:00
John Crispin
aaa2d9f1e5 procd: reload_config: support UCI overlay directory
Check /var/run/uci/ before /etc/config/ so that overlay configs
also trigger service reload events.

The overlay directory takes precedence, and uci show already handles
merging overlay + base configuration correctly.

Signed-off-by: John Crispin <john@phrozen.org>
2026-02-07 10:04:17 +01:00
Felix Fietkau
e9d6025725 ucode: add ubus fixes
- avoid double close of externally owned channel fds
- fix refcounting bug

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-07 10:04:17 +01:00
Nick Hainke
42d0104254 jansson: update to 2.15.0
Changelog:
https://github.com/akheron/jansson/blob/v2.15.0/CHANGES

Remove upstreamed patch:
001-cmake-ver.patch

Link: https://github.com/openwrt/openwrt/pull/21908
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-02-07 09:04:19 +01:00
Nick Hainke
dbcb5fb52e libtraceevent: update to 1.9.0
Changelog:
13701b5 libtraceevent: 1.9
6a3a815 libtraceevent: Add tep_load_modules() API
31fc91b libtraceevent: Add tep_parse_last_boot_info()
5e4ef1f libtraceevent: Add tep_btf_list_args()
aa49dce libtraceevent: Split out btf func init code from tep_btf_print_args()
239b063 libtraceevent: Do not change names of functions not of this library
c284dec libtraceevent: Handle __get_stacktrace()
1ba1262 libtraceevent: Move back to 1.8.99
263459e libtraceevent: Use BTF_INT_BITS/OFFSET() when parsing int parameters
0294b73 libtraceevent utest: Add simple test to test BTF parsing
38e03ac libtraceevent: Have BTF find functions with extra characters
b441fff libtraceevent: Add man page for the new BTF functions
87f30d9 libtraceevent: Add loading of BTF to the tep handle
3488dc9 libtraceevent: Move to 1.9 devel

Link: https://github.com/openwrt/openwrt/pull/21886
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-02-06 20:37:34 +01:00
Nick Hainke
eba0e822f6 libtracefs: update to 1.8.3
Changelog:
6fad6a1 libtracefs: version 1.8.3
5505e14 libtracefs: Do not have utest fail debugfs/tracing not found
362574c libtracefs: Fix whitespace in enable_disable_all()
06c07be libtracefs: Make comm field a string
0a2a28f libtracefs/Documentation: Fix markup in the man page
57fcdc1 libtracefs: utest: Return non-zero exit code when something fails
ae03455 libtracefs: Fix tracefs_event_is_enabled() for all events
01a3fd3 libtracefs: Fix enum type in read_event_state
ef1656b libtracefs: Fix the /dev/null redirection compatibility in Makefile

Link: https://github.com/openwrt/openwrt/pull/21886
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-02-06 20:37:34 +01:00
Nick Hainke
8f5f66c092 xdp-tools: update to 1.5.8
Release Notes:
- https://github.com/xdp-project/xdp-tools/releases/tag/v1.5.8
- https://github.com/xdp-project/xdp-tools/releases/tag/v1.5.7
- https://github.com/xdp-project/xdp-tools/releases/tag/v1.5.6
- https://github.com/xdp-project/xdp-tools/releases/tag/v1.5.5
- https://github.com/xdp-project/xdp-tools/releases/tag/v1.5.4
- https://github.com/xdp-project/xdp-tools/releases/tag/v1.5.3
- https://github.com/xdp-project/xdp-tools/releases/tag/v1.5.2
- https://github.com/xdp-project/xdp-tools/releases/tag/v1.5.1
- https://github.com/xdp-project/xdp-tools/releases/tag/v1.5.0
- https://github.com/xdp-project/xdp-tools/releases/tag/v1.4.3

Remove upstreamed:
- 010-configure-respect-LDFLAGS.patch
- 020-libxdp-Use-__noinline__-reserved-attribute-for-XDP-d.patch
- 024-lib-allow-overwriting-W-flags-via-BPF_CFLAGS.patch
- 025-Add-BPF_LDFLAGS-to-allow-overwriting-llc-s-march-arg.patch

Remove unnecessary patch:
- 022-xdp-dump-add-missing-perf_event-include-for-bpf-and-.patch
  (The included headers were incorrect. Some musl toolchain headers
   appeared in the BPF bytecode generation path, which should not
   happen. This issue is resolved by overriding CFLAGS and LDFLAGS.)

Remove `PKG_FLAGS:=nonshared`. With this flag enabled, the package is
compiled separately for every target. Removing it limits compilation
to each CPU architecture instead, significantly reducing unnecessary
build overhead.

Add new tools:
- xdp-bench:
  XDP-bench is a benchmarking utility for exercising the different operation modes
  of XDP. It is intended to be a simple program demonstrating the various operating
  modes; these include dropping packets, hairpin forwarding (using the XDP_TX return
  code), and redirection using the various in-kernel packet redirection facilities.
- xdp-forward:
  xdp-forward is an XDP forwarding plane, which will accelerate
  packet forwarding using XDP. To use it, simply load it on
  the set of interfaces to accelerate forwarding between.
- xdp-monitor:
  XDP-monitor is a tool that monitors various XDP related statistics and
  events using BPF tracepoints infrastructure, trying to be as low overhead
  as possible.
- xdp-trafficgen:
  XDP-trafficgen is a packet generator utilising the XDP kernel subsystem
  to generate packets transmit them through a network interface.
  Packets are dynamically generated and transmitted in the kernel,
  allowing for high performance (millions of packets per second per core).

Co-Developed-by: Til Kaiser <mail@tk154.de>
Link: https://github.com/openwrt/openwrt/pull/20903
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-02-06 17:38:51 +01:00
Matt Merhar
f750e3096f apk: backport upstream fix for invalid fetch timestamps
Uninitialized memory led to bogus, huge timestamps being set on files
downloaded with the wget backend. This caused odd issues like 'ls -l'
crashing busybox when attempting to list the .apk file afterwards.

Link: 42f159e67b
Signed-off-by: Matt Merhar <mattmerhar@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/21874
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-05 17:11:42 +01:00
Rosen Penev
7bfa371c64 lantiq: ltq-adsl: remove of_platform header
It's not the proper one. No of_platform_ APIs are being used.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21164
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-04 00:38:31 +01:00
Paul Donald
3f0de6a28d wireguard-tools: fix script errors
follow-up to 148207730a

Schoolboy error on the peer_psk value.

Also fix an issue when joining peer IPv4 and IPv6 AllowedIPs
(${peer_a_ips/ /, } replaces only the first space, while
${peer_a_ips// /, } replaces all the spaces).

Closes: https://github.com/openwrt/openwrt/issues/21847
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-03 10:02:31 +01:00
Felix Fietkau
017b26f2e7 hostapd: add status ubus method
Add a status method to both hostapd and wpa_supplicant ubus objects
that lists all configured interfaces with their wiphy, MAC address,
and running/pending state. For MLO interfaces, links are grouped
under a single entry with per-link status.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-02 19:49:02 +01:00
Paul Donald
0a576dec74 wireguard-tools: enable reload without teardown
- preserve (active) interface (at reload)

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21784
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-02 12:25:52 +01:00
Paul Donald
148207730a wireguard-tools: avoid temp file for peer generation
- no longer write any temporary file for peer gen
- use wg syncconf to update active interfaces (not setconf)

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21784
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-02 12:25:52 +01:00
Paul Donald
97789875d5 wireguard-tools: avoid temp file for key gen
- no longer write any temporary file for key gen

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21784
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-02 12:25:52 +01:00
Paul Donald
400742a855 wireguard-tools: add protocol renew handler
- add a renew handler
- add a peer detect handler

( benefits from https://github.com/openwrt/netifd/pull/66 )

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21784
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-02 12:25:52 +01:00
Paul Donald
d59b360cee wireguard-tools: detect address changes at reload
Proto handler now also detects changes to
- addresses

Tighten also assign address portion

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21784
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-02 12:25:52 +01:00
Paweł Owoc
5fc9296912 mac80211: ath11k: fix for unsupported 11ax EDCA
Currently publicly available firmware for ath11k does not support
the 11ax EDCA parameter.
Skipping sending this parameter allows the use of STA mode.

Fixes: https://github.com/openwrt/openwrt/issues/20702
Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21563
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-02 12:17:07 +01:00
Felix Fietkau
0a8bccf85d wifi-scripts: wireless.uc: add MLO support for procd service data
This allows services to dynamically configure MLO interfaces without
using UCI.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-02 09:08:20 +00:00
Hannu Nyman
b800595a38 netifd: ensure netifd_loglevel default value as fallback
Commit 168d5af added the possibility to configure netifd logging level.
The option is read from /etc/config/network and validated.
Supposedly the validation sets 2 as default.

But in case of a syntax error in /etc/config/network, the validation
result can be empty. Then the always passed option to netifd is
just '-l' instead of '-l 2'. That crashes netifd and prevents network
from launching.

Add a fallback value to the variable, so that there will always be
a proper value after the '-l' option.

Improves: 168d5af "netifd: add loglevel config option (fixes #18001)"
Fixes: #21816

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Link: https://github.com/openwrt/openwrt/pull/21819
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-02 09:47:41 +01:00
Felix Fietkau
b7cd16dba3 hostapd: fix dealing with required interface restart in AP+STA mode
Ensure that the BSS start_disabled option is always cleared, so that
interfaces come up properly.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-01 20:21:38 +01:00
Felix Fietkau
29bb3f6b96 mac80211: fix AP+STA on DFS channels
Allow skipping CAC on AP bringup if the STA is connected already.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-01 20:21:38 +01:00
Felix Fietkau
8e3de10b44 mac80211: improve patch to allow grace period for DFS
Fix corner cases in updates.
Improve channel puncturing handling.
Fix dealing with CSA.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-02-01 20:21:38 +01:00
Jonas Gorski
a4e92f0484 build: use STAGING_DIR for special APK package versions
Removing tmp/ after having built base-files or toolchain currently
breaks rootfs generation:

$ rm -rf tmp
$ make V=w
...
 make[2] package/install
cat: .../openwrt/tmp/base-files.version: No such file or directory
cat: .../openwrt/openwrt/tmp/libc.version: No such file or directory
ERROR: 'base-files=' is not a valid world dependency, format is name(@tag)([<>~=]version)
make[2]: *** [package/Makefile💯 package/install] Error 99

The only way to recover from here is to clean toolchain and base-files via

$ make package/{base-files,toolchain}/clean

tmp is supposed to be ephemeral, so clearing it is an expected action,
which normally just triggers a regeneration of all files there.

Fix this by moving the version files to $(STAGING_DIR).

Fixes: 63e178f067 ("build: lock versions for special APK packages")
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21803
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-02-01 11:16:54 +01:00
Felix Fietkau
1bbb60184d wifi-scripts: fix ieee80211w override for psk-sae/sae-mixed
The ucode wifi-scripts unconditionally set ieee80211w=1 for psk-sae
and eap-eap2 auth types, ignoring any user-configured value. This
caused ieee80211w=2 (MFP required) to be silently downgraded to 1
(MFP optional) when using sae-mixed encryption.

Change the logic to only set the default of 1 when ieee80211w is not
already configured by the user.

Fixes: https://github.com/openwrt/openwrt/issues/21751
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-31 18:00:50 +01:00
Felix Fietkau
9d496dfb98 uclient: update to Git HEAD (2026-01-31)
b3ee1209a3d0 uclient-http: reset fd to -1 after close in disconnect
9c2ad269c42b uclient-http: fix seq field check to use correct field
80c9bd29c233 uclient-http: fix hang on HTTP to HTTPS redirect
931bbfeb2c92 ucode: fix memory leak when using ssl context

Fixes: https://github.com/openwrt/uclient/issues/11
Fixes: https://github.com/openwrt/uclient/issues/13
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-31 15:03:33 +01:00
Stefan Kalscheuer
bca6c2481c uboot-mvebu: update to version 2026.01
Update package to the latest stable version.
Patches unchanged.

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/21673
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-30 19:07:41 +01:00
John Audia
cd51f0c424 linux-firmware: update to 20260110
% log --no-merges --pretty=oneline --abbrev-commit 20260110...20251125
ff2b45687e73 linux-firmware: update firmware for MT7925 WiFi device
1e133c2d1d75 mediatek MT7925: update bluetooth firmware to 20260106153314
2f9b243612ae mediatek MT7920: update bluetooth firmware to 20260105151350
1e92dbe4b49c mediatek MT7922: update bluetooth firmware to 20260106153735
b9a690370724 linux-firmware: update firmware for MT7922 WiFi device
0405e4a1ba66 Mellanox: Add new mlxsw_spectrum firmware xx.2016.3900
10d9e8e00e04 amdgpu: Update dcn314, dcn315 firmware to 0.1.42.0
21d69f404447 qcom: Update DSP firmware for sa8775 platform
fa860a865341 QCA: Add Bluetooth firmware for QCC2072 uart interface
3692c4d6e677 i915: Xe3p_LPD DMC v2.33
b69f261cdedf qcom: Update DSP firmware for qcs8300 platform
5e60a4ec91ed linux-firmware: update firmware for MT7920 WiFi device
3ff97fca3ccc qcom: Update aic100 firmware files
b85e1561bdfc qca: Update Bluetooth WCN6750 1.1.3-00100 firmware to 1.1.3-00105
acf533d4b3d7 firmware: Revert kernel_boot.elf due to license compliance issue
f8a6723505e9 linux-firmware: add firmware for an8811hb 2.5G ethernet phy
2a6b361888e8 i915: Xe3LPD_3002 DMC v2.28
81368cb84b87 i915: Xe3LPD DMC v2.33
c360f595d977 intel_vpu: Add firmware for 50xx NPUs and update older ones
13786e87c7e9 linux-firmware: Update AMD SEV firmware
993573ac3dc6 amdgpu: DMCUB updates for various ASICs
19b55776b5b5 qcom: venus-5.4: fix ELF segment alignment to 4 bytes
e56e0a4c8985 mediatek MT7925: update bluetooth firmware to 20251210093205
9ba3cd479466 linux-firmware: update firmware for MT7925 WiFi device
56bb432a65bc rcar_gen4_pcie: add firmware for Renesas R-Car Gen4 PCIe controller
154d3ad0864a qcom: Update CDSP firmware for qcm6490 platform
39fdaba4a719 rtl_bt: Update RTL8852BT/RTL8852BE-VT BT USB FW to 0x488C_DB55
f383a26428bf linux-firmware: Add firmware file for Intel Scorpius core
fed51005f935 rtw89: 8852b: update fw to v0.29.29.15
fe9e5c89d5e8 cirrus: cs35l41: Update firmware and tuning for various HP laptops
1466bd681b4c cirrus: cs35l41: Add support for new HP Clipper laptop
950e89fddc4c qcom: drop compatibility a640_zap.mdt symlink
8715f3da4832 qcom: add version for a530v3_gpmu.fw2
3b34b3b938be xe: Update GUC to v70.55.3 for BMG, PTL
0a041632c156 iwlwifi: add Bz/Sc FW for core101-82 release
41b492fc7464 iwlwifi: Add Sc/Gf firmware for core101-82 release
8e39678cd6fb iwlwifi: update ty/So/Ma firmwares for core101-82 release
06bee1b5023d iwlwifi: update cc/Qu/QuZ firmwares for core101-82 release
9c9bdaab22a7 amdgpu: DMCUB updates for various ASICs
d718d6300100 qcom: Add firmwares for sm8150 GPU
42e9d5a5994c qcom: Add firmwares for sm8450 GPU
30979b116b5c qcom: Add firmwares for sm8550 GPU
1304566db9cc qcom: Add firmwares for sm8650 GPU
3d89ec352d12 qcom: Add firmwares for sm8750 GPU
1d02df5c1ada Makefile: add licence header
9eca984de60d ath10k: WCN3990 hw1.0: update board-2.bin
89ef5c5da944 ath10k: QCA9888 hw2.0: update board-2.bin
e6e77dccf149 ath10k: QCA4019 hw1.0: update board-2.bin
1774b2a25c75 cirrus: cs35l41: Add support for new HP laptops
3d5c8135206c Revert "amdgpu: update GC 11.5.0 firmware"
e399bb332bda linux-firmware: Update amd-ucode copyright information
2b318c8e4159 linux-firmware: Update AMD cpu microcode
c56e10ea830f linux-firmware: Update firmware file for Intel Scorpius core
ee03c5fb3d99 linux-firmware: Update firmware file for Intel BlazarIGfP core
70a4bb64e5b3 linux-firmware: Update firmware file for Intel BlazarI core
de8211b56b76 linux-firmware: Update firmware file for Intel BlazarU-HrPGfP core
4d8ef73cb73e linux-firmware: Update firmware file for Intel BlazarU core
15f854368441 ath11k: QCA6698AQ hw2.1: update to WLAN.HSP.1.1-04866-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1
b38214c8f31c ath11k: QCA2066 hw2.1: update board-2.bin
c277a009eb05 qcom: update ADSP firmware for x1e80100 platform, change the license
6e06e5eac797 qcom: reorder ADSP, CDSP firmware entries for qcs8300 in WHENCE
9db3ba0dbc95 Reapply "amdgpu: update SMU 14.0.3 firmware"
5698af42f16e Revert "amdgpu: update SMU 14.0.3 firmware"
baf6c2f67a24 Revert "amdgpu: update GC 10.3.6 firmware"
c092c7487eb7 Revert "amdgpu: update GC 11.5.1 firmware"
5b890c92e78b linux-firmware: update firmware for MT7925 WiFi device
474cca8b3fd3 mediatek MT7925: update bluetooth firmware to 20251124093155
214b4374c0e9 intel_vpu: Update NPU firmware
c91948d8a672 WHENCE: fix version string for video firmware
095130d8e395 qcom: vpu: update video firmware binary for SM8250
323507dc0c43 xe: Update GUC to v70.54.0 for BMG, PTL

Build system: x86/64
Build-tested: x86/64-glibc
Run-tested: x86/64-glibc (Intel N150)

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21497
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-30 16:51:32 +01:00
Tim Harvey
92a94dc9b0 kernel: modules: Add tpm-tis-spi
Add a module for tpm-tis-spi for TCG TIS 1.3 TPM security chips
connected to a regular non-tcg SPI master.

Add imx target compatibility for kmod-tpm.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/21726
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-29 12:04:10 +01:00
Aleksander Jan Bajkowski
42f9b095d6 iw: replace patch with upstream version
Replace patch with upstream version.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/21723
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-29 00:09:42 +01:00
Roc Lai
6f07cf4fbc kexec-tools: add zstd to package dependencies
Fixed build failure caused by missing libzstd dependency.

Added CONFIG_KEXEC_ZSTD configuration option and libzstd library dependency
declaration, following the same pattern as existing zlib and lzma support.

Fixes: e75218ef4a ("kexec-tools: bump to 2.0.32")
Link: https://github.com/openwrt/openwrt/pull/21623#issuecomment-3805115332
Signed-off-by: Roc Lai <laipeng668@qq.com>
Link: https://github.com/openwrt/openwrt/pull/21743
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-28 23:56:15 +01:00
Ivan Pavlov
df6db01f4f openssl: update to 3.5.5
This release incorporates the following bug fixes and mitigations:

  fixed Improper validation of PBMAC1 parameters in PKCS#12 MAC verification.
  (CVE-2025-11187)

  fixed Stack buffer overflow in CMS AuthEnvelopedData parsing.
  (CVE-2025-15467)

  fixed NULL dereference in SSL_CIPHER_find  () function on unknown cipher ID.
  (CVE-2025-15468)

  fixed openssl dgst one-shot codepath silently truncates inputs >16 MiB.
  (CVE-2025-15469)

  fixed TLS 1.3 CompressedCertificate excessive memory allocation.
  (CVE-2025-66199)

  fixed Heap out-of-bounds write in BIO_f_linebuffer on short writes.
  (CVE-2025-68160)

  fixed Unauthenticated/unencrypted trailing bytes with low-level OCB function calls.
  (CVE-2025-69418)

  fixed Out of bounds write in PKCS12_get_friendlyname  () UTF-8 conversion.
  (CVE-2025-69419)

  fixed Missing ASN1_TYPE validation in TS_RESP_verify_response  () function.
  (CVE-2025-69420)

  fixed NULL Pointer Dereference in PKCS12_item_decrypt_d2i_ex  () function.
  (CVE-2025-69421)

  fixed Missing ASN1_TYPE validation in PKCS#12 parsing.
  (CVE-2026-22795)

  fixed ASN1_TYPE Type Confusion in the PKCS7_digest_from_attributes  () function.
  (CVE-2026-22796)

Adjust patches due to formatting changes.

Signed-off-by: Ivan Pavlov <AuthorReflex@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21752
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-28 23:52:54 +01:00
Ziyang Huang
f8a6798bf3 airoha: an7581: enable USB support
The an7581.dtsi contains the mediatek,mtk-xhci device.

Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21460
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-28 23:44:38 +01:00
Ivan Pavlov
141d04a4d6 tcpdump: update to 4.99.6
Various improvements and bug fixes.
Changelog: https://github.com/the-tcpdump-group/tcpdump/blob/tcpdump-4.99.6/CHANGES

Signed-off-by: Ivan Pavlov <AuthorReflex@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21744
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-28 23:41:32 +01:00
Ivan Pavlov
9a7ddcac3f libpcap: update to 1.10.6
Vulnerabilities fixed: CVE-2025-11961 and CVE-2025-11964
Various improvements and bug fixes.
Changelog: https://github.com/the-tcpdump-group/libpcap/blob/libpcap-1.10.6/CHANGES

Upstreamed patches removed:
  001-Add-support-for-Realtek-Ethertype-DSA-data.patch
  002-Linux-handle-other-DSA-tags.patch

Signed-off-by: Ivan Pavlov <AuthorReflex@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21744
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-28 23:41:32 +01:00
Felix Fietkau
434e1461b2 wifi-scripts: iwinfo.uc: fix null reference in info()
Fixes: https://github.com/openwrt/openwrt/issues/21651
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-28 18:57:17 +01:00
Felix Fietkau
b7be541dcf hostapd: fix compile error in basic variant
Adding base64 encoded beacon data needs the base64 functions to be available

Fixes: b44d4290fe ("hostapd: add raw beacon report data to ubus notification")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-28 11:50:10 +00:00
Felix Fietkau
e338446b6b mt76: update to Git HEAD (2026-01-28)
f473d66ab595 wifi: mt76: mt7996: fix crash in mt7996_tx_prepare_skb
7d17569dae17 wifi: mt76: mt7996: grab mt76 mutex in mt7996_mac_sta_event()
2650a7b63d9e wifi: mt76: mt7996: move mt7996_update_beacons under mt76 mutex
5f29f4ca68ea wifi: mt76: Move mt76_abort_scan out of mt76_reset_device()
b01325c2d9a4 wifi: mt76: mt7996: skip deflink accounting for offchannel links
3cdafc1b1320 wifi: mt76: mt7996: skip ieee80211_iter_keys() on scanning link remove
e2a5529fa153 wifi: mt76: mt7996: Add missing locking in mt7996_mac_sta_rc_work()
3c232526a0cd wifi: cfg80211/mac80211: Add support to get radio index
12c099c526a3 wifi: mt76: mt7996: extend CSA and CCA support for MLO
85c39fb2447c wifi: mt76: mt7996: fix the behavior of radar detection
3b11a2351769 wifi: mt76: mt7996: set specific BSSINFO and STAREC commands after channel switch
cbafe36e86ee wifi: mt76: mt7996: abort CCA when CSA is starting
acc24cb925d2 wifi: mt76: mt7996: offload radar threshold initialization
febe6e372be8 wifi: mt76: mt7996: add duplicated WTBL command
9fa302a6832a wifi: mt76: mt7996: fix iface combination for different chipsets
eeb6c8d05275 wifi: mt76: mt7925: fix AMPDU state handling in mt7925_tx_check_aggr
82c085f95abc wifi: mt76: mt76x02: wake queues after reconfig
7b76bbba591a wifi: mt76: mt7925: introduce CSA support in non-MLO mode
081a70280692 wifi: mt76: mt7996: Fix spelling mistake "retriving" -> "retrieving"
21cb56560766 wifi: mt76: mt7996: Set mtxq->wcid just for primary link
be3d1224cc47 wifi: mt76: mt7996: Reset mtxq->idx if primary link is removed in mt7996_vif_link_remove()
66fea566f1c8 wifi: mt76: mt7996: Switch to the secondary link if the default one is removed
c2b1d3ec94aa wifi: mt76: mt7996: Clear wcid pointer in mt7996_mac_sta_deinit_link()
11f24adb143a wifi: mt76: mt7996: Reset ampdu_state state in case of failure in mt7996_tx_check_aggr()
1b9739997207 wifi: mt76: mt7921: Reset ampdu_state state in case of failure in mt76_connac2_tx_check_aggr()
2e0a0f36ccf4 wifi: mt76: mt7925: Fix incorrect MLO mode in firmware control
85f5a3473bb8 wifi: mt76: mt792x: Fix a potential deadlock in high-load situations
d9b9807a3d6a wifi: mt76: mt7615: fix use_cts_prot support
8ae9ae4225bf wifi: mt76: mt7915: fix use_cts_prot support
51a3b8c35d04 wifi: mt76: mt7996: add support for ERP CTS & HT protection
cfbbb8e66a79 treewide, timers: Rename from_timer() to timer_container_of()
f3dd8161204f mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()
e9d08e12bde1 treewide: Switch/rename to timer_delete[_sync]()
f8684c6fb506 wifi: mt76: mt792x: fix wifi init fail by setting MCU_RUNNING after CLC load
3b4870dcc531 wifi: mt76: mt7925: fix potential deadlock in mt7925_roc_abort_sync
d67da44b59e7 wifi: mt76: fix list corruption in mt76_wcid_cleanup
ffdbdcd3966a wifi: mt76: set page_pool napi pointer for mmio devices
7dd72bbd6f51 wifi: mt76: Fix memory leak destroying device
e992ff8842b3 wifi: mt76: mt7996: Fix NPU stop procedure
86a0bf3441ca wifi: mt76: npu: Add missing rx_token_size initialization
5c67ef508817 wifi: mt76: always enable RRO queues for non-MT7992 chipset
8e94d3266b45 wifi: mt76: mt7996: Fix BAND2 tx queues initialization when NPU is enabled
bc5529c1239e wifi: mt76: mt7996: Fix wdma_idx for MT7996 device if NPU is enabled
853eafe8591f wifi: mt76: mt7996: Add mt7992_npu_txrx_offload_init routine
cdb32a658b92 wifi: mt76: mt7996: Rename mt7996_npu_rxd_init() in mt7992_npu_rxd_init()
01575edfc36d wifi: mt76: mt7996: Add NPU support for MT7990 chipset
d7a79fcece87 wifi: mt76: mt7996: Integrate NPU in RRO session management
9e10bcac8160 wifi: mt76: mt7996: Integrate MT7990 init configuration for NPU
8a02211445d0 wifi: mt76: mt7996: Integrate MT7990 dma configuration for NPU
56334c1c9bfd wifi: mt76: mt7996: Add __mt7996_npu_hw_init routine
d78bce0a1515 wifi: mt76: mt7996: Move RRO dma start in a dedicated routine
9ccd49d45530 wifi: mt76: Do not reset idx for NPU tx queues during reset
2bc891cc94e0 wifi: mt76: mt7996: Do not schedule RRO and TxFree queues during reset for NPU
e826923c533a wifi: mt76: mt7996: Store DMA mapped buffer addresses in mt7996_npu_hw_init()
bd9fb7ac9790 wifi: mt76: Enable NPU support for MT7996 devices
c825e8c80a40 wifi: mt76: Remove blank line after mt792x firmware version dmesg
efbbfd5af082 wifi: mt76: mt7925: drop puncturing handling from BSS change path
f5b57ffab5f8 wifi: mt76: mt7925: Skip scan process during suspend.
7ab500f7db73 wifi: mt76: Fix memory leak after mt76_connac_mcu_alloc_sta_req()
4b0df538fb35 wifi: mt76: mt7925: fix tx power setting failure after chip reset
7595227241fc wifi: mt76: mt7921: fix ROC abort flow interruption in mt7921_roc_work
ee961ff91ec1 wifi: mt76: mt7921: fix potential deadlock in mt7921_roc_abort_sync
db0460d6630a wifi: mt76: fix deadlock in remain-on-channel
07ae843cd42d wifi: mt76: mt7996: reset device after MCU message timeout
a5930632e109 wifi: mt76: mt7996: increase txq memory limit to 32 MiB
2596285c6a10 wifi: mt76: fix multi-radio on-channel scanning
86abd922a489 wifi: mt76: support upgrading passive scans to active
093280ae5dcd wifi: mt76: fix backoff fields and max_power calculation
b2fe7f146352 wifi: mt76: mt7921: Replace deprecated PCI function

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-28 12:37:29 +01:00
Felix Fietkau
c4229e76f3 mac80211: backport upstream patches
Will be used by an upcoming mt76 update

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-28 12:37:29 +01:00
Christoph Krapp
0230a35882 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>
2026-01-28 12:05:55 +01:00
Robert Marko
953ef12f17 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>
2026-01-28 12:02:27 +01:00
Youfu Zhang
1d0e2859c5 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>
2026-01-28 00:24:55 +01:00
Hauke Mehrtens
9bdb1b4eb4 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]: 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
Joe Hohertz
ebf169afa6 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>
2026-01-27 01:45:10 +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
Álvaro Fernández Rojas
118d369ea6 odhcp6c: update to Git HEAD (2026-01-25)
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)
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
Hauke Mehrtens
17d45f677b 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>
2026-01-26 00:43:11 +01:00
Milan Krstic
ac8b5526bc 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>
2026-01-25 22:21:58 +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)
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
John Christoforidis
428bcee2f8 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>
2026-01-25 16:17:08 +01:00
Caleb James DeLisle
8291fdedad 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>
2026-01-25 15:59:42 +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
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
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
Frank Wunderlich
794b4dee65 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>
2026-01-24 22:15:29 +01:00
Frank Wunderlich
46ee5209aa 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>
2026-01-24 22:15:29 +01:00
Frank Wunderlich
2d45172138 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>
2026-01-24 22:10:57 +01:00
Frank Wunderlich
6141cd1dbc 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>
2026-01-24 22:10:57 +01:00
Hauke Mehrtens
2ae350b725 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.
0abcb39b62

Suggested-by: rparge in OpenWrt forum
Link: https://github.com/openwrt/openwrt/pull/21642
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-24 21:33:15 +01:00
David Yang
f0f5525b75 iproute2: add dcb utility
KERNEL_DCB was introduced in 40f1db9cb1, 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>
2026-01-24 21:13:26 +01:00
John Audia
ef10679153 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>
2026-01-24 20:32:53 +01:00
Roc Lai
7c26668217 kexec-tools: remove upstreamed patch
Remove upstreamed patch:
- 020-i386-improve-basename-compatibility.patch

Link: 4fd0553cdf

Fixes: e75218ef4a ("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>
2026-01-24 01:44:39 +01:00
Shiji Yang
b94de14baf 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] 21c1098cf4
[2] 2a0f8e7da0
[3] 2cbdd3e449
[4] 8b984b5a39

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>
2026-01-24 00:17:22 +00:00
Robert Marko
78c98abd30
uboot-microchipsw: add FIP update flashing shortcut
Add env variable to make it easy to flash an FIP update.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-23 11:07:23 +01:00
Chukun Pan
a8a0d9c12f uboot-d1: update to 2024.01
Update to version 2024.01 to remove upstream patches.
The remaining patches come from this repository:
https://github.com/smaeul/u-boot/tree/d1-wip

[for Dongshan Nezha STU, Nezha D1]
Tested-by: Zoltan HERPAI <wigyori@uid0.hu>
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2026-01-23 10:35:35 +01:00
Roc Lai
e75218ef4a kexec-tools: bump to 2.0.32
Change log is available at: https://github.com/horms/kexec-tools/compare/v2.0.28...v2.0.32

Manually refreshed patch:
- 020-i386-improve-basename-compatibility.patch

Remove upstreamed patch:
- 010-Fix-building-on-x86_64-with-binutils-2.41.patch

Signed-off-by: Roc Lai <laipeng668@qq.com>
Link: https://github.com/openwrt/openwrt/pull/21623
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-23 10:34:12 +01:00
Roc Lai
9fb645fa20 kexec-tools: add aarch64 architecture support
To update kexec and kdump dependencies for supporting the aarch64 architecture.

Signed-off-by: Roc Lai <laipeng668@qq.com>
Link: https://github.com/openwrt/openwrt/pull/21623
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-23 10:34:12 +01:00
gongzi miao
3af12632ef dnsmasq: bump release to 2.92
bump dnsmasq to latest 2.92

updated 200-ubus_dns.patch
no changes to 100-remove-old-runtime-kernel-support.patch
all remaining patches not required

Changelog for version 2.92 https://thekelleys.org.uk/dnsmasq/CHANGELOG

Signed-off-by: gongzi miao <miaogongzi0227@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21598
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-22 20:55:32 +01:00
Felix Fietkau
e855f32bdd wifi-scripts: iwinfo.uc: cache survey data in iface object
Extract survey fetching into get_survey() and store results in iface.survey,
allowing access to full survey info (not just noise) for later use.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-22 11:25:49 +01:00
John Crispin
26eab84f81 wifi-scripts: refactor iwinfo.uc to support dynamic data updates
Moved interface discovery and data population into an exported update()
function that can be called on-demand to refresh wireless interface
information. This allows using iwinfo.uc as a library inside daemons.

Signed-off-by: John Crispin <john@phrozen.org>
2026-01-22 11:24:17 +01:00
Felix Fietkau
55c498eb7b udebug: update to Git HEAD (2026-01-16)
c5c493ed5787 udebug-cli: fix reference to invalid variable in error message
875e1a7af6ca udebug-cli: add logdump command

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-22 10:20:17 +00:00
Paul Donald
a82738d83f ucode: update to Git 85922056ef7 (2026-01-16)
45bf891e1d8d rtnl: add module documentation
8bbf01215ce3 nl80211: add module documentation
40a6aeb698e1 nl80211: add new attribute "mlo_links" for per link information
376e8733609e ubus: complete pending requests when disconnecting locally
32449bfb69d6 io: add ptsname, tcgetattr, tcsetattr, grantpt, unlockpt
76bf32679d86 digest: fix jsdoc to reveal sha512 functions
58b4597fa2ae build: drop remnant
6ef0b3ada3fd build: respect bin/lib paths
28132276a426 build: adjust flags and definitions
cb1b1c1a097b zlib: make chunk size configurable
6f80655c88c3 debian: refresh packaging
9fc4889c6e8e debian: adjust LTO build
a503a49f5cef debian: build "digest" and "zlib" modules
ffc48a2a4db9 socket: fix off-by-one in uv_to_sockaddr()

Fixes: https://github.com/jow-/ucode/issues/366

dropped patch 130 - integrated at source.
refreshed patches

https://github.com/openwrt/openwrt/pull/21585
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21585
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-21 23:50:52 +01:00
Qingfang Deng
5b61a50244 netfilter: remove nf-conntrack6
nf_conntrack_ipv6 is no longer a separate kernel module, so remove it.

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21612
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-21 22:42:20 +01:00
Ryan Chen
a8bdb1e6d6 wifi-scripts: fix WiFi 6E discovery for 6GHz 320MHz operation
WiFi 6E (802.11ax) clients cannot discover 6GHz APs operating at
320MHz because the HE Operation element contains uninitialized
center frequency values.

For EHT320 mode, the code sets eht_oper_centr_freq_seg0_idx but not
the corresponding HE values. Later, the HE values are copied from
VHT values, but VHT is not used on 6GHz, leaving he_oper_chwidth
and he_oper_centr_freq_seg0_idx at 0. This causes WiFi 6E clients
to see incorrect channel width information, making the AP invisible
to them during scanning.

Fix this by:
1. Setting he_oper_chwidth to 3 (160MHz) for EHT320 mode
2. Computing he_oper_centr_freq_seg0_idx based on the 160MHz segment
   that contains the primary channel
3. Preserving these pre-set values instead of overwriting them with
   uninitialized VHT values

WiFi 7 clients continue to see 320MHz operation via the EHT Operation
element, while WiFi 6E clients can now discover and connect at 160MHz.

Signed-off-by: Ryan Chen <rchen14b@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21588
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-21 22:30:05 +01:00
Robert Marko
9a4c6550a7 kernel: modules: package Microchip SparX-5 switchdev driver as a module
Package the Microchip SparX-5 switchdev driver as a module.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-21 16:25:38 +01:00
Jonas Gorski
e7873c4d7e strace: use bundled kernel headers
Build against the bundled kernel headers instead of using the current
kernel ones. This ensures strace is using the kernel headers it is
written against, and not a random one that may contain breaking uapi
changes (which happen from time to time).

Fixes build against 6.18 final and recent LTS/stable kernels that got
minor uapi breakages (rename of a 6.18 introduced #define and a struct
field).

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
2026-01-21 11:41:59 +01:00
Paul Donald
16ae5c23e5 ucode: enable ucode-mod-zlib
The module exists in ucode and has been present for a while
but has not been enabled. It provides the ucode zlib module
for handling gzip and zlib compression in ucode scripts.

The package is ~ 5Kb. Installed ~18Kb.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21417
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-19 21:21:17 +01:00
Chukun Pan
384127320e uboot-rockchip: add HINLINK H28K support
Add pending uboot support for the HINLINK H28K.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2026-01-19 13:44:58 +00:00
Chukun Pan
53a8e7b2d4 qualcommax: ipq60xx: add JDCloud RE-CS-02 support
Specifications:
  SoC:     Qualcomm IPQ6010 1.8GHz
  RAM:     K4A4G165WF-BCTD x2 1GiB
  Flash:   FORESEE 128GB/256GB eMMC
  ETH:     4x 1Gbps + 1x 2.5Gbps
  WLAN1:   QCN5022 2.4GHz AX 2x2
  WLAN2:   QCN5052 5.8GHz AX 2x2
  WLAN2:   QCN9024 5.2GHz AX 4x4
  Button:  Reset, Screen, Wps
  Power:   DC 12V 3A
  USB:     1x 3.0

Flash instructions:
  1. Download the initramfs image, rename it to
     initramfs.itb, host it with the tftp server.
  2. If the stock firmware version is 4.3.0.r4211
     or higher, enter "jdmt018R" to interrupt
     U-Boot when the following statement appears:
     "disabled console and autoboot in 2 seconds"
  3. Run these commands in U-Boot console:
     tftpboot initramfs.itb
     bootm
  4. After openwrt boots up, use scp or luci web
     to upload sysupgrade.bin to upgrade.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/19840
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-18 11:13:54 +01:00
Chukun Pan
16422510b5 qualcommax: ipq60xx: add JDCloud RE-SS-01 support
Specifications:
  SoC:     Qualcomm IPQ6000 1.2GHz
  RAM:     NT52CB256MB16DP 512MiB
  Flash:   FORESEE 64GB/128GB eMMC
  ETH:     QCA8075 (3x LAN, 1x WAN)
  WLAN1:   QCN5022 2.4GHz AX 2x2
  WLAN2:   QCN5052 5GHz AX 2x2
  Power:   DC 12V 2A
  Button:  Reset, Wps
  USB:     1x 3.0

Flash instructions:
  1. Download the initramfs image, rename it to
     initramfs.itb, host it with the tftp server.
  2. If the stock firmware version is 4.3.0.r4211
     or higher, enter "jdmt018R" to interrupt
     U-Boot when the following statement appears:
     "disabled console and autoboot in 2 seconds"
  3. Run these commands in U-Boot console:
     tftpboot initramfs.itb
     bootm
  4. After openwrt boots up, use scp or luci web
     to upload sysupgrade.bin to upgrade.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/19780
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-17 16:18:13 +01:00
Val Kulkov
c7f585bfc3 wifi-scripts: fix wifi failure on specifying value of DAE client
The code to be replaced is a glorious no-op. A default value for
config.radius_das_client does not need to be assigned. This parameter
already has non-empty value: see the enclosing 'if' block.

As a result, the value of config.radius_das_client never gets modified
to contain both dae_client and dae_secret. This breaks hostapd.add_iface()
that expects config.radius_das_client to contain both dae_client and
dae_secret separated by a whitespace.

Fixes: #21519
Signed-off-by: Val Kulkov <val.kulkov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21522
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-15 21:09:36 +01:00
Stijn Tintel
bd1cf1b18a uboot-rockchip: bump to 2026.01
Drop upstreamed patches, refresh others.

Tested on Radxa ROCK 5B+.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2026-01-15 16:33:26 +02:00
Stijn Tintel
0d8e4ebeb9 arm-trusted-firmware-rockchip: bump to 2.14.0
Tested on Radxa ROCK 5B+.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2026-01-15 16:33:26 +02:00
John Audia
5b887135ba mac80211: fix build for 6.12.64 bump
Disable the backport shim on 6.12.64 and newer where the function
is provided by the kernel.

References:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/include/linux/hrtimer.h?h=v6.12.64&id=12493e7e888d266453d1c3898dc160178749afb3
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/include/linux/hrtimer.h?h=v6.12.64&id=d579cc549298a02ba90b7a6d20a2ba8e160f3f31

Co-Authored-by: Pascal Ernster <git@hardfalcon.net>
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21431
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-15 00:42:28 +01:00
Álvaro Fernández Rojas
e1c125c167 netifd: use stable IAID for DHCPv4
Commit 9151c7015e introduced support for the global DHCP DUID to
generate a RFC4361-style client identifier.
However, the IAID introduced in those changes is based on ifindex, which
is subject to changes and causes issues on environments requiring a stable
IAID.

This commit switches the IAID to a stable one based on MD5.

Fixes: 9151c7015e ("netifd: use the global DHCP DUID for DHCPv4")
Link: https://github.com/openwrt/openwrt/pull/21489
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2026-01-14 18:07:38 +01:00
Álvaro Fernández Rojas
e1f2b666ff base-files: introduce a function to generate IAID
Add new function "network_generate_iface_iaid()" to generate a stable IAID
from an interface name.

Link: https://github.com/openwrt/openwrt/pull/21489
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2026-01-14 18:07:27 +01:00
Stijn Tintel
cb82479475 kernel: add kmod-hwmon-adt7470
This driver supports the ADT7470 thermal monitoring chip, which is used
in the ECS4100-12PH switch.

Fixes: fa9f925951 ("realtek/rtl839x: Edgecore ECS4100-12PH support")
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Link: https://github.com/openwrt/openwrt/pull/21505
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-14 10:43:15 +01:00
Hauke Mehrtens
f6429413d9 libiwinfo: update to Git HEAD (2026-01-14)
f5dd57a84cc3 nl80211: fix 5Ghz frequency calculations

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-14 00:35:07 +01:00
Andrew MacIntyre
96a1337374 kernel: add kmod-phy-motorcomm
The Motorcomm YT8821 2.5G PHY is being used in some devices as an
alternative to devices like the RTL8221B.  Package it as a kmod
so it can be used as a device package rather than requiring changes
to the target kernel config.

Signed-off-by: Andrew MacIntyre <andymac@pcug.org.au>
Link: https://github.com/openwrt/openwrt/pull/21399
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-13 00:18:04 +01:00
Robert Marko
082fe669f7 boot: arm-trusted-firmware-microchipsw: depend on host Ruby
Microchip ATF depends on Ruby scripts to generate the FWU monitor HTML
and more, so make sure that host Ruby is available.

We also need to call the scripts directly via Ruby executable as shebang
wont work due to lack of Ruby in the Buildbot container.

Fixes: 5205c0c426 ("microchipsw: lan969x: add Microchip EV23X71A")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-12 18:01:17 +01:00
Robert Marko
410277ca12 boot: arm-trusted-firmware-microchipsw: fix compilation against LibreSSL
LibreSSL 3.9+ has dropped support for X509V3 extension API so cert_create
tool does not compile against it at all.

This was hidden by the fact that it was compiling against OpenSSL on my
host which still has that API, however we do not ship libssl-dev in the
Buildbot containers so compiling against distro OpenSSL is not possible.

So, after a long time trying to find any docs on that API I resorted to
LLM(Gemini 3 Pro) to get it to compile.

Our libcrypto is linked against pthread so we must pass -lpthread as well
for cert_tool.

Fixes: 5205c0c426 ("microchipsw: lan969x: add Microchip EV23X71A")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-12 18:01:11 +01:00
George Sapkin
8cc2743c48 elfutils: drop libelf1 provide
ABI version is added to a package name during packaging, so there's no
need to specify it manually. And nothing explicitly depends on libelf1.

Fixes: d7bf089 ("elfutils: rename libelf1 to libelf")
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21369
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-12 14:28:52 +01:00
George Sapkin
af1fa176c3 uclient: provide virtual wget-any
Packages shouldn't provide a package that another package, in this case
wget from packages provides. Explicitly provide a virtual @wget-any
instead to match the implicit wget provide and switch the only consumer
to use the new provider.

Set uclient-fetch as the default variant for wget-any.

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21369
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-12 14:28:52 +01:00
Pawel Dembicki
20727f89d5 package: uboot-qoriq: fix T4240RDB u-boot selection
Mark T4240RDB u-boot variants as device-built and avoid installing them into rootfs.

Without this buildbot crashes during package install with:

ERROR: unable to select packages:

  u-boot-fsl_T4240RDB-nor (no such package):

    required by: world[u-boot-fsl_T4240RDB-nor]

  u-boot-fsl_T4240RDB-sdboot (no such package):

    required by: world[u-boot-fsl_T4240RDB-sdboot]

Fixes: c5d3d5fe28 ("package: u-boot: initial support for qoriq arch")
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21514
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-12 13:59:30 +01:00
Rany Hany
9b1b5a6aec wifi-scripts: move no_probe_resp_if_max_sta to wifi-iface
It is a BSS-level option and not radio-level. As such,
move it to wifi-iface and ap.uc.

Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/21412
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-11 20:21:54 +01:00
Til Kaiser
9653fd423b kernel: modules: add kmod-pmbus-sensors package
Introduce the kmod-pmbus-sensors package to provide the
generic PMBus hwmon driver (CONFIG_SENSORS_PMBUS).

This enables support for a wide range of PMBus-based devices
including ADP4000, BMR310, BMR480, MAX20796, TPS544B25, and others.

Signed-off-by: Til Kaiser <mail@tk154.de>
Link: https://github.com/openwrt/openwrt/pull/21444
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-11 19:40:08 +01:00
Eric Fahlgren
54c7ad8d8a base-files: uci-defaults: migrate time zonename on upgrade
Timezone names no longer allow spaces, so older installations
upgrading to new will have their timezone reset to UTC.

For example, on 24.10:
  $ uci get system.@system[0].zonename
  America/Los Angeles

After upgrade to 25.12:
  $ uci get system.@system[0].zonename
  UTC

Add a migration script to edit zonename on first boot.

Fixes: https://github.com/openwrt/luci/commit/d9a087e4
Link: https://github.com/openwrt/luci/issues/8203
Link: https://forum.openwrt.org/t/openwrt-25-12-0-rc1-release-candidate/244364/98
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21482
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-11 19:12:41 +01:00
Anari Jalakas
4ff0f496a4 readline: add $(FPIC) to LDFLAGS
Ensure -fPIC is passed during the linking stage to fix LTO build
failures (relocation errors) on MIPS and other architectures.

Fixes: #20436
Signed-off-by: Anari Jalakas <anari.jalakas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21455
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-11 18:49:55 +01:00
Rany Hany
ee60b65643 wifi-scripts: ucode: fix RRM defaults
They are being default enabled unconditionally when they should
depend on 802.11k. 802.11k should not be enabled by default
either as it can cause issues with certain older drivers and
is useless without a userspace program like usteer or DAWN.

If users want to enable 802.11k they will enable it when they
set such programs up.

Another inconsistency with rnr was dealt with so that it is not
default enabled. This is also not done with old wifi-scripts
and is generally unexpected and surprising behavior.

Moreoever, this introduces an inconsistency between old shell
wifi-scripts and ucode version. Old wifi-scripts does not do this.

Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/21425
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-11 17:24:59 +01:00
Robert Marko
93665d0aa3 linux: crypto: fix dependencies for curve25519 and poly1305
Currently, kmod-crypto-kpp is only implied for curve25519 and thus it
can get unselected and then building will fail due to missing kpp.ko.

Same issue happens with kmod-crypto-hash for poly1305.

So, lets drop the whole implies logic and make sure to always select
them as dependencies.

Fixes: #21386
Link: https://github.com/openwrt/openwrt/pull/21483
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-11 00:25:06 +01:00
Thomas Perale
dd519f6c05 ppp: update deprecated cpe
The CPE 'samba:ppp' added in OpenWrt commit [1], has been deprecated in
favour of 'point-to-point_protocol_project:point-to-point_protocol'
(see [2]).

[1] c61a239514 add PKG_CPE_ID ids to package and tools
[2] https://nvd.nist.gov/products/cpe/detail/1224B76D-6BB3-4088-9F42-23AC04A764F2

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Link: https://github.com/openwrt/openwrt/pull/21441
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-11 00:16:11 +01:00
Pawel Dembicki
6150f9ceab mpc85xx: p2020: add support for WatchGuard XTM330 (NC5AE7)
Hardware specifications:
  - CPU: Freescale/NXP P2020, dual-core PowerPC @ 1 GHz
  - RAM: 1 GB DDR3
  - Flash: 2 MB NOR, 512 MB NAND
  - Networking: 7x Gigabit Ethernet ports (via two Marvell 88E6171
    switches,  each attached to a different MAC)
  - USB: 2x USB 2.0 ports (front panel)
  - mini-PCIe slot
  - RTC: Ricoh RS5C372A
  - 4 buttons (via external MCU)
  - 3 LEDs (via external MCU)
  - LCD display (via external MCU)

Installation procedure:

1. Obtain the original MAC address table from the stock bootlog, for
   example:

     setting device eth0 to 00:90:7f:00:00:01
     setting device eth1 to 00:90:7f:00:00:02
     setting device eth2 to 00:90:7f:00:00:03
     setting device eth3 to 00:90:7f:00:00:04
     setting device eth4 to 00:90:7f:00:00:05
     setting device eth5 to 00:90:7f:00:00:06
     setting device eth6 to 00:90:7f:00:00:07

2. Open the case and move jumper JP1 from 2-3 to 1-2 to enter FAILSAFE
   mode.
3. Power on the device and interrupt the boot process to access the U-Boot
   shell.
4. Program the MAC base address into the EEPROM (text after '#' is a
   comment):

     mac ports 3
     mac 2 00:90:7f:00:00:01   # first MAC address from bootlog
     mac save

5. Reset the device and enter the U-Boot console again.
6. Connect a TFTP server to port 6 and boot the initramfs image:

     setenv ipaddr 192.168.1.3
     setenv serverip 192.168.1.2
     setenv loadaddr 1000000
     tftpboot $loadaddr openwrt-mpc85xx-p2020-watchguard_xtm330-initramfs-kernel.bin
     bootm $loadaddr

7. (Optional) Backup all MTD partitions if you want the ability to restore
   stock firmware.
8. Perform a normal sysupgrade from the initramfs environment.
9. Power off the device and move jumper JP1 back to 2-3.
10. The device will now boot OpenWrt.

Known issues:
  - LCD, buttons and LEDs are controlled by an external MCU; the protocol is
    currently unknown.
  - The internal connection between the two Marvell switches is unused by
    OpenWrt.
  - The stock firmware uses an empty U-Boot environment; saving variables
    modifies the environment and prevents a normal boot. FAILSAFE U-Boot
    remains functional.
  - WatchGuard configuration is encrypted; DSA MAC addresses are stored in
    this configuration.
  - Failsafe Ethernet works on port1.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21020
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-10 21:30:58 +01:00
JINLIANG GU
89d982d723 netifd: dhcp: suppress udhcpc default vendor class if specified in sendopts
When DHCP Option 60 is specified via sendopts (hex, decimal, or named
formats), udhcpc sends its default "udhcp <version>" string alongside
the custom value, which causes authentication failures with some ISPs.

This fix detects Option 60 in sendopts and automatically passes -V ""
to udhcpc to suppress the default version string while allowing
multiple user-defined vendor classes.

Supported formats:
- Hexadecimal: 0x3c
- Decimal: 60
- Named: vendor

Fixes: #21242
Signed-off-by: JINLIANG GU <ihipop@gmail.com>
https://github.com/openwrt/openwrt/pull/21450
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2026-01-10 13:00:15 +01:00
Robert Marko
29b3d929a6
microchipsw: lan969x: add Novarq Tactical 1000
Novarq Tactical 1000 is a LAN9696 based switch.

Specifications:
* CPU: Microchip LAN9696 switch SoC
* DRAM: 2GB DDR4
* Storage:
	* 32MB QSPI NOR
	* 16GB eMMC
* Networking:
	* 24 x 10/100/1000 RJ45 via LAN8804 Quad PHY-s over QSGMII
	* 4 x 100/1000/2500/5000/10000 SFP+ ports
	* 1 x 10/100/1000 management RJ45 via LAN8840 PHY over RGMII (U-Boot too)
* USB: 1 x USB2.0 Type-A
* Management via USB-C (MCP2200):
	* UART @ 115200 baud (Default), 921600 possible
	* GPIO-s for bootstrap and reset
* LED-s:
	* 2 per networking port (Green and Yellow)
	* Green status LED
* Soft reset GPIO
* Power: 12V DC barrel jack
* External PoE:
	* Option for PoE add-on
* Temperature Sensors:
	* TMP1075 onboard
	* CPU temperature
* Microchip MCP79402 RTC with battery back-up
* Microchip ATECC608C secure peripheral
* CPU heatsink with PWM fan
* Onboard header for case fan

Installation instructions:

1. Connect to UART via the USB-C port
2. Connect the management port
3. Boot and interrupt U-Boot
4. TFTP the OpenWrt initramfs image and boot it
5. SCP the OpenWrt eMMC GPT image to a running OpenWrt initramfs to /tmp
openwrt-microchipsw-lan969x-novarq_tactical-1000-squashfs-emmc-gpt.img.gz

And decompress it via:
gzip -d /tmp/openwrt-microchipsw-lan969x-novarq_tactical-1000-squashfs-emmc-gpt.img.gz

6. Wipe eMMC with:
dd if=/dev/zero of=/dev/mmcblk0 bs=1M

7. Flash OpenWrt eMMC image with:
dd if=/tmp/openwrt-microchipsw-lan969x-novarq_tactical-1000-squashfs-emmc-gpt.img
of=/dev/mmcblk0

After a restart OpenWrt will boot, and then regular sysupgrade can be used
for upgrades.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-09 18:50:23 +01:00
Robert Marko
6e0379deb9
boot: arm-trusted-firmware-microchipsw: update to latest
Update microchipsw TF-A to the latest bugfix release that fixes
SHA checksum validation if large files are uploaded via the monitor mode.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-09 18:50:23 +01:00
Pawel Dembicki
0a2b3b66db qoriq: add support for NXP T4240RDB board
Hardware specs:
  - NXP T4240, 12C/24T @ 1.67 GHz
  - 3 × 2 GB DDR3 SO-DIMM
  - 128 MB NOR flash
  - 2 GB SLC NAND
  - SD card interface
  - PCIe: x4 and x8
  - SATA 3 Gbps
  - 8 × 1 GbE
  - 4 × 10 GbE SFP
  - RTC

This commit adds the sysupgrade and factory images for T4240RDB board in
both variants:
  - nor: for booting and read whole system from NOR memory
  - sdboot: for booting and read whole system from SD card

SD Card images install:

  - Burn image to sdcard. E.g:
      gunzip -c gunzip -c openwrt-qoriq-generic-fsl_T4240RDB-squashfs-sdcard.img.gz | \
      sudo dd of=/dev/mmcblk0 conv=fsync,notrunc status=progress bs=4M && sync
  - Download lastest Cortina PHY firmware from NXP github [1], if you accept their
    EULA [2].
  - Install Cortina PHY on image, E.g:
      dd if=cs4315-cs4340-PHY-ucode.txt of=/dev/mmcblk0 bs=1 seek=2M
  - Insert SD-Card to SD slot
  - Switch SW3.4 to OFF
  - Configre mac addresses from sticker in u-boot. E.g:
      setenv ethaddr 00:10:f3:3a:a8:66
      setenv eth1addr 00:10:f3:3a:a8:67
      setenv eth2addr 00:10:f3:3a:a8:68
      setenv eth3addr 00:10:f3:3a:a8:69
      setenv eth4addr 00:10:f3:3a:a8:6a
      setenv eth5addr 00:10:f3:3a:a8:6b
      setenv eth6addr 00:10:f3:3a:a8:6c
      setenv eth7addr 00:10:f3:3a:a8:6d
      setenv eth8addr 00:10:f3:3a:a8:6e
      setenv eth9addr 00:10:f3:3a:a8:6f
      setenv eth10addr 00:10:f3:3a:a8:70
      setenv eth11addr 00:10:f3:3a:a8:71
      saveenv
  - reset and boot

NOR images install:

  - download and extract factory image on tftp server root
  - boot device and stop in u-boot (from nor or sd card u-boot)
  - configure server and ip address. E.g:
      setenv ipaddr 192.168.1.2
      setenv serverip 192.168.1.1
  - Download image and run flashing:
      tftpboot $loadaddr openwrt-qoriq-generic-fsl_T4240RDB-squashfs-factory-nor.bin
      protect off all
      erase $fwaddr +$filesize
      cp.b $loadaddr $fwaddr $filesize
  - Switch SW3.4 to ON
  - Switch SW3.1-3 to OFF
  - reboot
  - Do postprocessing (see bellow)

NOR images post processing:

  - Configre mac addresses from sticker in u-boot. E.g:
      setenv ethaddr 00:10:f3:3a:a8:66
      setenv eth1addr 00:10:f3:3a:a8:67
      setenv eth2addr 00:10:f3:3a:a8:68
      setenv eth3addr 00:10:f3:3a:a8:69
      setenv eth4addr 00:10:f3:3a:a8:6a
      setenv eth5addr 00:10:f3:3a:a8:6b
      setenv eth6addr 00:10:f3:3a:a8:6c
      setenv eth7addr 00:10:f3:3a:a8:6d
      setenv eth8addr 00:10:f3:3a:a8:6e
      setenv eth9addr 00:10:f3:3a:a8:6f
      setenv eth10addr 00:10:f3:3a:a8:70
      setenv eth11addr 00:10:f3:3a:a8:71
      saveenv
  - boot
  - Download and refresh RCW stored in eeprom:
      tr '\0' '\377' < /dev/zero | dd bs=256 of=/sys/bus/i2c/devices/0-0050/eeprom
      cat /tmp/openwrt-qoriq-generic-fsl_T4240RDB-squashfs-rcw.bin > /sys/bus/i2c/devices/0-0050/eeprom
  - Download lastest Cortina PHY firmware from NXP github [1], if you accept their
    EULA [2].
  - Install Cortina PHY on image, E.g:
      mtd write cs4315-cs4340-PHY-ucode.txt /dev/mtd4
  - reset and boot

[1] https://raw.githubusercontent.com/nxp-qoriq/qoriq-firmware-cortina/refs/tags/lf-6.12.34-2.1.0/cs4315-cs4340-PHY-ucode.txt
[2] https://github.com/nxp-qoriq/qoriq-firmware-cortina/blob/lf-6.12.34-2.1.0/EULA.txt

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/10941
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2026-01-09 18:45:02 +02:00
Pawel Dembicki
c5d3d5fe28 package: u-boot: initial support for qoriq arch
This package adds initial u-boot support for qoriq target.

U-boot for qoriq devices must be compiled with 32-bit compiler and
linked with 32-bit linker. It's part of mpc 85xx target. But qoriq
target is 64-bit. As workaround, mpc85xx binary toolchain is downloaded
only for this u-boot.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/10941
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2026-01-09 18:45:02 +02:00
Chukun Pan
0827720e04 uboot-mediatek: fix LED on Bananapi BPi-R4 Lite
Create a common dtsi for Bananapi BPi-R4 Lite and add missing
gpio-leds. This reduced code and fixed the following LED bug:

LED 'green:status' not found (err=-19)

Fixes: 3a71dd58 ("uboot-mediatek: add support for the BananaPi BPi-R4 Lite")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2026-01-09 12:59:54 +00:00
Robert Marko
0ff1553bd7 ipq-wifi: rename BDF for EAP623-Outdoor HD v1
BDF for EAP623-Outdoor HD v1 was renamed in the repo, but ipq-wifi
was not updated to reflect that, so do it now to fix broken wifi.

Fixes: #21432
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-08 11:18:23 +01:00
Robert Senderek
f948f71300 qualcommax: ipq50xx: Add support for Zyxel SCR50AXE
This is tri-band WiFi6E capable router. Also Zyxel Nebula managed so no real local GUI. To open device 4 screws must be located uder the label.
Four latches are on front and two on each side. Better start from ethernet port side where 3 small latches are easy to handle.
FCC shows It's identical to WSQ65 sold as Zyxel Multy M6E but that's nowhare to be found yet. WSQ65 is not covered by this PR

Speficiations:
* SoC: Qualcomm IPQ5018
* RAM: 1GB DDR3
* Flash: Winbond W25N02KWZEIR 256MB
* UART: PCB "J3"  is located left from front LED strip
              (VCC/TX/RX/     /GND)   3.3V 115200n8
* Wi-Fi1: IPQ5018 (2x2 2.4 Ghz 802.11b/g/n/ax)
* Wi-Fi2: QCN6102 (2x2:2 5 Ghz 802.11an/ac/ax)
* Wi-Fi3: QCN6122 (2x2:2 6 Ghz 802.11an/ac/ax)
* Ethernet: QCA8337 4xLAN 1Gbit / 1xWAN 1Gbit
* Buttons: WPS , Reset
* LEDs: 13 in total
   RGB power, RGB wan, RGB status (cloud), RGB wifi, Green wps
* FCCID: I8803891

*Flash Instructions starts with getting root:
connect uart to J3 connector next to the front LEDs
go to failsafe when this shows up in log:
"Press the [f] key and hit [enter] to enter failsafe mode"
execute:
mount_root
passwd -d root
reboot

logon as root:
look for 'Please press Enter to activate this console.'
login is root password is empty
execute:
fw_setenv DebugFlag=0x1
fw_setenv bootdelay=0x2
passwd -d root
backup ubi partition "rootfs" into safe space
reboot

*OpenWrt installation
stop uboot and execute:
setenv ipaddr 192.168.1.1
setenv serverip 192.168.1.10
tftpboot *-factory.ubi
flash rootfs
reset

or:
tftpboot *-initramfs-uImage.itb
bootm
use sysupgrade as usual

*restore OEM from backup
stop uboot and execute:
setenv ipaddr 192.168.1.1
setenv serverip 192.168.1.10
tftpboot *-initramfs-uImage.itb
bootm
transfer rootfs.bin backup and execute:
ubiformat /dev/mtd16 -y -f /tmp/rootfs.bin

Signed-off-by: Robert Senderek <robert.senderek@10g.pl>
Link: https://github.com/openwrt/openwrt/pull/21042
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-07 11:05:20 +01:00
Robert Marko
95a3dc83f1 ipq-wifi: update to Git HEAD (2026-01-07)
11715a4fe783 ipq5018: add SCR50AXE BDF's

Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-07 11:04:20 +01:00
Felix Fietkau
e06c4125fd ucode: remove the fs.read_nb patch
It is obsolete since the io module was added

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-06 20:09:35 +01:00
Felix Fietkau
ed2587c73d ucode: add package for ucode-mod-io
It was included in the last update

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-06 20:09:35 +01:00
Felix Fietkau
79a0aebd81 wifi-scripts: move the "disabled" option to the wifi-iface section
This helps for setups where the wifi interfaces are added dynamically
via procd data by avoiding automatically bringing up interfaces with
the default config. Internally, they are treated pretty much the same
by netifd.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-06 20:09:35 +01:00
Linus Walleij
12d47550e6 uboot-bcm53xx: bump U-Boot to 2025.10
Bump to the latest version used by other OpenWrt platforms so
we don't bitrot.

Tested on the D-Link DIR-890L.

Link: https://github.com/openwrt/openwrt/pull/21377
Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-01-06 01:15:46 +01:00
Felix Fietkau
bf46d119a2 ucode-mod-ubus: complete pending requests when disconnecting locally
libubus only completes pending requests when the socket receives EOF.
When explicitly disconnecting, we need to call ubus_flush_requests().

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-05 12:43:40 +01:00
Felix Fietkau
bdc3c1a820 unetmsg: remove redundant socket close
channel.disconnect() already closes the fd via ubus_shutdown(),
so calling socket.close() afterwards is redundant and causes EBADF.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-05 12:43:40 +01:00
Felix Fietkau
8a304d051f unetmsg: add timeout for outgoing auth requests
Add a 10-second timeout for outgoing auth requests to prevent
connections from getting stuck when the remote peer goes silent
after the hello handshake but before responding to auth.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-05 12:43:40 +01:00
Felix Fietkau
f631d1576d unetmsg: add null check in TX disconnect callback
The network may be deleted before the disconnect callback fires.
Check for null to avoid crash when accessing net.tx_channels.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-05 12:43:40 +01:00
Eric Fahlgren
8630fa09c7 packages: ethtool: restore CONFLICTS
Inadvertent removal of 'CONFLICTS' breaks kconfig selection.
Restore it.

Fixes: ded99c2984 ("treewide: add explicit default variant part 2")
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21388
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-04 18:40:52 +01:00
John Audia
6c9c641777 nat46: fix reproducible-build failure and use latest git
Bump to 2025-11-04 snapshot.

Added 100-gcc15-fix.patch which drops __DATE__/__TIME__ usage and provides
a stable fallback ("unknown"). This fixes build failures with GCC 15 and
-Werror=date-time in kernel builds.

% git log --oneline 04923c5..adb2f72
adb2f72e6fb8 get rid of spurious ubsan complaint for nat46_instance_t pairs field
d5f88686a4a8 Add a test harness which boots the kernel under kvm with a custom init which runs the tests
b983bab221f0 nat46-core: Fix FIXMEs about ICMPv6 parameter pointers
1aca482d6917 Add support for ignoring traffic class or TOS translation at the same time

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21284
[Removed "Replace printk with pr_* macros" patch]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-04 17:13:11 +01:00
Valent Turkovic
7214acd759 wifi-scripts: wdev.uc: fix mesh mode frequency handling
Mesh mode interface creation fails when the freq parameter is empty or
undefined. Unlike adhoc mode which checks if freq exists before using it,
mesh mode blindly constructs the iw command with freq parameter, resulting
in invalid syntax like:

  iw dev mesh0 mesh join ssid freq  NOHT

This causes the mesh interface to be created without joining the mesh
network, leaving it in a DOWN state with no channel assigned.

Fix by adding freq validation check similar to adhoc mode.

Tested on two routers in parallel as mesh peers:
- Xiaomi AX3000T (MediaTek MT7981)
- OpenWrt One (MediaTek MT7981)
- OpenWrt 6.6.119, 802.11s mesh on 5GHz (Channel 36, HE80)

Signed-off-by: Valent Turkovic <valent@meshpointone.com>
Link: https://github.com/openwrt/openwrt/pull/21373
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-04 16:54:48 +01:00
Eric Fahlgren
ded99c2984 treewide: add explicit default variant part 2
Add 'DEFAULT_VARIANT' to two packages, 'iw' and 'eapol-test',
that were missed in the first pass.  Refactor 'iw' and 'ethtool'
package definitions to be consistent with the pattern used in most
other packages.

Fixes: https://github.com/openwrt/openwrt/commit/f4fdb996
Fixes: https://github.com/openwrt/openwrt/commit/7a78dc4a
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21380
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-04 11:25:12 +01:00
Felix Fietkau
a10d10edd7 cli: fix typo in error reporting
Return the proper error code for COMMAND_FAILED

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-04 10:59:38 +01:00
Rosen Penev
9934c716ed treewide: replace remove_new with remove
Preparation for kernel 6.18. It removes the former.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21226
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-03 17:27:25 +01:00
Michel Promonet
ce282459e7 kernel: add kernel module sun6i_csi and ov5640
This is adding SUN6I-CSI and OV5640 driver for AllWinner platform for NanoPi

Signed-off-by: Michel Promonet <michel.promonet@free.fr>
Link: https://github.com/openwrt/openwrt/pull/20085
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-03 01:11:09 +01:00
Tan Zien
34836dffb1 openssl: add kTLS support option
This commit add option to enable kTLS support, improving
performance by offloading TLS encryption and decryption to
kernel space.

- Reduced CPU usage by minimizing data copying between user space
  and kernel space.
- Enables the use of the sendfile() system call with encrypted
  sockets for zero-copy data transmission.
- Leverages hardware-accelerated NIC that support TLS offloading.

Signed-off-by: Tan Zien <nabsdh9@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21306
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-03 00:30:27 +01:00
Mikhail Zhilkin
ff5e66a920 mediatek: add support for Routerich BE7200
This PR adds support for Routerich BE7200 router.

Specification
-------------
- SoC       : MediaTek MT7987A Quad-core ARM Cortex-A53 2.0 GHz
- RAM       : 1024 MiB DDR4
- Flash     : SPI-NAND 512 MiB (Giga Device)
- WLAN      : MediaTek MT7992E, WiFi 7
  - 2.4 GHz : b/g/n/ax, MIMO 4x4
  - 5 GHz   : a/n/ac/ax, MIMO 4x4
- Ethernet  : 10/100/1000 Mbps x3 (LAN, Airoha AN8855AE)
              10/100/1000/2500 Mbps x1 (WAN, SoC internal phy)
- USB       : 3.0 x1
- Buttons   : Mesh, Reset
- LEDs      : 1x Status (blue), gpio-controlled
              1x WiFi (blue), gpio-controlled
              1x mesh (blue), gpio-controlled
              3x LAN activity (blue), gpio-controlled
              1x WAN activity (blue), gpio-controlled
              1x WAN no-link (red), gpio-controlled
- Power     : 12 VDC, 1.5 A

Installation
------------
1. Update stock firmware via the web interface (don't keep settings).

Update U-Boot (optional)
------------------------
After installing OpenWrt, you may want to install opensource U-Boot.
1. Install kmod-mtd-rw:
   apk update && apk add kmod-mtd-rw
2. Unlock bootloader:
   insmod mtd-rw i_want_a_brick=1
   mtd unlock BL2
   mtd unlock FIP
3. Download and write open-source BL2 and FIP:
   cd /tmp
   wget https://.../openwrt-mediatek-filogic-routerich_be7200-preloader.bin
   wget https://.../openwrt-mediatek-filogic-routerich_be7200-bl31-uboot.fip
   mtd write /tmp/openwrt-mediatek-filogic-routerich_be7200-preloader.bin BL2
   mtd write /tmp/openwrt-mediatek-filogic-routerich_be7200-bl31-uboot.fip FIP
4. Reboot the router.

Return to stock
---------------
1. Update OpenWrt wirh the vendor's firmware (don't keep settings).

Recovery (original U-Boot)
-----------------------------
1. Press Reset button and power on the router. After ~10 sec release
   the button;
2. Upload and flash squashfs-sysupgrade.itb image via the web interface.

Recovery (open-source U-Boot)
-----------------------------
1. Place OpenWrt
   'openwrt-mediatek-filogic-routerich_be7200-initramfs-recovery.itb'
   image on the tftp server (IP: 192.168.1.254)
2. Press Reset button and power on the router. After ~10 sec release
   the button.
3. Use OpenWrt initramfs system for recovery

Recovery (full disaster)
------------------------
Use UART and mtk_uartboot tool.
Link: https://github.com/981213/mtk_uartboot

USB power control
-----------------
Disable: echo disabled > /sys/devices/platform/usb-power/state
Enable: echo enabled > /sys/devices/platform/usb-power/state

UART
----
UART pins are silkscreened on the PCB. Don't connect Vcc.
Serial connection parameters: 115200, 8n1, 3.3V

MAC addresses
-------------
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| WAN     | 24:0f:5e:xx:xx:30 | label     |
| LAN     | 24:0f:5e:xx:xx:31 | label+1   |
| WLAN 2g | 24:0f:5e:xx:xx:32 | label+2   |
| WLAN 5g | 24:0f:5e:xx:xx:33 | label+3   |
+---------+-------------------+-----------+
The WLAN 2g MAC was found in 'Factory', 0x4

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21235
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-02 23:30:27 +01:00
Mikhail Zhilkin
8398a03e29 arm-trusted-firmware-mediatek: add mt7987-spim-nand0 build
This commit adds a new non-ubi spim-nand build for mt7987.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21235
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-02 23:30:27 +01:00
Felix Fietkau
e782341848 unetmsg: fix variable shadowing bug in network_rx_cleanup_state()
The for-in loop variable 'name' was shadowing the function parameter,
causing remote subscription cleanup to fail when hosts disconnect.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-01-02 20:20:16 +01:00
Yanase Yuki
f92ee7a8e5 treewide: switch to HTTPS URL
Avoids insecure plain HTTP.

Signed-off-by: Yanase Yuki <dev@zpc.st>
Link: https://github.com/openwrt/openwrt/pull/21279
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 18:07:02 +01:00
Yanase Yuki
edc3e82349 f2fs-tools: update project URL
Use redirected new URL.

Signed-off-by: Yanase Yuki <dev@zpc.st>
Link: https://github.com/openwrt/openwrt/pull/21279
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 18:07:02 +01:00
Yanase Yuki
9d71d20125 adb: update project URL
It seems old website has been retired.

Signed-off-by: Yanase Yuki <dev@zpc.st>
Link: https://github.com/openwrt/openwrt/pull/21279
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 18:07:02 +01:00
Yanase Yuki
ac4f2e178b iw: update project URL
It seems project URL has been changed.

Signed-off-by: Yanase Yuki <dev@zpc.st>
Link: https://github.com/openwrt/openwrt/pull/21279
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 18:07:02 +01:00
Yanase Yuki
85cc7393ed iproute2: update project URL
It seems project URL has been changed.

Signed-off-by: Yanase Yuki <dev@zpc.st>
Link: https://github.com/openwrt/openwrt/pull/21279
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 18:07:02 +01:00
Yanase Yuki
69e90f0bc9 ebtables: update project URL
Website has been moved to netfilter.org.

Signed-off-by: Yanase Yuki <dev@zpc.st>
Link: https://github.com/openwrt/openwrt/pull/21279
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 18:07:02 +01:00
Yanase Yuki
605879f232 sysfsutils: update project URL
Project has been moved to GitHub.

Signed-off-by: Yanase Yuki <dev@zpc.st>
Link: https://github.com/openwrt/openwrt/pull/21279
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 18:07:02 +01:00
Yanase Yuki
1be208d805 readline: update project URL
It seems domain has been changed.

Signed-off-by: Yanase Yuki <dev@zpc.st>
Link: https://github.com/openwrt/openwrt/pull/21279
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 18:07:02 +01:00
Yanase Yuki
c965e82328 libxml2: update project URL
It seems old website has been retired.

Signed-off-by: Yanase Yuki <dev@zpc.st>
Link: https://github.com/openwrt/openwrt/pull/21279
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 18:07:02 +01:00
Yanase Yuki
c8756e825f treewide: update SELinux project URL
It seems old website has been retired.

Signed-off-by: Yanase Yuki <dev@zpc.st>
Link: https://github.com/openwrt/openwrt/pull/21279
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 18:07:02 +01:00
Yanase Yuki
69e33d2c3f lantiq: remove intel.com from URL
Intel doesn't have lantiq anymore.

Signed-off-by: Yanase Yuki <dev@zpc.st>
Link: https://github.com/openwrt/openwrt/pull/21279
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 18:07:02 +01:00
Yanase Yuki
ef6d7ba43f jansson: update project URL
Old website redirects to github.

Signed-off-by: Yanase Yuki <dev@zpc.st>
Link: https://github.com/openwrt/openwrt/pull/21279
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 18:07:02 +01:00
Yanase Yuki
7772a958cd treewide: remove lantiq dot com URL
This website is offline.

Signed-off-by: Yanase Yuki <dev@zpc.st>
Link: https://github.com/openwrt/openwrt/pull/21279
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 18:07:02 +01:00
Yanase Yuki
c95e03c7b7 treewide: use HTTPS URL for www.kernel.org
Avoids insecure plain HTTP.

Signed-off-by: Yanase Yuki <dev@zpc.st>
Link: https://github.com/openwrt/openwrt/pull/21279
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 18:07:02 +01:00
Yanase Yuki
00f924abad treewide: use HTTPS URL for GNU websites
Avoids insecure plain HTTP.

Signed-off-by: Yanase Yuki <dev@zpc.st>
Link: https://github.com/openwrt/openwrt/pull/21279
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 18:07:02 +01:00
Yanase Yuki
ac755f983a treewide: update u-boot URL
U-Boot website has been moved to docs.u-boot.org.

Signed-off-by: Yanase Yuki <dev@zpc.st>
Link: https://github.com/openwrt/openwrt/pull/21279
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 18:07:02 +01:00
Eric Fahlgren
7a78dc4a5d package: ethtool: specify just one default variant
Inadvertently defining 'DEFAULT_VARIANT' on both ethool and
ethtool-full variants resulted in

    $ make defconfig
    tmp/.config-package.in:121615:error: recursive dependency detected!
    tmp/.config-package.in:121615:  symbol PACKAGE_ethtool-full is selected by PACKAGE_ethtool
    tmp/.config-package.in:121605:  symbol PACKAGE_ethtool depends on PACKAGE_ethtool-full

Fix this by simply undefining 'DEFAULT_VARIANT' on the ethtool-full
variant, which is ugly, but expedient.

Fixes: https://github.com/openwrt/openwrt/commit/f4fdb996
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21363
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 17:49:56 +01:00
Eric Fahlgren
f4fdb9964a treewide: add explicit default variant
Some packages with variants did not specify the default among the
alternatives, so were left without any apk 'provider_priority'
for that package.  This caused the apk solver to select the wrong
variant, silently changing the requested package list.

Notable among these were busybox, procd and the hostapd/wpad suite.
This behavior presented in the imagebuilders when creating the
image as follows, silently replacing packages even when explicitly
requested:

    $ make image PACKAGES=busybox
    ...
    ( 14/148) Installing busybox-selinux (1.37.0-r6)
    ...

We add 'DEFAULT_VARIANT:=1' to the packages that were missing one,
providing apk with sufficient information to choose the correct
package.

See link below for further examples and discussion.

Link: https://github.com/openwrt/openwrt/pull/21288#issuecomment-3704101422
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21358
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-02 14:46:30 +01:00
Wei-Ting Yang
c1281a501e util-linux: update to 2.41.3
Release notes:
https://www.kernel.org/pub/linux/utils/util-linux/v2.41/v2.41.3-ReleaseNotes

Also update URL to use HTTPS.

Signed-off-by: Wei-Ting Yang <williamatcg@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21276
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-02 01:24:55 +01:00
Hauke Mehrtens
2139360a78 libiwinfo: update to Git HEAD (2025-11-29)
2ebef3da84e8 iwinfo: Query hostapd for 'ssid2'

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Link: https://github.com/openwrt/openwrt/pull/21347
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-01 17:12:23 +01:00
George Sapkin
2c81176f2b kernel/rtl8812au-ct: provide a virtual kmod
Switch rtl8812au-ct to use the new virtual kmod provides semantic.

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21288
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-31 18:16:48 +01:00
George Sapkin
8f4c64b930 kernel/ath10k: provide a virtual kmod
Switch ath10k and related kmods to use the new virtual kmod provides
semantic and mark ath10k as the default variant.

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21288
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-31 18:16:48 +01:00
George Sapkin
01fa50b774 kernel/r8169: provide a virtual kmod
Switch r8169 and related kmods to use the new virtual kmod provides
semantic and mark r8169 as the default variant.

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21288
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-31 18:16:48 +01:00
George Sapkin
d75a6bed7a ca-certificates: provide a virtual package
Switch ca-certs provides to use the new virtual provides semantic that
enables ca-bundle and ca-certificates to be installed side-by-side.

Provide the new format virtual ca-certificates-any in ca-bundle.

Fixes: https://github.com/openwrt/openwrt/issues/21257
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21288
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-31 18:16:48 +01:00
Álvaro Fernández Rojas
8b93c563ad kernel: r8168: fix CFLAGS with linux 6.15+
Fix r8168 module CFLAGS with kernels >= v6.15.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-12-31 09:43:02 +01:00
Álvaro Fernández Rojas
b3d27b0115 kernel: r8101: fix CFLAGS with linux 6.15+
Fix r8101 module CFLAGS with kernels >= v6.15.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-12-31 09:43:02 +01:00
Andrii Kuiukoff
3af16b2359 uboot-mediatek: comfast,cf-wr632ax: fix missing escape sequence
Add missing escape sequence to restore terminal coloring in the OpenWrt U-Boot boot menu.

Signed-off-by: Andrii Kuiukoff <andros.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21283
[Fix _bootmenu_update_title too]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-30 22:34:20 +01:00
Fil Dunsky
15df98f3b5 mediatek: add ubootmod layout for Cudy WBR3000UAX v1
This allows us to use the full size of nand,
which extends ubi size from 64Mb to 122.25Mb.

If you are at factory firmware, please refer
to [PR](https://github.com/openwrt/openwrt/pull/21141)
to boot into OpenWrt first.

1. Log in to the device and backup all the partitions,
especially unique `Factory` and `bdata` partitions
from System -> Backup / Flash Firmware -> Save mtdblock contents.
2. Install kmod-mtd-rw to unlock mtd partitions for writing:
```bash
apk update && apk add kmod-mtd-rw && insmod mtd-rw i_want_a_brick=1
```
3. Write new OpenWrt (U-Boot Layout) `BL2` and `FIP`:
```bash
mtd write openwrt-mediatek-filogic-cudy_wbr3000uax-v1-ubootmod-preloader.bin BL2
mtd write openwrt-mediatek-filogic-cudy_wbr3000uax-v1-ubootmod-bl31-uboot.fip FIP
```
4. Set static IP on your PC: `192.168.1.254`, gateway `192.168.1.1`
5. Serve openwrt-mediatek-filogic-cudy_wbr3000uax-v1-ubootmod-initramfs-recovery.itb
using TFTP server.
6. Connect Router LAN with PC LAN.
7. Cut off the power and re-engage, wait for TFTP recovery to complete.
8. After OpenWrt initramfs recovery has booted,
clean `/dev/mtd5` ubi partition to utilize maximum of free space & create ubootenvs:
```bash
ubidetach -p /dev/mtd5; ubiformat /dev/mtd5 -y; ubiattach -p /dev/mtd5
ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB
ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB
```
4. Perform sysupgrade.

Tested-by: 4pda users
Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21225
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-30 22:20:33 +01:00
Fil Dunsky
f4c9ab6591 arm-trusted-firmware-mediatek: add Cudy DDR3 target
Since there are many similar devices from Cudy (TR3000 / WR3000E / WR3000P / WR3000S / WBR3000UAX) this will allow to create OpenWrt U-Boot layout for all of them using same DDR3 target.

Tested-by: 4pda users
Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21225
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-30 22:19:09 +01:00
Hauke Mehrtens
01a87f4bd0 wifi-scripts: use OWE + country for 6GHz
Wifi on the 6GHz band does not support open networks, configure owe by
default. 6GHz wifi also needs a country code, configure a broken country
code '00' by default to hint the user to change it.

Link: https://github.com/openwrt/openwrt/pull/21313
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-30 14:43:08 +01:00
John Audia
ed836b1a9d package: gpio-nct5104d: adapt to kernel 6.18
- Changing return type from void to int
- Returning error code instead of void on superio_enter() failure
- Returning 0 on success

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21218
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-30 10:44:05 +01:00
Leon M. Busch-George
bc4e7fd38e wifi-scripts: don't set wpa_pairwise for wpa=0
Without this patch, the

    if (!config.wpa)
	  	config.wpa_pairwise = null;

is overwritten immediately.

Signed-off-by: Leon M. Busch-George <leon@georgemail.eu>
Link: https://github.com/openwrt/openwrt/pull/21215
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-30 10:39:06 +01:00
Álvaro Fernández Rojas
fb15ef4b23 odhcp6c: update to Git HEAD (2025-12-29)
8abb45065f5e dhcpv6: omit IA_NA on Request
988d5fb306b3 dhcpv6: dhcpv6_send: convert whitespaces to tabs
5e1ab3bc1be8 ra: convert if block to switch
2e6682bfcaff odhcp6c: do cleanup at exit
610e4bddb8d7 config: fix potential memory leaks in error paths
bfd7597cada1 all: add log helpers
0bb93c26d14b dhcpv6: clarifying comments
65f9ee25e5eb dhcpv6: offload FQDN construction to init_dhcpv6
48dbd38122e4 dhcpv6: migrate dhcpv6_response_is_valid to switch case

9a4d6fe802...8abb45065f

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-12-30 09:42:50 +01:00
Hal Martin
5578eb69c2 ipq40xx: add support for Cisco Meraki MR20
This commit adds support for the Cisco Meraki MR20/Go GR10.

The Meraki MR20 is a Cisco 802.11ac/WiFi 5 AP with 1 Ethernet port.
It can be powered by a 12V DC barrel jack (5.5x2.5mm, center positive)
or via 802.3af POE.

The Meraki Go GR10 (codename: Maggot) is identical to the MR20
(codename: Grub), so this document will refer to both devices as the MR20.

MR20 hardware info:
* CPU: Qualcomm IPQ4029
* RAM: 256MB DDR3
* Storage: 128 MB (MX30LF1G18AC)
* Networking: 1 Gigabit Ethernet
* WiFi: QCA4019 802.11b/g/n/ac
* Serial: Internal header (J10, 2.54mm, unpopulated)

This device ships with secure boot, and cannot be flashed without
external programmers (TSOP48 NAND and I2C EEEPROM)!

Disassembly:

Remove the four rubber feet on the rear of the AP and the four
Torx T8 screws under the feet.

Using a guitar pick or similar plastic tool, insert it on the side
along the seam around the edge. Push in gently while gently lifting
the front of the housing to release the plastic retention clips.

There are 15 clips in total.

Once you have removed the plastic front (shown above already removed
so you know where the clips are), remove the 4 Philips screws holding
down the two metal WiFi antennas.

Lift the PCB gently while pushing the Ethernet port into the housing
to release it. The PCB should come free from the metal heat spreader.

The TSOP48 NAND flash (U9, Macronix/MXIC MX30LF1G18AC) is located on
the opposite side of the PCB.

To flash, you need to desolder the TSOP48 or use a 360 clip.

You also need to reprogram the I2C EEPROM (U20, Atmel 24c64).

Installation:

The dumps to flash can be found in this repository:
https://github.com/halmartin/meraki-openwrt-docs/tree/main/mr20_gr10

The device has the following flash layout (offsets with OOB data):
```
0x000000000000-0x000000100000 : "sbl1"
0x000000100000-0x000000200000 : "mibib"
0x000000200000-0x000000300000 : "bootconfig"
0x000000300000-0x000000400000 : "qsee"
0x000000400000-0x000000500000 : "qsee_alt"
0x000000500000-0x000000580000 : "cdt"
0x000000580000-0x000000600000 : "cdt_alt"
0x000000600000-0x000000680000 : "ddrparams"
0x000000700000-0x000000900000 : "u-boot"
0x000000900000-0x000000b00000 : "u-boot-backup"
0x000000b00000-0x000000b80000 : "ART"
0x000000c00000-0x000007c00000 : "ubi"
```

* Dump your original NAND (if using nanddump, include OOB data).

* Decompress `u-boot.bin.gz` dump from the GitHub repository above (dump
contains OOB data) and overwrite the `u-boot` portion of NAND from
`0x738000`-`0x948000` (length `0x210000`). Offsets here include OOB data.

* Decompress `ubi.bin.gz` dump from the GitHub repository above (dump
contains OOB data) and overwrite the `ubi` portion of NAND from
`0xc60000`-`0x8400000` (length `0x77a0000`). Offsets here include OOB data.

* Dump your original EEPROM. Change the byte at offset `0x49` to `0x1e`
(originally `0x2c` or `0x25`). Remember to re-write the EEPROM with the
modified data.
    * This can be done on Linux via the following command:
    `printf "\x1e" | dd of=/tmp/eeprom.bin bs=1 seek=$((0x49)) conv=notrunc`

**Note**: the device will not boot if you modify the board major number and
have not yet overwritten the `ubi` and `u-boot` regions of NAND.

* Resolder the NAND after overwriting the `u-boot` and `ubi` regions.

OpenWrt Installation:

* After flashing NAND and EEPROM with external programmers. Plug in an
Ethernet cable and power up the device.

* The new U-Boot build uses the space character `" "` (without quotes) to
interrupt boot.

* Interrupt U-Boot and `tftpboot` the OpenWrt initramfs image from your
tftp server
```
dhcp
setenv serverip <your_tftp>
tftpboot openwrt-ipq40xx-generic-meraki_mr20-initramfs-uImage.itb
```

* Once booted into the OpenWrt initramfs, created the `ART` ubivol with
the WiFi radio calibration from the mtd partition:
```
cat /dev/mtd10 > /tmp/ART.bin
ubiupdatevol /dev/ubi0_1 /tmp/ART.bin
```

* `scp` the `sysupgrade` image to
the device and run the normal `sysupgrade` procedure:
```
scp -O openwrt-ipq40xx-generic-meraki_mr20-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/
ssh root@192.168.1.1 "sysupgrade -n /tmp/openwrt-ipq40xx-generic-meraki_mr20-squashfs-sysupgrade.bin"
```

* OpenWrt should now be installed on the device.

Signed-off-by: Hal Martin <hal.martin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20646
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-29 19:41:24 +01:00
Álvaro Fernández Rojas
08a1cace9f kernel: r8101: fix build with linux v6.16+
Fix r8101 module build with kernels >= v6.16.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-12-27 19:26:10 +01:00
Nick Hainke
2015a40c38 wifi-scripts: fix race in wireless interface creation
When wdev interfaces and hostapd interfaces are mixed, race conditions
can occur. Sometimes all interfaces are started correctly, sometimes only
the wdev interface and some of the hostapd interfaces, and sometimes only
the wdev interface.

Fix this by creating the wdev interfaces first, before processing
wpa_supplicant or hostapd interfaces.

Link: https://github.com/openwrt/openwrt/pull/21303
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-12-27 16:26:25 +01:00
Nick Hainke
a6eb3d9536 wifi-scripts: fix mcast_rate type (number, not array)
The multicast rate (mcast_rate) is defined as a single numeric value,
not an array. The ucode scripts already expect a single number, and
the OpenWrt documentation specifies this option as an integer [0].

Adjust the wireless schema accordingly. This also fixes the wdev.uc
call path for the iw fallback mesh setup.

[0] - https://openwrt.org/docs/guide-user/network/wifi/basic

Link: https://github.com/openwrt/openwrt/pull/21291
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-12-27 11:18:49 +01:00
Nick Hainke
a18ef412ae wifi-scripts: fix wdev fallback for mesh interfaces
The previous wdev.uc invocation failed for mesh interfaces.
Rewrite it as a loop so the mesh interface is created correctly
when no wpa_supplicant mesh support is installed.

Link: https://github.com/openwrt/openwrt/pull/21291
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-12-27 11:18:49 +01:00
Liangbin Lian
e9fd3facd0 base-files: fix default_postinst clearing luci cache
The path to the LuCI index cache file has changed to
/tmp/luci-indexcache.*.json since OpenWrt 22.03.

Update functions.sh to align with luci.mk.

Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21280
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-26 20:02:59 +01:00
Nick Hainke
00e6c18a93 wifi-scripts: ucode: fix wpa_supplicant mesh
Mesh interfaces may not define an encryption setting. This results in
a ucode runtime error when parse_encryption() is called:
  Reference error: left-hand side expression is null
  In parse_encryption(), file /usr/share/ucode/wifi/iface.uc, line 20, byte 32:
    called from function setup_sta (/usr/share/ucode/wifi/supplicant.uc:59:31)
    called from function generate (/usr/share/ucode/wifi/supplicant.uc:243:41)
    called from function setup (./mac80211.sh:254:61)
    called from anonymous function (./mac80211.sh:342:14)
   `    config.auth_type = encryption[0] ?? 'none';`
    Near here ------------------------^

Link: https://github.com/openwrt/openwrt/pull/21293
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-12-25 22:00:38 +01:00
Elwin Huang
95112a4939 wifi-scripts: add missing 802.11be type in hwmodelist
Add EHT* check so that the hwmode will display 802.11be capability correctly.

Signed-off-by: Elwin Huang <s09289728096@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21267
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-12-25 19:45:41 +01:00
Harin Lee
2ebcda1ea6 wifi-scripts: fix macaddr check in mac80211.uc
This fixes a simple logic error in the macaddr existence check in mac80211.uc.

Signed-off-by: Harin Lee <me@harin.net>
Link: https://github.com/openwrt/openwrt/pull/21277
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-25 17:00:12 +01:00
Robert Marko
3602a98f55 ipq-wifi: update to Git HEAD (2025-12-25)
ed56ad0 qcn6122: Add BDF for Linksys MX6200
1f83ec8 ipq5018: Add BDF for Linksys MX6200

Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-25 12:44:20 +01:00
George Moussalem
501e54b6c2 qualcommax: ipq50xx: fix reo2host-status interrupt vector
Interrupt vector for reo2host-status is wrongly assigned.
Status interrupts weren't received and a workaround was applied to
mac80211 to periodically poll the reo status ring. Therefore, the
workaround can be removed with the proper hardware interrupt line
assigned.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21271
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-24 12:44:14 +01:00
George Moussalem
d992d95b52 qualcommax: ipq50xx: add support for Linksys MX6200
Linksys MX6200 is a triband Wi-Fi 6E wireless router.

Speficiations:
* SoC: Qualcomm IPQ5018 (64-bit dual-core ARM Cortex-A53 @ 1.0Ghz)
* Memory: Nanya NT5CC256M16ER-EK (512 MiB DDR3-933)
* Serial Port: 3v3 TTL 115200n8
* Wi-Fi: IPQ5018 (2x2 2.4 Ghz 802.11b/g/n/ax)
	 QCN6102 (2x2:2 5 Ghz 802.11an/ac/ax)
	 QCN6122 (2x2:2 6 Ghz 802.11an/ac/ax)
* Ethernet: IPQ5018 integrated virtual switch connected to:
	    - LAN Port: Internal IPQ5018 GE PHY
	    - WAN Port: Maxlinear Ethernet GPY115C PHY
* Flash: Macronix MX35UF2GE4AD (256 MiB)
* LEDs: 1x multi-color PWM LED
* Buttons: 1x WPS (GPIO 27 Active Low)
           1x Reset (GPIO 28 Acive Low)
* FCC ID: 2AYRA-08436

Flash instructions:
************************************************************************
NOTE: serial access is required! Although the web UI allows you to
install the Openwrt image, secure boot is enabled which will prevent
booting an unsigned image. The boot sequence must be adjusted in U-boot
to allow booting unsigned images.
************************************************************************

1. On OEM firmware, login to the web UI (typically @ http://192.168.1.1)
and click 'CA' in the bottom right corner.
Then click -> Connectivity -> Manual Upgrade.
Alternatively, browse to
http://<router IP>/fwupdate.html.
Upload openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-factory.ubi.
Continue with step 5.
2. Installation on alternate partition using serial connection from OEM
firmware (default login: root, password: admin):
flash_erase /dev/mtd19 0 0
nandwrite -p /dev/mtd19 openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-factory.ubi
reboot
Continue with step 5.
3. Installation using serial connection from initramfs
setup tftp server listening on IP in 192.168.1.0/24 (other than the
router IP 192.168.1.1). In U-boot, load the initramfs image to memory:
tftp $loadaddr <your IP>:openwrt-qualcommax-ipq50xx-linksys_mx6200-initramfs-uImage.itb
boot the image using command:
bootm $loadaddr
when fully booted, scp the sysupgrade image to your router IP (default:
192.168.1.1):
scp -O <path>/openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-sysypgrade.bin root@192.168.1.1:/tmp/
use sysupgrade to flash the image to nand:
sysupgrade -n -v /tmp/openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-sysupgrade.bin
Continue with step 5.
4. Optionally install on alternate partition. From Openwrt:
mtd -r -e rootfs_1 -n write openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-factory.ubi rootfs_1
Continue with step 5.
5. Setup U-boot for ability to dual boot signed (stock) and non-signed
(Openwrt) images with auto-detection.
From U-boot, run (be aware: copy line by line):
setenv setnandbootargs 'setenv bootargs init=/sbin/init ubi.mtd=rootfs rootfstype=squashfs rootwait'
setenv nandinitcmd 'setenv mtdids nand0=nand0; run setrootfscmd; ubi part rootfs 2048'
setenv setrootfscmd 'if test $boot_part = 1; then setenv mtdparts mtdparts=nand0:0x${imgsize}@0x${prikern}(rootfs); else setenv mtdparts mtdparts=nand0:0x${imgsize}@0x${altkern}(rootfs); fi'
setenv readhdr1cmd 'ubi read $loadaddr kernel 0x40; setexpr IMGOFF $loadaddr + 0x10; setexpr CODEOFF $loadaddr + 0x14; setexpr SIGOFF $loadaddr + 0x1c; setexpr CERTOFF $loadaddr + 0x24'
setenv readhdr2cmd 'setexpr.l HDR *$loadaddr; setexpr.l IMGSZ *$IMGOFF; setexpr.l CODESZ *$CODEOFF; setexpr.l SIGSZ *$SIGOFF; setexpr.l CERTSZ *$CERTOFF; setexpr TSIZE $CODESZ + $SIGSZ; setexpr TSIZE $TSIZE + $CERTSZ'
setenv testmbncmd 'if test $HDR -ne edfe0dd0 -a $IMGSZ -eq $TSIZE; then bootipq; else ubi read $loadaddr kernel $kernsize; run setnandbootargs; bootm $loadaddr; fi'
setenv bootcmd2 'if test $auto_recovery = no; then bootipq; else run nandinitcmd; run readhdr1cmd; run readhdr2cmd; run testmbncmd; fi'
setenv bootcmd 'run bootcmd2'
saveenv
6. Back to the OEM firmware.
Download firmware from OEM website:
MX6200: https://support.linksys.com/kb/article/408-en/
From serial/SSH, in Openwrt, flash OEM firmware to alternate partition:
mtd -r -e rootfs_1 -n write FW_MX6200_1.0.11.216041_prod.signed.img rootfs_1

Switching active partition:
1. From U-boot, executive the following to switch to partition 1:
setenv boot_part 1
for partition 2:
setenv boot_part 2
2. From Openwrt:
fw_printenv boot_part
In case it's 1:
fw_setenv boot_part 2
. /lib/upgrade/platform.sh
linksys_bootconfig_set_primaryboot "0:bootconfig" 1
linksys_bootconfig_set_primaryboot "0:bootconfig1" 1
In case it's 2:
fw_setenv boot_part 1
. /lib/upgrade/platform.sh
linksys_bootconfig_set_primaryboot "0:bootconfig" 0
linksys_bootconfig_set_primaryboot "0:bootconfig1" 0
and
reboot

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21038
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-24 10:42:39 +01:00
George Sapkin
5e32bfbf4b toolchain: fix libgcc ABI for libc
libc depends on knowing libgcc's ABI, so it needs to be evaluated first.
Otherwise libc will depend on an ABI-less libgcc causing the rest of the
toolchain to fail.

Building package index...
ERROR: unable to select packages:
  libgcc (virtual):
    note: please select one of the 'provided by'
          packages explicitly
    provided by: libgcc1
    required by: world[libgcc]

Before:

libc fused dependencies: libgcc
libgcc fused dependencies:
libatomic fused dependencies: libgcc1

After:

libgcc fused dependencies:
libc fused dependencies: libgcc1
libatomic fused dependencies: libgcc1

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21265
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-24 10:05:52 +01:00
John Audia
045007c24c cryptodev-linux: add backport to build for 6.18
Add 08644db02d
to allow builds against the 6.18 series of kernels.

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21190
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-23 18:06:23 +01:00
John Audia
539352352a strace: update to 6.18
Release Notes:
- https://github.com/strace/strace/releases/tag/v6.18

Note this updated is needed in order to fix a build failure with
the 6.18 kernel.

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21206
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-23 18:04:03 +01:00
Shiji Yang
79dac8f57c arm-trusted-firmware-mediatek: use MT/s as DDR speed unit
Usually we do not use MHz to describe the DDR transmission rate. In
fact, the clock frequency of the DDR3-1866 is only 933 MHz. MT/s is
a more commonly used unit.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-12-21 19:18:43 +00:00
Dominic Germain
22a69dfa4a kernel: add option for USB FunctionFS gadget
Add menuconfig option 'kmod-usb-gadget-fs' for the USB FunctionFS gadget
module

OpenWRT is perfect for USB gadgets that are network-enabled, since it
provides everything needed to easily manage the device. Having support
for the FunctionFS gadget enables the use of any custom USB devices
that does not have a specific module, like Media Transfer Protocol.

Signed-off-by: Dominic Germain <dominic@germain.cc>
Link: https://github.com/openwrt/openwrt/pull/21207
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-20 18:32:43 +01:00
Emre Yavuzalp
6bfb305394 mediatek: filogic: TP-Link Archer AX80 v1 (EU) support
Device specification

SoC Type: MediaTek MT7986B, Cortex-A53, 64-bit 1.6GHz Quad Core
RAM: ESMT M15T4G16256 (512MB)
Flash: ESMT F50L1G41LB (128 MB)
Ethernet: MediaTek MT7531AE + 2.5GbE MaxLinear GPY211C0VC (SLNW8)
Ethernet: 1x2.5Gbe (WAN/LAN 2.5Gbps), 4xGbE (WAN/LAN 1Gbps, LAN1, LAN2, LAN3)
WLAN 2g: MediaTek MT7975
WLAN 5g: MediaTek MT7975
LEDs: All White(probably)

Buttons: 4 (Reset,ledswitch,wps,wlan),
USB ports: 1 (USB 3.0)
Power: 12 VDC, 2.0 A
Connector: Barrel
Bootloader: Main U-Boot - U-Boot 2022.01-rc4. Additionally, both UBI
slots contain "seconduboot" (also U-Boot 2022.01-rc4)
Serial console (UART)

                            V
+-------+-------+-------+-------+
| +3.3V |  GND  |  TX   |  RX   |
+---+---+-------+-------+-------+
    |
    +--- Don't connect

CPU BLOCK HERE                                                         LAN PORTS HERE

Installation (UART)
Note: There might be methods without UART possible soon.
Place OpenWrt initramfs image on tftp server with IP 192.168.1.2

Attach UART, switch on the router and interrupt the boot process by pressing 'Ctrl-C'

Load and run OpenWrt initramfs image:

      tftpboot initramfs-kernel.bin
      bootm

!!Attention!! is very important! After entering OpenWrt, please set / update the environment variables:

fw_setenv bootargs "ubi.mtd=ubi0 console=ttyS0,115200n1 loglevel=8 earlycon=uart8250,mmio32,0x11002000 init=/etc/preinit"
fw_setenv mtdids "spi-nand0=spi-nand0"
fw_setenv mtdparts "spi-nand0:2M(boot),1M(u-boot-env),50M(ubi0),50M(ubi1),8M(userconfig),4M(tp_data),8M(mali_data)"
fw_setenv tp_boot_idx 0

Run 'sysupgrade -n' with the sysupgrade OpenWrt image from console or Luci WebUI.

Recovery

Press Reset button and power on the router
Navigate to U-Boot recovery web server (192.168.1.1) and upload the OEM firmware

Stock layout

0x000000000000-0x000000200000 : "boot"
0x000000200000-0x000000300000 : "u-boot-env"
0x000000300000-0x000003500000 : "ubi0"
0x000003500000-0x000006700000 : "ubi1"
0x000006700000-0x000006f00000 : "userconfig"
0x000006f00000-0x000007300000 : "tp_data"
0x000007300000-0x000007B00000 : "mali_data"

ubi0/ubi1 format
U-Boot at boot checks that all volumes are in place:

+-------------------------------+
| Volume Name: uboot Vol ID: 0|
| Volume Name: kernel Vol ID: 1|
| Volume Name: rootfs Vol ID: 2|
+-------------------------------+
MAC addresses
+---------+-------------------+-----------+
| label | 00:eb:xx:xx:xx:be | label |
| LAN | 00:eb:xx:xx:xx:be | label |
| WAN | 00:eb:xx:xx:xx:bf | label+1 |
| WLAN 2g | 00:eb:xx:xx:xx:be | label |
| WLAN 5g | 00:eb:xx:xx:xx:bd | label-1 |
+---------+-------------------+-----------+
label MAC address was found in UBI partition "tp_data", file "default-mac".
OEM wireless eeprom is also there (file "MT7986_EEPROM.bin").

Signed-off-by: Emre Yavuzalp <emreyavuzalp2@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20630
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-20 17:59:58 +01:00
Alexander Patrakov
b289edd84b comgt-ncm: fix setting ip[46]table and MTU
The ncm proto handler ignored ip4table, ip6table, and mtu settings.

The fix is based on the existing code in the mbim proto handler.

Fixes: #20216.
Signed-off-by: Alexander Patrakov <patrakov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20217
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-20 15:07:22 +01:00
Markus Stockhausen
d34cef823e build: avoid errors during release candidate kernel packaging
The build system allows to use Linux release candidate kernels (-rcX).
For this a target/linux/generic/kernel-6.XY as follows is needed:

LINUX_VERSION-6.XY = -rc1
LINUX_KERNEL_HASH-6.XY-rc1 = 18ba6ebd72f46b881e0d73e390b2888b7b43...

Sadly the builds fail with a packaging error.

fakeroot /home/openwrt/openwrt/openwrt/staging_dir/host/bin/apk
mkpkg --info "name:kernel" --info "version:6.15-rc1~c4bf...1f6-r1"
ERROR: info field 'version' has invalid value: package version is invalid

The apk metadata specification reads:

"... Currently the APK version specification is as follows:
number{.number}...{letter}{_suffix{number}}...{~hash}{-r#} ...
Optionally one or more _suffix{number} components can follow.
The list of valid suffixes (and their sorting order) is: alpha,
beta, pre, rc, <no suffix>, cvs, svn, git, hg, p."

Given that the kernel uses "-rcX" naming scheme and apk requires
"_rcX" instead, simply translate the dash to an underscore for
these builds.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21214
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-20 11:06:47 +01:00
Álvaro Fernández Rojas
caef0a839a odhcpd: update to Git HEAD (2025-12-18)
3fda5f8b121b dhcpv6-ia: reconfigure message length bug fix
6152cf5dab49 all: remove dead code

1450e1e2b7...3fda5f8b12

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-12-18 21:24:09 +01:00
Álvaro Fernández Rojas
740f5dc175 odhcp6c: update to Git HEAD (2025-12-18)
9a4d6fe802d2 dhcpv6: use stable IAID for IA_NA
d99528f7a91a odhcp6c: avoid clearing CLIENT_ID

02e783c2f6...9a4d6fe802

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-12-18 21:22:06 +01:00
Chester A. Unal
cd2ad6c464 packages: nvram: add set_bcm43602_variables quirk for ASUS RT-AC3200
Broadcom BCM43602 needs certain NVRAM variables to be set to function. Add
a quirk for it and add ASUS RT-AC3200 which has got Broadcom BCM43602 to
the quirk. Thanks to Tom Brautaset for finding the needed variables.

Signed-off-by: Chester A. Unal <chester.a.unal@arinc9.com>
2025-12-18 18:18:48 +00:00
Chester A. Unal
64b6293eb7 packages: nvram: add asus,rt-ac{3200,5300} to set_wireless_led_behaviour
Add ASUS RT-AC3200 and ASUS RT-AC5300 to the set wireless LED behaviour
quirk. ASUS RT-AC3200's wireless chip is different than ASUS RT-AC5300's,
the environment variables for it are 0:ledbh10 and 1:ledbh10.

Signed-off-by: Chester A. Unal <chester.a.unal@arinc9.com>
2025-12-18 18:18:48 +00:00
Álvaro Fernández Rojas
41a1874c70 odhcp6c: update to Git HEAD (2025-12-17)
02e783c2f68c dhcpv6: fix NA/PD=try when NA/PD aren't provided
0f64e66b92ba odhcp6c: fix "-S" usage
13805fce5aa6 odhcp6c: reset res variable on INIT state

5212a1019d...02e783c2f6

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-12-17 23:35:28 +01:00
Álvaro Fernández Rojas
3b58539817 odhcpd: update to Git HEAD (2025-12-14)
1450e1e2b7ff odhcpd: remove fallback DNS search domain
5b0e5c412f6c router: remove some log spam in send_router_advert()
eddd0f8f0d00 router: improve send_router_advert()
35f0e05a16a0 config: add default value for dhcpv6_pd_min_len
62113d007a6a config: allow minimum PD len up to 64
03c1468355c0 Revert "router: optimize duplicated PIO comparison"
6b88c314a59e statefiles: don't consider no hostname as broken

cf51aeb932...1450e1e2b7

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-12-17 23:34:42 +01:00
Markus Petri
487178f8b0 vrx518_tc: fix rx_len_adj
Fix rx_len_adj to avoid leaking the ethernet FCS into the actual frame
data in single line mode (the default)

Fixes: https://github.com/openwrt/openwrt/issues/20983
Signed-off-by: Markus Petri <devel@isjunk.org>
Link: https://github.com/openwrt/openwrt/pull/21045
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-17 22:03:53 +01:00
Janusz Dziedzic
7bfe7788b1 linux-firmware: intel: bump BE200 wifi firmware
Latest backports require newer firmware (bump to 101).
8788f6b3c6

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21194
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-17 21:21:21 +01:00
Petr Štetiar
70a4da1ceb
dropbear: bump to 2025.89 (CVE-2025-14282, CVE-2019-6111)
- Security: Avoid privilege escalation via unix stream forwarding in Dropbear
  server. Other programs on a system may authenticate unix sockets via
  SO_PEERCRED, which would be root user for Dropbear forwarded connections,
  allowing root privilege escalation.
  Reported by Turistu, and thanks for advice on the fix.
  This is tracked as CVE-2025-14282, and affects 2024.84 to 2025.88.

  It is fixed by dropping privileges of the dropbear process after
  authentication. Unix stream sockets are now disallowed when a
  forced command is used, either with authorized_key restrictions or
  "dropbear -c command".

  In previous affected releases running with "dropbear -j" (will also disable
  TCP fowarding) or building with localoptions.h/distrooptions.h
  "#define DROPBEAR_SVR_LOCALSTREAMFWD 0" is a mitigation.

- Security: Include scp fix for CVE-2019-6111. This allowed
  a malicious server to overwrite arbitrary local files.
  The missing fix was reported by Ashish Kunwar.

- Server dropping privileges post-auth is enabled by default. This requires
  setresgid() support, so some platforms such as netbsd or macos will have to
  disable DROPBEAR_SVR_DROP_PRIVS in localoptions.h. Unix stream forwarding is
  not available if DROPBEAR_SVR_DROP_PRIVS is disabled.

  Remote server TCP socket forwarding will now use OS privileged port
  restrictions rather than having a fixed "allow >=1024 for non-root" rule.

  A future release may implement privilege dropping for netbsd/macos.

- Fix a regression in 2025.87 when RSA and DSS are not built. This would lead
  to a crash at startup with bad_bufptr().
  Reported by Dani Schmitt and Sebastian Priebe.

- Don't limit channel window to 500MB. That is could cause stuck connections
  if peers advise a large window and don't send an increment within 500MB.
  Affects SSH.NET https://github.com/sshnet/SSH.NET/issues/1671
  Reported by Rob Hague.

- Ignore -g -s when passwords arent enabled. Patch from Norbert Lange.
  Ignore -m (disable MOTD), -j/-k (tcp forwarding) when not enabled.

- Report SIGBUS and SIGTRAP signals. Patch from Loïc Mangeonjean.

- Fix incorrect server auth delay. Was meant to be 250-350ms, it was actually
  150-350ms or possibly negative (zero). Reported by pickaxprograms.

- Fix building without public key options. Thanks to Konstantin Demin

- Fix building with proxycmd but without netcat. Thanks to Konstantin Demin

- Fix incorrect path documentation for distrooptions, thanks to Todd Zullinger

- Fix SO_REUSEADDR for TCP tests, reported by vt-alt.

Dropped:

 * 050-dropbear-multihop-fix.patch as its included in the release 5cc0127000db5f
 * 051-fix-pubkey-options.patch as its included in the release 1d4c4a542cd5df
 * 052-fix-missing-depends-for-sntrup761x25519-sha512.patch as its included
   in the release 1a2c1e649a1824
 * 053-Don-t-limit-channel-window-to-500MB.patch as its included in the release a8610f7b98ad

Manually rebased:

 * 110-change_user.patch

Fixes: CVE-2025-14282, CVE-2019-6111
Reviewed-by: Hauke Mehrtens <hauke@hauke-m.de>
Reviewed-by: Konstantin Demin <rockdrilla@gmail.com>
Tested-by: Konstantin Demin <rockdrilla@gmail.com> [mediatek/filogic (GL.iNet GL-MT6000)]
Link: https://github.com/openwrt/openwrt/pull/21186
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2025-12-17 03:57:50 +00:00
Hauke Mehrtens
86996634f0 uboot-sunxi: fix u-boot build
The u-boot target name has to match the u-boot configuration. Switch
this back to the old names.

Fixes: d871e95e7f ("sunxi: image: sync target profiles names with DT compatible")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-17 00:06:24 +01:00
Rany Hany
e4d5e76af0 wifi-scripts: update phys after rename_phy_by_name call
This fixes a failed bring up of the radio on bootup
if the model defines a rename of phy in its /etc/board.json.
This specifically impacts Redmi AX6S and any router that does so
in its /etc/board.json. The fix fortunately is simple, just update
phy name in phys after rename.

The entry that specifically causes this issue is the following:

{
	<omitted>
	"wlan": {
		"wl0": {
			"path": "platform/18000000.wmac",
			"info": {
				"antenna_rx": 15,
				"antenna_tx": 15,
				"bands": {
					"2G": {
						"ht": true,
						"max_width": 40,
						"modes": [
							"NOHT",
							"HT20",
							"HT40"
						],
						"default_channel": 1
					}
				},
				"radios": [
				]
			}
		},
	...
}

The issue is that after rename, referenced phy in config is going to be
wl0 but in phys array it is still phy0; and so it fails to find phy
and does not bring up radio.

Fixes: https://github.com/openwrt/openwrt/issues/20250
Fixes: https://github.com/openwrt/openwrt/issues/20339
Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/21175
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-16 20:22:51 +01:00
Christoph Krapp
e9d6015bef ipq-wifi: add entry for Netgear RBK40
Add boardfile override packages for Netgear RBK40 devices.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20877
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-16 10:29:33 +01:00
Robert Marko
4e688db5a8 ipq-wifi: update to Git HEAD (2025-12-16)
10eddd6f1cba qca4019: qca9888: add bdfs for Netgear RBK40

Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-16 10:27:47 +01:00
Mario Andrés Pérez
d871e95e7f sunxi: image: sync target profiles names with DT compatible
Following up with errors reported in the ASU repo, these bananapi cases
do not match the DT compatible "bpi", sync with dts sources.
Also some profiles were overwriting SUPPORTED_DEVICES.
Sysupgrade would be failing in SUPPORTED_DEVICES check since
the DT compatible(/tmp/sysinfo/board_name) is not in SUPPORTED_DEVICES.
This should also fix errors when using ASU sysupgrade clients.
- Sync profile makefile target names with DT compatibles.
- Fix overwrites of SUPPORTED_DEVICES instead of appending.
- Adapt the uboot-sunxi profiles accordingly.
*bpi-p2-zero dts is still not upstream.

V2:
- Include fixes for arm926ejs(ARM926EJ-S) subtarget (LicheePi Nano and
PopStick v1.1) (profile rename for correct default SUPPORTED_DEVICES)

Fixes: https://forum.openwrt.org/t/luci-attended-sysupgrade-support-thread/230552/246
Fixes: https://github.com/openwrt/asu/issues/486
Fixes: https://github.com/openwrt/asu/issues/524
Fixes: 9aa66b8ce7 "sunxi: add support for Banana Pi M2 Berry"
Fixes: d5f615bf2a "sunxi: add support for Sinovoip Banana Pi M2 Plus"
Fixes: 3819c1638a "sunxi: Add support for Banana Pi M2 Ultra"
Fixes: 6bf8193b25 "sunxi: add support for Bananapi P2 Zero"
Fixes: 80edfaf675 "sunxi: add support for Banana Pi M3"
Fixes: 3c24a1d423 "sunxi: add support for NanoPi NEO Plus2 board"
Fixes: a689307c97 "sunxi: build image/uboot for the NanoPi NEO2"
Fixes: fde68cb809 "sunxi: add support for FriendlyARM NanoPi R1S H5"
Fixes: 3ec468ff4f "sunxi: add F1C100 (arm926ej-s) support"

Signed-off-by: Mario Andrés Pérez <mapb_@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21095
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-16 01:44:34 +01:00
Hauke Mehrtens
5b0617ae1f libcap: Revert "libcap: update to 2.77"
This reverts commit c25265953b.

Linking of libpsx.so from libcap 2.77 fails on powerpc 464fp. Revert
back to the older version which works.

Bug report: https://bugzilla.kernel.org/show_bug.cgi?id=220860
Fixes: c25265953b ("libcap: update to 2.77")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-16 01:24:47 +01:00
Rany Hany
36da03a6c1 wifi-scripts: ucode: improve formatting of expected throughput
Convert to MBit/s like all other fields and specify the unit.
Most users probably aren't aware that this is in kilobits/s.

Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/20567
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-15 12:39:14 +01:00
Rany Hany
1ead4e6e16 wifi-scripts: add support for using list for iface in wifi-station/vlan
This is a trivial change to allow users to use 'list' on iface.
Old wifi-scripts already implements this, so this just ensures
that shell-based and ucode wifi-scripts are on-par with each other.

Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/20977
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-15 12:30:15 +01:00
Rany Hany
211b11a56e wifi-scripts: fix broken match all case for wifi-vlan
When iface is omitted, wifi-vlan will apply to all interfaces.
However, netifd.set_vlan call is not successful as it assumes
that every wifi-vlan section corresponds to one VIF.

For this reason in the wifi-vlan case (cur_type == "vlan")
we create a composite key in the form `${vif.name}/${vlan.name}`
allowing the same vlan section to correspond to multiple VAPs.
`/` was decided as a delimiter as it is an invalid character
for a network interface name and UCI identifier; so it is
impossible for it to cause conflicts.

It was verified that the `ubus call network.wireless status`
works as expected with this change. Moreover, wifi-station
is not susceptible to this problem.

This also means that it is now possible for wifi-vlan
to support `list` iface similar to old shell-based wifi-scripts.
This will be done in a follow-up commit.

Fixes: 98435a37a7 ("wifi-scripts: iface should be optional in wifi-vlan definition")
Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/20977
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-15 12:30:15 +01:00
Robert Marko
b4bc9ed318 ipq-wifi: update to Git HEAD (2025-12-15)
c6202981872e ipq5018: use correct board for GL-iNet B3000 IPQ5018 radio
ec72376cadf1 qca4019: Add Meraki Underdog
059b7114c77b ipq6018: add tp-link eap620hd v2

Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-15 09:55:56 +01:00
Álvaro Fernández Rojas
ff4546093e odhcpd: update to Git HEAD (2025-12-13)
cf51aeb93220 odhcpd: fix captive_portal_uri reset
e8b7fdea8d5e dhcpv4: fix DNS server option
b84553e496a3 router: Modify relayed RA PIO P flag according to interface policy
da3e2a9829cc router: Modify relayed RA PIO A flags according to interface policy
bad7138b70f0 README.md: update dhcp ubus events

ca00527e5f...cf51aeb932

Also remove duplicated /usr/share/libubox/jshn.sh include.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-12-13 13:01:45 +01:00
David Woodhouse
24b8db118b
image: add CONFIG_EXTRA_IMAGE_NAME
This allows an optional tag to be put in the .config file which is
included in the filename of the resulting images, so it's easier to
build images with different functionality for the same target hardware.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Link: https://github.com/openwrt/openwrt/pull/20984
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2025-12-12 22:06:06 +00:00
Paul Donald
b15628ec80 apk: bump to 3.0.2
We drop patch 0020-apk-fix-compile: integrated at source.
Compressed help now functions normally.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21127
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-12 13:59:39 +01:00
David Härdeman
52fa3728e5
base-files: always generate default DUID
The previous logic was copied from 12_network-generate-ula, but fails to
account for upgrades where the "auto" value isn't set (it is set by
base-files/files/bin/config_generate). Fix this to always set the
default duid if it isn't set.

Also, rename the file to better reflect what it does.

Closes: #21029
Fixes: a660a076db ("base-files: generate a global DHCP DUID")
Link: https://github.com/openwrt/openwrt/pull/21118
Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Petr Štetiar <ynezz@true.cz> [fixes,closes tag]
2025-12-11 06:39:34 +00:00
Chukun Pan
bb2d9c1a65 arm-trusted-firmware-mediatek: remove DDR combo for MT7987
The DRAM_USE_COMB option is only valid for the MT7988. There
is no DRAM type selection for the MT7987, so remove it.

Fixes: de8fc8b ("arm-trusted-firmware-mediatek: add builds for MT7987")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/21000
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-11 00:00:51 +01:00
Chukun Pan
f037a2e8bb arm-trusted-firmware-mediatek: add MT7987 DDR4 4BG images
Add the DDR4_4BG_MODE option, which supports 4GB DDR4 RAM
for the MT7987 and 8GB DDR4 RAM for the MT7988. If this mode
is not enabled, bl2 can only recognize half the size of RAM.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/21000
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-11 00:00:51 +01:00
Chukun Pan
3b14ace444 arm-trusted-firmware-mediatek: add MT7981 sdmmc images
Add bl2 images for mt7981 sdmmc ddr4 devices.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/21000
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-11 00:00:50 +01:00