]> git.ipfire.org Git - thirdparty/openwrt.git/log
thirdparty/openwrt.git
3 weeks agorealtek: rt-loader increase gcc optimization level 23811/head
Markus Stockhausen [Mon, 15 Jun 2026 18:27:24 +0000 (20:27 +0200)] 
realtek: rt-loader increase gcc optimization level

Switch from -O2 to -O3. This increases the loader code size by
5KB and brings down the decompression time on RTL838x from
~6.5 seconds to ~3.5 seconds.

Link: https://github.com/openwrt/openwrt/pull/23811
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
3 weeks agozynq: enable NAND support
Zoltan HERPAI [Sun, 14 Jun 2026 17:40:26 +0000 (19:40 +0200)] 
zynq: enable NAND support

Enable NAND support.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
3 weeks agozynq: add Bitmain Antminer S9 control board support
Zoltan HERPAI [Sun, 14 Jun 2026 17:37:54 +0000 (19:37 +0200)] 
zynq: add Bitmain Antminer S9 control board support

This board is the control board for the Antminer S9 miners.

SoC:     Xilinx XC7Z010 - dual-core Cortex-A9 with FPGA stack
Memory:  512Mb DDR3
NIC:     1Gbit ethernet (BCM B50612E PHY)
Flash:   256Mb NAND (Micron MT29F2G08ABAEAWP)
Storage: SD-card slot
Other:   control pins available via FPGA stack

Admittedly, there is a limited number of use cases available
for these boards outside of the miners and the lack of FPGA
tooling in OpenWrt. However, for one, they are easily and cheaply
available, for two, the reason for adding this is to provide an
easy addition to the boardfarm for continuous testing of this target.

Notes: For u-boot, an additional patch is required to support
  booting from SD-cards. This is because EXTRA_ENV_SETTINGS is
  already defined in the board's u-boot config, which is the same
  place where the zynq-common.dtsi defines the required envvars.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
3 weeks agouboot-zynq: fix boot process on MMC
Zoltan HERPAI [Sun, 14 Jun 2026 17:33:28 +0000 (19:33 +0200)] 
uboot-zynq: fix boot process on MMC

A regression was introduced when upgrading to 2019.07, whereas
the bootloader did not proceed to load the FIT image. A fix
was reported but not upstreamed here [1]. Patch the uEnv file
to bring back these boards to an operational state.

[1] https://forum.openwrt.org/t/bugreport-regression-in-zynq-cpu-platform-not-bootiing-any-more-zedboard-zybo/182609/7

Fixes: https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=5ca243153b110ceddffecb70ba8a8cd0e33c8f0b
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
3 weeks agogeneric: mips: replace pending patch with backport 23831/head
Jonas Jelonek [Tue, 16 Jun 2026 10:47:25 +0000 (10:47 +0000)] 
generic: mips: replace pending patch with backport

The pending patch fixing reboot behavior on Realtek MIPS (and possibly
other MIPS targets) has been accepted upstream. Replace with a proper
backport.

Link: https://github.com/openwrt/openwrt/pull/23831
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorealtek: replace pending SFP patches with backport 23825/head
Jonas Jelonek [Tue, 16 Jun 2026 08:20:52 +0000 (08:20 +0000)] 
realtek: replace pending SFP patches with backport

The SFP SMBus patches to access SFP modules with more than just byte
access have finally been accepted upstream. Replace them with the
upstreamed version, reorder them before our still downstream SMBus MDIO
patches and refresh all.

Link: https://github.com/openwrt/openwrt/pull/23825
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoipq806x: add apboot package for AP-32x
Lukas Stockner [Fri, 12 Jun 2026 15:05:20 +0000 (17:05 +0200)] 
ipq806x: add apboot package for AP-32x

This is unfortunately needed to disable the signature verification
in the stock bootloader.

Co-authored-by: Paul Spooren <mail@aparcar.org>
Signed-off-by: Lukas Stockner <lukas@lukasstockner.de>
Link: https://github.com/openwrt/openwrt/pull/20738
Signed-off-by: Paul Spooren <mail@aparcar.org>
3 weeks agoipq806x: add support for Aruba AP-32x
Lukas Stockner [Wed, 5 Nov 2025 22:41:57 +0000 (23:41 +0100)] 
ipq806x: add support for Aruba AP-32x

This is a dual-radio 802.11a/b/g/n/ac access point with
dual Gigabit Ethernet.

There are two closely related models: The AP-324, which has external
antenna connectors, and the AP-325, which has internal antennas.
The board appears to be identical, and the same image works on both.
Additionally, the Siemens Scalance W1750D is an OEM variant using
the same board, so the image also works on that.

Unfortunately the factory APBoot bootloader enforces cryptographic
signatures on the firmware before booting, so a modified version
must be flashed via the serial port. See [^1] for details.

Specifications
==============
* Device:       Aruba AP-325 / AP-324
* SoC:          Qualcomm IPQ8068 2x1.4GHz ARMv7-A
* RAM:          512MiB (2x Winbond W632GU6MB-12)
* SPI flash:    4MiB Macronix MX25U3235F
* NAND flash:   128MiB Winbond W29N01HZBINF
* WiFi:         2x Qualcomm QCA9990 (one 2.4G, one 5G)
* Ethernet:     2x 1000BASE-T (Marvell 88E1514 PHY), both PoE-capable
* Power:        PoE 802.3at or 12V DC jack
* LEDs:         Red/Amber/Green status LED, Amber/Green WiFi LED
* Buttons:      1x, behind hole next to DC jack
* Console:      RJ45 connector, Cisco pinout
* USB:          1x USB 2.0 Type A, 1x internal to BLE, SoC has USB 3.0
                host but board is only wired for 2.0
* BLE:          TI CC2540 SoC, connected to USB and UART, unpopulated
                debug header on PCB
* TPM:          Atmel AT97SC3205T

How to install
==============
The stock bootloader APBoot appears to be vendor fork of U-Boot, which
disables much of the usual functionality and comes with its own booting
and firmware upgrade logic.

Unfortunately, this logic enforces RSA signatures on images,
even for the default boot from NAND.

Therefore, a patched bootloader is needed, which is built as a package.
In addition to the signature check removal, this also changes
the serial baudrate to 115200.

Luckily, the stock firmware does not disable the `sf` command
(it just hides it until you run `diag`), so the patched bootloader
can be fetched via TFTP and then flashed via console.

Flashing patched APBoot
-----------------------
* Build OpenWrt, or download `openwrt-ipq806x-generic-aruba_ap-32x-apboot.mbn`
* Connect serial cable and wired ethernet
* Access stock APBoot console at Baud 9600
* Flash patched bootloader:
```
setenv serverip <your TFTP server IP>
setenv autostart n
netget 44000000 openwrt-ipq806x-generic-aruba_ap-32x-apboot.mbn
sf probe 0
sf erase 220000 100000
sf write 44000000 220000 100000
reset
```

Booting OpenWrt
---------------
* Connect serial cable and wired ethernet
* Access patched APBoot console at Baud 115200
* Run `setenv serverip <your TFTP server IP>`
* Run `tftpboot openwrt-ipq806x-generic-aruba_ap-32x-initramfs.ari`

Installing OpenWrt
------------------
* Connect serial cable and wired ethernet
* Access patched APBoot console at Baud 115200
* Consider backing up stock firmware(s) (UBI volumes `aos0` and/or `aos1`)
  by booting into OpenWrt via initramfs (see above) and dumping them
* Wipe and repartition NAND flash (see below for explanation):
```
nand device 0
nand erase.chip
reset
ubi part ubifs
ubi remove ubifs
ubi create ubifs 1
ubi create rootfs_data
```
* Follow steps above to boot OpenWrt via initramfs
* From OpenWrt, persist installation via sysupgrade

Reverting to stock FW
---------------------

The patched bootloader remains compatible with the original firmware,
so you can just wipe the NAND, let APBoot recreate the partitions,
and flash back the `aos0`/`aos1` backup from above.

Current status
==============

Tested and working
------------------

* Console
* Wired GbE (both ports)
* WiFi (both 2.4G and 5G)
* LEDs
* Restart Button
* USB port
* External watchdog
* TPM
* BLE SoC

Future work
-----------

* GPIOs for:
  * power source (8 indicates DC jack, 59 indicates 802.3at)
  * reset source (64 for warm reset, 65 for watchdog)
  * USB overcurrent (63)
* BLE SoC reflashing
  * CC2540 comes with Aruba-specific FW out of the box
  * Debug header is exposed on PCB (pinout GND-VCC-Clock-Data-Reset),
    but that requires disassembly
  * Stock BLE FW appears to support reflashing via UART, but protocol
    would need to be reverse-engineered
* ramoops/pstore
  * It appears that APBoot clears the RAM on boot, might be something
    we can patch out as well
* Porting a modern U-Boot

Flash layout
============

SPI flash
---------

```
0x000000-0x020000 sbl1
0x020000-0x040000 mibib
0x040000-0x080000 sbl2
0x080000-0x100000 sbl3
0x100000-0x110000 ddrconfig
0x110000-0x120000 ssd
0x120000-0x1a0000 tz
0x1a0000-0x220000 rpm
0x220000-0x320000 appsbl
0x320000-0x330000 appsblenv
0x330000-0x370000 art
0x370000-0x380000 panicdump
0x380000-0x390000 certificate
0x390000-0x3a0000 mfginfo
0x3a0000-0x3b0000 flashcache
0x3b0000-0x400000 aosspare
```

Factory NAND flash
------------------
* 32MiB MTD partition `aos0`, formatted as UBI
  * 32MiB UBI volume `aos0`
    * contains kernel+initrd of the primary firmware,
      initrd contains the entire root FS
* 32MiB MTD partition `aos1`, formatted as UBI
  * 32MiB UBI volume `aos1`
    * contains kernel+initrd of the secondary firmware,
      initrd contains the entire root FS
* 64MiB MTD partition `ubifs`, formatted as UBI
  * 64MiB UBI volume `ubifs`
    * Contains UBIFS, overlay-mounted on top of the initrd,
      shared between firmware slots

APBoot understands UBI, and will read the kernel from the
`aos0` or `aos1` volume (depending on `os_partition`)
with fallback to the other one in case a check fails.

Kernels are expected to have a vendor-specific header, the included
script will add that header with the correct checksum but no signature.

OpenWrt NAND flash
------------------

OpenWrt assumes separate UBI volumes for kernel and rootfs,
as well as a volume that must be named `rootfs_data` for the UBIFS.

Unfortunately, APBoot actively checks the UBI volumes at boot, and will
repartition if it doesn't find the volumes that it expects (listed above).

Luckily, it doesn't check their size, only their existence. Therefore,
we can use the following layout:

* 32MiB MTD partition `aos0`, formatted as UBI
  * 32MiB UBI volume `aos0`
    * contains OpenWrt kernel+initrd
* 32MiB MTD partition `aos1`, formatted as UBI
  * 32MiB UBI volume `aos1`
    * contains OpenWrt root squashfs
* 64MiB MTD partition `ubifs`, formatted as UBI
  * small (single-LEB) UBI volume `ubifs`
    * Dummy volume, only there to satisfy APBoot
  * almost 64MiB UBI volume `rootfs_data`
    * contains UBIFS, overlay-mounted on top of the rootfs

[^1]: https://github.com/lukasstockner/ap325-apboot-openwrt

Signed-off-by: Lukas Stockner <lukas@lukasstockner.de>
Link: https://github.com/openwrt/openwrt/pull/20738
Signed-off-by: Paul Spooren <mail@aparcar.org>
3 weeks agoipq806x: add CONFIG_GPIO_WATCHDOG
Lukas Stockner [Sat, 2 May 2026 18:11:04 +0000 (20:11 +0200)] 
ipq806x: add CONFIG_GPIO_WATCHDOG

The AP-325 (and variants) has an external watchdog, so this is needed to
regularly toggle the GPIO and keep the watchdog happy.

Signed-off-by: Lukas Stockner <lukas@lukasstockner.de>
Link: https://github.com/openwrt/openwrt/pull/20738
Signed-off-by: Paul Spooren <mail@aparcar.org>
3 weeks agobase-files: handle name collision between kernel UBI volume and MTD partition
Lukas Stockner [Sat, 2 May 2026 17:32:23 +0000 (19:32 +0200)] 
base-files: handle name collision between kernel UBI volume and MTD partition

On the AP-325 (and variants), the bootloader enforces a particular UBI volume
layout and naming, so unfortunately the kernel's UBI volume and MTD partition
end up with the name, which confuses the current logic.

Therefore, add an option to ignore the MTD partition.

Signed-off-by: Lukas Stockner <lukas@lukasstockner.de>
Link: https://github.com/openwrt/openwrt/pull/20738
Signed-off-by: Paul Spooren <mail@aparcar.org>
3 weeks agobase-files: support rootfs_data on its own partition
Lukas Stockner [Sat, 2 May 2026 17:31:43 +0000 (19:31 +0200)] 
base-files: support rootfs_data on its own partition

The current code assumes that the rootfs_data UBI volume is on the same MTD
partition as the rootfs.
Unfortunately, this does not work on the Aruba AP-325 (and variants), since
the bootloader enforces a particular UBI volume layout.

Therefore, this adds a separate variable to set the rootfs_data partition,
and updates all existing devices with a non-default rootfs partition to also
specify the new variable.

Signed-off-by: Lukas Stockner <lukas@lukasstockner.de>
Link: https://github.com/openwrt/openwrt/pull/20738
Signed-off-by: Paul Spooren <mail@aparcar.org>
3 weeks agoRevert "base-files: support rootfs_data on its own partition"
Paul Spooren [Tue, 16 Jun 2026 14:04:48 +0000 (16:04 +0200)] 
Revert "base-files: support rootfs_data on its own partition"

This reverts commit 13fc688f033895e0ba91c1d752ffd63a06760ef5.
Wrong Signed-off-by line was used, reverting and re-applying.

Signed-off-by: Paul Spooren <mail@aparcar.org>
3 weeks agoRevert "base-files: handle name collision between kernel UBI volume and MTD partition"
Paul Spooren [Tue, 16 Jun 2026 14:04:37 +0000 (16:04 +0200)] 
Revert "base-files: handle name collision between kernel UBI volume and MTD partition"

This reverts commit eef8c718b474aff652b42c2e96b55b1b310f7f56.
Wrong Signed-off-by line was used, reverting and re-applying.

Signed-off-by: Paul Spooren <mail@aparcar.org>
3 weeks agoRevert "ipq806x: add CONFIG_GPIO_WATCHDOG"
Paul Spooren [Tue, 16 Jun 2026 14:04:30 +0000 (16:04 +0200)] 
Revert "ipq806x: add CONFIG_GPIO_WATCHDOG"

This reverts commit 69a2b3b31865615f71793067b1c891067b66e8a4.
Wrong Signed-off-by line was used, reverting and re-applying.

Signed-off-by: Paul Spooren <mail@aparcar.org>
3 weeks agoRevert "ipq806x: add support for Aruba AP-32x"
Paul Spooren [Tue, 16 Jun 2026 14:04:22 +0000 (16:04 +0200)] 
Revert "ipq806x: add support for Aruba AP-32x"

This reverts commit e912d6aeb4c017a30b86acd3a8cf4ec4b53b87a8.
Wrong Signed-off-by line was used, reverting and re-applying.

Signed-off-by: Paul Spooren <mail@aparcar.org>
3 weeks agoRevert "ipq806x: add apboot package for AP-32x"
Paul Spooren [Tue, 16 Jun 2026 14:03:24 +0000 (16:03 +0200)] 
Revert "ipq806x: add apboot package for AP-32x"

This reverts commit 0823ad47ff3068476da4e5035575b4923bcc1fec.
Wrong Signed-off-by line was used, reverting and re-applying.

Signed-off-by: Paul Spooren <mail@aparcar.org>
3 weeks agoipq806x: add apboot package for AP-32x 20738/head
Lukas Stockner [Fri, 12 Jun 2026 15:05:20 +0000 (17:05 +0200)] 
ipq806x: add apboot package for AP-32x

This is unfortunately needed to disable the signature verification
in the stock bootloader.

Co-authored-by: Paul Spooren <mail@aparcar.org>
Signed-off-by: Lukas Stockner <lukas@lukasstockner.de>
Link: https://github.com/openwrt/openwrt/pull/20738
Signed-off-by: Test Dev <dev@example.org>
3 weeks agoipq806x: add support for Aruba AP-32x
Lukas Stockner [Wed, 5 Nov 2025 22:41:57 +0000 (23:41 +0100)] 
ipq806x: add support for Aruba AP-32x

This is a dual-radio 802.11a/b/g/n/ac access point with
dual Gigabit Ethernet.

There are two closely related models: The AP-324, which has external
antenna connectors, and the AP-325, which has internal antennas.
The board appears to be identical, and the same image works on both.
Additionally, the Siemens Scalance W1750D is an OEM variant using
the same board, so the image also works on that.

Unfortunately the factory APBoot bootloader enforces cryptographic
signatures on the firmware before booting, so a modified version
must be flashed via the serial port. See [^1] for details.

Specifications
==============
* Device:       Aruba AP-325 / AP-324
* SoC:          Qualcomm IPQ8068 2x1.4GHz ARMv7-A
* RAM:          512MiB (2x Winbond W632GU6MB-12)
* SPI flash:    4MiB Macronix MX25U3235F
* NAND flash:   128MiB Winbond W29N01HZBINF
* WiFi:         2x Qualcomm QCA9990 (one 2.4G, one 5G)
* Ethernet:     2x 1000BASE-T (Marvell 88E1514 PHY), both PoE-capable
* Power:        PoE 802.3at or 12V DC jack
* LEDs:         Red/Amber/Green status LED, Amber/Green WiFi LED
* Buttons:      1x, behind hole next to DC jack
* Console:      RJ45 connector, Cisco pinout
* USB:          1x USB 2.0 Type A, 1x internal to BLE, SoC has USB 3.0
                host but board is only wired for 2.0
* BLE:          TI CC2540 SoC, connected to USB and UART, unpopulated
                debug header on PCB
* TPM:          Atmel AT97SC3205T

How to install
==============
The stock bootloader APBoot appears to be vendor fork of U-Boot, which
disables much of the usual functionality and comes with its own booting
and firmware upgrade logic.

Unfortunately, this logic enforces RSA signatures on images,
even for the default boot from NAND.

Therefore, a patched bootloader is needed, which is built as a package.
In addition to the signature check removal, this also changes
the serial baudrate to 115200.

Luckily, the stock firmware does not disable the `sf` command
(it just hides it until you run `diag`), so the patched bootloader
can be fetched via TFTP and then flashed via console.

Flashing patched APBoot
-----------------------
* Build OpenWrt, or download `openwrt-ipq806x-generic-aruba_ap-32x-apboot.mbn`
* Connect serial cable and wired ethernet
* Access stock APBoot console at Baud 9600
* Flash patched bootloader:
```
setenv serverip <your TFTP server IP>
setenv autostart n
netget 44000000 openwrt-ipq806x-generic-aruba_ap-32x-apboot.mbn
sf probe 0
sf erase 220000 100000
sf write 44000000 220000 100000
reset
```

Booting OpenWrt
---------------
* Connect serial cable and wired ethernet
* Access patched APBoot console at Baud 115200
* Run `setenv serverip <your TFTP server IP>`
* Run `tftpboot openwrt-ipq806x-generic-aruba_ap-32x-initramfs.ari`

Installing OpenWrt
------------------
* Connect serial cable and wired ethernet
* Access patched APBoot console at Baud 115200
* Consider backing up stock firmware(s) (UBI volumes `aos0` and/or `aos1`)
  by booting into OpenWrt via initramfs (see above) and dumping them
* Wipe and repartition NAND flash (see below for explanation):
```
nand device 0
nand erase.chip
reset
ubi part ubifs
ubi remove ubifs
ubi create ubifs 1
ubi create rootfs_data
```
* Follow steps above to boot OpenWrt via initramfs
* From OpenWrt, persist installation via sysupgrade

Reverting to stock FW
---------------------

The patched bootloader remains compatible with the original firmware,
so you can just wipe the NAND, let APBoot recreate the partitions,
and flash back the `aos0`/`aos1` backup from above.

Current status
==============

Tested and working
------------------

* Console
* Wired GbE (both ports)
* WiFi (both 2.4G and 5G)
* LEDs
* Restart Button
* USB port
* External watchdog
* TPM
* BLE SoC

Future work
-----------

* GPIOs for:
  * power source (8 indicates DC jack, 59 indicates 802.3at)
  * reset source (64 for warm reset, 65 for watchdog)
  * USB overcurrent (63)
* BLE SoC reflashing
  * CC2540 comes with Aruba-specific FW out of the box
  * Debug header is exposed on PCB (pinout GND-VCC-Clock-Data-Reset),
    but that requires disassembly
  * Stock BLE FW appears to support reflashing via UART, but protocol
    would need to be reverse-engineered
* ramoops/pstore
  * It appears that APBoot clears the RAM on boot, might be something
    we can patch out as well
* Porting a modern U-Boot

Flash layout
============

SPI flash
---------

```
0x000000-0x020000 sbl1
0x020000-0x040000 mibib
0x040000-0x080000 sbl2
0x080000-0x100000 sbl3
0x100000-0x110000 ddrconfig
0x110000-0x120000 ssd
0x120000-0x1a0000 tz
0x1a0000-0x220000 rpm
0x220000-0x320000 appsbl
0x320000-0x330000 appsblenv
0x330000-0x370000 art
0x370000-0x380000 panicdump
0x380000-0x390000 certificate
0x390000-0x3a0000 mfginfo
0x3a0000-0x3b0000 flashcache
0x3b0000-0x400000 aosspare
```

Factory NAND flash
------------------
* 32MiB MTD partition `aos0`, formatted as UBI
  * 32MiB UBI volume `aos0`
    * contains kernel+initrd of the primary firmware,
      initrd contains the entire root FS
* 32MiB MTD partition `aos1`, formatted as UBI
  * 32MiB UBI volume `aos1`
    * contains kernel+initrd of the secondary firmware,
      initrd contains the entire root FS
* 64MiB MTD partition `ubifs`, formatted as UBI
  * 64MiB UBI volume `ubifs`
    * Contains UBIFS, overlay-mounted on top of the initrd,
      shared between firmware slots

APBoot understands UBI, and will read the kernel from the
`aos0` or `aos1` volume (depending on `os_partition`)
with fallback to the other one in case a check fails.

Kernels are expected to have a vendor-specific header, the included
script will add that header with the correct checksum but no signature.

OpenWrt NAND flash
------------------

OpenWrt assumes separate UBI volumes for kernel and rootfs,
as well as a volume that must be named `rootfs_data` for the UBIFS.

Unfortunately, APBoot actively checks the UBI volumes at boot, and will
repartition if it doesn't find the volumes that it expects (listed above).

Luckily, it doesn't check their size, only their existence. Therefore,
we can use the following layout:

* 32MiB MTD partition `aos0`, formatted as UBI
  * 32MiB UBI volume `aos0`
    * contains OpenWrt kernel+initrd
* 32MiB MTD partition `aos1`, formatted as UBI
  * 32MiB UBI volume `aos1`
    * contains OpenWrt root squashfs
* 64MiB MTD partition `ubifs`, formatted as UBI
  * small (single-LEB) UBI volume `ubifs`
    * Dummy volume, only there to satisfy APBoot
  * almost 64MiB UBI volume `rootfs_data`
    * contains UBIFS, overlay-mounted on top of the rootfs

[^1]: https://github.com/lukasstockner/ap325-apboot-openwrt

Signed-off-by: Lukas Stockner <lukas@lukasstockner.de>
Link: https://github.com/openwrt/openwrt/pull/20738
Signed-off-by: Test Dev <dev@example.org>
3 weeks agoipq806x: add CONFIG_GPIO_WATCHDOG
Lukas Stockner [Sat, 2 May 2026 18:11:04 +0000 (20:11 +0200)] 
ipq806x: add CONFIG_GPIO_WATCHDOG

The AP-325 (and variants) has an external watchdog, so this is needed to
regularly toggle the GPIO and keep the watchdog happy.

Signed-off-by: Lukas Stockner <lukas@lukasstockner.de>
Link: https://github.com/openwrt/openwrt/pull/20738
Signed-off-by: Test Dev <dev@example.org>
3 weeks agobase-files: handle name collision between kernel UBI volume and MTD partition
Lukas Stockner [Sat, 2 May 2026 17:32:23 +0000 (19:32 +0200)] 
base-files: handle name collision between kernel UBI volume and MTD partition

On the AP-325 (and variants), the bootloader enforces a particular UBI volume
layout and naming, so unfortunately the kernel's UBI volume and MTD partition
end up with the name, which confuses the current logic.

Therefore, add an option to ignore the MTD partition.

Signed-off-by: Lukas Stockner <lukas@lukasstockner.de>
Link: https://github.com/openwrt/openwrt/pull/20738
Signed-off-by: Test Dev <dev@example.org>
3 weeks agobase-files: support rootfs_data on its own partition
Lukas Stockner [Sat, 2 May 2026 17:31:43 +0000 (19:31 +0200)] 
base-files: support rootfs_data on its own partition

The current code assumes that the rootfs_data UBI volume is on the same MTD
partition as the rootfs.
Unfortunately, this does not work on the Aruba AP-325 (and variants), since
the bootloader enforces a particular UBI volume layout.

Therefore, this adds a separate variable to set the rootfs_data partition,
and updates all existing devices with a non-default rootfs partition to also
specify the new variable.

Signed-off-by: Lukas Stockner <lukas@lukasstockner.de>
Link: https://github.com/openwrt/openwrt/pull/20738
Signed-off-by: Test Dev <dev@example.org>
3 weeks agoprereq-build/u-boot: add Python 3.14 support 23243/head
Etienne Champetier [Sat, 24 Jan 2026 21:31:03 +0000 (16:31 -0500)] 
prereq-build/u-boot: add Python 3.14 support

Python 3.14 is the default version on Fedora 43/44.

Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23243
Signed-off-by: Test Dev <dev@example.org>
3 weeks agoirq-ath79-intc: add missing \n 22981/head
Rosen Penev [Thu, 23 Apr 2026 20:09:36 +0000 (13:09 -0700)] 
irq-ath79-intc: add missing \n

Needed to make the dmesg output normal.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22981
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoirq-ath79-intc: avoid negative values
Rosen Penev [Thu, 23 Apr 2026 20:06:47 +0000 (13:06 -0700)] 
irq-ath79-intc: avoid negative values

of_count_phandle_with_args can return negative. We don't want that.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22981
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoirq-ath79-intc: add irq_dispose_mapping
Rosen Penev [Thu, 23 Apr 2026 20:00:25 +0000 (13:00 -0700)] 
irq-ath79-intc: add irq_dispose_mapping

Avoids a resource leak on failure.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22981
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoirq-ath79-intc: statically allocate irq_chip
Rosen Penev [Sat, 18 Apr 2026 04:25:50 +0000 (21:25 -0700)] 
irq-ath79-intc: statically allocate irq_chip

No need for dynamic allocation. static is fine.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22981
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoirq-ath79-intc: add chained_irq_enter/exit
Rosen Penev [Sat, 18 Apr 2026 02:12:59 +0000 (19:12 -0700)] 
irq-ath79-intc: add chained_irq_enter/exit

Original review said:

Missing chained_irq_enter/exit calls.

Also rework slightly to reduce indentation.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22981
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoirq-ath79-intc: rename pending_mask to enable_mask
Rosen Penev [Sat, 18 Apr 2026 02:23:02 +0000 (19:23 -0700)] 
irq-ath79-intc: rename pending_mask to enable_mask

Original review said:

Isn't this "pending_mask" more of an "enabled"?

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22981
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoirq-ath79-intc: don't use hwirq_max
Rosen Penev [Sat, 18 Apr 2026 02:07:32 +0000 (19:07 -0700)] 
irq-ath79-intc: don't use hwirq_max

Original review said:

Don't. This is an implementation detail of the irq domain, and you're
not supposed to access that field.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22981
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoirq-ath79-intc: use generic_handle_domain_irq
Rosen Penev [Sat, 18 Apr 2026 02:02:28 +0000 (19:02 -0700)] 
irq-ath79-intc: use generic_handle_domain_irq

Combines irq_find_mapping and generic_handle_irq.

Matches upstream commit
046a6ee2343bb26d85a9973a39ccdb9764236fa4

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22981
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoirq-ath79-intc: add SPDX license
Rosen Penev [Sat, 18 Apr 2026 01:59:36 +0000 (18:59 -0700)] 
irq-ath79-intc: add SPDX license

License boilerplate was deprecated by upstream in
d2912cb15bdda8ba4a5dd73396ad62641af2f520

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22981
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoirq-ath79-intc: switch from add to create
Rosen Penev [Sat, 18 Apr 2026 01:56:31 +0000 (18:56 -0700)] 
irq-ath79-intc: switch from add to create

Upstream Linux wants to remove the add APIs.

Get ahead of this and make the switch as was done upstream in
affdc0d1bdfa544fed26ae07c4e136af86465507

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22981
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoirq-ath79-intc: remove panic and add kfree
Rosen Penev [Sat, 18 Apr 2026 01:17:45 +0000 (18:17 -0700)] 
irq-ath79-intc: remove panic and add kfree

Panic like this was recommended against in the original review of the
upstream submission. Remove it and add missing kfree calls.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22981
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoath79: move intc driver out of patch
Rosen Penev [Sat, 18 Apr 2026 01:07:20 +0000 (18:07 -0700)] 
ath79: move intc driver out of patch

This driver has been attempted to be upstreamed once and never again.
Keep it local to make modification easier.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22981
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agobutton-hotplug: bump package release 23826/head
Paul Spooren [Tue, 16 Jun 2026 09:24:16 +0000 (11:24 +0200)] 
button-hotplug: bump package release

This commit fixes "286f377389a button-hotplug: add KEY_SETUP and KEY_VENDOR
handling" which changed the code without bumping the PKG_RELEASE, resulting in
different binaries under the same version.

Signed-off-by: Paul Spooren <mail@aparcar.org>
Link: https://github.com/openwrt/openwrt/pull/23826
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
3 weeks agomtd: bump package release 23827/head
Paul Spooren [Tue, 16 Jun 2026 09:20:05 +0000 (11:20 +0200)] 
mtd: bump package release

This commit fixes "a5107ad58c6 mtd: fix buffer leak and fd leak in mtd_dump()"
which changed the code but did not increase the release. This causes two
packages with the same version to have different content and thereby hashes.

Signed-off-by: Paul Spooren <mail@aparcar.org>
Link: https://github.com/openwrt/openwrt/pull/23827
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
3 weeks agoeconet: enable 6.18 testing kernel 23755/head
Ahmed Naseef [Thu, 11 Jun 2026 14:20:06 +0000 (18:20 +0400)] 
econet: enable 6.18 testing kernel

Add building the 6.18 kernel for econet as testing.

Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23755
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoeconet: update config for 6.18
Ahmed Naseef [Thu, 11 Jun 2026 14:20:06 +0000 (18:20 +0400)] 
econet: update config for 6.18

Regenerated with `make kernel_oldconfig` for all subtargets.

Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23755
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoeconet: update patches for 6.18
Ahmed Naseef [Thu, 11 Jun 2026 14:19:40 +0000 (18:19 +0400)] 
econet: update patches for 6.18

Fix patch compatibility for kernel 6.18 on econet and refresh with
`make target/linux/refresh V=s`. The shared airoha clk/spi/uart and the
econet-local timer, nand and phy patches are rebased onto the 6.18
upstream code.

Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23755
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoeconet: remove upstreamed patches for 6.18
Ahmed Naseef [Thu, 11 Jun 2026 14:19:00 +0000 (18:19 +0400)] 
econet: remove upstreamed patches for 6.18

Remove all patches that have already been upstreamed for kernel 6.18.
The remaining v6.19/v6.19rc1 backports are kept, in sync with the airoha
target these patches are shared with.

Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23755
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agokernel/econet: restore files for v6.12
Ahmed Naseef [Thu, 11 Jun 2026 13:05:21 +0000 (17:05 +0400)] 
kernel/econet: restore files for v6.12

This is an automatically generated commit which aids following Kernel patch
history, as git will see the move and copy as a rename thus defeating the
purpose.

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

Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23755
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agokernel/econet: create files for v6.18 (from v6.12)
Ahmed Naseef [Thu, 11 Jun 2026 13:05:21 +0000 (17:05 +0400)] 
kernel/econet: create files for v6.18 (from v6.12)

This is an automatically generated commit.

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

Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23755
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agouboot-mediatek: enable true RNG driver for recently added devices 23462/head
Ryan Leung [Thu, 21 May 2026 05:31:31 +0000 (15:31 +1000)] 
uboot-mediatek: enable true RNG driver for recently added devices

Enable the hardware true random number generator driver added in
2a9dce2d9e81 ("uboot-mediatek: port RNG drivers and enable them")
for recently added devices.

Fixes: d2fabb974c57 ("mediatek: add support for Wavlink WL-WNT100X3 ubootmod")
Fixes: eb6dd61a8d4d ("mediatek: add cudy wr3000h-v1 ubootmod")
Fixes: cfc17e81e1f8 ("mediatek: add cudy wr3000e-v1 ubootmod")
Fixes: b7b4938303b7 ("mediatek: add cudy wr3000s-v1 ubootmod")
Fixes: 6b3b7c7dc1e9 ("mediatek: add cudy wr3000p-v1 ubootmod")
Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23462
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoprereq-build: add clang support 17259/head
Rosen Penev [Thu, 28 Nov 2024 22:52:14 +0000 (14:52 -0800)] 
prereq-build: add clang support

The Apple g++ check is really clang in disguise. Furthermore, testing on
Linux hosts reveals that clang can sufficiently replace gcc.

Minimum version of clang is 12 because of ccache.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17259
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agomediatek: predator-w6x: set MAC in NVMEM 23764/head
Rosen Penev [Wed, 29 Apr 2026 20:52:15 +0000 (13:52 -0700)] 
mediatek: predator-w6x: set MAC in NVMEM

Userspace handling is deprecated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23764
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agorealtek: add support for V3 variant of SG2008P 20616/head
Daniel Tang [Sun, 5 Oct 2025 23:32:30 +0000 (23:32 +0000)] 
realtek: add support for V3 variant of SG2008P

Add basic support for the TP-Link SG2008P V3 variant. The switch appears
to be identical to the V1 variant, except that it uses the MP3924
instead of the TPS23861 PoE chip.

Specifications:
---------------
 * SoC:       Realtek RTL8380M
 * Flash:     32 MiB SPI flash (Vendor varies)
 * RAM:       256 MiB (Vendor varies)
 * Ethernet:  8x 10/100/1000 Mbps with PoE on 4 ports
 * Buttons:   1x "Reset" button on front panel
 * Power:     53.5V DC barrel jack
 * UART:      1x serial header, unpopulated
 * PoE:       1x MPS MP3924 I2C PoE controller

Works:
------
  - (8) RJ-45 ethernet ports
  - Switch functions
  - System LED
  - Basic PoE support (no driver, but a startup script puts the chip
    into AUTO mode)

Not yet enabled:
----------------
  - PoE, Link/Act, PoE max and System LEDs

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

Not supported at this time.

Install via serial console/tftp:
--------------------------------

The footprints R27 (0201) and R28 (0402) are not populated. To enable
serial console, 50 ohm resistors should be soldered -- any value from
0 ohm to 50 ohm will work. R27 can be replaced by a solder bridge.

The u-boot firmware drops to a TP-Link specific "BOOTUTIL" shell at
38400 baud. There is no known way to exit out of this shell, and no
way to do anything useful.

Ideally, one would trick the bootloader into flashing the sysupgrade
image first. However, if the image exceeds 6MiB in size, it will not
work. The sysupgrade image can also be flashed. To install OpenWRT:

Prepare a tftp server with:
 1. server address: 192.168.0.146
 2. the image as: "uImage.img"

Power on device, and stop boot by pressing any key.
Once the shell is active:
 1. Ground out the CLK (pin 16) of the ROM (U7)
 2. Select option "3. Start"
 3. Bootloader notes that "The kernel has been damaged!"
 4. Release CLK as sson as bootloader thinks image is corrupted.
 5. Bootloader enters automatic recovery -- details printed on console
 6. Watch as the bootloader flashes and boots OpenWRT.

Blind install via tftp:
-----------------------

This method works when it's not feasible to install a serial header.

Prepare a tftp server with:
 1. server address: 192.168.0.146
 2. the image as: "uImage.img"
 3. Watch network traffic (tcpdump or wireshark works)
 4. Power on the device.
 5. Wait 1-2 seconds then ground out the CLK (pin 16) of the ROM (U7)
 6. When 192.168.0.30 makes tftp requests, release pin 16
 7. Wait 2-3 minutes for device to auto-flash and boot OpenWRT

Signed-off-by: Daniel Tang <tangrs@google.com>
Link: https://github.com/openwrt/openwrt/pull/20616
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
3 weeks agoumdns: update to Git HEAD (2026-06-16)
Hauke Mehrtens [Tue, 16 Jun 2026 00:19:46 +0000 (02:19 +0200)] 
umdns: update to Git HEAD (2026-06-16)

1b5e7bf1cec7 cache: bound cache size and clamp hostile TTLs

Link: https://github.com/openwrt/mdnsd/security/advisories/GHSA-jg8f-fhfw-jg46
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agouhttpd: update to Git HEAD (2026-06-16)
Hauke Mehrtens [Mon, 15 Jun 2026 23:39:41 +0000 (01:39 +0200)] 
uhttpd: update to Git HEAD (2026-06-16)

ae015e099986 client: reject unhandled Transfer-Encoding values
b78f51847879 client: close connection on invalid chunk length
7b1bec45826b ubus: close connection on POST body parse error

Link: https://github.com/openwrt/uhttpd/security/advisories/GHSA-mcfg-c4r7-pjpf
Link: https://github.com/openwrt/uhttpd/security/advisories/GHSA-p55c-rmhc-qfm5
Link: https://github.com/openwrt/uhttpd/security/advisories/GHSA-wgwp-64hh-f52p
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agoead: fix integer underflow in handle_send_a()
Hauke Mehrtens [Fri, 12 Jun 2026 22:34:46 +0000 (00:34 +0200)] 
ead: fix integer underflow in handle_send_a()

handle_send_a() computed the SRP "A" parameter length as

    len = ntohl(msg->len) - sizeof(struct ead_msg_number);

sizeof(struct ead_msg_number) is 1, and the subtraction is evaluated in
unsigned arithmetic. A packet with msg->len == 0 therefore wraps the
result to a huge value which, assigned to the signed int len, becomes -1.
The following bounds check is signed:

    if (len > MAXPARAMLEN + 1)
        return false;

so -1 passes, and memcpy(A.data, number->data, len) runs with len cast to
size_t (~SIZE_MAX) against the 257-byte abuf, crashing the daemon.

Neither parse_message() nor handle_packet() validate msg->len (only the
captured packet length), so an unauthenticated attacker on the local
segment can reach this path and crash ead with a single crafted packet.

Validate the claimed length in unsigned arithmetic before the subtraction
and bound it on both sides. Doing the upper-bound check unsigned as well
also closes a 32-bit-only variant where sizeof(ead_packet) + msg->len
overflows in handle_packet(), letting a large msg->len reach the same
negative-len path.

Link: https://github.com/openwrt/openwrt/security/advisories/GHSA-9558-77jp-g3fw
Reported-by: @Vasco0x4
Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agofritz-tools: fix out-of-bounds memset in TFFS segment expansion 23763/head
Hauke Mehrtens [Fri, 12 Jun 2026 23:17:23 +0000 (01:17 +0200)] 
fritz-tools: fix out-of-bounds memset in TFFS segment expansion

When growing the segment array in find_entry(), the memset() that zeroes
the newly allocated slots computed the destination with redundant sizeof
scaling:

  memset(segments + (num_segments * sizeof(struct tffs_entry_segment)), ...)

segments is a typed pointer, so pointer arithmetic already scales by the
element size. Multiplying the offset by sizeof again advances the
destination by num_segments * sizeof^2 bytes, landing far outside the
realloc()'d buffer and zeroing unrelated heap memory whenever a TFFS
entry spans multiple segments that require array expansion.

Drop the redundant multiplication so the memset targets segments[num_segments].

This is a robustness fix for malformed/corrupt TFFS content; the parser
only reads the on-device nand-tffs MTD partition as root, so it is not
considered security relevant.

Reported-by: @Vasco0x4
Assisted-by: Claude:claude-opus-4-8
Link: https://github.com/openwrt/openwrt/pull/23763
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 weeks agomac80211: backport ath9k memset fixes from upstream 23776/head
Rosen Penev [Sat, 13 Jun 2026 18:30:18 +0000 (11:30 -0700)] 
mac80211: backport ath9k memset fixes from upstream

Backport two upstream commits that replace memset() on coherent DMA
descriptor rings with explicit WRITE_ONCE() status word stores.

On 32-bit PowerPC platforms like apm821xx, coherent DMA memory may be
mapped uncached. The optimized memset() path can use dcbz there, which
triggers alignment warnings and spams the kernel log.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23776
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoodhcpd: update to latest HEAD
David Bauer [Sun, 14 Jun 2026 22:15:21 +0000 (00:15 +0200)] 
odhcpd: update to latest HEAD

c6792ba odhcpd: fix integer underflow in dhcpv6_ia_handle_IAs
d329a15 odhcpd: fix out-of-bounds write in build_ia

Signed-off-by: David Bauer <mail@david-bauer.net>
4 weeks agotreewide: add linux,rootfs to rootfs labeled partitions 20951/head
Rosen Penev [Thu, 27 Nov 2025 03:30:03 +0000 (19:30 -0800)] 
treewide: add linux,rootfs to rootfs labeled partitions

A step towards removing hack/420-mtd-support-OpenWrt-s-MTD_ROOTFS_ROOT_DEV.patch

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20951
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agomediatek: filogic: replace mtd-eeprom with nvmem 23113/head
Rosen Penev [Mon, 27 Apr 2026 23:26:55 +0000 (16:26 -0700)] 
mediatek: filogic: replace mtd-eeprom with nvmem

These use fairly standard sizes.

0x1000 for mt7916 and 0x1e00 for mt7992.

Added a mediatek,mt76 compatible line where missing as required by mt76
upstream Documentation.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23113
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agomediatek: mt7622: replace mtd-eeprom with nvmem
Rosen Penev [Mon, 27 Apr 2026 00:28:17 +0000 (17:28 -0700)] 
mediatek: mt7622: replace mtd-eeprom with nvmem

These use fairly standard sizes.

0x4da8 for mt7615 + mt7622 and 0xe00 for mt7915.

Added a mediatek,mt76 compatible line where missing as required by mt76
upstream Documentation.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23113
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agompc85xx: ws-ap3xxxi: use u-boot,env for MAC 23761/head
Rosen Penev [Mon, 27 Apr 2026 07:15:31 +0000 (00:15 -0700)] 
mpc85xx: ws-ap3xxxi: use u-boot,env for MAC

Userspace handling is deprecated.

Fix bad copy/paste error with ws-ap3710i. enet2 is unused.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23761
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoapm821xx: drop support for 6.12 23777/head
Rosen Penev [Sat, 13 Jun 2026 18:49:54 +0000 (11:49 -0700)] 
apm821xx: drop support for 6.12

Remove the 6.12 kernel configuration and patch stack after switching to 6.18.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23777
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoapm821xx: switch to 6.18
Rosen Penev [Sat, 13 Jun 2026 18:48:05 +0000 (11:48 -0700)] 
apm821xx: switch to 6.18

Move apm821xx to the 6.18 kernel after testing it as the testing kernel.

There are ethernet performance improvements in the 6.18 kernel for
whatever reason. There's also work on getting rid of dmesg slop at
runtime.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23777
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agorealtek: add hasivo-mcu sensor driver 23762/head
Carlo Szelinsky [Tue, 9 Jun 2026 20:58:59 +0000 (22:58 +0200)] 
realtek: add hasivo-mcu sensor driver

Add a temperature/fan sensor (hwmon) driver for the Hasivo / Horaco
management MCU as a second child of the hasivo MCU MFD (alongside the
watchdog). It exposes the CPU and system temperatures and a 3-state fan
control (auto / force-on / force-off), read/written through the parent's
shared syscon regmap.

The register protocol was reverse-engineered from the stock 'imi' firmware
and verified on hardware. The fan-status register (0xFB) reflects the MCU's
effective drive state, not actual rotation (a blocked fan still reads
force-on), so no fanN_alarm is exposed. pwm1 echoes the commanded state so
a write reads back consistently, and falls back to the live drive state in
automatic mode. The register map is shared across boards.

Signed-off-by: Carlo Szelinsky <github@szelinsky.de>
Link: https://github.com/openwrt/openwrt/pull/23762
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
4 weeks agorealtek: convert hasivo-mcu-wdt to a hasivo-mcu-mfd child
Carlo Szelinsky [Sun, 7 Jun 2026 17:56:51 +0000 (19:56 +0200)] 
realtek: convert hasivo-mcu-wdt to a hasivo-mcu-mfd child

The watchdog and the temperature/fan hwmon are the same management MCU at
a single I2C address (0x6f). Linux binds one driver per I2C client, so the
watchdog cannot keep owning the address directly if the hwmon is to live
on the same chip. Convert it from a standalone i2c_driver into a
platform_driver child of the hasivo MCU MFD that reaches the chip through
the parent's shared regmap (syscon), and depend on kmod-mfd-hasivo-stc8.

Signed-off-by: Carlo Szelinsky <github@szelinsky.de>
Link: https://github.com/openwrt/openwrt/pull/23762
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
4 weeks agorealtek: pcs: improve lock and error handling in pcs_config 23759/head
Jonas Jelonek [Sun, 14 Jun 2026 12:44:35 +0000 (12:44 +0000)] 
realtek: pcs: improve lock and error handling in pcs_config

Make use of scoped_guard macro to ease lock and error handling in
pcs_config by having a dedicated scope and no need for gotos.

While being here, replace -ENOTSUPP with preferred -EOPNOTSUPP and drop
{ } brackets for single statement block.

Link: https://github.com/openwrt/openwrt/pull/23759
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agorealtek: pcs: add activate/deactivate sds_ops hooks
Jonas Jelonek [Sat, 6 Jun 2026 21:54:27 +0000 (21:54 +0000)] 
realtek: pcs: add activate/deactivate sds_ops hooks

Add the mandatory activate/deactivate bring-up hooks to rtpcs_sds_ops
and let rtpcs_pcs_config() drive the full sequence around the variant
configuration:

deactivate -> setup_serdes -> activate -> post_config

The per-variant calls that were open-coded at the start and end of the
setup_serdes() functions are removed in favour of these indirections.
RTL839X never powered the SerDes down/up, so it gets no-op stubs to
satisfy the contract for now. Execution order is preserved for all
variants.

Link: https://github.com/openwrt/openwrt/pull/23759
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agorealtek: pcs: add post_config sds_ops hook
Jonas Jelonek [Sat, 6 Jun 2026 21:51:47 +0000 (21:51 +0000)] 
realtek: pcs: add post_config sds_ops hook

Some variants need finalization that must run only after the SerDes is
powered up: RTL838X performs a one-shot switch queue reset on first
start, RTL930X runs RX calibration and the TX config. So far this lived
at the tail of the variant setup_serdes() functions.

Add an optional post_config hook to rtpcs_sds_ops and call it from
rtpcs_pcs_config() right after setup_serdes(), then relocate the
RTL838X and RTL930X tail work into it. As activate() still runs at the
end of setup_serdes() here, the execution order is unchanged.

Link: https://github.com/openwrt/openwrt/pull/23759
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agorealtek: pcs: rtl930x: apply tx config before activation
Jonas Jelonek [Thu, 11 Jun 2026 20:05:28 +0000 (20:05 +0000)] 
realtek: pcs: rtl930x: apply tx config before activation

In RTL930x setup, tx config was called at then end of the procedure
after configuration and calibration ran. This is still a leftover from
the old code located in DSA/PHY. However, applying TX configuration like
amplification factors, etc. doesn't make sense after calibration, it
should run before. Moreover the call was commented with "leave loopback
mode" which is just wrong and doesn't describe what the function does.
Fix this misery.

Testing on device with different interface modes shows no difference so
far, especially no negative effects.

Link: https://github.com/openwrt/openwrt/pull/23759
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agomediatek: wavlink wl-wn536ax6 rev a: remove old WLAN LED default 23790/head
Ryan Leung [Sun, 14 Jun 2026 12:56:16 +0000 (20:56 +0800)] 
mediatek: wavlink wl-wn536ax6 rev a: remove old WLAN LED default

Remove old UCI default for WLAN LED trigger on `phy1` which is now instead triggered by either
wireless PHY by kmod-ledtrig-network

Fixes: adb7ff279213 ("mediatek: wavlink wl-wn536ax6 rev a: add "network" LED trigger")
Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23790
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agomediatek: wavlink wl-wn536ax6 rev a: add "network" LED trigger 23682/head
Ryan Leung [Sat, 6 Jun 2026 11:19:46 +0000 (19:19 +0800)] 
mediatek: wavlink wl-wn536ax6 rev a: add "network" LED trigger

Currently the "WiFi" LED indicator light is triggered only by activity on the 5 GHz PHY.

Change it to be triggered by WLAN activity on either Wi-Fi PHY, matching stock behaviour, by using
`kmod-ledtrig-network` added in 2aa1185fb05e ('leds: add "network" LED trigger (lan/wan/wlan)').

Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23682
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agouboot-envtools: mediatek_filogic: wavlink wl-wn536ax6 rev a: add config
Ryan Leung [Sat, 6 Jun 2026 11:19:35 +0000 (19:19 +0800)] 
uboot-envtools: mediatek_filogic: wavlink wl-wn536ax6 rev a: add config

Add config for WAVLINK WL-WN536AX6 Rev a to be able to read and write U-Boot environment variables.

Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23682
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agomediatek: wavlink wl-wn536ax6 rev a: fix WLAN 5GHz MAC address
Ryan Leung [Sat, 6 Jun 2026 11:19:24 +0000 (19:19 +0800)] 
mediatek: wavlink wl-wn536ax6 rev a: fix WLAN 5GHz MAC address

The second WLAN MAC address in the "Factory" partition at 0x0a is not the same as the
WLAN 5GHz BSSID observed when using the manufacturer's stock firmware, which is derived from
the 2.4GHz/label MAC address by setting bits 26 and 7 (Locally Administered).

While at it, also fix alphabetical ordering of some other device names.

Fixes: 1748ce829537 ("mediatek: add support for WAVLINK WL-WN536AX6 Rev a")
Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23682
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agomediatek: wavlink wl-wn536ax6 rev a: change nvmem layout for MAC addresses
Ryan Leung [Sat, 6 Jun 2026 11:19:12 +0000 (19:19 +0800)] 
mediatek: wavlink wl-wn536ax6 rev a: change nvmem layout for MAC addresses

Currently the WAN MAC address is read from the first (LAN) MAC address in the "HW" partition and
then incremented by 1 instead of being read directly from the second MAC address.

Change to reading the two MAC addresses (LAN/WAN) directly from "Factory" partition.

Fixes: 1748ce829537 ("mediatek: add support for WAVLINK WL-WN536AX6 Rev a")
Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23682
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agomediatek: wavlink wl-wn536ax6 rev a: set SPI drive strength 4mA
Ryan Leung [Sat, 6 Jun 2026 11:18:56 +0000 (19:18 +0800)] 
mediatek: wavlink wl-wn536ax6 rev a: set SPI drive strength 4mA

Change SPI drive strength to 4mA to match Mediatek SDK and prevent potential signal overshoot.

Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23682
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agomediatek: wavlink wl-wn536ax6 rev a: enable nmbm bad block management
Ryan Leung [Sat, 6 Jun 2026 11:18:45 +0000 (19:18 +0800)] 
mediatek: wavlink wl-wn536ax6 rev a: enable nmbm bad block management

Enable nmbm bad block management with up to 8 MiB reserved. The manufacturer's stock device tree
contains the property `compatible = "generic,nmbm";` in node `nmbm_spim_nand` and
manufacturer's stock bootlog contains "nmbm nmbm_spim_nand: NMBM has been successfully attached"

Fixes: 1748ce829537 ("mediatek: add support for WAVLINK WL-WN536AX6 Rev a")
Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23682
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agokernel: modules: mppe: clean up 23464/head
Qingfang Deng [Thu, 21 May 2026 01:53:46 +0000 (09:53 +0800)] 
kernel: modules: mppe: clean up

Remove kmod-crypto-arc4 and kmod-crypto-ecb from depends, as it no
longer uses skcipher API for encryption.
Remove the non-existent CONFIG_PPP_MPPE_MPPC symbol.

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23464
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agokernel: modules: slhc: remove CRC_CCITT depends
Qingfang Deng [Thu, 21 May 2026 01:53:38 +0000 (09:53 +0800)] 
kernel: modules: slhc: remove CRC_CCITT depends

slhc does not depends on CRC_CCITT according to kernel Kconfig.

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23464
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agobusybox: fix signal handling in non-interactive envirement 23787/head
Seo Suchan [Sun, 14 Jun 2026 04:07:23 +0000 (13:07 +0900)] 
busybox: fix signal handling in non-interactive envirement

fixes  https://github.com/openwrt/openwrt/issues/23745

upstream had bug bb_got_signal to be never cleared in noninteractive session, this fixes this while waiting for upstream merge.

the patch iself is written by  Ian Cooper <iancooper@hotmail.com>

Signed-off-by: Seo Suchan <tjtncks@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23787
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoipq806x: fix USB port for Nokia AC400i 23740/head
Sebastian Schaper [Sat, 6 Jun 2026 18:00:57 +0000 (20:00 +0200)] 
ipq806x: fix USB port for Nokia AC400i

drop usb3_0 node, enable usb3_1 PHYs, set gpio58 for power enable

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
Link: https://github.com/openwrt/openwrt/pull/23740
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoipq806x: enable i2c thermal sensor for Nokia AC400i
Sebastian Schaper [Sat, 6 Jun 2026 13:38:23 +0000 (15:38 +0200)] 
ipq806x: enable i2c thermal sensor for Nokia AC400i

The board contains a TI TMP75 temperature sensor located near the ethernet
PHYs, attached to the thermal mass of the back case, close to main SoC.

Configure `gsbi2` for i2c mode and include `kmod-hwmon-lm75` package.

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
Link: https://github.com/openwrt/openwrt/pull/23740
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoipq806x: fix wifi for Nokia AC400i
Sebastian Schaper [Sat, 6 Jun 2026 13:26:51 +0000 (15:26 +0200)] 
ipq806x: fix wifi for Nokia AC400i

In recent versions of OpenWrt, only 2.4G wifi is working.
Drop upstream overrides for pcie nodes to declare perst-gpios 3 and 48.

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
Link: https://github.com/openwrt/openwrt/pull/23740
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoipq806x: fix ethernet for Nokia AC400i
Sebastian Schaper [Sat, 6 Jun 2026 07:40:06 +0000 (09:40 +0200)] 
ipq806x: fix ethernet for Nokia AC400i

In previous versions of OpenWrt, ethernet was partially working,
sometimes depending on initialization state left by bootloader.
Since the switch to NSS drivers, it is completely broken.

- swap GMAC to PHY address mapping
- use rgmii internal delay
- drop `fixed-link` rates
- add pinctrl settings for rgmii0
- declare reset GPIO 51 (used for both PHYs)
- disable hibernation

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
Link: https://github.com/openwrt/openwrt/pull/23740
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agomediatek: fix WLAN LED indication for ipTIME AX3000SE 23723/head
Donghyun Ko [Tue, 9 Jun 2026 12:12:33 +0000 (21:12 +0900)] 
mediatek: fix WLAN LED indication for ipTIME AX3000SE

OpenWrt has recently added the "network" LED trigger to support routers
that have a single WLAN LED for multiple phys.

This patch replaces the temporary workaround used during initial
support, where the LED was triggered only by activity on a single phy.

With this change, the WLAN LED on the ipTIME AX3000SE now correctly
indicates activity on both `phy0` and `phy1`.

Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23723
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agokernel: bump 6.12 to 6.12.93 23730/head
Shiji Yang [Tue, 9 Jun 2026 15:42:36 +0000 (23:42 +0800)] 
kernel: bump 6.12 to 6.12.93

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

Manually rebased patch:
- bcm27xx/patches-6.12/950-0755-drm-v3d-CPU-job-submissions-shouldn-t-affect-V3D-GPU.patch[1]

All other patches are automatically refreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.93&id=acd55ea40d03e06f20a9986363019e0e5173990e
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23730
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agovscode: update editor formatting and line endings settings 23750/head
Josef Schlehofer [Fri, 9 Jan 2026 14:05:45 +0000 (15:05 +0100)] 
vscode: update editor formatting and line endings settings

Enable trailing whitespace trimming, insert final newline, and force LF.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23750
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agorealtek: mdio: backport upstream patches 23768/head
Markus Stockhausen [Sat, 13 Jun 2026 14:36:31 +0000 (16:36 +0200)] 
realtek: mdio: backport upstream patches

Another round of MDIO driver patches was accepted upstream.
Not production relevant as OpenWrt still uses the downstream
driver.

Link: https://github.com/openwrt/openwrt/pull/23768
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
4 weeks agorealtek: dts: add phy-package to LGS352C 23711/head
Markus Stockhausen [Mon, 8 Jun 2026 16:25:50 +0000 (18:25 +0200)] 
realtek: dts: add phy-package to LGS352C

Describe the RTL8218D packages in the device tree.

Link: https://github.com/openwrt/openwrt/pull/23711
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
4 weeks agorealtek: dts: add phy-package to XGS1x10 series
Markus Stockhausen [Mon, 8 Jun 2026 16:23:58 +0000 (18:23 +0200)] 
realtek: dts: add phy-package to XGS1x10 series

Describe the RTL8218D packages in the device tree.

Link: https://github.com/openwrt/openwrt/pull/23711
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
4 weeks agoppp: update to 2.5.3 23540/head
Qingfang Deng [Tue, 26 May 2026 09:17:21 +0000 (17:17 +0800)] 
ppp: update to 2.5.3

Update to 2.5.3 and use the official tarball.

Changelog: https://github.com/ppp-project/ppp/releases/tag/v2.5.3

Removed upstreamed:
- 000-pppd-session-fixed-building-with-gcc-15.patch
- 001-pppdump-fixed-building-with-gcc-15.patch
- 501-fix-memcpy-fortify.patch
- 502-remove_mru.patch

Manually rebased:
- 500-add-pptp-plugin.patch

Add a pending patch to relax the check to avoid breaking existing
configurations.

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23540
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoipq40xx: use nvmem for cal data 22178/head
Rosen Penev [Mon, 23 Feb 2026 04:12:13 +0000 (20:12 -0800)] 
ipq40xx: use nvmem for cal data

Userspace handling is deprecated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22178
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agokernel: bump 6.18 to 6.18.35 23722/head
John Audia [Tue, 9 Jun 2026 12:42:01 +0000 (08:42 -0400)] 
kernel: bump 6.18 to 6.18.35

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

Removed upstreamed:
  microchipsw/patches-6.18/0009-v7.2-net-phy-micrel-fix-LAN8814-QSGMII-soft-reset.patch[1]

All other patches automatically rebased via update_kernel.sh

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.35&id=58b2c0f096b36a93e1975b6fa7f8d629e6fd9425

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/23722
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agobuild: fixup version.date creation for source archives 23756/head
Paul Spooren [Fri, 12 Jun 2026 14:49:44 +0000 (16:49 +0200)] 
build: fixup version.date creation for source archives

Published sources archives may contain a mixture of MTIMEs, so taking the time
of the first file found varies based on filesystem order. To fix this, sort all
MTIMEs and take the latest.

Since piping into a file directly creates that file, we also need to
specifically tell `find` to ignore `version.date`.

Furthermore, move this prior to the ./src copy step, since for some packages,
the OpenWrt build system ships extra ./src files, which would introduce the
wrong timestamps again.

Fix: e36c2946b7b build: derive PKG_SOURCE_DATE_EPOCH from the unpacked source tree
Link: https://github.com/openwrt/openwrt/pull/23756
Signed-off-by: Paul Spooren <mail@aparcar.org>
4 weeks agogeneric: mxl862xx: allow CPU/SerDes ports to probe on firmware < 1.0.84 23664/head
Aliaksandr Babrykovich [Fri, 5 Jun 2026 08:16:44 +0000 (10:16 +0200)] 
generic: mxl862xx: allow CPU/SerDes ports to probe on firmware < 1.0.84

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

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

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

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

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

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

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

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

This symbol was already disabled via UBOOT_CUSTOMIZE_CONFIG.

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

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

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

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

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

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

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

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

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

  - before:

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

  - after:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

All other patches rebased.

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

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23669
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 weeks agoath79: ws-ap3610: assign MAC address with nvmem 23146/head
Rosen Penev [Tue, 28 Apr 2026 21:52:29 +0000 (14:52 -0700)] 
ath79: ws-ap3610: assign MAC address with nvmem

Userspace handling is deprecated.

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

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

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

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

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

Link: https://github.com/openwrt/openwrt/pull/23741
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>