]> git.ipfire.org Git - thirdparty/openwrt.git/log
thirdparty/openwrt.git
9 hours agorealtek: fix SFP support on Plasma Cloud ESX28/PSX28 main master
Jonas Jelonek [Sat, 30 May 2026 20:54:59 +0000 (20:54 +0000)] 
realtek: fix SFP support on Plasma Cloud ESX28/PSX28

Like other RTL931x devices, the Plasma Cloud ESX28 and PSX28 also have
inverted polarity on the SerDes which drive the SFP ports. Commonly,
those always seem to have inverted TX polarity. This was missing from
when the devices were added at which time SFP on RTL931x wasn't working
at all yet. Add the polarity to the DTS now.

Verified on Plasma Cloud PSX28.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
21 hours agotools/fakeroot: update to 1.38.1 23577/head
Shiji Yang [Thu, 28 May 2026 23:26:25 +0000 (07:26 +0800)] 
tools/fakeroot: update to 1.38.1

Changelog:
https://salsa.debian.org/clint/fakeroot/-/blob/debian/1.38.1-1/debian/changelog?ref_type=tags

Remove upstreamed patches:
- 400-alpine-libc.musl-fix.patch[1]
- 600-macOS.patch[2][3]

[1] https://salsa.debian.org/clint/fakeroot/-/commit/0b79007b7dc7ac32bca81ec37f4f36fc47a48e16
[2] https://salsa.debian.org/clint/fakeroot/-/commit/6fc4f9d8b198df565712e3ea7af9660a8eeaa69a
[3] https://salsa.debian.org/clint/fakeroot/-/commit/6bce2e78372e513f2795808e4fb8c712605a562f
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23577
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
21 hours agoairoha: disable unused crypto algorithms 23536/head
Aleksander Jan Bajkowski [Sun, 10 May 2026 21:49:18 +0000 (23:49 +0200)] 
airoha: disable unused crypto algorithms

Disable unused crypto algorithms. If needed, install required packages.

Suggested-by: Qingfang Deng <dqfext@gmail.com>
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/23536
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
23 hours agorealtek: eth: convert to page_pool 23483/head
Markus Stockhausen [Fri, 22 May 2026 16:34:17 +0000 (18:34 +0200)] 
realtek: eth: convert to page_pool

Drop the legacy receive handling and convert the driver to make
use of a zero-copy receive path. To save memory use the page
pool fragment feature. This way two SKBs will fit into one 4KB
page. With the parametrization of this patch the driver will
allocate about 600KB of receive buffers (2 rings with 300KB
each. This already includes space for the SKB header.

iperf3 benchmark gives:

RTL930x
- 1x stream send / from switch 170 Mbit -> 170 MBit
- 4x stream send / from switch 150 MBit -> 150 MBit
- 1x stream receive / to switch 320 MBit -> 400 MBit
- 4x stream receive / to switch 260 MBit -> 300 MBit

Link: https://github.com/openwrt/openwrt/pull/23483
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
23 hours agorealtek: eth: avoid TX buffer memory leak
Markus Stockhausen [Sun, 24 May 2026 08:41:55 +0000 (10:41 +0200)] 
realtek: eth: avoid TX buffer memory leak

Although never observed, a transmit timeout might happen.
In that case there is a resource leak inside rteth_tx_timeout().
This happens when rteth_setup_ring_buffer() reinitializes the
transmit buffers and overwrites all transmit slots. Any linked
SKB is lost and leaked at this point.

Be defensive and add a cleanup rteth_free_tx_buffers() function.
Call this alongside rteth_free_rx_buffers() where needed.

Link: https://github.com/openwrt/openwrt/pull/23483
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
23 hours agorealtek: eth: Use right helper for SKB cleanup
Markus Stockhausen [Sun, 24 May 2026 08:48:26 +0000 (10:48 +0200)] 
realtek: eth: Use right helper for SKB cleanup

There are two helpers to cleanup SKBs that call iternally
dev_kfree_skb_any_reason() but with different error codes.

- dev_kfree_skb_any() reason SKB_DROP_REASON_NOT_SPECIFIED
- dev_consume_skb_any() reason SKB_CONSUMED

The driver does not distinct between the two. Change this and
clean up a SKB that was handed over to the hardware with
dev_consume_skb_any(). This way kernel knows that everything
went well.

Link: https://github.com/openwrt/openwrt/pull/23483
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
23 hours agorealtek: eth: drop device managed netdev registration
Markus Stockhausen [Sun, 24 May 2026 08:13:41 +0000 (10:13 +0200)] 
realtek: eth: drop device managed netdev registration

The cleanup order of the driver is quite confusing. At least
two issues exist.

- phylink_destroy() is missing
- The implicit unregister_netdev() at the end of rteth_remove() is called
  too late. The manually managed resources are removed before. This can
  lead to stale data access.

Convert to register_netdev() and bring rteth_remove() into a meaningful
order to avoid such issues when converting to page_pool.

Link: https://github.com/openwrt/openwrt/pull/23483
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
23 hours agorealtek: eth: Add return value to rteth_setup_ring_buffer()
Markus Stockhausen [Sun, 24 May 2026 07:59:39 +0000 (09:59 +0200)] 
realtek: eth: Add return value to rteth_setup_ring_buffer()

In the future this function will work on page_pool and might fail.
Add a return code to it and handle it where needed.

Link: https://github.com/openwrt/openwrt/pull/23483
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
23 hours agorealtek: eth: convert to scoped_guard
Markus Stockhausen [Sun, 24 May 2026 07:51:31 +0000 (09:51 +0200)] 
realtek: eth: convert to scoped_guard

In the future there will be some error paths inside locking.
Make cleanup easier by converting the sections to scoped_guard.

Link: https://github.com/openwrt/openwrt/pull/23483
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
23 hours agorealtek: eth: improve error handling during probe
Markus Stockhausen [Sun, 24 May 2026 07:34:29 +0000 (09:34 +0200)] 
realtek: eth: improve error handling during probe

The error handling flow during probing has some shortcomings.

1. In case an error occurs after netif_napi_add() this must be
   cleaned up with a call to netif_napi_del().
2. If devm_register_netdev() fails not only NAPI must be cleaned
   up but also the phylink.

Add a cleanup section for the probe. Implement it generically
(checking for 0/NULL values) so it can be called any time when
encountering probe failures.

Link: https://github.com/openwrt/openwrt/pull/23483
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
43 hours agoimage: fix per device targz rootfs wrong suffix and redundant images 23570/head
Guoxin Pu [Thu, 28 May 2026 07:46:20 +0000 (15:46 +0800)] 
image: fix per device targz rootfs wrong suffix and redundant images

In commit d89cb72c23fea53883c1e6203020d9b555208452 , a new rootfs type "targz" was introduced, to correctly pack the rootfs AFTER `DEVICE_PACKAGES` installation (unlike the old simple `rootfs.tar.gz`) .

The expected release artifact shall be a single corresponding tar gz release accompanying or relacing the old simple `rootfs.tar.gz`.

However, if one take a look at the v25.12 series release download pages, e.g. [25.12.4/x86/64](https://downloads.openwrt.org/releases/25.12.4/targets/x86/64/), one could see that there're now four release artifacts related to rootfs targz:

- [generic-targz-combined-efi.img.gz](https://downloads.openwrt.org/releases/25.12.4/targets/x86/64/openwrt-25.12.4-x86-64-generic-targz-combined-efi.img.gz)
- [generic-targz-combined.img.gz](https://downloads.openwrt.org/releases/25.12.4/targets/x86/64/openwrt-25.12.4-x86-64-generic-targz-combined.img.gz)
- [generic-targz-rootfs.img.gz](https://downloads.openwrt.org/releases/25.12.4/targets/x86/64/openwrt-25.12.4-x86-64-generic-targz-rootfs.img.gz)
- [rootfs.tar.gz](https://downloads.openwrt.org/releases/25.12.4/targets/x86/64/openwrt-25.12.4-x86-64-rootfs.tar.gz)

It's obvious the new `targz` release actually reuses the same `TARGET_ROOTFS_{TYPE}` handler same as `squashfs`, `ext4` and alike. And the three `generic-targz` img.gz contains the same expected tar gz either as their second partition, or as the whole image. This could be verified by the following script:

```bash
URL_PARENT=https://downloads.openwrt.org/releases/25.12.4/targets/x86/64/openwrt-25.12.4-x86-64-
for TYPE in combined-efi combined rootfs; do
        curl -L "${URL_PARENT}generic-targz-${TYPE}.img.gz" | gzip -cd > "${TYPE}.img"
done
for TYPE in combined-efi combined; do
        INFO=$(sfdisk -d "${TYPE}.img" | sed -n 's/^'"${TYPE}.img"'2 : start= \+\([0-9]\+\), size= \+\([0-9]\+\),.\+.\+$/\1 \2/p')
        dd if="${TYPE}.img" of="${TYPE}.tar.gz" bs=512 skip="${INFO%% *}" count="${INFO##* }"
done
cp rootfs.img rootfs.tar.gz
sha256sum combined-efi.tar.gz combined.tar.gz rootfs.tar.gz
file rootfs.tar.gz
```

Output:
```log
  % Total    % Received % Xferd  Average Speed  Time    Time    Time   Current
                                 Dload  Upload  Total   Spent   Left   Speed
100 13.12M 100 13.12M   0      0 194.6M      0                              0
  % Total    % Received % Xferd  Average Speed  Time    Time    Time   Current
                                 Dload  Upload  Total   Spent   Left   Speed
100 12.93M 100 12.93M   0      0 190.9M      0                              0
  % Total    % Received % Xferd  Average Speed  Time    Time    Time   Current
                                 Dload  Upload  Total   Spent   Left   Speed
100  7.13M 100  7.13M   0      0 257.6M      0                              0
GPT PMBR size mismatch (246304 != 246334) will be corrected by write.
The backup GPT table is corrupt, but the primary appears OK, so that will be used.
The backup GPT table is not on the end of the device.
212992+0 records in
212992+0 records out
109051904 bytes (109 MB, 104 MiB) copied, 0.258064 s, 423 MB/s
212992+0 records in
212992+0 records out
109051904 bytes (109 MB, 104 MiB) copied, 0.261621 s, 417 MB/s
18b98d3562dc3067ae095ee44d4ff3158cf84e89063c3df66c0ef6638922ba71  combined-efi.tar.gz
18b98d3562dc3067ae095ee44d4ff3158cf84e89063c3df66c0ef6638922ba71  combined.tar.gz
18b98d3562dc3067ae095ee44d4ff3158cf84e89063c3df66c0ef6638922ba71  rootfs.tar.gz
rootfs.tar.gz: gzip compressed data, max compression, from Unix, original size modulo 2^32 0
```

The checksum of the extracted, actually expected .tar.gz are all same. And if we peek inside its content, it's indeed what we expected:

```
> tar -tzf rootfs.tar.gz
./
./bin/
./bin/ash
./bin/board_detect
./bin/busybox
./bin/cat
./bin/chgrp
./bin/chmod
./bin/chown
./bin/config_generate
./bin/cp
./bin/date
...
```

A disk image with a `tar.gz` as its second partiton doesn't boot anyway and I doubt if there's any mechanic to make it bootable. So `generic-targz-combined-efi.img.gz` and `generic-targz-combined.img.gz` are not needed at all, and `generic-targz-rootfs.img.gz` shall be renamed to have a `tar.gz` suffix instead.

Therefore work around this by skipping creating images for fs `targz` in the general loop, and only create the rootfs.tar.gz later for `targz` "fs"

This affects both the real builder and imagebuilder. I've tested this with multiple imagebuilders.

Tested with `openwrt-imagebuilder-25.12.4-mvebu-cortexa53.Linux-x86_64`:

```sh
rm -rf bin && make image PROFILE=generic
```

Without the fix:

```
> tree bin/
bin/
└── targets
    └── x86
        └── 64
            ├── openwrt-25.12.4-x86-64-generic.bom.cdx.json
            ├── openwrt-25.12.4-x86-64-generic-ext4-combined-efi.img.gz
            ├── openwrt-25.12.4-x86-64-generic-ext4-combined.img.gz
            ├── openwrt-25.12.4-x86-64-generic-ext4-rootfs.img.gz
            ├── openwrt-25.12.4-x86-64-generic-kernel.bin
            ├── openwrt-25.12.4-x86-64-generic.manifest
            ├── openwrt-25.12.4-x86-64-generic-rootfs.tar.gz
            ├── openwrt-25.12.4-x86-64-generic-squashfs-combined-efi.img.gz
            ├── openwrt-25.12.4-x86-64-generic-squashfs-combined.img.gz
            ├── openwrt-25.12.4-x86-64-generic-squashfs-rootfs.img.gz
            ├── openwrt-25.12.4-x86-64-generic-targz-combined-efi.img.gz
            ├── openwrt-25.12.4-x86-64-generic-targz-combined.img.gz
            ├── openwrt-25.12.4-x86-64-generic-targz-rootfs.img.gz
            ├── profiles.json
            └── sha256sums
```

With the fix:
```
> tree bin/
bin/
└── targets
    └── x86
        └── 64
            ├── openwrt-25.12.4-x86-64-generic.bom.cdx.json
            ├── openwrt-25.12.4-x86-64-generic-ext4-combined-efi.img.gz
            ├── openwrt-25.12.4-x86-64-generic-ext4-combined.img.gz
            ├── openwrt-25.12.4-x86-64-generic-ext4-rootfs.img.gz
            ├── openwrt-25.12.4-x86-64-generic-kernel.bin
            ├── openwrt-25.12.4-x86-64-generic.manifest
            ├── openwrt-25.12.4-x86-64-generic-rootfs.tar.gz
            ├── openwrt-25.12.4-x86-64-generic-squashfs-combined-efi.img.gz
            ├── openwrt-25.12.4-x86-64-generic-squashfs-combined.img.gz
            ├── openwrt-25.12.4-x86-64-generic-squashfs-rootfs.img.gz
            ├── openwrt-25.12.4-x86-64-generic-targz-rootfs.tar.gz
            ├── profiles.json
            └── sha256sums
```

And with `openwrt-imagebuilder-25.12.4-mvebu-cortexa53.Linux-x86_64`:

```sh
rm -rf bin && make image PROFILE=ripe_atlas-v5
```

Without the fix:
```
> tree bin/
bin/
└── targets
    └── mvebu
        └── cortexa53
            ├── openwrt-25.12.4-mvebu-cortexa53-ripe_atlas-v5.bom.cdx.json
            ├── openwrt-25.12.4-mvebu-cortexa53-ripe_atlas-v5-ext4-sdcard.img.gz
            ├── openwrt-25.12.4-mvebu-cortexa53-ripe_atlas-v5.manifest
            ├── openwrt-25.12.4-mvebu-cortexa53-ripe_atlas-v5-rootfs.tar.gz
            ├── openwrt-25.12.4-mvebu-cortexa53-ripe_atlas-v5-squashfs-sdcard.img.gz
            ├── openwrt-25.12.4-mvebu-cortexa53-ripe_atlas-v5-targz-sdcard.img.gz
            ├── profiles.json
            └── sha256sums
```

With the fix:
```
> tree bin/
bin/
└── targets
    └── mvebu
        └── cortexa53
            ├── openwrt-25.12.4-mvebu-cortexa53-ripe_atlas-v5.bom.cdx.json
            ├── openwrt-25.12.4-mvebu-cortexa53-ripe_atlas-v5-ext4-sdcard.img.gz
            ├── openwrt-25.12.4-mvebu-cortexa53-ripe_atlas-v5.manifest
            ├── openwrt-25.12.4-mvebu-cortexa53-ripe_atlas-v5-rootfs.tar.gz
            ├── openwrt-25.12.4-mvebu-cortexa53-ripe_atlas-v5-squashfs-sdcard.img.gz
            ├── openwrt-25.12.4-mvebu-cortexa53-ripe_atlas-v5-targz-rootfs.tar.gz
            ├── profiles.json
            └── sha256sums
```

Signed-off-by: Guoxin Pu <pugokushin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23570
Signed-off-by: Robert Marko <robimarko@gmail.com>
45 hours agoethtool: update to 7.0 23574/head
Paul Donald [Thu, 28 May 2026 13:11:00 +0000 (16:11 +0300)] 
ethtool: update to 7.0

Version 7.0 - Apr 28, 2026
* Feature: support MSE display (--show-mse)
* Feature: add 2 new link_ext_state names
* Fix: fix index calculation in ixgbe register dump (-d)
* Fix: cmis wavelength tolerance output (-m)
* Fix: duplicate sfpid Active Cu compliance output (-m)

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23574
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 days agorockchip: enable maskrom button for NanoPi R5C/R5S 23558/head
Ryan Leung [Wed, 27 May 2026 00:38:50 +0000 (10:38 +1000)] 
rockchip: enable maskrom button for NanoPi R5C/R5S

The MASKROM button was added to the device tree for FriendlyELEC NanoPi R5C/R5S in Linux 6.17 in
07e04c071a35 ("arm64: dts: rockchip: Add maskrom button to NanoPi R5S + R5C").

Now that rockchip target has switched to 6.18 in 67740e311b8e ("rockchip: switch to kernel 6.18"),
add `kmod-button-hotplug` and `kmod-input-adc-keys` to the default packages for NanoPi R5C/R5S

Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23558
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 days agoramips: add support for ELECOM WMC-C2533GST 23568/head
Taiga Ogawa [Tue, 26 May 2026 04:04:47 +0000 (04:04 +0000)] 
ramips: add support for ELECOM WMC-C2533GST

ELECOM WMC-C2533GST is a 2.4/5 GHz band 11ac (Wi-Fi 5) mesh
router, based on MT7621A.

It shares the same basic hardware and 32 MiB flash layout as
WRC-2533GST2, but the factory image uses the WMC-2HC hardware name.

Specification:

- SoC           : MediaTek MT7621A
- RAM           : DDR3 256 MiB
- Flash         : SPI-NOR 32 MiB (Macronix MX25L25635E)
- WLAN          : 2.4/5 GHz 4T4R (2x MediaTek MT7615)
- Ethernet      : 10/100/1000 Mbps x5
  - Switch      : MediaTek MT7530 (SoC)
- LED/keys      : 4x/6x (2x buttons, 1x slide-switch)
- UART          : through-hole on PCB
  - J4: 3.3V, GND, TX, RX from ethernet port side
  - 57600n8
- Power         : 12VDC, 1.5A

Flash instruction using factory image:

1. Boot WMC-C2533GST normally with "Router" mode
2. Access to "http://192.168.2.1/" and open firmware update page
   ("ファームウェア更新")
3. Select the OpenWrt factory image and click apply ("適用") button
4. Wait ~150 seconds to complete flashing

MAC addresses:

LAN     : 04:AB:18:xx:xx:BF (Factory, 0xFFF4 (hex))
WAN     : 04:AB:18:xx:xx:C0 (Factory, 0xFFFA (hex))
2.4GHz  : 04:AB:18:xx:xx:C1 (Factory, 0x4    (hex))
5GHz    : 04:AB:18:xx:xx:C2 (Factory, 0x8004 (hex))

Signed-off-by: Taiga Ogawa <zectaiga@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23568
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 days agouboot-sunxi: bump to 2026.04 23360/head
Chukun Pan [Thu, 16 Apr 2026 10:06:08 +0000 (18:06 +0800)] 
uboot-sunxi: bump to 2026.04

This version supports boards with 1.5GB or 3GB of RAM.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/23360
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 days agolldpd: bump to 1.0.22 23567/head
Paul Donald [Wed, 27 May 2026 16:16:22 +0000 (19:16 +0300)] 
lldpd: bump to 1.0.22

Changes:
https://github.com/lldpd/lldpd/releases/tag/1.0.22

Fixes:

- Fix out-of-bound read access when removing VLAN tag (CVE-2026-46433, issue 787)
- Reject 0-length management address in LLDP
- Fix race condition when creating the control socket
- Fix FDP MAC address
- Fix memory leak in the BSD bridge query path
- Fix duplicate management addresses when merging EDP VLAN frames

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23567
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 days agorealtek: rtl930x: add support for Hasivo F1100W-4SX-4XGT and variants 23020/head
Lars Gierth [Thu, 16 Apr 2026 22:33:34 +0000 (00:33 +0200)] 
realtek: rtl930x: add support for Hasivo F1100W-4SX-4XGT and variants

This commit adds support for the Hasivo F1100W-4SX-4XGT ethernet 10Gbase and PoE switch.
It also adds support for a whole matrix of variants of this device:

| Device              | Revision | RAM    | PoE | Console  |
|---------------------|----------|--------|-----|----------|
| F1100W-4SX-4XGT     | v1.03    | 256 MB | n/a | RJ45     |
| F1100W-4SX-4XGT     | v1.02    | 512 MB | n/a | RJ45     |
| F1100W-4SX-4XGT-SE  | v1.03    | 256 MB | n/a | internal |
| F1100W-4SX-4XGT-SE  | v1.02    | 512 MB | n/a | internal |
| F1100WP-4SX-4XGT    | v1.03    | 256 MB | yes | RJ45     |
| F1100WP-4SX-4XGT    | v1.02    | 512 MB | yes | RJ45     |
| F1100WP-4SX-4XGT-SE | v1.03    | 256 MB | yes | internal |
| F1100WP-4SX-4XGT-SE | v1.02    | 512 MB | yes | internal |

The devices are identical except for presence of the PoE daughter board,
RJ45 console port, and 256 or 512 MB RAM.

The non-512 MB image also works on the older 512 MB board revisions, but not vice versa.

Credit to @mensi @bevanweiss @markc1984

Hardware
--------

|          |                                                           |
|----------|-----------------------------------------------------------|
| SoC      | RTL9303 rev B                                             |
| RAM      | 256 MB Samsung K4B2G1646F DDR3L (board revision v1.03),   |
|          | or 512 MB unknown module (board revision v1.02 and older) |
| Flash    | 32 MB Macronix MX25L25645G SPI NOR,                       |
|          | 29 MiB usable by OpenWrt                                  |
| Ethernet | 4x SFP+ via SoC (10G/2.5G/1G),                            |
|          | 4x RJ45 via 4x RTL8261BE PHY (10G/5G/2.5G/1G/100M/10M)    |
| PoE      | only on WP variants                                       |
|          | 1x 802.3bt 90 W (port 5)                                  |
|          | 3x 802.3at 30 W (ports 6, 7, 8)                           |
|          | via daughter board with Hasivo HS104PTI controller        |
|          | PoE works but is unmanaged --> future work                |
| LEDs     | 1x system orange/green, 8x link green/red, 4x PoE orange  |
| Button   | Reset                                                     |
| Console  | RJ45 38400 bps 8n1, or pin holes on SE variants           |

Installing OpenWrt
------------------

Note: With vendor firmware 7.1.9, the bootloader's network profile is broken.
We need to select a different profile with port/phy overlap to make the TFTP
transfer work. Then only port 5 works in the OpenWrt initramfs, but all ports
work fine after flashing, when we don't need the profile trick anymore.

1. Attach to RJ45 serial console port using a cisco cable.
2. Attach your computer to Port 5 (the first RJ45 port).
3. Serve initramfs-kernel.bin on TFTP 192.168.1.111.
4. Power on the device.
5. Interrupt U-Boot by pressing `Ctrl+C`, then `Z`, then `H`, during 3 second countdown.
6. Run: `setenv boardmodel 'RTL9303_5x8261BE_2XGE_ZHIHUI' ; rtk network on`
7. Run: `tftpboot 0x84f00000 initramfs-kernel.bin ; bootm 0x84f00000`
8. Use `mtd dump` to make backups of all flash partitions.
9. Use SCP to copy `squashfs-sysupgrade.bin` to the device, then run `sysupgrade`.

Restoring factory firmware
--------------------------

OpenWrt uses the `RUNTIME` and `RUNTIME2` partitions as one combined partition.
To restore them from backups, boot from `initramfs-kernel.bin` just like during
the installation, then use `mtd write` to write your backups of the factory
`mtd5` and `mtd6` partitions.

Notes/Quirks
------------

- U-Boot interruption is obfuscated. Press `Ctrl+C`, then `Z`, then `H`,
  during the 3 second countdown.
- U-Boot rtk network profile is broken. Use the `RTL9303_5x8261BE_2XGE_ZHIHUI` profile
  instead, it makes at least port 5 work.
- MAC address is stored on the `RUNTIME` or `RUNTIME2` partitions, which are used by OpenWrt.
  Instead, we generate one random MAC address and store it in the U-Boot environment.
- PoE works but is unmanaged. The HS104 driver is worked on in
  https://github.com/openwrt/openwrt/pull/22245 and will work with ethtool and the
  kernel's new `pse-pd` subsystem.

Signed-off-by: Lars Gierth <larsg@systemli.org>
Link: https://github.com/openwrt/openwrt/pull/23020
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 days agolinux-firmware: update to 20260519 23440/head
John Audia [Tue, 19 May 2026 18:15:47 +0000 (14:15 -0400)] 
linux-firmware: update to 20260519

% git log --no-merges --pretty=oneline --abbrev-commit 20260410...20260519
2f90f4fe5c67 ASoC: tas2783: Add Firmware files for tas2783A projects
238e3a14b64b linux-firmware: add firmware for MT7927 WiFi device
1b9b0fbf2d85 Add HP ISH firmware for Intel Panther Lake systems
4ea6552ba82d ti: Add PCM6240 firmware with multiple audio profiles support
a21fb799c496 qcom: add CDSP firmware for shikra platform
87e59b4701dd amdgpu: DMCUB updates for various ASICs
321c5c3195b8 qcom: update ADSP firmware for x1e80100 platform
1290919565f9 lt*_fw.bin: move to Lontium subdir
d2e0a05bbbd1 qcom: Add cdsp1r.jsn for sa8775p platform
7a8ddf10f67d amdgpu: rembrandt DMCUB v4.0.74.0
dec60417e513 linux-firmware: Add firmware for Lontium LT9611C
fb0889c0d3de xe: Update GUC to v70.65.0 for LNL, BMG, PTL
3dd246799540 amdgpu: update SMU 14.0.3 kicker firmware
dbb56961ead8 amdgpu: update navy flounder firmware
21af5fe0422f amdgpu: update SDMA 6.1.3 firmware
aa91bd8573d1 amdgpu: update PSP 14.0.5 firmware
68049393d5d4 amdgpu: update GC 11.5.3 firmware
0924d64e216d amdgpu: update yellow carp firmware
39d7abb0c9fa amdgpu: update VCN 5.0.0 firmware
5ff473283bf1 amdgpu: update PSP 14.0.3 firmware
e6f6fdd4ad2a amdgpu: update GC 12.0.1 firmware
472586fd9eac amdgpu: update VPE 6.1.3 firmware
5942cfb5487d amdgpu: update SDMA 6.1.2 firmware
1343c08dd15c amdgpu: update PSP 14.0.4 firmware
59e6ce956f97 amdgpu: update GC 11.5.2 firmware
2a12d06438f2 amdgpu: update PSP 14.0.2 firmware
bb95ff5c914f amdgpu: update GC 12.0.0 firmware
37ade0c7205b amdgpu: update sienna cichlid firmware
bfbd965f8839 amdgpu: update VCN 3.1.2 firmware
5c75f58bd82a amdgpu: update PSP 13.0.5 firmware
c2f407e38895 amdgpu: update GC 10.3.6 firmware
fae4beb09486 amdgpu: update VCN 4.0.4 firmware
fa4afb3116e4 amdgpu: update SDMA 6.0.2 firmware
d959c79c63b4 amdgpu: update PSP 13.0.7 firmware
e89391b4b91c amdgpu: update GC 11.0.2 firmware
e8df2b87fc5f amdgpu: update navi14 firmware
d16d7da80b95 amdgpu: update SDMA 6.0.3 firmware
75d99d4ebe1f amdgpu: update PSP 13.0.10 firmware
6dc4bf52e586 amdgpu: update GC 11.0.3 firmware
06f06f8378bb amdgpu: update navi12 firmware
c0132eeaec47 amdgpu: update vangogh firmware
00109c672c23 amdgpu: update navi10 firmware
6bc21819c102 amdgpu: update green sardine firmware
9f3ccdf673cc amdgpu: update PSP 13.0.0 kicker firmware
d00803ea1b88 amdgpu: update VCN 4.0.0 firmware
12715bb901e7 amdgpu: update SDMA 6.0.0 firmware
1960eb3ec865 amdgpu: update PSP 13.0.0 firmware
d1363e897346 amdgpu: update GC 11.0.0 firmware
68be13f1422b amdgpu: update SDMA 4.4.4 firmware
e086a9c4f819 amdgpu: update VCN 5.0.1 firmware
cb8c635cb280 amdgpu: update PSP 13.0.12 firmware
a00faff4e370 amdgpu: update GC 9.5.0 firmware
6997f8cc462d amdgpu: update SDMA 4.4.5 firmware
b04f8515c3a7 amdgpu: update PSP 13.0.14 firmware
08c008bef3e5 amdgpu: update VPE 6.1.1 firmware
c3f882e6ff02 amdgpu: update VCN 4.0.6 firmware
fd629bbf8365 amdgpu: update SDMA 6.1.1 firmware
42a0642a7881 amdgpu: update PSP 14.0.1 firmware
62dfb617c8f6 amdgpu: update GC 11.5.1 firmware
fc8d40beffc2 amdgpu: update PSP 13.0.11 firmware
3ee38497f3f8 amdgpu: update GC 11.0.4 firmware
72c6e45ecaee amdgpu: update beige goby firmware
0b9330f11138 amdgpu: update VCN 4.0.3 firmware
0eedad7763a8 amdgpu: update SDMA 4.4.2 firmware
f30853cced89 amdgpu: update PSP 13.0.6 firmware
94b4108ecf55 amdgpu: update GC 9.4.3 firmware
f3ac5b46667c amdgpu: update VPE 6.1.0 firmware
7982621581e3 amdgpu: update VCN 4.0.5 firmware
889bcab02fd1 amdgpu: update SDMA 6.1.0 firmware
a6422828b542 amdgpu: update PSP 14.0.0 firmware
e559dd46ec6a amdgpu: update GC 11.5.0 firmware
d3074835ee00 amdgpu: update VCN 4.0.2 firmware
b9d2ce0e0ce6 amdgpu: update SDMA 6.0.1 firmware
bcd00e14c880 amdgpu: update PSP 13.0.4 firmware
dd067330ca05 amdgpu: update GC 11.0.1 firmware
0ace74c183b0 amdgpu: update dimgrey cavefish firmware
baa74997c081 amdgpu: update renoir firmware
f233a517c46e amdgpu: update aldebaran firmware
59ea796e7015 rtl_bt: Add missing rtl8761a_config.bin for RTL8761AU
b9a35af9f69b amdgpu: DMCUB updates for various ASICs
9701f2d151af Linux-firmware: Add Dell ISH firmware 581.7783.0 for Intel Panther Lake systems.
af7f25c1a3e8 qcom: update ADSP firmware for x1e80100 platform
530ac96c5dcb linux-firmware:Add firmware for Lontium LT7911EXC bridge
92b146e268b1 qcom/x1e80100/dell: mark that qcom/NOTICE.txt is applicable too
0cbdd055b089 qcom: Update CDSP firmware for Kaanapali platform
d85214426650 qcom: vpu: add Gen2 firmware binary for Agatti
79fdaa874dd4 amdgpu: DMCUB updates for various ASICs
d4e97389c0c0 linux-firmware: Add firmware file for Intel BlazarIW
2f2ece2a354e linux-firmware: Add firmware file for Intel ScorpiusGfp2 core
516559a30542 linux-firmware: Add firmware file for Intel BlazarIGfp2 core
157d0ab4184c linux-firmware: Update firmware file for Intel BlazarU-HrPGfP core
6e32025feb2a linux-firmware: Update firmware file for Intel BlazarU core
ca5c0d6dc291 linux-firmware: Update firmware file for Intel Scorpius core
7df47664dd1d linux-firmware: Update firmware file for Intel BlazarI core
ac6960e346e6 qcom: Update ADSP firmware for Glymur platform
c8949c63516c mediatek MT7925: update bluetooth firmware to 20260414153243
b981cd3786e8 linux-firmware: update firmware for MT7925 WiFi device
2dc39aa6bbd6 Revert "linux-firmware: Update firmware file for Intel Quasar core"
9a8575e403b9 qcom: Add gpdspr.jsn for qcs8300 platform
17f67c01d5cb ath12k: QCC2072 hw1.0: add to WLAN.COL.1.0.c2-00074-QCACOLSWPL_V1_TO_SILICONZ-1
395b087f655d ath12k: QCC2072 hw1.0: add board-2.bin
f083d1af6c0d ath12k: IPQ5424 hw1.0: add to WLAN.WBE.1.6-01275-QCAHKSWPL_SILICONZ-1
da9dd85ef7e4 ath12k: IPQ5424 hw1.0: add board-2.bin
c3ab9e9d0c49 qcom: Update ADSP firmware for Kaanapali platform
604cb45fbe6d cirrus: cs35l56: Add firmware for Cirrus Amps for some Lenovo laptops
fd246bfaf937 cirrus: cs35l56: Add firmware for Cirrus Amps for some Lenovo laptops (17aa235c 17aa235d)
5f99e9952fe4 QCA: Update Bluetooth WCN6856 firmware 2.1.0-00665 to 2.1.0-00666
75f520719af8 amdgpu: DMCUB updates for DCN36
8c0d4738ee35 linux-firmware: Update AMD cpu microcode
fe1a0a75caa6 powervr: update Imagination Rogue firmware images
d06d0303836b qcom: Update ADSP firmware for Kaanapali platform
a3d046ca8eee i915: Xe3LPD DMC v2.34
a9488d15e031 i915: Xe3LPD_3002 DMC v2.29
4bedb0e45e82 qcom: Update ADSP firmware for QCM6490 platform
cfb7366afd8f firmware/amdgpu: Update DMCUB fw to Release 0.1.55.0
c6c7a3f2cd47 mediatek: vpu: drop old sym link

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23440
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2 days agorealtek: mach: specify alignment topology 23492/head
Markus Stockhausen [Sat, 23 May 2026 10:59:39 +0000 (12:59 +0200)] 
realtek: mach: specify alignment topology

The kernel has two helper defines that guide about hardware
characteristics.

MIPS_L1_CACHE_SHIFT defines the cache line sizes (1<<x) of the
target. It defaults to 5 - so it is assumed that the device has
a cache line size of 32 bytes. This is not true for MIPS 4KEc
cores that are driving the RTL838x SOCs. These cores have 16
byte cache line sizes. Adapt the CONFIG properties for this
target to match the hardware.

ARCH_DMA_MINALIGN definies the alignment for memory allocations.
Other than its name suggests on MIPS devices that have non
coherent DMA kmalloc() respects this configuration. This ensures
that no normal memory is corrupted by DMA blocks that share the
same cache line.

The default for this is 128 bytes. And kernel states itself
"Total overkill for most systems but need as a safe default. Set
this one if any device in the system might do non-coherent DMA".

Realtek devices use non coherent DMA so they are affected by the
setting of ARCH_DMA_MINALIGN. Set this to cache line size for
all devices to reduce memory waste.

Link: https://github.com/openwrt/openwrt/pull/23492
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2 days agoairoha: apply minor fix for MTU and LRO for ethernet driver 23566/head
Lorenzo Bianconi [Wed, 27 May 2026 09:01:05 +0000 (11:01 +0200)] 
airoha: apply minor fix for MTU and LRO for ethernet driver

Apply minor fixup for PPE_MTU configuration and LRO queue configuration.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
[ improve commit title/description ]
Link: https://github.com/openwrt/openwrt/pull/23566
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 days agoqualcommbe: 6.18: refresh config
Robert Marko [Thu, 28 May 2026 08:45:49 +0000 (10:45 +0200)] 
qualcommbe: 6.18: refresh config

Lets refresh the config as generic config was wastly updated, and we
need the CONFIG_PAGE_BLOCK_MAX_ORDER to be defined.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2 days agoqualcommbe: 6.18: refresh patches
Robert Marko [Thu, 28 May 2026 08:45:22 +0000 (10:45 +0200)] 
qualcommbe: 6.18: refresh patches

Lets make the PCS one actually apply and refresh the rest.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2 days agoath79: add Cisco Meraki Z1 17665/head
Lech Perczak [Fri, 24 Jan 2025 23:19:36 +0000 (00:19 +0100)] 
ath79: add Cisco Meraki Z1

Specifications:

SOC: Atheros AR9344 @ 560MHz
RAM: 2x Winbond W9751G6KB-25 (128 MiB)
FLASH: Hynix H27U1G8F2BTR (128 MiB)
WIFI1: Atheros AR9340 5.0GHz (SoC)
WIFI2: Atheros AR9280 2.4GHz
SWITCH: Atheros AR8327 (5x Gigabit (1x WAN, 4x LAN)
LED: 1x Power-LED, 1 x RGB Tricolor-LED
INPUT: One Reset Button
USB: One USB 2.0 Port
UART: JP1 on PCB (Labeled UART), 3.3v-Level, 115200n8
        (GND, TX, RX, VCC - GND is next to the UART silk screen)

Flashing Instructions:

If your device still has vulnerable firmware, then existing installation
instructions can be used. Devices currently running ar71xx firmware can
be upgraded directly, although ar71xx firmware will complain,
because of changed metadata format. So you'll have to force the upgrade.

If your firmware is too new, there are two options
- temporarily adding a SPI-NOR flash to boot initramfs from
  (recommended)
- patching NAND image with initramfs with external programmer
  (recommended if and only if you have access to 360-clip, or
  similar device, that doesn't require desoldering a TSOP48 chip))

Since this device is brought over from an old AR71xx, there's
already a wiki-page with detailed instructions:
<https://openwrt.org/toh/meraki/z1>

Installing from SPI-NOR:
- Download pre-built image from
  <https://github.com/Leo-PL/OpenWrt-Meraki-Z1>
  or assemble your own by splicing
  router-u-boot <https://github.com/CodeFetch/router-u-boot>
  image for TP-Link WDR4300 with Z1 initramfs in uImage format.
  To build uImage initramfsf from source, remove the "KERNEL_INITRAMFS"
  variable from target/linux/ath79/image/nand.mk for Z1.
  Put the U-boot image at offset 0, initramfs at offset 131072.
- Write the image to an 8MB (or greater) SPI flash
- Temporarily bridge - or solder in a 220-ohm resistor between pins 6
  and 8 of the SPI-NOR chip to override boot source to SPI
- When the initramfs first boots, write the standard initramfs to NAND,
  to both 'kernel' and 'recovery' partitions

  $ mtd write /tmp/openwrt-ath79-nand-meraki_z1-initramfs-kernel.bin kernel
  $ mtd write /tmp/openwrt-ath79-nand-meraki_z1-initramfs-kernel.bin recovery

  Now you can disconnect the resistor and try to boot the system from
  NAND. If it works, continue with installation, as described for legacy
  method using vulnerable stock firmware.
- When done, you can remove SPI-NOR chip and the resistor altogether,
  it can be reused to perform installation on other devices,
  or act as a recovery boot source if needed, if the recovery initramfs
  fails for any reason.

Installing by patching NAND
- If you'd like to desolder NAND to perform this, I highly advise
  against it, use SPI-NOR method above instead.
- If you have external programmer and a NAND clip, read out the whole
  chip image, while keeping the device in reset by shorting SRST
  (pin 11) to ground in JTAG connector,
  and store a backup in a safe place.
- Patch the chip image with initramfs for raw NAND from
  <https://github.com/Leo-PL/OpenWrt-Meraki-Z1>, by using a script
  there, or manually:

  $ dd if=openwrt-ath79-nand-meraki_z1-initramfs-kernel-rawnand.bin of=z1_dump.img bs=135168 seek=1 conv=notrunc
  $ dd if=openwrt-ath79-nand-meraki_z1-initramfs-kernel-rawnand.bin of=z1_dump.img bs=135168 seek=65 conv=notrunc

  This will write the initramfs to both kernel and recovery partitions,
  which is highly recommended, as due to device architecture it is
  notoriously hard to unbrick.
- Write the image back to the NAND, again, keeping the CPU in the reset.
- When the unit boots to initramfs, proceed as per existing instructions
  for volnerable firmware.

Legacy installation on vulnerable stock firmware:
The gist:
1. Get a root-shell on the device (see wiki). (needs UART access)
2. make a backup (to a PC/safe location) of the existing Meraki
   firmware.
3. copy over the OpenWrt initramfs kernel for the Z1.
   This gets written into the kernel NAND partition.
   (Verify that written image is complete!)

After the following reboot and successfull boot of the staging
OpenWrt initramfs image:

4. Free up space by removing Meraki firmware partitions from UBI volume
   to free up space for OpenWrt (example given for the latest wired-14
   version):
   $ ubirmvol -N storage /dev/ubi0
   $ ubirmvol -N rootfs-wired-14-202005181203-G201ba9ed-rel-gazebo-1 /dev/ubi0
   $ ubirmvol -N rootfs-wired-14-202005181203-G201ba9ed-rel-gazebo-2 /dev/ubi0

4. copy over the sysupgrade.bin for the router and use sysupgrade
   to make the installation permanent.

Notable changes from ar71xx support:
- LED colors are now different, because nu801 userspace driver is used
  for the RGB LED.

Acknowledgments:
- Hal Martin, for providing additional devices for research, including
  one modded for SPI boot and with removable NAND
- Christian Lamparter for initial device tree and image configuration

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
[Finished support, updated commit message with new installation
methods]
Co-authored-by: Christian Lamparter <chunkeey@gmail.com>
Co-authored-by: Lech Perczak <lech.perczak@gmail.com>
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17665
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 days agoqualcommbe: enable pwm support for linux 6.18 21506/head
Alexandru Gagniuc [Sun, 19 Apr 2026 00:37:10 +0000 (19:37 -0500)] 
qualcommbe: enable pwm support for linux 6.18

The 6.18 kernel port and PWM patches were developed independently. the
initial 6.18 port did not include the PWM patches, so add them now.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21506
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 days agokernel: crypto-sha512-arm64: do not package with kernel 6.18
Alexandru Gagniuc [Sun, 11 Jan 2026 02:01:28 +0000 (20:01 -0600)] 
kernel: crypto-sha512-arm64: do not package with kernel 6.18

Since upstream commit 60e3f1e9b7a5 ("lib/crypto: arm64/sha512:
Migrate optimized SHA-512 code to library"), the kernel module is no
longer available, and its fucntionality os provided by the kernel
core. Thus do not try to package this for linux 6.18 and later.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21506
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 days agoqualcommbe: enable 6.18 testing kernel
Alexandru Gagniuc [Sun, 11 Jan 2026 00:57:06 +0000 (18:57 -0600)] 
qualcommbe: enable 6.18 testing kernel

Now that everything is in place for kernel 6.18, enable it as a
testing kernel for qualcommbe.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21506
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 days agoqualcommbe: kernel-6.18: update patches
Alexandru Gagniuc [Sat, 10 Jan 2026 22:31:28 +0000 (16:31 -0600)] 
qualcommbe: kernel-6.18: update patches

Generate new patches for 6.18 from my ipq95xx development branch.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21506
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 days agoqualcommbe: kernel-6.18: renumber patches
Alexandru Gagniuc [Sun, 11 Jan 2026 00:18:37 +0000 (18:18 -0600)] 
qualcommbe: kernel-6.18: renumber patches

I generate patches form git, so maintaining an old numbering scheme
does not integrate well with my workflow. renumber the pacthes here so
that the commit shows only the changes to the patches.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21506
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 days agoqualcommbe: remove upstreamed patches
Alexandru Gagniuc [Sat, 10 Jan 2026 22:12:11 +0000 (16:12 -0600)] 
qualcommbe: remove upstreamed patches

Remove patches that are upstream in v6.18, but were not identified as
upstreamed in the patch naming.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21506
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 days agoqualcommbe: create files for v6.18 from v6.12
Alexandru Gagniuc [Sat, 10 Jan 2026 21:21:08 +0000 (15:21 -0600)] 
qualcommbe: create files for v6.18 from v6.12

Create the config and relevant patches for 6.18 from 6.12. The
"standard" openwrt devel process seems to be to move the files and
restore the old ones. I find this process confusing, and I don't see
any git benefits for doing things this way. So just copy the files.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21506
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 days agoqualcommbe: drop "port_" from PPE port clock and reset names
Alexandru Gagniuc [Wed, 14 Jan 2026 22:28:02 +0000 (16:28 -0600)] 
qualcommbe: drop "port_" from PPE port clock and reset names

The lastest ethernet PPE driver, uses "mac", "rx", and "tx", without
the "port_" prefix for the port clocks and resets. The PPE ports are
declared by the device dts. In order to support v6.12 and v6.18
kernels simultaneously, update the kernel patches and kiwi-dvk
devicetree to use the newer naming scheme.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21506
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 days agodropbear: rework failsafe script 23217/head
Konstantin Demin [Tue, 19 May 2026 13:38:13 +0000 (16:38 +0300)] 
dropbear: rework failsafe script

- generate or use RSA only if none of the modern algorithms (Ed25519, ECDSA) are supported;
- remove size constraints for key size.

Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23217
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agodropbear: adjust failsafe script
Konstantin Demin [Tue, 19 May 2026 13:38:13 +0000 (16:38 +0300)] 
dropbear: adjust failsafe script

- try to detect supported (hostkey) algorithms; otherwise fallback to predefined list;
- remove size constraint for ECDSA: custom build may include only 384 or 521 bit curves;
- remove size constraint for RSA: default RSA key size is 2048 bits which is sufficient for SSH security recommendations, and previous value of 1024 bits is considered insecure.

Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23217
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agodropbear: adjust init script
Konstantin Demin [Tue, 19 May 2026 13:38:13 +0000 (16:38 +0300)] 
dropbear: adjust init script

- try to detect supported (hostkey) algorithms; otherwise fallback to predefined list;
- improve hostkey generation before start;
- add new uci config option:
  - MaxSessionDuration: maximum session duration (seconds);
    overrides DROPBEAR_DEFAULT_MAX_DURATION build-time value.

Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23217
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agodropbear: adjust configuration
Konstantin Demin [Tue, 19 May 2026 13:38:13 +0000 (16:38 +0300)] 
dropbear: adjust configuration

- add new options:
  - DROPBEAR_DEFAULT_MAX_DURATION
  - DROPBEAR_MAX_PUBKEY_QUERIES
- fix DROPBEAR_MLKEM768 description (fixes commit d8ff2d8cba)

Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23217
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agodropbear: bump to 2026.91
Konstantin Demin [Tue, 19 May 2026 13:38:13 +0000 (16:38 +0300)] 
dropbear: bump to 2026.91

- update dropbear to latest stable 2026.91;
  for the changes see https://matt.ucc.asn.au/dropbear/CHANGES
- cherry-pick upstream patches:
  - sntrup: Fix 64-bit literals
  - Increase MAX_HOSTKEYS to 6
  - Fix too-low pubkey key query count
- automatically refresh patches

Fixes: CVE-2019-6111, CVE-2026-35385
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23217
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agob43-tools: introduce support for rev22 in b43-fwsquash.py 23532/head
Alessio Ferri [Mon, 25 May 2026 13:15:03 +0000 (15:15 +0200)] 
b43-tools: introduce support for rev22 in b43-fwsquash.py

rev22 has been ignored in fwsquash for the lack of supported binary blobs
containing the required firmware.
Now that fwcutter is able to parse the blob included in the gpl release
of dlink dsl 3580l, fwsquash need to keep the extracted files.

Signed-off-by: Alessio Ferri <alessio.ferri.3012@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23532
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agoramips: reduce ARCH_DMA_MINALIGN 23314/head
Qingfang Deng [Wed, 27 May 2026 01:29:06 +0000 (09:29 +0800)] 
ramips: reduce ARCH_DMA_MINALIGN

Currently, Ralink SoCs use the default ARCH_DMA_MINALIGN value of 128
bytes defined in mach-generic. This is excessive for these platforms
and leads to significant memory waste in kmalloc.

Override ARCH_DMA_MINALIGN to use L1_CACHE_BYTES, which is 16 bytes for
RT288X and 32 bytes for other Ralink SoCs.

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23314
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agogeneric: 6.18: update MxL862xx DSA switch driver 23477/head
Daniel Golle [Thu, 21 May 2026 17:19:05 +0000 (18:19 +0100)] 
generic: 6.18: update MxL862xx DSA switch driver

Update driver to be ready for the upcoming firmware release.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 days agogeneric: 6.12: update MxL862xx DSA switch driver
Daniel Golle [Thu, 21 May 2026 17:54:05 +0000 (18:54 +0100)] 
generic: 6.12: update MxL862xx DSA switch driver

Update driver to be ready for the upcoming firmware release.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 days agoustp: update to Git HEAD (2026-05-27)
Stijn Tintel [Wed, 27 May 2026 11:32:21 +0000 (14:32 +0300)] 
ustp: update to Git HEAD (2026-05-27)

f5d17dd60a89 mstp: add default Hello Time constant
17c36bebada1 mstp: use default Hello Time in recordTimes

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
3 days agomac80211: add ieee80211_txq_aql_pending()
Felix Fietkau [Wed, 27 May 2026 10:24:40 +0000 (12:24 +0200)] 
mac80211: add ieee80211_txq_aql_pending()

Add a function to allow drivers to query the pending AQL airtime
for a given txq, for both unicast and broadcast.
This will be used for mt76 to limit buffering in AP mode for power-save
stations.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 days agoairoha: Improve LRO performances 23530/head
Lorenzo Bianconi [Mon, 25 May 2026 12:17:39 +0000 (14:17 +0200)] 
airoha: Improve LRO performances

Add hardware TCP Large Receive Offload (LRO) support to the airoha_eth
driver, leveraging the EN7581/AN7583 SoC's 8 dedicated LRO hardware queues
mapped to RX queues 24–31. LRO hw offloading does not support
Scatter-Gather (SG) so it is required to increase the page_pool allocation
order to 2 for RX queues 24–31 (LRO queues).

Performance comparison between GRO and hw LRO has been carried out using
a 10Gbps NIC:

GRO: ~2.7 Gbps
LRO: ~8.1 Gbps

Tested-by: Madhur Agrawal <madhur.agrawal@airoha.com>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://github.com/openwrt/openwrt/pull/23530
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
4 days agob43-tools: update the package to version released on 2026-05-22 23535/head
Alessio Ferri [Mon, 25 May 2026 18:50:39 +0000 (20:50 +0200)] 
b43-tools: update the package to version released on 2026-05-22

b43-tools introduced python 2 to python 3 conversion and added
support to extract ucode from a new blob

Signed-off-by: Alessio Ferri <alessio.ferri.3012@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23535
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agomvebu: cortexa53: uDPU/eDPU: update active bootscript as well 23017/head
Robert Marko [Mon, 25 May 2026 19:26:14 +0000 (21:26 +0200)] 
mvebu: cortexa53: uDPU/eDPU: update active bootscript as well

Currently, sysupgrade will only upgrade the unused slot, however since the
whole dual firmware logic is in the bootscript U-boot will just use the
first bootscript it finds.

So, in a case that you are running slot A it will upgrade slot B, however
that means that slot B will be still booted by the old bootscript that came
with the previous firmware version.

This is an issue if you need to change anything, so lets add a custom
function that upgrades the active bootscript as well after flashing the
slot firmware.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
4 days agomvebu: cortexa53: uDPU/eDPU convert to dual firmware (A/B)
Robert Marko [Mon, 23 Feb 2026 16:41:18 +0000 (17:41 +0100)] 
mvebu: cortexa53: uDPU/eDPU convert to dual firmware (A/B)

Methode uDPU and eDPU devices are one of the rare ones with a completely
custom image format being used with custom partition table with F2FS.

Instead of converting the boards to dual firmware (A/B style) and further
expand the already convoluted custom scripts, especially considering that
dual firmware conversion is a breaking change anyway, lets convert to using
the generic eMMC sysupgrade based images.

F2FS ZSTD compression is preserved thanks to fstools now supporting its use
on overlays.

Dual firmware support is implemented via U-Boot scripts so no U-Boot
upgrade is required.

Since there is a partition table layout change, eMMC must be wiped and
reflashed with the generated GPT image from OpenWrt initramfs.

Then on each sysupgrade the firmware slot will be altered.

Instructions:
1. Boot into OpenWrt initramfs
2. Copy openwrt-mvebu-cortexa53-methode_edpu-squashfs-emmc-gpt.img.gz to
the device into /tmp
3. Erase eMMC:
dd if=/dev/zero of=/dev/mmcblk0 bs=1M
4. Extract image
gzip -d /tmp/openwrt-mvebu-cortexa53-methode_edpu-squashfs-emmc-gpt.img.gz
5. Flash image
dd if=/tmp/openwrt-mvebu-cortexa53-methode_edpu-squashfs-emmc-gpt.img of=/dev/mmcblk0
6. Reboot

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
4 days agoqualcommax: ipq50xx: add support for ELECOM WRC-X3000GST2 23471/head
Taiga Ogawa [Tue, 19 May 2026 02:11:36 +0000 (02:11 +0000)] 
qualcommax: ipq50xx: add support for ELECOM WRC-X3000GST2

ELECOM WRC-X3000GST2 is a 2.4/5 GHz band 11ax (Wi-Fi 6) router based on
IPQ5018. The only hardware difference from the WRC-X3000GS2 is the RAM
capacity; all other peripherals are identical. This port therefore
reuses the GS2 board-2.bin (ipq-wifi-elecom_wrc-x3000gs2) and ath11k
calibration variant.

Specification:

- SoC             : Qualcomm IPQ5018
- RAM             : DDR3 512 MiB (Kingston Technology D2516ECMDXGJD)
- Flash           : SPI-NAND 128 MiB (Macronix MX35UF1G24AD-Z4I)
- WLAN            : 2.4/5 GHz 2T2R
  - 2.4 GHz       : Qualcomm IPQ5018 (SoC)
  - 5 GHz         : Qualcomm QCN6122
- Ethernet        : 5x 10/100/1000 Mbps
  - wan (phy)     : Qualcomm IPQ5018 (SoC)
  - lan (switch)  : Qualcomm Atheros QCA8337
- LEDs/Keys (GPIO): 8x / 3x (reset, WPS, router/AP slide switch)
- UART            : through-hole on PCB, 4pins near the barcode
  - assignment    : 3.3V, TX, RX, NC, GND from the barcode side
  - settings      : 115200n8
- Power           : 12 VDC, 1 A (Max. 11.5W)

Flash instruction using factory.bin image:

1. Boot WRC-X3000GST2 normally in router mode
2. Access the WebUI ("http://192.168.2.1/") and open the firmware
   update page ("ファームウェア更新")
3. Select the OpenWrt factory.bin image and click apply ("適用")
4. After the device reboots automatically, wait until the green power LED
   stops blinking and stays solid
5. When the green power LED is solid, hold the reset button until the red
   LED starts blinking to clear remaining stock firmware settings

Switching to the stock firmware:

1. Load the elecom.sh script

   . /lib/upgrade/elecom.sh

2. Check the current index of rootfs

   bootconfig_rw_index 0:bootconfig rootfs

3. Set the index to inverted value

   bootconfig_rw_index 0:bootconfig rootfs <value>
   bootconfig_rw_index 0:bootconfig1 rootfs <value>

   example:

   - step2 returned "0":

     bootconfig_rw_index 0:bootconfig rootfs 1
     bootconfig_rw_index 0:bootconfig1 rootfs 1

   - step2 returned "1":

     bootconfig_rw_index 0:bootconfig rootfs 0
     bootconfig_rw_index 0:bootconfig1 rootfs 0

4. Reboot

Partition Layout (Stock FW):

0x000000000000-0x000000080000 : "0:SBL1"
0x000000080000-0x000000100000 : "0:MIBIB"
0x000000100000-0x000000140000 : "0:BOOTCONFIG"
0x000000140000-0x000000180000 : "0:BOOTCONFIG1"
0x000000180000-0x000000280000 : "0:QSEE"
0x000000280000-0x000000380000 : "0:QSEE_1"
0x000000380000-0x0000003c0000 : "0:DEVCFG"
0x0000003c0000-0x000000400000 : "0:DEVCFG_1"
0x000000400000-0x000000440000 : "0:CDT"
0x000000440000-0x000000480000 : "0:CDT_1"
0x000000480000-0x000000500000 : "0:APPSBLENV"
0x000000500000-0x000000640000 : "0:APPSBL"
0x000000640000-0x000000780000 : "0:APPSBL_1"
0x000000780000-0x000000880000 : "0:ART"
0x000000880000-0x000000900000 : "0:TRAINING"
0x000000900000-0x000003c40000 : "rootfs"
0x000003c40000-0x000003fc0000 : "Config"
0x000003fc0000-0x000007300000 : "rootfs_1"
0x000007300000-0x000007680000 : "Config_2"
0x000007680000-0x000007b80000 : "Reserved"
0x000007b80000-0x000007c00000 : "FWHEADER"
0x000007c00000-0x000007c80000 : "Factory"

Notes:

- This device has dual-boot feature and it's managed by the index in the
  0:bootconfig and 0:bootconfig1 partitions.

- Wi-Fi BDF is shared with WRC-X3000GS2 (ipq-wifi-elecom_wrc-x3000gs2)
  as the hardware (SoC, QCN6122, antennas) is identical between the two
  models.

- GST2 stock firmware keeps its configuration even when sysupgrade is
  called with -n. When installing from the OEM WebUI, those stock
  settings can be restored into OpenWrt overlay, so settings must be
  initialized after the first OpenWrt boot.

MAC Addresses:

LAN    : 38:97:A4:xx:xx:40 (0:APPSBLENV, "eth1addr"/"ethaddr"  (text))
WAN    : 38:97:A4:xx:xx:43 (0:APPSBLENV, "eth0addr" (text))
2.4 GHz: 38:97:A4:xx:xx:41 (0:APPSBLENV, "wifi0"    (text))
5 GHz  : 38:97:A4:xx:xx:42 (0:APPSBLENV, "wifi1"    (text))

Signed-off-by: Taiga Ogawa <zectaiga@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23471
Signed-off-by: Robert Marko <robimarko@gmail.com>
4 days agorealtek: add support for Linksys LGS328MPCv2 23466/head
Jan-Henrik Bruhn [Tue, 19 May 2026 22:30:36 +0000 (00:30 +0200)] 
realtek: add support for Linksys LGS328MPCv2

Hardware specification
----------------------

* RTL9301 SoC, 1 MIPS 34KEc core @ 800MHz
* 512MB DRAM
* 2MB NOR Flash
* 128MB NAND Flash
* 24 x 10/100/1000BASE-T ports with PoE+
* 4 x 10G SFP+ ports
* Power LED, Fault LED, PoE Max LED, LAN Mode LED, PoE Mode LED
* Reset button and LED Mode button on front panel
* LM63 Fan Controller
* UART (115200 8N1) via RJ45
* PSE: Nuvoton M0516LDE via I2C + 3x RTL8238B (not supported yet)

Installation using serial interface
-----------------------------------

1. Press "a" "c" "p" during message "Enter correct key to stop autoboot"
2. Start network "rtk network on"
3. Load image "tftpboot <TFTP IP>:openwrt-realtek-rtl930x_nand-linksys_lgs328mpc-v2-initramfs-kernel.bin"
4. Boot image "bootm"
5. Switch to first bootpartition "fw_setsys bootpartition 0"
6. Download sysupgrade "scp <IP>:openwrt-realtek-rtl930x_nand-linksys_lgs328mpc-v2-squashfs-sysupgrade.bin /tmp/."
7. Install sysupgrade "sysupgrade /tmp/openwrt-realtek-rtl930x_nand-linksys_lgs328mpc-v2-squashfs-sysupgrade.bin"

Installation using OEM webinterface
-----------------------------------

This is not possible because the OpenWrt NAND Flash layout is different
from the vendor layout. To be precise. Vendor uses:

- 64 MB vendor UBI root_data
- 32 MB vendor kernel+root 1 (~19 MB used)
- 32 MB vendor kernel+root 2 (~19 MB used)

OpenWrt uses:

- 64 MB vendor UBI (not touched)
- 10 MB OpenWrt kernel
- 22 MB Openwrt mtd-concat UBI
- 23 MB vendor kernel 2 (space reduced, vendor data unchanged)
- 09 MB OpenWrt mtd-concat UBI

Dual-boot with stock firmware using writable u-boot-env
-------------------------------------------------------

From stock to OpenWrt / primary image 1 (CLI as admin):
   - > boot system image1
   - > reboot

From OpenWrt to stock / boot image 2: (shell as root)
   - # fw_setsys bootpartition 1
   - # reboot

Debrick using serial interface
------------------------------

1. Press "a" "c" "p" during message "Enter correct key to stop autoboot"
2. Load vendor image with "upgrade runtime <TFTP IP>:LGS328xxxxx.imag"
3. switch to primary partition "setsys bootpartition 0"
4. safe config "savesys"

MAC Address Source
------------------

The MAC address for this device is coming from the u-boot-env ethaddr cell.

Further documentation
---------------------
See https://openwrt.org/toh/linksys/lgs352c

Signed-off-by: Jan-Henrik Bruhn <git@jhbruhn.de>
Link: https://github.com/openwrt/openwrt/pull/23466
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agorealtek: dts,build: create common Linksys LGS328x DTSI and image-recipe
Jan-Henrik Bruhn [Thu, 21 May 2026 21:24:37 +0000 (23:24 +0200)] 
realtek: dts,build: create common Linksys LGS328x DTSI and image-recipe

This is in preparation for the addition of the LGS328MPC, which is
based on the LGS328C.

It also drops the unused UBINIZE_OPTS, as UBI is only used during runtime
of the firmware, not during build.

Signed-off-by: Jan-Henrik Bruhn <git@jhbruhn.de>
Link: https://github.com/openwrt/openwrt/pull/23466
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agorockchip: switch to kernel 6.18 23528/head
Tianling Shen [Mon, 25 May 2026 10:28:14 +0000 (18:28 +0800)] 
rockchip: switch to kernel 6.18

Switch to kernel 6.18 and remove kernel 6.12 files.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/23528
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
4 days agorealtek: kzalloc + kcalloc to kzalloc 22651/head
Rosen Penev [Tue, 7 Apr 2026 22:03:42 +0000 (15:03 -0700)] 
realtek: kzalloc + kcalloc to kzalloc

Use a flexible array member to combine allocations.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22651
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agorealtek: pcs: rtl930x: force IP mode OFF in deactivate, unforce for MAC modes 23513/head
Jonas Jelonek [Wed, 20 May 2026 21:43:33 +0000 (21:43 +0000)] 
realtek: pcs: rtl930x: force IP mode OFF in deactivate, unforce for MAC modes

Make deactivate fully restore the SerDes to an inert state at both the
MAC and IP layers. Previously deactivate only zeroed the MAC mode via
set_mode(OFF), which on the default branch only writes the MAC mode
register and leaves the IP mode register untouched. The IP mode register
then retained whatever the previous bring-up left behind (force=1 with
a stale mode value, or force=0 from boot defaults), making "deactivate"
not fully deactivate the SerDes.

Replace the set_mode(OFF) call with explicit set_mac_mode(OFF) plus
set_ip_mode(OFF). The latter writes force=1 with mode=OFF, pinning the
IP block to OFF until a subsequent bring-up takes a defined action.

This forced-OFF state would break MAC-driven modes (USXGMII / QSGMII /
XSGMII), which set only the MAC mode register and rely on the IP block
following along. To compensate, add an explicit unforce of the IP mode
force-bit (page 0x1f reg 0x09 bit 6) at the start of the MAC-mode branch
of rtpcs_930x_sds_set_mode. IP-mode bring-up via apply_ip_mode is
unaffected -- it re-asserts force=1 with the target mode value, which
overrides the deactivate force-OFF.

Net result: deactivate fully and explicitly deactivates the SerDes; each
set_mode path takes its own responsibility for the IP mode register
state. The previous asymmetric behaviour (set_mode default branch silently
not touching the IP register) is now explicit code rather than an
implicit accident-of-dispatch.

Verified on RTL930x hardware: SGMII, 2500BASE-X, 10GBASE-R, USXGMII-QX
and XSGMII all bring up correctly with link, traffic and iperf3 as
expected.

Link: https://github.com/openwrt/openwrt/pull/23513
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agorealtek: pcs: rtl930x: lift SerDes core power-cycle into {de,}activate
Jonas Jelonek [Wed, 20 May 2026 19:57:32 +0000 (19:57 +0000)] 
realtek: pcs: rtl930x: lift SerDes core power-cycle into {de,}activate

Move rtpcs_930x_sds_set_power() and rtpcs_930x_sds_rx_reset() out of
rtpcs_930x_sds_apply_ip_mode() and into rtpcs_930x_sds_{de,}activate().
After this, apply_ip_mode is pure IP-mode/CMU/state-machine programming
and the SerDes-core analog power is owned by the outer phase pair, the
same place that already owns the 1G/10G PHY block and fiber RX power.

Behavioural change: USXGMII / QSGMII / XSGMII modes did not previously
go through apply_ip_mode and therefore never had the SerDes-core power
gated on mode transitions. After this commit, every mode transition
power-cycles the SerDes core via the outer deactivate/activate.

For the SGMII / 1000BASE-X / 2500BASE-X / 10GBASE-R path the set of
register writes is unchanged; only the relative ordering vs. the
fiber/PHY power writes shifts: set_power(false) now precedes those
writes (was after), set_power(true) now follows them (was before).

Verified on RTL930x hardware: SGMII, 2500BASE-X, 10GBASE-R, USXGMII-QX
and XSGMII all come up with link, ping and iperf3 throughput as
expected.

Link: https://github.com/openwrt/openwrt/pull/23513
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agorealtek: pcs: rtl931x: run set_mode before activate
Jonas Jelonek [Wed, 20 May 2026 18:33:40 +0000 (18:33 +0000)] 
realtek: pcs: rtl931x: run set_mode before activate

Move rtpcs_931x_sds_set_mode(sds, hw_mode) ahead of
rtpcs_931x_sds_activate() in rtpcs_931x_setup_serdes(). The IP-block
mode registers latch with the SerDes powered down, so the mode can be
committed during the configure phase rather than after power-on.

This matches the phase order already used by 838x and 930x
(deactivate -> configure -> set_mode -> activate) and is a step toward
a unified bring-up sequence across variants.

Verified on RTL931x hardware: USXGMII, SGMII and 10GBASE-R modes all
come up, link is established, L2 forwarding works, and iperf3 reports
expected throughput.

Link: https://github.com/openwrt/openwrt/pull/23513
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agorealtek: pcs: rtl930x: fold 1G/10G PHY power into {de,}activate
Jonas Jelonek [Wed, 22 Apr 2026 14:35:18 +0000 (14:35 +0000)] 
realtek: pcs: rtl930x: fold 1G/10G PHY power into {de,}activate

Move the 1G and 10G PHY block power-up writes (clear BMCR_PDOWN on pages
0x02 and 0x04) out of rtpcs_930x_phy_enable_10g_1g() and into
rtpcs_930x_sds_activate(), and add the mirror writes (set BMCR_PDOWN) to
rtpcs_930x_sds_deactivate(). Same for the fiber RX bit.

With 1G PHY / 10G PHY / fiber RX all now handled symmetrically, drop the
rtpcs_930x_phy_enable_10g_1g() helper. The remaining write it contained
(set medium = fiber on page 0x1f reg 11 bit 1) is unrelated to power
management, unconditionally applied, and to-be-inspected for non-fiber
modes. Move it inline into setup_serdes with a TODO comment; proper
mode-aware handling is out of scope for this commit.

Behavioural note: the 1G/10G PHY blocks and fiber RX are now
power-cycled on every mode transition. Previously they were only
powered up (never explicitly down) and the state persisted across
reconfigure. The new behaviour makes each setup_serdes a standalone
bring-up that does not rely on the prior state of these bits.

Link: https://github.com/openwrt/openwrt/pull/23513
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agorealtek: pcs: introduce per-variant SerDes activate helpers
Jonas Jelonek [Wed, 22 Apr 2026 13:44:06 +0000 (13:44 +0000)] 
realtek: pcs: introduce per-variant SerDes activate helpers

Mirror of the previous sds_deactivate commit: add rtpcs_{838x,931x}_sds_activate()
helpers that each wrap the variant-specific "bring the SerDes back to operational"
block-power call at the end of setup_serdes, and replace the inline call.

 - 838x: wraps rtpcs_838x_sds_power(sds, true)
 - 931x: wraps rtpcs_931x_sds_power(sds, true)

RTL839x and RTL930x are intentionally not given an activate helper in this
commit:

 - RTL839x calls rtpcs_839x_sds_reset() at the end of setup_serdes. That is
   a reset pulse whose internals (per-type 10G/5G analog sequences, internal
   REG3 0x7146 -> 0x7106 dance) are not yet fully characterized. Aliasing
   it as _activate would misrepresent the function.
 - RTL930x has no separate activation step: rtpcs_930x_sds_set_mode(sds,
   hw_mode) is what commits the new mode and is intended to be surfaced
   as its own "set mode" phase in a later commit rather than hidden inside
   a variant-specific _activate wrapper.

Both variants will be revisited when their respective phases are clarified.
This commit is a pure refactor, no behavioural change.

Link: https://github.com/openwrt/openwrt/pull/23513
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agorealtek: pcs: introduce per-variant SerDes deactivate helpers
Jonas Jelonek [Wed, 22 Apr 2026 13:26:11 +0000 (13:26 +0000)] 
realtek: pcs: introduce per-variant SerDes deactivate helpers

Add rtpcs_{838x,930x,931x}_sds_deactivate() helpers that each encapsulate
the variant-specific "make SerDes inert before reconfigure" sequence, and
replace the inline calls at the start of each setup_serdes with a single
call to the new helper:

 - 838x: wraps rtpcs_838x_sds_power(sds, false)
 - 930x: wraps rtpcs_930x_sds_set_mode(sds, RTPCS_SDS_MODE_OFF)
 - 931x: rtpcs_931x_sds_power(sds, false) + rtpcs_931x_sds_set_mode(sds,
         RTPCS_SDS_MODE_OFF)

RTL839x has no deactivate step to factor out and is left unchanged.

This is a pure refactor: same register writes, same order, same return-
value handling at the call site. The helpers give each variant a named
hook for the deactivate phase and prepare for a subsequent commit that
promotes it to an rtpcs_sds_ops entry and hoists the call site into
rtpcs_pcs_config.

Link: https://github.com/openwrt/openwrt/pull/23513
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agolibiwinfo: update to Git HEAD (2026-05-26)
Hauke Mehrtens [Mon, 25 May 2026 23:17:13 +0000 (01:17 +0200)] 
libiwinfo: update to Git HEAD (2026-05-26)

f35c47d50bf2 devices: add device id for MediaTek MT7921E
6e198d375752 nl80211: fix corrupt scan results from wpa_supplicant
cd7db6194a71 devices: add device id for Qualcomm Technologies QCN6224/9224/9274
66bdd1a07189 devices: add device id for Qualcomm Atheros QCA9994

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agomvebu: add mwifiex sdio kernel module for Turris Mox 23421/head
Štěpán Dalecký [Tue, 19 May 2026 06:17:43 +0000 (08:17 +0200)] 
mvebu: add mwifiex sdio kernel module for Turris Mox

Turris Mox boards may include an SDIO Wi-Fi module based on the
Marvell 88W8997 chip. Add kmod-mwifiex-sdio to the default package
list so the driver is included in the image out of the box.

Signed-off-by: Štěpán Dalecký <daleckystepan@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23421
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agomvebu: add fw_env.config for Turris Mox
Štěpán Dalecký [Tue, 19 May 2026 06:17:43 +0000 (08:17 +0200)] 
mvebu: add fw_env.config for Turris Mox

Turris Mox stores the U-Boot environment in SPI NOR flash. Add the
fw_env.config entry pointing to MTD partition 2 at offset 0x0 with
64 KiB env size and sector size, so userspace tools fw_printenv and
fw_setenv work correctly on this board.

Signed-off-by: Štěpán Dalecký <daleckystepan@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23421
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agomvebu: fix squashfs boot for Turris Mox
Štěpán Dalecký [Tue, 19 May 2026 06:17:43 +0000 (08:17 +0200)] 
mvebu: fix squashfs boot for Turris Mox

The bootscript had several issues that prevented squashfs from booting:

- bootpath was set to "/" causing double slashes in load paths (e.g.
  "//Image"); changed to "" so "${bootpath}/Image" resolves to "/Image"
- rootflags was set to "commit=5" (a btrfs-specific mount option) for
  the ext4/squashfs case; cleared to empty string
- rootfstype was missing in the non-btrfs branch; added "auto" to let
  the kernel detect the filesystem; the btrfs branch now sets "btrfs"
  explicitly
- bootargs incorrectly referenced ${bootfstype} (the distroboot input
  variable) instead of the locally constructed ${rootfstype}
- has_dtb assignment used shell-style "has_dtb=1" but was cleared with
  "setenv has_dtb 0"; unified both to use setenv
- DTB load failure message now includes the attempted file path
- Fixed Image.lzma error echo that still used a stale "${subvol}/boot/"
  prefix; now consistently uses ${bootpath}
- Removed undefined variable "rootpart" from env delete

Signed-off-by: Štěpán Dalecký <daleckystepan@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23421
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agoloongarch64: add upstream dwmac-loongson patches for 2K3000/3B6000M
xinmu [Thu, 14 May 2026 09:34:17 +0000 (17:34 +0800)] 
loongarch64: add upstream dwmac-loongson patches for 2K3000/3B6000M

Add three backported patches from Linux upstream to fix the onboard
Ethernet controller (dwmac-loongson) detection and driver issues on
Loongson 2K3000 and 3B6000M platforms.

These patches are taken from the upstream Linux kernel and retain the
original authorship and commit logs. No other modifications are made
to the loongarch64 target.

The patches address the following symptoms:
- Onboard network interface not recognized
- Driver probe failures on 2K3000/3B6000M boards

Signed-off-by: xinmu <xinmu@loongfans.cn>
Link: https://github.com/openwrt/openwrt/pull/23366
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agomediatek: add support for netis EAP930 V1 23133/head
Mikhail Zhilkin [Wed, 20 May 2026 20:22:29 +0000 (23:22 +0300)] 
mediatek: add support for netis EAP930 V1

This commit adds support for netis EAP930 V1 ceiling access point.

Specification
-------------
- SoC       : MediaTek MT7981BA dual-core ARM Cortex-A53 1.3 GHz
- RAM       : 256 MiB DDR3 (ESMT M15T2G16128A-EFB)
- Flash     : SPI-NAND 128 MiB (ESMT F50L1G41LB-104)
- WLAN      : MediaTek MT7976CN dual-band WiFi 6
  - 2.4 GHz : b/g/n/ax,  MIMO 2x2
  - 5 GHz   : a/n/ac/ax, MIMO 2x2
- Ethernet  : 10/100/1000 Mbps x1 (SoC internal phy)
- USB       : No
- Buttons   : Reset
- LEDs      : 1x Status (red), gpio-controlled
              1x Status (blue), gpio-controlled
- Power     : 48 VDC (PoE) or 12 VDC, 1.5 A

Installation
------------
1. Connect to the access point using ssh (user: admin, pass: web interface
   password)
2. Make mtd backup:
   cat /dev/mtd0 | gzip -1 -c > /tmp/mtd0_spi0.0.bin.gz
   cat /dev/mtd1 | gzip -1 -c > /tmp/mtd1_BL2.bin.gz
   cat /dev/mtd2 | gzip -1 -c > /tmp/mtd2_u-boot-env.bin.gz
   cat /dev/mtd3 | gzip -1 -c > /tmp/mtd3_Factory.bin.gz
   cat /dev/mtd4 | gzip -1 -c > /tmp/mtd4_FIP.bin.gz
   cat /dev/mtd5 | gzip -1 -c > /tmp/mtd5_ubi.bin.gz
3. Download mtd backup from the /tmp dir of the router to your PC using
   scp protocol
4. Upload OpenWrt 'bl31-uboot.fip', 'preloader.bin' images to the /tmp
   dir of the router using scp protocol
5. Write FIP and BL2 (replace bootloader):
   mtd write /tmp/bl31-uboot.fip FIP
   mtd write /tmp/preloader.bin spi0.0
6. Place OpenWrt
   'openwrt-mediatek-filogic-netis_eap930-v1-initramfs-recovery.itb' image
   on the tftp server (IP: 192.168.1.254)
7. Erase 'ubi' partition and reboot the router:
   mtd erase ubi
   reboot
8. U-Boot automatically boot OpenWrt recovery image from tftp server to
   the RAM (1 Gbps link is required)
9. Upload OpenWrt 'sysupgrade.itb' image to the /tmp dir of the router
   (IP: 192.168.1.1) using scp protocol
10. Connect to the router using ssh and run:
    sysupgrade -n squashfs-sysupgrade.itb

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

Return to stock
---------------
1. Upload stock BL2, FIP, ubi partitions backup archives to the /tmp dir
   of the router using scp protocol
2. Connect to the router using ssh and run:
   apk update && apk add kmod-mtd-rw
   insmod mtd-rw i_want_a_brick=1
   mtd unlock BL2
   mtd unlock FIP
4. Restore backups:
   zcat /tmp/mtd1_BL2.bin.gz | mtd write - BL2
   zcat /tmp/mtd4_FIP.bin.gz | mtd write - FIP
   zcat /tmp/mtd5_ubi.bin.gz | mtd write - ubi
3. Reboot the router:
   reboot

UART
----
Connection parameters: 115200, 8N1, 3.3V
UART pins are silkscreened on the PCB.

MAC addresses
-------------
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| LAN     | 88:xx:xx:88:xx:d3 | label     |
| WLAN 2g | 88:xx:xx:18:xx:d4 |           |
| WLAN 5g | 88:xx:xx:78:xx:d4 |           |
+---------+-------------------+-----------+
The LAN MAC (hex) was found in 'Factory', 0x1fef20
The WLAN 2g/5g MAC prototype (hex) was found in 'Factory', 0x4

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23133
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agouboot-mediatek: mtd: nand: spi: otp: add NULL guards to OTP size functions 23447/head
Ryan Leung [Sat, 23 May 2026 05:31:42 +0000 (15:31 +1000)] 
uboot-mediatek: mtd: nand: spi: otp: add NULL guards to OTP size functions

U-Boot v2026.01 introduced drivers/mtd/nand/spi/otp.c which adds `spinand_user_otp_size()` and
`spinand_fact_otp_size()`. These functions are called unconditionally from `spinand_init()` in
drivers/mtd/nand/spi/core.c to determine whether to set up OTP methods:

  if (spinand_user_otp_size(spinand) || spinand_fact_otp_size(spinand)) {
      ret = spinand_set_mtd_otp_ops(spinand); /* drivers/mtd/nand/spi/core.c:2369 */
      ...
  }

Both OTP size functions pass `&spinand->user_otp->layout` or `&spinand->fact_otp->layout` to
`spinand_otp_size()` without first checking whether the pointer is NULL. In the standard probing
path, these pointers are assigned by `spinand_match_and_init()` from the per-chip `spinand_info`
table. `100-21-mtd-spi-nand-add-CASN-page-support.patch` adds CASN detection to `spinand_detect()`
so that when a CASN page is found, `spinand_init_via_casn()` is called instead of
`spinand_id_detect()`. As `spinand_match_and_init()` is only called via `spinand_id_detect()`, it
is never invoked for CASN-probed devices.

As a result, `spinand->user_otp` and `spinand->fact_otp` remain NULL from the zero-initialised DM
priv allocation. Both `spinand_user_otp_size()` and `spinand_fact_otp_size()` spuriously return
non-zero by reading `layout->npages` from a small mapped address computed from their respective
NULL pointer, causing `spinand_init()` to call `spinand_set_mtd_otp_ops()` which reads
`spinand->user_otp->ops` and thereby silently assigns a garbage value to `user_ops` that is then
dereferenced at `if (user_ops->info)`.

  int spinand_set_mtd_otp_ops(struct spinand_device *spinand)
  {
    struct mtd_info *mtd = spinand_to_mtd(spinand);
    const struct spinand_fact_otp_ops *fact_ops = spinand->fact_otp->ops;
    const struct spinand_user_otp_ops *user_ops = spinand->user_otp->ops;
    ...
    if (user_ops) {
        if (user_ops->info) /* drivers/mtd/nand/spi/otp.c:343 */
            ...
        ...
    }
    ...
  }

On COMFAST CF-WR632AX (MT7981, Winbond W25N01GV) this results in a "Synchronous Abort" during boot.
The crash was confirmed via `addr2line` on the U-Boot ELF:

  "Synchronous Abort" handler, esr 0x96000004, far 0xeafffffeeafffffe
  elr: 0000000041e2ff44 (drivers/mtd/nand/spi/otp.c:343)
  lr : 0000000041e2f2f8 (drivers/mtd/nand/spi/core.c:2369)

The same was observed on Acer Predator Connect W6x (MT7986, Winbond W25N02KV):

  "Synchronous Abort" handler, esr 0x96000004, far 0xeafffffeeafffffe
  elr: 0000000041e2c868 (drivers/mtd/nand/spi/otp.c:343)
  lr : 0000000041e2bc1c (drivers/mtd/nand/spi/core.c:2369)

Fix this by adding NULL guards to both OTP size functions so that they return 0 when the pointer is
NULL. With both functions returning 0, the condition in `spinand_init()` evaluates to false and
`spinand_set_mtd_otp_ops()` is never called, skipping setup of OTP methods entirely for CASN-probed
SPI NAND chips.

This change has no effect on SPI NAND chips that do have OTP data but not CASN. For those chips,
`spinand_match_and_init()` sets `spinand->user_otp` and `spinand->fact_otp` to non-NULL values from
the per-chip table, the NULL guard does not activate, and the existing behaviour is unchanged.

Fixes: https://github.com/openwrt/openwrt/issues/23430
Fixes: b94de14bafd06660536691ed633f364edf5fbe4d ("uboot-mediatek: update to v2026.01")
Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23447
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agomediatek: remove duplicate KERNEL{_INITRAMFS} 23490/head
Chukun Pan [Sat, 18 Apr 2026 12:06:30 +0000 (20:06 +0800)] 
mediatek: remove duplicate KERNEL{_INITRAMFS}

Remove duplicate KERNEL/KERNEL_INITRAMFS recipes from filogic.mk,
which are already defined in Device/Default for the mediatek target:

  KERNEL = kernel-bin | lzma | \
    fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
  KERNEL_INITRAMFS = kernel-bin | lzma | \
    fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/23490
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agouboot-mediatek: cleanup whitespace in patch
Chukun Pan [Fri, 27 Mar 2026 10:06:10 +0000 (18:06 +0800)] 
uboot-mediatek: cleanup whitespace in patch

Clean up whitespace and fix LED labels.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/23490
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agouboot-mediatek: reorder targets alphabetically
Chukun Pan [Mon, 16 Feb 2026 11:01:27 +0000 (19:01 +0800)] 
uboot-mediatek: reorder targets alphabetically

Sort U-Boot targets alphabetically.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/23490
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agouboot-mediatek: fix bl2 image for mt7987_rfb-emmc
Chukun Pan [Sun, 15 Feb 2026 10:01:25 +0000 (18:01 +0800)] 
uboot-mediatek: fix bl2 image for mt7987_rfb-emmc

The BL2 image for mt7987_rfb-emmc should be emmc, not sdmmc.

Fixes: 6d35eda ("uboot-mediatek: add builds for the MediaTek MT7987 reference board")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/23490
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agoath79: support Dragino LPS8 23472/head
Lech Perczak [Wed, 20 May 2026 18:11:56 +0000 (20:11 +0200)] 
ath79: support Dragino LPS8

Dragino LPS8 is a LoRa/LoRaWAN gateway with single Wi-Fi 4 radio and a
single Fast Ethernet port, based around Dragino HE module.

Specifications:
CPU: Atheros AR9330 SoC @400MHz,
RAM: 64MB DDR,
Flash: 16MB SPI-NOR,
Ethernet: One 100Mbps port.
Wireless: built-in 1x1 802.11 2.4GHz radio,
USB: single USB2.0 High speed host port,
LoRa: Semtech SX1301 or compatible module, dependent on LoRa band.
Power: USB-C 5V, with the usual 5,1k CC resistors missing - use type
A-to-C cable.

LEDs:
- LAN (red)
- WAN/Status (RGB, blue: status, green: WLAN, red: WAN)
- LoRa (bicolor, controlled by Semtech module)

UART: 3.3V 115200-8-N-1 at internal expansion header J2
RxD: pin 4
TxD: pin 6
GND: pin 8
Label MAC: Wi-Fi interface.

Installation:
Log in via SSH to the unit, default username and password are 'root' and
'dragino', respectively. SSH listens on port 2222.
Just 'sysupgrade -n' from vendor firmware, dropping old configuration.

Restore vendor firmware:
the same as installation, just 'sysupgrade -F -n', dropping configuration.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23472
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agoath79: support Dragino MS14
Lech Perczak [Wed, 20 May 2026 13:46:09 +0000 (15:46 +0200)] 
ath79: support Dragino MS14

Dragino MS14 is a small router/development kit with two Fast Ethernet
ports, with single 1x1 2,4GHz Wi-Fi radio and expansion headers.

Specifications:
CPU: Atheros AR9330 SoC @400MHz,
RAM: 64MB DDR,
Flash: 16MB SPI-NOR,
Ethernet: Two 100Mbps ports, LAN on eth0, WAN on eth1,
Wireless: built-in 1x1 802.11 2.4GHz radio,
USB: single USB2.0 High speed host port,
LEDs: 4 status LEDs for system, LAN, WAN and WLAN.
UART: 115200-8-N-1 at the 2x8 header
Label MAC: Wi-Fi interface.

The board support is ported over from old ar71xx target, and only
partially verified using LPS8 board, which will be introduced next.

Installation:
Log in via SSH to the unit, default username and password are 'root' and
'dragino', respectively. SSH listens on port 2222.
Just 'sysupgrade -n' from vendor firmware, dropping old configuration.

Update with configuration from ar71xx builds may be possible, but isn't
guaranteed, as the builds are many releases apart.

Restore vendor firmware:
the same as installation, just 'sysupgrade -F -n', dropping configuration.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23472
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agogeneric: refresh patches
Jonas Jelonek [Mon, 25 May 2026 21:46:23 +0000 (21:46 +0000)] 
generic: refresh patches

A recently added patch needs to be refreshed. Do that with make
target/linux/refresh.

Fixes: 89ef8aaf3e75 ("kernel: backport lm63 enhancements")
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agomusl: update to 1.2.6 22547/head
Hannu Nyman [Thu, 21 May 2026 13:07:31 +0000 (16:07 +0300)] 
musl: update to 1.2.6

Update musl C library to 1.2.6. Fixes CVE-2025-26519

* Patches refreshed. Unnecessary upstream patch removed.

* Add a post-release patch for timezone handling in datetime string
  matching (affecting at least uhttpd):
  bug report: https://www.openwall.com/lists/musl/2026/03/22/3
  fix: https://www.openwall.com/lists/musl/2026/03/30/6

1.2.6 release notes
https://git.musl-libc.org/cgit/musl/tree/WHATSNEW?id=9fa28ece75d8a2191de7c5bb53bed224c5947417

new features:
- posix_getdents interface (new in POSIX-2024)
- renameat2 interface (linux extension)
- iconv support for CP858
- vdso clock_gettime for riscv{32,64}, powerpc{,64}, and s390x
- loongarch64 TLSDESC support
- exposed __getauxval for compiler runtime use detecting cpu features

compatibility:
- initgroups no longer artificially limits number of supplementary groups
- getusershell now skips blank lines and comments
- exit is now explicitly thread-safe (possible future requirement)
- atexit now fails rather than deadlocking if called from late dtor
- strerror now has error strings for EUCLEAN and ENAVAIL
- isatty no longer collapses errors to ENOTTY
- sched.h namespace pollution with _GNU_SOURCE is reduced
- hasmntopt now matches only whole options, not arbitrary substrings
- shadow.h no longer declares an unimplemented sgetspent interface
- vdso with missing sysv hash table (only gnu hash) is now supported

conformance:
- pwrite now handles O_APPEND correctly, reports error if it can't
- mbnrtowcs now conforms to new POSIX-2024 requirement for partial character
- iconv GBK now properly includes euro symbol
- strptime now accepts conversion specifiers added in POSIX-2024
- inet_ntop IPv6 "zero compression" now conforms to RFC 5952

bugs fixed:
- iconv euc-kr decoder could do oob writes on invalid inputs (CVE-2025-26519)
- iconv shift_jis decoder could produce wrong outputs for some invalid inputs
- printf did not honor hex float precision correctly in some cases
- lost or delayed wakes in sem_post under race condition
- termios input speed handling was wrong
- strcasestr failed to match zero-length needle
- fma handled corner case with negative zero wrongly
- syslog LOG_MAKEPRI macro was incorrect
- timer_create is no longer affected by known pthread_barrier bugs
- sysconf(_SC_MINSIGSTKSZ) computed min size incorrectly
- statx emulation left some fields uninitialized
- mntent wrongly included final newline in parsed field output
- SIGEV_THREAD timers could abort process if SIGTIMER became unblocked
- bind_textdomain_codeset returned wrong value

arch-specific bugs fixed:
- early dynamic linker handled page size wrong on dynamic pagesize archs
- arm and aarch64 crti/n files had wrong alignment
- m68k POLLWRNORM and POLLWRBAND values were incorrect
- x32 mq ABI was mismatched

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Link: https://github.com/openwrt/openwrt/pull/22547
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agobcm47xx: base-files: hack sysinfo to allow ASU sysupgrades 21147/head
Mario Andrés Pérez [Sat, 23 May 2026 22:42:47 +0000 (00:42 +0200)] 
bcm47xx: base-files: hack sysinfo to allow ASU sysupgrades

This old platform(no DTS) is using nvram numeric fields (or "unknown"
string) for its board_name [1]. Allow ASU sysupgrades by preserving
that value in /tmp/sysinfo/boardtype for board-detection/configuration
logic, and derive a canonical board_name from /tmp/sysinfo/model in
the form "vendor,device-variant".

Only a few target profile image names are not consistent in the last
suffix, uniform them.

A few images with (NA) and (ROW) variants are only meant to be
compatible with the upgrade process in the OEM firmware using these
NETGEAR_BOARD_ID and NETGEAR_REGION fields but the images are
compatibles(only if the NETGEAR_BOARD_ID is shared,due to platform
check) [2] (i.e. netgear_wnr3500l).
Add SUPPORTED_DEVICES to one of these variant in order to allow ASU
sysupgrade profile identification.

*Since this target has never implemented fwtool's SUPPORTED_DEVICES
metadata check, there is no risk of breaking forceless sysupgrade with
new board_name values.

[1]: bcm47xx board info https://github.com/gregkh/linux/blob/master/arch/mips/bcm47xx/board.c
[2]: sysupgrade platform check https://github.com/openwrt/openwrt/blob/main/target/linux/bcm47xx/base-files/lib/upgrade/platform.sh

Fixes: 7d10f2c1e851 "brcm47xx: rework model detection"
Fixes: https://github.com/openwrt/asu/issues/419 (Netgear wnr3500L)
Closes: https://github.com/openwrt/asu/issues/878
Fixes: https://github.com/openwrt/asu/issues/1042 (Asus RT-N16)
Fixes: https://forum.openwrt.org/t/luci-attended-sysupgrade-support-thread/230552/115 (Asus RT-N16)
Signed-off-by: Mario Andrés Pérez <mapb_@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21147
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agotoolchain/gcc: use configure option to disable TM clone registry 23494/head
Shiji Yang [Sat, 23 May 2026 13:42:19 +0000 (21:42 +0800)] 
toolchain/gcc: use configure option to disable TM clone registry

GCC 10 added the new configure option --disable-tm-clone-registry[1].
It is useful for reducing code size in embedded systems. Our local hack
patch is no longer needed.

[1] https://gcc.gnu.org/cgit/gcc/commit/?h=releases/gcc-10&id=5a4602805eb3ebddbc935b102481e63bffc7c5e6
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23494
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agomediatek: add support for Buffalo WSR-2533DHP3 23497/head
Taiga Ogawa [Sat, 23 May 2026 17:41:12 +0000 (17:41 +0000)] 
mediatek: add support for Buffalo WSR-2533DHP3

Buffalo WSR-2533DHP3 is a 2.4/5 GHz band 11ac router, based on
MT7622B.

Specification:

- SoC         : MediaTek MT7622B
- RAM         : DDR3 256 MiB
- Flash       : SPI-NAND 128 MiB (Winbond W25N01GVZEIG)
- WLAN        : 2.4/5 GHz 4T4R
  - 2.4 GHz   : MediaTek MT7622B (SoC)
  - 5 GHz     : MediaTek MT7615
- Ethernet    : 5x 10/100/1000 Mbps
  - Switch    : MediaTek MT7531
- LEDs/Keys   : 6x/5x (2x: buttons, 3x: slide-switches)
- UART        : through-hole on PCB (J4)
  - assignment: 3.3V, GND, TX, RX from tri-angle marking
  - settings  : 115200n8
- Power       : 12 VDC, 1.5 A

Flash instruction using factory.bin image:

1. Boot WSR-2533DHP3 with "Router" mode
2. Access to "http://192.168.11.1/" and open firmware update page
   ("ファームウェア更新")
3. Select the OpenWrt factory.bin image and click update ("更新実行")
   button
4. Wait ~120 seconds to complete flashing

Note:

- This device has 2x OS images on flash. The first one will always be
  used for booting and the secondary is for backup.

Tested:

- initramfs boot
- factory.bin installation from OEM WebUI
- LAN port assignment
- WAN DHCP
- NAT routing
- 2.4 GHz Wi-Fi
- 5 GHz Wi-Fi
- LEDs
- Buttons

MAC Addresses:

LAN    : 58:27:8C:xx:xx:90 (board_data, mac (text))
WAN    : 58:27:8C:xx:xx:90 (board_data, mac (text))
2.4 GHz: 58:27:8C:xx:xx:91
5 GHz  : 58:27:8C:xx:xx:94

Signed-off-by: Taiga Ogawa <zectaiga@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23497
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agoramips: mt76x8: cudy-lt300-v3: fix backup partition offset 23511/head
Fil Dunsky [Sun, 24 May 2026 17:44:10 +0000 (20:44 +0300)] 
ramips: mt76x8: cudy-lt300-v3: fix backup partition offset

Fix typo in backup partition offset: `0xfe000` should be `0xfe0000`.

The incorrect offset caused the partition to be mapped at `0x0fe000`
instead of `0xfe0000`, placing it inside the firmware partition range.

Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23511
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agoramips: mt76x8: add support for Cudy WR300 v1 23426/head
Fil Dunsky [Mon, 18 May 2026 06:19:51 +0000 (09:19 +0300)] 
ramips: mt76x8: add support for Cudy WR300 v1

Hardware:
 - SoC: MediaTek MT7628AN (MIPS 580MHz)
 - Flash: 8 MiB NOR
 - RAM: 64 MiB DDR2
 - WLAN: 2.4 GHz (MT7628)
 - Ethernet: 1x 10/100 Mbps WAN, 3x 10/100 LAN (MT7628)
 - Buttons: 1x Reset, 1x wps
 - LEDs: Front: 1x Red, 1x White
 - Serial console: unpopulated header, 115200 8n1
 - Power: 12v barrel

MAC addresses:
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| LAN/WAN | d4:0d:ab:xx:xx:x0 | label     |
| WLAN 2g | d4:0d:ab:xx:xx:x1 | label+1   |
+---------+-------------------+-----------+

Migration to OpenWrt:
- Download the RSA-signed intermediate firmware from the Cudy website: `openwrt-ramips-mt76x8-cudy_wr300-squashfs-flash.bin`
- Connect the computer to the LAN and flash the intermediate firmware via the OEM web interface
- OpenWrt is now accessible via 192.168.1.1

Revert to OEM firmware:
- Set up a TFTP server on IP 192.168.1.88 and connect to the WAN port (upper port)
- Provide the Cudy firmware as `recovery.bin` in the TFTP server
- Power on the device and hold the reset button immediately after the first LED blink
- The recovery process will start
- When the recovery process is done, OEM firmware is accessible via 192.168.10.1 again

General information:
- No possibility to load an initramfs image via U-Boot because there is no option to interrupt U-Boot

Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23426
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agoarmsr: enable 6.18 as a testing kernel 21433/head
Mathew McBride [Tue, 6 Jan 2026 06:48:29 +0000 (17:48 +1100)] 
armsr: enable 6.18 as a testing kernel

Allow armsr to be built with kernel 6.18 when
CONFIG_TESTING_KERNEL is set

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agoarmsr: armv8: enable PCIe controllers for Rockchip
Mathew McBride [Mon, 30 Mar 2026 03:58:32 +0000 (14:58 +1100)] 
armsr: armv8: enable PCIe controllers for Rockchip

This is to improve compatibility with Rockchip platforms,
especially when NVMe is used as the operating system
block device.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agoarmsr: armv8: remove VA_BITS override
Mathew McBride [Sat, 24 Jan 2026 12:47:07 +0000 (23:47 +1100)] 
armsr: armv8: remove VA_BITS override

In kernel 6.9, arch/arm64 was changed (see Link:) to enable 52-bit
virtual addressing (using "Large Physical Addressing 2"/LPA2).

The kernel will select the appropriate addressing mode
(39/48/52-bit) for the CPU at runtime.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5d101654226d64ac0a6928019fbf476b46e9d14b
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agokernel: armsr: remove duplicate kconfig between generic and armsr
Mathew McBride [Fri, 1 May 2026 02:16:33 +0000 (12:16 +1000)] 
kernel: armsr: remove duplicate kconfig between generic and armsr

These were found by running:
comm -12 <(sort target/linux/generic/config-6.18) \
<(sort target/linux/armsr/config-6.18)

A similar process has been run between armsr/config-6.18
and armsr/armv8/config-6.18, though I have not pruned
the armv8 as much. Once the main branch switches armsr
to 6.18 we can do a more aggressive deduplication.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agokernel: armsr: move framebuffer and DRM related options to top-level
Mathew McBride [Wed, 15 Apr 2026 07:41:52 +0000 (17:41 +1000)] 
kernel: armsr: move framebuffer and DRM related options to top-level

The armv8 configuration has more features enabled compared to armv7,
as armv8 is intended to run on a selection of real hardware, while
armsr/armv7 almost always runs only in QEMU.

Some kmod dependency issues were appearing on armv7 builds which
did not appear elsewhere. To minimise these issues, we will
move the framebuffer feature set to the top level of the target.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agotarget: armsr: add new configuration options for 6.18
Mathew McBride [Tue, 6 Jan 2026 06:45:01 +0000 (17:45 +1100)] 
target: armsr: add new configuration options for 6.18

Set the configuration options that were prompted for
by the new kernel.

ARCH_CIX (Cixtech) has been enabled as their SoCs
have appeared in high end arm64 hardware.

There are also new Arm64 SoCs from Renesas and
Allwinner that should be bootable with the right
firmware stack.

There are minimal changes in the armv7 config,
only CONFIG_PAGE_BLOCK_MAX_ORDER has a unique
setting.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agokernel: armsr: introduce kmods for 'new' network devices
Mathew McBride [Tue, 6 Jan 2026 06:41:15 +0000 (17:41 +1100)] 
kernel: armsr: introduce kmods for 'new' network devices

These devices were prompted by the first configuration cycle
on kernel 6.18:
- sun55i (Allwinner A523) ethernet (dwmac flavour)
- Renesas GBETH Ethernet controller (dwmac flavour)
- Renesas RZN1 MIIC controller / PCS

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agokernel: armsr: kmod-fsl-enetc-net: use common library
Mathew McBride [Tue, 6 Jan 2026 06:40:22 +0000 (17:40 +1100)] 
kernel: armsr: kmod-fsl-enetc-net: use common library

NXP has introduced an evolved version of the LS1028A ENETC
IP in their new i.MX94/5 family. While the two devices
share a common lineage, they are different enough that
they cannot be implemented in the same driver.

Hence some functions from the LS1028A ENETC driver have been
split into a 'library'.

When a kmod package for the new ENETC (nxp-enetc4) is introduced then
the packaging for the common library will need to be reworked.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agokernel: armsr: backport renesas rz-sysc bitfield change
Mathew McBride [Sat, 25 Apr 2026 01:03:59 +0000 (11:03 +1000)] 
kernel: armsr: backport renesas rz-sysc bitfield change

In target/linux/generic/backport-6.18/ we have backported
bitfield changes from 6.19.

This change to drivers/soc/renesas/rz-sysc.c was part
of the same patch series and is needed to resolve
a duplicate definition compile error.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agokernel: armsr: remove duplicated field_get from rzv2h irqchip
Mathew McBride [Sun, 29 Mar 2026 23:30:00 +0000 (10:30 +1100)] 
kernel: armsr: remove duplicated field_get from rzv2h irqchip

In OpenWrt we have backported changes to bitfield.h
from kernel 6.19.

A backport fix, 9966c8cc987e ("irqchip/renesas-rzv2h:
Prevent TINT spurious interrupt during resume") into
linux-stable/linux-6.18.y modified irq-renesas-rzv2h.c
to include it's own field_get, which does not exist
in the 6.18 branch, causing a compile error.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agokernel/armsr: restore files for v6.12
Mathew McBride [Tue, 6 Jan 2026 04:04:22 +0000 (15:04 +1100)] 
kernel/armsr: 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: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agokernel/armsr: create files for v6.18 (from v6.12)
Mathew McBride [Tue, 6 Jan 2026 04:04:21 +0000 (15:04 +1100)] 
kernel/armsr: 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: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agouboot-ath79: update to v2026.04 22901/head
INAGAKI Hiroshi [Sun, 12 Apr 2026 07:45:56 +0000 (16:45 +0900)] 
uboot-ath79: update to v2026.04

Update the uboot-ath79 package to v2026.04 release for ath79 devices.

Tested on:

- NEC Aterm WG600HP (AR9344)
- NEC Aterm WG1400HP (QCA9558)

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22901
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
5 days agouboot-mediatek: fix BT-R320 malformed patch 23526/head
Qingfang Deng [Mon, 25 May 2026 14:29:57 +0000 (22:29 +0800)] 
uboot-mediatek: fix BT-R320 malformed patch

The Globitel BT-R320 patch has incorrect line numbers and corrupted
ASCII control characters.

Fixes: a3105d3f9573 ("mediatek: filogic: add support for Globitel BT-R320")
Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23526
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agokernel: bump 6.18 to 6.18.33 23419/head
John Audia [Sat, 23 May 2026 15:46:33 +0000 (11:46 -0400)] 
kernel: bump 6.18 to 6.18.33

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

Removed upstreamed:
  generic/backport-6.18/742-v7.1-r8152-fix-incorrect-register-write-to-USB_UPHY_XTAL.patch[1]
  generic/backport-6.18/827-v7.0-crypto-inside-secure-eip93-fix-register-definition.patch[2]
  generic/backport-6.18/828-v7.0-crypto-inside-secure-eip93-register-hash-before-auth.patch[3]
  generic/backport-6.18/940-v7.1-net-dsa-realtek-rtl8365mb-fix-mode-mask-calculation.patch[4]
  generic/pending-6.18/928-crypto-eip93-fix-hmac-setkey-algo-selection.patch[5]

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.33&id=50c601805fe3
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=7ed07c9ce525
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=b6263eb2b188
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=b707f3109f1a
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=fc9310d79fdb

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/23419
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agokernel: bump 6.18 to 6.18.32
John Audia [Sun, 17 May 2026 19:59:06 +0000 (15:59 -0400)] 
kernel: bump 6.18 to 6.18.32

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

Manually refreshed[1]:
  starfive/patches-6.18/0020-spi-pl022-starfive-Add-platform-bus-register-to-adap.patch
  starfive/patches-6.18/0022-spi-pl022-starfive-fix-the-problem-of-spi-overlay-re.patch
  starfive/patches-6.18/0031-spi-pl022-starfive-fix-controller-deregistration.patch

No patches automatically rebased via update_kernel.sh

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

1. https://github.com/ngc7331/openwrt/commit/72360971c18d29b069871f744067e53ca51541ce

Co-authored-by: Zhihao Xu <ngc7331@outlook.com>
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23419
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agokernel: bump 6.12 to 6.12.91 23444/head
Shiji Yang [Sat, 23 May 2026 12:36:07 +0000 (20:36 +0800)] 
kernel: bump 6.12 to 6.12.91

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

Remove upstreamed patches:
- airoha/patches-6.12/017-v6.13-net-airoha-Implement-BQL-support.patch[1]
- airoha/patches-6.12/138-v7.1-net-airoha-Add-missing-RX_CPU_IDX-configuration-in-a.patch[2]
- airoha/patches-6.12/149-v7.1-net-airoha-Move-ndesc-initialization-at-end-of-airoh.patch[3]
- generic/backport-6.12/940-v7.1-net-dsa-realtek-rtl8365mb-fix-mode-mask-calculation.patch[5]

Manually rebased patches:
- airoha/patches-6.12/048-01-v6.15-net-airoha-Move-airoha_eth-driver-in-a-dedicated-fol.patch[1]
- ath79/patches-6.12/800-leds-add-reset-controller-based-driver.patch[4]
- bcm27xx/patches-6.12/950-0122-bcmgenet-Better-coalescing-parameter-defaults.patch[6]

We also backported four patches to fix perf tool regression:
- generic/backport-6.12/216-01-revert-perf-cgroup-update-metric-leader-in-evlist__e.patch
- generic/backport-6.12/216-02-revert-perf-tool_pmu-fix-aggregation-on-duration_tim.patch
- generic/backport-6.12/216-03-revert-perf-python-add-parse_events-function.patch
- generic/backport-6.12/216-04-revert-perf-tool_pmu-factor-tool-events-into-their-o.patch

All other patches are automatically refreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.91&id=ca24fcac1daaa5e8a667981d81986a3eb4b9fb04
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.91&id=f00037a99bc2332ef59dc85298b98b20af165904
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.91&id=d36be272adda7f313e39dd118086955d993bf6a7
[4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.91&id=07d3611389ba7d78b80ea360a42ce32ab2521fbc
[5] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.91&id=3354d6c62fd4baa7b32cbd80cc5a8aa3f2bd0656
[6] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.91&id=b84351dcc359667bc952131c1424b692ec83dce2

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23444
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agokernel: bump 6.12 to 6.12.90
Shiji Yang [Wed, 20 May 2026 11:48:32 +0000 (19:48 +0800)] 
kernel: bump 6.12 to 6.12.90

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

All patches are automatically refreshed.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23444
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agoath79: enable link state reporting for eth1 on Qxwlan e750a/e600g/e600gac 9971/head
张 鹏 [Mon, 12 Jun 2023 09:21:28 +0000 (17:21 +0800)] 
ath79: enable link state reporting for eth1 on Qxwlan e750a/e600g/e600gac

Now, that the support for e750a/e600g/e600gac is merged, enable link state
reporting for the Fast Ethernet port attached through the built-in switch,
so it can generate netifd and hotplug events as well, for example -
- to control DHCP client.

Signed-off-by: 张 鹏 <sd20@qxwlan.com>
Link: https://github.com/openwrt/openwrt/pull/9971
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agoath79: cf-ew72: support link state reporting on eth0
Lech Perczak [Sat, 11 Jan 2025 17:04:24 +0000 (18:04 +0100)] 
ath79: cf-ew72: support link state reporting on eth0

Attach swphy0 to eth0 port instead of fixed-link.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/9971
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agoath79: report link state on ETH2 port of Mikrotik RBmAP-2nD
Lech Perczak [Sat, 23 Jul 2022 10:37:08 +0000 (12:37 +0200)] 
ath79: report link state on ETH2 port of Mikrotik RBmAP-2nD

Add node for swphy1 in qca953x.dtsi, as it is common part - but make it
disabled, as this one is rarely used in other devices. Enable it in
RBmAP-2nD and attach to eth1 as PHY.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/9971
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agoath79: enable link state reporting for eth1 on Ruckus ZF7372
Lech Perczak [Mon, 12 Sep 2022 22:41:51 +0000 (00:41 +0200)] 
ath79: enable link state reporting for eth1 on Ruckus ZF7372

Now, that the support for ZF7372 is merged, enable link state reporting
for the Fast Ethernet port attached through the built-in switch, so
it can generate netifd and hotplug events as well, for example -
- to control DHCP client.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/9971
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agoath79: dts: set builtin-switch for SoCs with fixed-link on eth1
Lech Perczak [Sat, 28 May 2022 20:41:26 +0000 (22:41 +0200)] 
ath79: dts: set builtin-switch for SoCs with fixed-link on eth1

Introduce the property from previous commit on the SoCs which use a
fixed 1000FD link to their internal switch. This way, devices which have
a single port attached through it can drop the "fixed-link" node if
needed, and attach proper phy-handle provided by built-in switch to
the port, to report link status information on userspace.

AR7100 is skipped intentionally, because its connection to built-in
switch isn't a fixed-link.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/9971
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>