Commit Graph

68403 Commits

Author SHA1 Message Date
Jonas Jelonek f4ecfe3baf realtek: pcs: rtl931x: relocate analog reset
Relocate the analog reset code within set_media for RTL931X to have it
in one place at the very top of the function, running all reset actions
before further real configuration is done. Also drop a separate call to
rx_reset because a subsequent sequence already includes this
functionality.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22814
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 11:50:55 +02:00
Kenneth Kasilag 1c590ed4b7 crypto: inside-secure/eip93: fix hmac setkey algo selection
eip93_hmac_setkey() allocates a temporary ahash transform for
computing HMAC ipad/opad key material. The allocation uses the
driver-specific cra_driver_name (e.g. "sha256-eip93") but passes
CRYPTO_ALG_ASYNC as the mask, which excludes async algorithms.

Since the EIP93 hash algorithms are the only ones registered
under those driver names and they are inherently async, the
lookup is self-contradictory and always fails with -ENOENT.

When called from the AEAD setkey path, this failure leaves the
SA record partially initialized with zeroed digest fields. A
subsequent crypto operation then dereferences a NULL pointer in
the request context, resulting in a kernel panic:

```
  pc : eip93_aead_handle_result+0xc8c/0x1240 [crypto_hw_eip93]
  lr : eip93_aead_handle_result+0xbec/0x1240 [crypto_hw_eip93]
  sp : ffffffc082feb820
  x29: ffffffc082feb820 x28: ffffff8011043980 x27: 0000000000000000
  x26: 0000000000000000 x25: ffffffc078da0bc8 x24: 0000000091043980
  x23: ffffff8004d59e50 x22: ffffff8004d59410 x21: ffffff8004d593c0
  x20: ffffff8004d593c0 x19: ffffff8004d4f300 x18: 0000000000000000
  x17: 0000000000000000 x16: 0000000000000000 x15: 0000007fda7aa498
  x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
  x11: 0000000000000000 x10: fffffffff8127a80 x9 : 0000000000000000
  x8 : ffffff8004d4f380 x7 : 0000000000000000 x6 : 000000000000003f
  x5 : 0000000000000040 x4 : 0000000000000008 x3 : 0000000000000009
  x2 : 0000000000000008 x1 : 0000000028000003 x0 : ffffff8004d388c0
  Code: 910142b6 f94012e0 f9002aa0 f90006d3 (f9400740)
```

The reported symbol eip93_aead_handle_result+0xc8c is a
resolution artifact from static functions being merged under
the nearest exported symbol. Decoding the faulting sequence:

```
  910142b6  ADD  X22, X21, #0x50
  f94012e0  LDR  X0, [X23, #0x20]
  f9002aa0  STR  X0, [X21, #0x50]
  f90006d3  STR  X19, [X22, #0x8]
  f9400740  LDR  X0, [X26, #0x8]
```

The faulting LDR at [X26, #0x8] is loading ctx->flags
(offset 8 in eip93_hash_ctx), where ctx has been resolved
to NULL from a partially initialized or unreachable
transform context following the failed setkey.

Fix this by dropping the CRYPTO_ALG_ASYNC mask from the
crypto_alloc_ahash() call. The code already handles async
completion correctly via crypto_wait_req(), so there is no
requirement to restrict the lookup to synchronous algorithms.

Note that hashing a single 64-byte block through the hardware
is likely slower than doing it in software due to the DMA
round-trip overhead, but offloading it may still spare CPU
cycles on the slower embedded cores where this IP is found.

Fixes: 9739f5f93b78 ("crypto: eip93 - Add Inside Secure SafeXcel EIP-93 crypto engine support")
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
[Detailed investigation report of this bug]
Signed-off-by: Kenneth Kasilag <kenneth@kasilag.me>
Link: https://github.com/openwrt/openwrt/pull/22886
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 11:47:10 +02:00
Sven Eckelmann 39beab3c55 realtek: rtl931x: psx28: specify POE MCU reset GPIO
The MCU (GD32E230G8) which controls the RTL8239 POE++ PSE chips can
sometimes hang. In this case, it is necessary to to reset the chip using
the nRESET pin which is connected to the GPIO1 of the RTL8231 GPIO
expander.

For a reset, the `/sys/class/gpio/poe_mcu_reset/value` file must be set to
1 for a short period and then back to 0. After that, the poemgr must be
"restarted" to the MCU back in the expected state.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Link: https://github.com/openwrt/openwrt/pull/22916
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 10:38:28 +02:00
Rosen Penev f7ec0bbb29 bcm53xx: use libdeflate-gzip for images
Slightly smaller size for images using gzip.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22891
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 10:00:47 +02:00
Sven Friedmann 92259bcf1e mvebu: fix kmod for switch on clearfog base/pro
commit eaa82118ea missed kmod change for clearfog base/pro

Fixes: eaa82118ea ("mvebu: Switch to use a module for mv88e6xxx")
Signed-off-by: Sven Friedmann <sf.github@okay.ms>
Link: https://github.com/openwrt/openwrt/pull/22918
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 09:58:44 +02:00
Daniel Golle a45ce4c788 mediatek: don't let devfreq power-off the CPU
Fix a long standing bug in the mediatek-cci-devfreq driver which leads
to the driver switching off the CPU power regulator in case of another
resource not being ready in time -- a classic probe-order race condition.

As a work-around it would of course just as well be possible to set the
CPU regulator as 'regulator-always-on' (and not just 'regulator-boot-on'),
but practically all MT7988 devices have copy&pasted the PMIC device tree
hunk which sets only 'regulator-boot-on').

Hence, in order not having to fix all device trees, a proper fix in the
driver is preferred.

Fixes: #683
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-14 00:54:37 +01:00
Markus Stockhausen ca8d931205 realtek: drop INTERNAL_PHY() macro
Since f1f0572d1 ("remove redundant integrated phy attribute") the
phy-is-integrated attribute of an phy in the dts is obsolete.
This was important for the INTERNAL_PHY() macro. Now it is
useless. Convert the macro to its successor PHY_C22().

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22892
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-13 18:42:33 +02:00
Shiji Yang 5f349add60 lantiq: dts: add missing gpio.h header for falcon.dtsi
Fix build error:

FATAL ERROR: Syntax error parsing input tree
Lexical error: ../dts/falcon.dtsi:175.22-38 Unexpected 'GPIO_ACTIVE_HIGH'
Lexical error: ../dts/falcon.dtsi:176.15-31 Unexpected 'GPIO_ACTIVE_HIGH'

Fixes: c186d17fa5 ("treewide: replace numbers with GPIO_ACTIVE")
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22915
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-13 18:41:10 +02:00
Robert Marko 67d3f99f23 qualcommax: constify CPR match data
CPR driver was converted to use of_device_get_match_data and it locally
constified the CPR match data structures but they are also stored per
regulator in their struct, these were not constified and would cause a
compile time error.

So, constify those as well.

Fixes: c1fa85f659 ("treewide: use of_device_get_match_data")
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-13 12:22:09 +02:00
Andreas Böhler a3988cd65c realtek: XikeStor SKS8300-12E2T2X: fix GPIO assignments
The initial bringup missed two GPIO-related settings:
  - TX Disable GPIO for the SFP modules
  - LED Sync GPIO selection for the port LEDs

This adds the missing TX Disable GPIOs and muxes GPIO18 to LED sync
(there are HC595 shift registers on the board that require the sync).

Signed-off-by: Andreas Böhler <dev@aboehler.at>
Link: https://github.com/openwrt/openwrt/pull/22551
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-13 11:02:35 +02:00
Linus Walleij ebe8f0bc9e gemini: add 6.18 testing kernel
Fix up the 6.18 kernel config and allow for selecting it as a
testing kernel. One single Kconfig option needed adding.

Link: https://github.com/openwrt/openwrt/pull/22875
Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-04-13 10:13:08 +02:00
Linus Walleij 600b432a37 kernel: 6.18: disable some new DRM modules
Some new DRM kernel modules appeared in the 6.18 kernel and
are now prompting for selection when enabling DRM in the kernel.
The Gemini D-Link DIR-685 is always the first to run into this
problem hence let's fix it before someone else tries to enable
DRM.

Link: https://github.com/openwrt/openwrt/pull/22875
Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-04-13 10:13:08 +02:00
Linus Walleij 9df1f4518a kernel/gemini: restore files for v6.12
This is an automatically generated commit which aids following Kernel patch
history, as git will see the move and copy as a rename thus defeating the
purpose.

For the original discussion see:
https://lists.openwrt.org/pipermail/openwrt-devel/2023-October/041673.html

Link: https://github.com/openwrt/openwrt/pull/22875
Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-04-13 10:13:07 +02:00
Linus Walleij 07b67a5fad kernel/gemini: create files for v6.18 (from v6.12)
This is an automatically generated commit.

When doing `git bisect`, consider `git bisect --skip`.

Link: https://github.com/openwrt/openwrt/pull/22875
Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-04-13 10:13:07 +02:00
Paul Spooren 368f49ff85 procd: update to Git HEAD (2026-03-25)
cd7a4e5f8b jail: mount /lib/config into netifd jail

Signed-off-by: Paul Spooren <mail@aparcar.org>
2026-04-13 11:55:37 +09:00
Hiroki Utsunomiya 44f408aa31 ramips: add support for I-O DATA WN-AX2033GR2
I-O DATA WN-AX2033GR2 is roughly the same as I-O DATA WN-AX2033GR.
The difference is the Flash Memory (Macronix MX30LF1G18AC).

Specification
=============
- SoC: MediaTek MT7621A
- RAM: DDR3 128 MiB
- Flash Memory: NAND 128 MiB (Macronix MX30LF1G18AC)
- Wi-Fi: MediaTek MT7603E
- Wi-Fi: MediaTek MT7615
- Ethernet: 5x 10 Mbps / 100 Mbps / 1000 Mbps (1x WAN, 4x LAN)
- LED: 2x green LED
- Input: 2x tactile switch, 1x slide switch
- Power: DC 12V

Flash instruction
=================
1. Open the router management page (192.168.0.1).
2. Update router firmware using "initramfs-kernel.bin".
3. After updating, run sysupgrade with "sysupgrade.bin".

Signed-off-by: Hiroki Utsunomiya <hu-git-ja@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22762
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-13 02:14:26 +02:00
Ivan Davydov 0eadcfb7d2 ramips: mt76x8: add support for Keenetic KN-1510
Specification:
* CPU: MediaTek MT7628AN (580 MHz)
* Flash: GigaDevice GD25Q128CSIG (16 MiB)
* RAM: Winbond W9751G6KB-25 (64 MiB)

WikiDevi page: <https://wikidevi.wi-cat.ru/Keenetic_City_(KN-1510)>

How to flash:
* Configure TFTP server with IP address 192.168.1.2/24
* Serve OpenWrt factory image as "KN-1510_recovery.bin"
* Connect the PC to router's LAN port, hold the reset button and power
  the router up. When the power LED starts blinking release the
  button.

The same instructions apply to OEM firmware, except one can take it
from osvault.keenetic.net

Signed-off-by: Ivan Davydov <lotigara@lotigara.ru>
Link: https://github.com/openwrt/openwrt/pull/22404
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-13 02:07:35 +02:00
Roland Reinl 145bc7e52f filogic: add support for D-Link AQUILA PRO AI E30
Specification:
The device is similar to the M30 but has only one LAN port and no WAN port.

- MT7981 CPU using 2.4GHz and 5GHz WiFi (both AX)
- 512MB RAM
- 128MB NAND flash with two UBI partitions with identical size
- 1 multi color LED (red, green, blue, white) connected via GCA230718
- 2 buttons (WPS, reset, LED)
- 1 1Gbit LAN port

Disassembly:
- There are two screws at the power connector which must be removed. Afterwards the top case can be removed (it is clipped on, so some tools are required).

Serial Interface:
- The serial interface can be connected to the 4 pin holes on the board. Do NOT connect VCC.
- The pins are labelled on the PCB (RX, TX, GND)
- Settings: 115200, 8N1

MAC addresses:
- LAN MAC is stored in partition "Odm" at offset 0x8f
- WLAN MAC (2.4 GHz and 5GHz) is LAN MAC + 1

Reverting back to OEM firmware:
- There is currently no easy way to revert back to the OEM image
- The methods from M30 and M60 doesn't seem to work anymore
- If you plan to revert back to OEM firmware later, do the following steps before flashing OpenWrt:
  - Boot from initramfs as described in "Flashing via U-Boot" but don't flash anything
  - Instead, make a backup of UBI and UBI1 partition
  - The created dumps must be written to the initial partitions to revert back to OEM

Flashing via Recovery Web Interface:
- Set your IP address to 192.168.200.10, subnetmask 255.255.255.0
- Press the reset button while powering on the device
- Keep the reset button pressed until the LED blinks red
- Open a Chromium based and goto http://192.168.200.50/ (recovery web interface)
- Download openwrt-mediatek-filogic-dlink_aquila-pro-ai-e30-a1-squashfs-recovery.bin
- Note: The recovery web interface always reports successful flashing, even if it fails
- After flashing, the recovery web interface will try to forward the browser to 192.168.0.1 (can be ignored)
- If flashing was successful, OpenWrt is accessible via 192.168.1.1
- The recovery image boots an initramfs image, flash the sys upgrade image to get to „normal“ OpenWrt mode

Flashing via U-Boot:
- Open the case, connect to the UART console
- Set your IP address to 192.168.200.2, subnet mask 255.255.255.0. Connect to one of the LAN interfaces of the router
- Run a tftp server which provides openwrt-mediatek-filogic-dlink_aquila-pro-ai-e30-a1-initramfs-kernel.bin
- Supply the board with 12V
- Select "7. Load image" in the U-Boot menu
- Enter image file, tftp server IP and device IP (if they differ from the default).
- TFTP download to RAM will start. After a few seconds OpenWrt initramfs should start
- The initramfs is accessible via 192.168.1.1, change your IP address accordingly (or use multiple IP addresses on your interface)
- Perform a sysupgrade using openwrt-mediatek-filogic-dlink_aquila-pro-ai-e30-a1-squashfs-sysupgrade.bin
- Reboot the device. OpenWrt should start from flash now

Flashing via OEM web interface is not possible, as it will change the active partition and OpenWrt is only running on the first UBI partition.

Signed-off-by: Roland Reinl <reinlroland+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22776
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-13 01:52:29 +02:00
Qingfang Deng 4b3758e8be ntfs: new package
Backport the latest NTFS driver. The in-tree NTFS3 driver is obsolete.

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22861
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-13 01:37:49 +02:00
Luiz Angelo Daros de Luca 37c5aade23 base-files: sysupgrade: -u option was broken with apk
The check of files from packages was only checking opkg files.
Check for apk as well and fail if both are missing.

Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17847
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-13 01:27:55 +02:00
Luiz Angelo Daros de Luca 2c146f29e8 base-files: sysupgrade: update backup exclusion list
The list of files excluded from backup was outdated.

Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17847
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-13 01:27:55 +02:00
Luiz Angelo Daros de Luca 1d3f33b6b1 base-files: sysupgrade: fix -f with space in bkp path
Spaces in the backup.tgz filename was breaking sysupgrade.

Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17847
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-13 01:27:54 +02:00
Rosen Penev b9b66d3395 ath79: define wifi for pci168c,0027
Document pci168c,0027 for ath79. Will allow potential nvmem updates in
the future.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22719
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-13 01:14:12 +02:00
Mieczyslaw Nalewaj 56163029fe modules: generate plain module names via version filters
Replace conditional "LINUX_6_12:mod" / "!LINUX_6_12:mod" AUTOLOAD entries
with version-filtered module names using @lt6.18 / @ge6.18. This makes
version_filter emit plain module names into /etc/modules.d(e.g. "crc32c_generic"),
allowing kmodloader to find and load the correct module for the running kernel.
Fixes crc32c (and related crypto modules) not being autoloaded on 6.12 kernels.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/22798
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 23:56:07 +02:00
Ryan Leung 6a8f9fa54d ramips: add support for EDUP EP-RT2983
EDUP EP-RT2983 comes with a factory installed version of OpenWrt 23.05
with device name "netis,n6".

Specification
--------------
- SoC       : MediaTek MT7621AT, MIPS, 880 MHz
- RAM       : 256 MiB
- Flash     : NAND 128 MiB (Toshiba)
- WLAN      : MT7905DAN + MT7975DN
  - 2.4 GHz : b/g/n/ax, 574 Mbps, MIMO 2x2
  - 5 GHz   : a/n/ac/ax, 1201 Mbps, MIMO 2x2
- Ethernet  : 10/100/1000 Mbps x4 (1x WAN, 3x LAN)
- UART      : 3.3V, 115200n8
- Buttons   : 1x Reset
              1x WPS
- LEDs      : 1x Power (green)
              1x WiFi (green)
              1x Mesh/WPS (green); flashing green during boot
              3x LAN (green)
              1x WAN (green); flashing red during upgrade and failsafe
- Power     : 12 VDC 1A

Installation
-------------
1. Log in to LuCI
2. Go to System, Backup / Flash Firmware
3. If desired, backup the current system by saving (all) the mtdblock
contents.
4. Flash new firmware image, select Flash image.
5. Browse and select the sysupgrade file
"openwrt-*-ramips-mt7621-edup_ep-rt2983-squashfs-sysupgrade.bin"
and then Upload.
6. Unselect "Keep settings and retain the current configuration"
Note: All settings will be reset to default. WiFi is not enabled by
default so a connection via Ethernet is necessary to log in and set up.
7. Allow "Force upgrade" (tick the box if there is one), or press Continue
if there is no box to tick. This is because the name is now
"edup,ep-rt2983" as it should have been from the start.
8. Proceed to flash. Wait for reboot and keep power connected.
9. After reboot, default address to access LuCI is 192.168.1.1 with
no password

Recovery (UART)
----------------
1. Remove the 4 screws on the bottom and pry open the cover.
2. Connect serial adapter to the unpopulated serial header pins
TX, RX, GND near the WPS button. Do not connect VCC.
3. Start serial terminal (e.g. minicom, screen, etc) on the computer and
turn on the router.
4. As prompted, hit any key to stop autoboot.
5. Enter 2 to select "2. Upgrade firmware"
6. Enter 0 to select "0 - TFTP client (Default)"
7. Accept the defaults by pressing Enter for
"Input U-Boot's IP address: 192.168.1.1",
"TFTP server's IP address: 192.168.1.2",
"Input IP netmask: 255.255.255.0"
8. Assign your PC's Ethernet port a static IP 192.168.1.2 with netmask
255.255.255.0 and connect to a LAN port on the router using the
Ethernet cable. Disconnect all other network connections (e.g. WiFi) on
the computer.
9. Serve the factory image
"openwrt-*-ramips-mt7621-edup_ep-rt2983-squashfs-factory.bin" using
a TFTP server, e.g. tftpd64. For convenience, the filename can be renamed
to something shorter.
10. In the serial terminal, when prompted "Input file name:", enter the
filename from the previous step and press Enter.
11. The factory image will be flashed as indicated. Wait for reboot.

MAC addresses prototype
------------------------
+---------+---------------------+
|         | MAC example         |
+---------+---------------------+
| LAN     | CC:D8:1F:47:xx:yy   |
| WAN     | CC:D8:1F:47:xx:yy+1 |
| WLAN 2G | CC:D8:1F:17:xx:yy+2 |
| WLAN 5G | CC:D8:1F:77:xx:yy+2 |
+---------+---------------------+

Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/22197
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 19:52:42 +02:00
Richard Huynh 6abfd98c4e wifi-scripts: add EHT rates to set_fixed_freq
Without this, max_oper_chwidth is set incorrectly,
thus ibss_mesh_select_80_160mhz fails to set the correct channel width

Signed-off-by: Richard Huynh <voxlympha@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22644
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 18:36:20 +02:00
Markus Stockhausen a04d457f17 realtek: mdio: replace WARN_ONCE() with dev_warn_once()
Add the affected mdio device to the warning output.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22866
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 18:32:35 +02:00
Markus Stockhausen 3da0b15dc8 realtek: mdio: align defines with upstream
Align the max defines to upstream. For this

- rename PHY to PORT (that is what it is really about=
- use plural name (e.g. BUSSES instead of BUS)

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22866
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 18:32:35 +02:00
Markus Stockhausen e64b61ea3a realtek: mdio: align smi_bus variable
Whenever a variable is needed to denote a smi_bus it is named
accordingly. Fix the last wrong definition.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22866
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 18:32:35 +02:00
Markus Stockhausen a2540f566f realtek: dts: fix TP-Link SG2452P mdio bus
For some unknown reason carving out the mdio bus from the ethernet
node forgot the TP-Link SG2452P. The notation still reads

&ethernet0 {
  mdio: mdio-bus {
    compatible = "realtek,rtl838x-mdio";
    ...

Like everywhere else it should be

&mdio_bus0 {
  PHY_C22(0, 0)
  ...

Fix that.

Fixes: 57b270684 ("rearrange mdio-bus below mdio-controller")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22866
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 18:32:35 +02:00
Jonas Jelonek 0a1074eb9c firmware-utils: update to Git HEAD (2026-04-09)
7350dc7766f6 tplink-safeloader: add support for Festa F61
f3b02a2f2e39 mkzynfw: add board definitions for Zyxel XS1930 switches

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22827
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 18:23:08 +02:00
Jonas Jelonek a2154c2b32 realtek: dts: repurpose SFP port macro
Repurpose a currently unused macro to make it usable for common SFP port
definitions. Do so by changing defined properties, drop the fixed link,
etc.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22827
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 18:23:08 +02:00
Jonas Jelonek e343f3a2e2 realtek: fix pinmux comment in rtl931x.dtsi
The pinmux entry for disabling JTAG includes a comment which points to
which GPIOs are sacrificed for using JTAG. However, this comment so far
was only aware of GPIO6 and GPIO7. From RTL931X application notes and
datasheets we know which GPIOs are actually affected here.

Extend the comment to include GPIOs 3-5 too.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22827
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 18:23:08 +02:00
Jonas Jelonek c518ee49ea realtek: image: add rt-loader-bootbase recipe
Add a recipe 'rt-loader-bootbase' to build an image with rt-loader for
devices using the Zyxel BootBase/BootExtension chain. They need a plain
bootable image for initramfs (preferably rt-loader with piggy-backed
uImage) and a plain uImage for flashing. The flashable uImage is later
combined with the loader into a signed/checksummed image.

This template recipe can be used directly for GS1920-24HP, making the
initramfs image more flexible due to using uImage instead of plain
image.

Suggested-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22827
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 18:23:08 +02:00
Rosen Penev c1fa85f659 treewide: use of_device_get_match_data
Simplifies code slightly.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21599
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 18:18:28 +02:00
Hauke Mehrtens 746206df14 github: update claude code action
This is based on version 1.0.93 plus these commits:
0ca689a fix: fetch base branch to ensure correct PR-only diffs
b7d533d fix: handle fork PRs by fetching via pull/N/head

Link: https://github.com/openwrt/openwrt/pull/22897
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 17:02:01 +02:00
Hauke Mehrtens 31b9fce994 github: disable fix links in Claude code review
Fix links open the Claude Code desktop app which is not useful in the
OpenWrt contributor workflow.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/22897
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 17:02:01 +02:00
Hauke Mehrtens 9f88a27899 github: enable progress tracking and tag mode for Claude code review
track_progress: true makes Claude post an initial comment immediately
when triggered and update it with a checklist as it works, so reviewers
can see what Claude is doing rather than waiting for a silent delay.
It also forces tag mode on PR/issue comment events, which is the
correct mode for interactive code review.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/22897
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 17:02:00 +02:00
Hauke Mehrtens 34f5a169a3 github: guide Claude to use inline comments and be concise
Instruct Claude to prefer inline comments for file/line-specific
findings and keep all feedback short and to the point.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/22897
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 17:02:00 +02:00
Hauke Mehrtens a41cd892b7 github: allow grep in claude code review
Allow Bash(grep:*) so Claude can search the codebase for context
during PR reviews. Without this, grep calls using shell glob patterns
were denied even though plain directory greps were allowed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/22897
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 17:02:00 +02:00
Hauke Mehrtens 05e111aa42 github: prevent Claude from making commits during PR review
The workflow already uses contents: read which prevents GitHub from
accepting any push. The --disallowedTools setting adds a second layer
by stopping Claude from even attempting git write operations.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/22897
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 17:02:00 +02:00
Hauke Mehrtens 4517acedb5 github: enable inline PR comments for Claude code review
Allow Claude to post inline comments on specific lines when reviewing
PRs via the /claude trigger phrase.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/22897
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 17:02:00 +02:00
Hauke Mehrtens cd6cb9f765 scripts/ext-tools.sh: set all prebuilt tool files to same timestamp
The GitHub CI was sometimes still building some tools again even when
the same version was already pre-built. This change fixes the problem
and should improve the speed of the GitHub CI actions. The duration of
the "Build tools" step will be reduced from 5 to 20 minutes down to
10 to 15 seconds.

make also checks that dependencies are not more recent than the target
it wants to build. Previously find returned files in an arbitrary order
and touch set the current timestamp. Since touch is called per file the
timestamps differ in fractional seconds, so not all files got the same
time. make detected a more recent dependency and started to rebuild.
Now all files are set to the same timestamp and make will assume
everything is up to date.

It is sufficient to only touch the stamp files to prevent rebuilding.

Link: https://github.com/openwrt/openwrt/pull/22888
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-12 16:55:37 +02:00
Shiji Yang 75f2f960ca tools/mkimage: use full defconfig name
The defconfig file used to build tools is "tools-only_defconfig".
Though u-boot scripts can still automatically handle the old style
name for compatibility reason, it's better to use the correct name.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22844
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-04-12 10:28:25 +02:00
Shiji Yang e249f79723 tools/mkimage: disable more unnecessary tools
It doesn't make sence to build unused tools.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22844
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-04-12 10:28:25 +02:00
Shiji Yang f2d684236f tools/mkimage: update to v2026.04
Update to the latest version and add missing 030 patch header.

Changelog:
22aa122eee0 mkimage: Add support for bundling TEE in mkimage -f auto

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22844
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-04-12 10:28:25 +02:00
Shiji Yang a4e2b3c65d uboot-tools: disable symbols via u-boot native scripts
This is a safer way to operate the .config file.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22845
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-04-12 10:23:53 +02:00
Shiji Yang 55925650aa uboot-tools: update to v2026.04
Update to the latest stable version. Also add PKG_CONFIG_SYSROOT_DIR
make flag to fix dtc tools build without yaml[1-2].

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

[1] https://github.com/u-boot/u-boot/commit/0535e46d55d7423094d8b553d704a0f7f678de77
[2] https://github.com/u-boot/u-boot/commit/807bcd844afeadbfe47ac132524cc7e3b699bc46
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22845
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-04-12 10:23:53 +02:00
John Audia e95990f202 linux-firmware: update to 20260410
% git log --no-merges --pretty=oneline --abbrev-commit 20260309...20260410
d3a8c256bf3b amdgpu: Revert Yellow Carp DMUB fw to 0x4000045
3b0b51d12d4e linux-firmware: qcom: sync audioreach firmwares from v1.0.3 build
b8df98acdc99 qcom: consolidate audioreach-tplg firmwares into one location in WHENCE
4cc3cf379e31 WHENCE: Fix ISH firmware symlink prefix for Lenovo PTL systems
6ca086313157 intel_vpu: Update NPU firmware
98c7d41b4cd9 Revert "rtl_bt: Update RTL8822C BT USB and UART firmware to 0x0673"
b7562faee6a4 nvidia: add acr/bl symlink for booting GSP-RM on GA100
461b77109fec qcom: add QUPv3 firmware for shikra
c87f3b91047e xe: Update GUC to v70.60.0 for LNL, BMG, PTL
11c04932225d qcom: update ADSP firmware for sm8750 platform
7590efdfb65f qcom: update CDSP firmware for glymur platform
b9e055ef6eed cirrus: cs35l41: Add support for new HP laptops
c1f5e540c545 cirrus: cs35l41: Add support for new ASUS laptops
dc147588ce1d cirrus: cs35l41: Add support for ASUS GZ302EAC and add 15.5dB bincfg
0bdf116777fb WHENCE: Move Dell remoteproc firmware to correct section
3c4cf8321887 qcom: vpu: add video firmware for SM8450
cc2cb17f5ed9 cirrus: cs35l56: Add firmware for Cirrus Amps for some ASUS laptops
1d57ec2fdc3f cirrus: cs35l56: Add firmware for Cirrus Amps for some Lenovo laptops
f56580c068ec iwlwifi: add Bz/Sc FW for core103-40 release
8b1582ab9739 iwlwifi: Add Hr/Gf firmware for core103-40 release
dafb7e8506a7 iwlwifi: update ty/So/Ma firmwares for core103-40 release
eb2d3ddcbaf4 amdgpu: DMCUB updates for various ASICs
a4c4b1863262 xe: Update PTL GSC to v105.0.2.1397
28455e71d17f linux-firmware: add firmware for Moxa mux50u devices
4ca3317e935e rtl_bt: Update RTL8852B BT USB FW to 0x127C_FD78
b56c03b62139 ath11k: WCN6855 hw2.0@nfa765: update to WLAN.HSP.1.1-04866.5-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1
4c5450b2683a ath11k: QCA6698AQ hw2.1: update to WLAN.HSP.1.1-04866.5-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1
f463012bf671 linux-firmware: update firmware for qat_4xxx devices
3dba1ce1e347 linux-firmware: update firmware for qat_402xx devices
dc04275f5679 linux-firmware: update firmware for qat_420xx devices
7bac18568c39 linux-firmware: update firmware for an8811hb 2.5G ethernet phy
827c67ef8287 linux-firmware: qcom: Add FW blobs for DELL XPS13 9345
ffccda596131 amdgpu: DMCUB updates for various ASICs
7bea13fc9a53 cirrus: cs35l63: Update firmware for Cirrus Amps for some Dell laptops
2d3de9fe2fb8 cirrus: cs35l63: Fix Cirrus Amp firmware links for some Dell laptops
d5a533e96ed1 linux-firmware: Add firmware file for Intel BlazarIW
457378a39e59 linux-firmware: Add firmware file for Intel BlazarIGfp2 core
b21b48725314 iwlwifi: add Bz/Wh FW for core102-56 release
6fb332659360 ath12k: WCN7850 hw2.0: update to WLAN.HMT.1.1.c7-00108-QCAHMTSWPL_V1.0_V2.0_SILICONZ_UPSTREAM-3
78029d11e29a mediatek MT7921: update bluetooth firmware to 20260224111243
546a25acc8e8 mediatek MT7920: update bluetooth firmware to 20260224111231
87a7d3c72b19 Add LENOVO ISH firmware v5.8.1.7720 for X1 Carbon (Gen 14) and X1 2-in-1 (Gen 11)
f71ae94fbda2 linux-firmware: Add ISH firmware file for Intel Wildcat Lake platform
87414f9ba8f8 linux-firmware: update firmware for MT7920 WiFi device
ced02591a802 linux-firmware: update firmware for MT7921 WiFi device
81608d9216ce linux-firmware: Update firmware file for Intel Quasar core
be85c6639a91 Intel Bluetooth: Update firmware file for Intel Bluetooth AX201
c3bc50dc241d linux-firmware: Add firmware file for Intel ScorpiusGfp2 core
4590121e2ecc linux-firmware: Update firmware file for Intel Scorpius core
179d9acb2171 linux-firmware: Update firmware file for Intel BlazarIGfP core
ed10eae8facb linux-firmware: Update firmware file for Intel BlazarI core
cca6520d6620 linux-firmware: Update firmware file for Intel BlazarU-HrPGfP core
3315fba7271d linux-firmware: Update firmware file for Intel BlazarU core
dab39c0fbe7a intel_vpu: Update NPU firmware
237bfc162a3a amdgpu: DMCUB updates for various ASICs
a8316dd1ccbc qcom: add QUPv3 firmware for QCS615 platform
934a7b3e16b8 Add LENOVO ISH firmware v5.8.0.7720 for X9-15 2025

Build system: x86/64
Build-tested: x86/64-glibc
Run-tested: x86/64-glibc

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22883
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-04-12 10:22:01 +02:00
Shiji Yang 15374ca2e7 ath79: mikrotik: fix 6.18 kernel GPIO driver build errors
gpio_chip .set() callback return type has been changed since linux
6.17 kernel[1-2]. Fix:

drivers/gpio/gpio-latch-mikrotik.c: In function 'gpio_latch_probe':
drivers/gpio/gpio-latch-mikrotik.c:152:17: error: assignment to 'int (*)(struct gpio_chip *, unsigned int,  int)' from incompatible pointer type 'void (*)(struct gpio_chip *, unsigned int,  int)' [-Wincompatible-pointer-types]
  152 |         gc->set = gpio_latch_set;
      |                 ^

drivers/gpio/gpio-rb4xx.c: In function 'rb4xx_gpio_probe':
drivers/gpio/gpio-rb4xx.c:133:41: error: assignment to 'int (*)(struct gpio_chip *, unsigned int,  int)' from incompatible pointer type 'void (*)(struct gpio_chip *, unsigned int,  int)' [-Wincompatible-pointer-types]
  133 |         gpio->chip.set                  = rb4xx_gpio_set;
      |                                         ^

drivers/gpio/gpio-rb91x-key.c: In function 'gpio_rb91x_key_probe':
drivers/gpio/gpio-rb91x-key.c:165:17: error: assignment to 'int (*)(struct gpio_chip *, unsigned int,  int)' from incompatible pointer type 'void (*)(struct gpio_chip *, unsigned int,  int)' [-Wincompatible-pointer-types]
  165 |         gc->set = gpio_rb91x_key_set;
      |                 ^

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=397a46c9aa3343e8efe6847bdaa124945bab1de4
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=d9d87d90cc0b10cd56ae353f50b11417e7d21712
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22771
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-04-11 21:11:07 +02:00