Commit Graph

66353 Commits

Author SHA1 Message Date
Rosen Penev
dc420acc77 apm821xx: fix pcie node numbers
The values provides are correct if after the @ it would be the bus
number and then device number. But it's actually, device and then
function for pcie devices.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19425
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 13:15:12 +01:00
Rosen Penev
66a7e04e9e apm821xx: rename pciex to pcie
Fixes:

Warning (pci_bridge): /plb/pciex@d00000000: node name is not "pci" or "pcie"

Matches upstream commit: 86bc917d2ac117ec922dbf8ed92ca989bf333281

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19425
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 13:15:12 +01:00
Christian Marangi
e5ad92c588 kernel: mtdsplit: rework and make use of -ENOENT error
Rework each affected mtdsplit driver to make use of -ENOENT error
instead of -ENODEV to handle new kernel that checks error from parser on
subpartitions.

The only acceptable error is -ENOENT that skip the parser. This follow
pattern used upstream and also by an mtdsplit parser, mtdsplit_bcm_wfi,
and also by a workaround currently implemented for mtdsplit_mstc_boot.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 13:07:59 +01:00
Christian Marangi
1db7ed390d Revert "kernel: mtdsplit_fit: always return 0 when partition can't be split"
This reverts commit 627a0e7da0.

A better solution has been accepted upstream that doesn't hide all
unexpected error.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 12:53:29 +01:00
Christian Marangi
39aa7c77f9 airoha: refresh kernel patches
Refresh kernel patches with make target/linux/refresh.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 12:51:58 +01:00
Christian Marangi
b7aa0aa9bf airoha: backport patch fixing offload support with GDM2 present
Backport upstream patch fixing offload support in the presence of GDM2
interface.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 12:50:50 +01:00
Stefan Kalscheuer
bcae238390 bcm53xx: add 6.12 testing kernel
Add 6.12 testing kernel for bcm53xx target.

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/20167
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 12:49:25 +01:00
Stefan Kalscheuer
9fc6c0317e bcm53xx: 6.12: refresh kernel config
Add new and remove obsolete symbols for Kernel 6.12 by running
make kernel_oldconfig.

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/20167
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 12:49:25 +01:00
Stefan Kalscheuer
ce058f2c7b bcm53xx: 6.12: refresh patches
Drop upstreamed patches:
030-v6.7-0001-ARM-dts-BCM5301X-Set-MACs-for-D-Link-DIR-885L.patch
030-v6.7-0002-ARM-dts-BCM5301X-Set-MAC-address-for-Asus-RT-AC87U.patch
030-v6.7-0003-ARM-dts-BCM5301X-Relicense-Felix-s-code-to-the-GPL-2.patch
030-v6.7-0004-ARM-dts-BCM5301X-Relicense-Vivek-s-code-to-the-GPL-2.patch
030-v6.7-0005-ARM-dts-BCM5301X-Explicitly-disable-unused-switch-CP.patch
030-v6.7-0006-ARM-dts-BCM5301X-Set-fixed-link-for-extra-Netgear-R8.patch
030-v6.7-0007-ARM-dts-BCM5301X-Set-switch-ports-for-Linksys-EA9200.patch
040-v6.11-ARM-dts-broadcom-convert-NVMEM-content-to-layout-syntax.patch

All other patches automatically refreshed.

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/20167
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 12:49:24 +01:00
Stefan Kalscheuer
9e3c242992 kernel/bcm53xx: Restore kernel files for v6.6
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: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/20167
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 12:49:24 +01:00
Stefan Kalscheuer
fc6cdb7ba1 kernel/bcm53xx: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/20167
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 12:49:24 +01:00
Christian Marangi
2434ad8b08 generic: 6.12: backport fix for mtd parser error handling
Backport a trivial patch that half restore original functionality of MTD
parser for subpartition by ignoring if the parser returns -ENOENT.

This fix parsing and booting of some brcm devices.

Link: https://github.com/openwrt/openwrt/pull/20822
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 12:48:38 +01:00
Stefan Kalscheuer
23f9fa72b2 zynq: add 6.12 testing kernel
Add 6.12 testing kernel for zynq target.

Tested-by: Luis Araneda <luaraneda@gmail.com> # Zybo Z7-20
Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/20166
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 12:47:54 +01:00
Stefan Kalscheuer
ef25e165cf zynq: 6.12: refresh kernel config
Add new and remove obsolete symbols for Kernel 6.12 by running
make kernel_oldconfig.

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/20166
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 12:47:54 +01:00
Stefan Kalscheuer
ef49247b54 kernel/zynq: Restore kernel files for v6.6
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: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/20166
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 12:47:53 +01:00
Stefan Kalscheuer
c55173ac54 kernel/zynq: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/20166
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 12:47:53 +01:00
Lorenzo Bianconi
28a710885e airoha: backport kernel part of WiFi MT76 offload patch
Backport the kernel parf of the WiFi MT76 offload patch. This is needed
as we have a dedicated package that only have mt76 related changes.

Add missing include in airoha_offload.h in order to enable MT76 NPU
offloading (and fix compilation error)

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
[ improve commit title/description and use proper patch ]
Link: https://github.com/openwrt/openwrt/pull/20807
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 12:45:30 +01:00
Daniel Golle
1c3b32c45a mediatek: fix uart clocks in MT7987 infracfg clock driver
MediaTek has applied a fix for the MT7987 infracfg clock driver in their
SDK, pick it.

Link: fe98d04c60/master/files/target/linux/mediatek/patches-6.12/999-clk-01-clk-mediatek-fix-mt7987-infracfg-clk-driver.patch
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-11-18 11:28:37 +00:00
Andy Chiang
93cfbc7d1f mediatek: add support for EROFS
Enable EROFS support for Mediatek targets.

Build system: x86/64
Run-tested: mediatek/filogic GL-MT3000

Signed-off-by: Andy Chiang <AndyChiang_git@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/20792
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 12:18:02 +01:00
Stefan Kalscheuer
9d2882f3c0 bcm4908: add 6.12 testing kernel
Add 6.12 testing kernel for bcm4908 target.

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/20169
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-17 21:50:53 +01:00
Stefan Kalscheuer
705f7adb34 bcm4908: 6.12: refresh kernel config
Add new and remove obsolete symbols for Kernel 6.12 by running
make kernel_oldconfig.

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/20169
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-17 21:50:52 +01:00
Stefan Kalscheuer
aec7153f14 bcm4908: 6.12: refresh patches
Drop upstreamed patches:
* 130-arm64-dts-broadcom-bcmbca-bcm4908-set-brcm-wp-not-co.patch

All other patches automatically refreshed.

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/20169
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-17 21:50:52 +01:00
Stefan Kalscheuer
8a8fb241f7 kernel/bcm4908: Restore kernel files for v6.6
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: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/20169
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-17 21:50:52 +01:00
Stefan Kalscheuer
8967a34385 kernel/bcm4908: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/20169
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-17 21:50:51 +01:00
Kyle Hendry
08c8beec8c bcm47xx: 6:12: refresh patches
- remove no_llseek in 831-old_gpio_wdt.patch, see
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=cb787f4ac0c2e439ea8d7e6387b925f74576bdf8
- refresh remaining patches

Signed-off-by: Kyle Hendry <kylehendrydev@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19708
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-17 21:48:55 +01:00
Kyle Hendry
e61b1523bb bcm47xx: enable 6.12 testing kernel
Allow selecting 6.12 as testing kernel on bcm47xx.

Signed-off-by: Kyle Hendry <kylehendrydev@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19708
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-17 21:48:54 +01:00
Kyle Hendry
602f12d053 kernel/bcm47xx: Restore kernel files for v6.6
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: Kyle Hendry <kylehendrydev@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19708
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-17 21:48:54 +01:00
Kyle Hendry
389653947c kernel/bcm47xx: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Kyle Hendry <kylehendrydev@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19708
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-17 21:48:53 +01:00
Shiji Yang
2cce634a9e ramips: disable build TP-Link EAP235-Wall
After investigating the EAP235-Wall u-boot GPL code, it was found that
the u-boot of this device directly loads the kernel from the SPI NOR
Flash direct access address. However, due to hardware limitation, MT7621
can only remap the first 4MiB Flash. Excluding some partitions before
the kernel, this device can only boot kernels smaller than 0x360000.
This means that unless you install a modified bootloader, the mainline
OpenWrt will no longer work on this model.

Closes: https://github.com/openwrt/openwrt/issues/20500
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/20509
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-11-17 10:33:17 +01:00
Shiji Yang
e2d823d068 ramips: fix LZMA decompression error for TP-Link EAP615-Wall
Relocating the kernel load address to avoid the memory overlap issue.

Fixes: https://github.com/openwrt/openwrt/issues/19403
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/20509
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-11-17 10:33:17 +01:00
Shiji Yang
583e401abb ramips: enable LZMA loader for ZIO FREEZIO
Fix the kernel LZMA decompression error issue.

Fixes: https://github.com/openwrt/openwrt/issues/11815
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/20509
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-11-17 10:33:17 +01:00
Álvaro Fernández Rojas
acdf8a6291 odhcpd: update to Git HEAD (2025-11-14)
d3dc577d7e84 dhcpv6-ia: add missing limits header
be7ca7c0792b config: fix memleak during odhcpd reload
366bd81804a6 dhcpv4: update ubus DHCPv4 events/methods
942df078b670 odhcpd: rename dhcpv6_lease->clid[_data|_len]
f872ae543e6d odhcpd: rename [lease_cfg|dhcpv4_lease]->ipaddr to ipv4
aa6870be6be4 dhcpv4: use an AVL to store leases
f2d3f907e9e0 github: ci: add powerpc arch
62b94b9abac3 github: ci: add cmake build and source directories
e523232ba223 github: ci: disable json-c tests
764fda0d05a8 scripts: devel-build: disable json-c tests
f13d2cecaebf netlink: fix typo in debug msg
fa6e63bb8200 src: fix whitespace issues
2c6a9d6e12d4 vscode: enable indentation detection
b6ade2ebc514 odhcpd: add support for "ignore"
77f9a0dad517 statefiles: support per-interface hosts files
9ba4e3e0f5c5 statefiles: don't make hostsfile dependent on statefile
be9c9f895ab4 statefiles: don't write expired leases
f6f2ef2de045 statefiles: simplify statefiles_write_state6()
940ecbb39161 statefiles: write straight to file in statefiles_write_state4()
ebe0b83db6a9 statefiles: correct some comments/variable names
67a6626dd2f5 statefiles: unify host4 writing
bf9889dfcd47 statefiles: unify host6 writing
593b6b72927c statefiles: group functions
8b2a62250485 statefiles: add function to write IPv4 hosts
06904ee1d4fb statefiles: simplify state/host file writing
bb39f088f3ef statefiles: move dhcpv6_ia_enum_addrs() to odhcpd.c
cc614a451f9b statefiles: add dhcpv6_lease to dhcpv6_log_ia_addr() args
8500654e39d5 statefiles: create helper functions to write leases
98276afcff82 statefiles: introduce statefiles_write()
310846535d06 statefiles: use dirfd in dhcpv6_ia_write_statefile()
50c35c3195f2 statefiles: bail early in dhcpv6_ia_write_statefile()
134ec453dd58 statefiles: simplify dhcpv6_ia_write_hostsfile()
7136fbe390a5 dhcpv6-ia: split statefile handling to separate file
2b26df1293c1 src: replace #pragma once with defines
43baf47948c6 src: remove whitespaces at EOL
df1824aec66c vscode: add tab settings
a89b57fa1786 odhcpd: Implement RFC9762 DHCPv6 PD Preferred flag for PIOs
e63ec4001f83 dhcpv4: add support for RFC4361-style clientid
29357349b33a odhcpd: remove the "legacy" option
f6ba8004d699 odhcpd: document the "upstream" option
56c06a162a4f odhcpd: document the "ra_advrouter" option
e3aaf3312cd5 odhcpd: remove the "ra_management" option
5238defd2c1d odhcpd: remove the "pd_manager" and "pd_cer" options
4f20351c3713 odhcpd: remove the "filter_class" option
869e2231bbc9 config: drop iface_attr_info
af446679d112 README.md: add missing options
7d1b081dcb1b dhcpv4: lazy store statefiles

d44af6dd8f...d3dc577d7e

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20789
2025-11-17 08:14:26 +01:00
Andrii Kuiukoff
97256a28fe ramips: add support for EDUP EP-RT2960S
EDUP EP-RT2960S has the similar hardware design as the SIMAX1800T.
The main difference is the arrangement of the GPIO pins
and the location of the MAC address.

Specification
-------------
- SoC       : Mediatek MT7621
- RAM       : 256 MiB DDR3
- Flash     : 128 MiB NAND Flash
- WLAN      : Mediatek MT7905 DBDC
  - 2.4 GHz : 2x2 MIMO WiFi6
  - 5 GHz   : 2x2 MIMO WiFi6
- Ethernet  : MT7621 built-in 10/100/1000 Mbps 1x WAN; 3x LAN
- UART      : 3.3V, 115200n8
- Buttons   : 1x RESET; 1x WPS/MESH
- LEDs      : 1x Multi-Color(Blue;Green;Red)
- Power     : DC 12V1A
- CMIIT ID  : 2022AP7163
- TFTP IP   :
  - server  : 192.168.1.254
  - router  : 192.168.1.28

TFTP Installation(recommend)
------------
1. Set local tftp server IP "192.168.1.254" and NetMask "255.255.255.0".
2. Rename initramfs-kernel.bin to "factory.bin" and put it in the root
   directory of the tftp server. tftpd64 is a good choice for Windows.
3. Remove all Ethernet cables and WiFi connections from the PC, except
   for the one connected to the EDUP EP-RT2960S. Start the TFTP server, plug
   in the power adapter and wait for the OpenWrt system to boot.
4. Backup "firmware" partition and rename it to "firmware.bin". We need
   it to back to the stock firmware.
5. Use "fw_printenv" command to list envs. If "firmware_select=2" is
   observed then set u-boot env variable via command:
   `fw_setenv firmware_select 1`
6. Apply sysupgrade.bin in OpenWrt LuCI.

Web UI Installation
------------
1. Apply update by uploading initramfs-factory.bin to the web UI.
2. Use "fw_printenv" command to list envs. If "firmware_select=2" is
   observed then set u-boot env variable via command:
   `fw_setenv firmware_select 1`
3. Apply squashfs-sysupgrade.bin in OpenWrt LuCI.

Return to Stock Firmware
----------------------------
  Restore the backup firmware partition in the installation step 4.

MAC addresses
-------------
+---------+-------------------+
|         | MAC example       |
+---------+-------------------+
| LABEL   | 24:D5:1C:xx:xx:xx |
| LAN     | 24:D5:1C:xx:xx:xx |
| WAN     | 24:D5:1C:xx:xx:xx |
| WLAN2G  | 24:D5:1C:xx:xx:xx |
| WLAN5G  | 26:D5:1C:xx:xx:xx |
+---------+-------------------+

Tips:
-----------
  User can use `TFTP Installation` method to recover a brick device.

Signed-off-by: Andrii Kuiukoff <andros.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20600
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-16 21:59:28 +01:00
Matthias Van Parys
59ecc11ccf hostapd: pass global linker options to CLI tools
The CLI tools hostapd_cli and wpa_cli are compiled with
`TARGET_LDFLAGS_C` rather than the standard `TARGET_LDFLAGS`.
This variable is empty, leading to global linker options not being
applied.

Set this variable equal to `TARGET_LDFLAGS` right after the package.mk
include to make sure global linker options are applied, but local options
such as linking to crypto libraries are not.

Signed-off-by: Matthias Van Parys <matthias.vanparys@softathome.com>
Link: https://github.com/openwrt/openwrt/pull/20345
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-16 21:44:49 +01:00
Jonathan Luijsmans
8afdc50092 lua5.3: Add TARGET_LDFLAGS to MYLDFLAGS
Add TARGET_LDFLAGS to MYLDFLAGS make sure that the required flags are used
during the compilation.

Signed-off-by: Jonathan Luijsmans <jonathan.luijsmans_ext@softathome.com>
Link: https://github.com/openwrt/openwrt/pull/20642
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-16 21:34:08 +01:00
Sven Eckelmann
501f4edb04 realtek: dsa: Clarify statistic port iterator variable
The functions iterating through the port statistic/counter (for
initialization or polling) use the generic name "i" for the iterator. This
makes reading the actual body of the loop cumbersome because it is not
clear that various parameters of functions are about a ports.

Suggested-by: Felix Baumann <felix.bau@gmx.de>
Signed-off-by: Sven Eckelmann <se@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/20631
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-16 00:10:56 +01:00
Sven Eckelmann
e20ab65281 realtek: dsa: rtl931x: Reduce HW counters polling interval
Some SoC families require table access to get the HW counters. A mutex is
required for this access - which will potentially cause a sleep in the
current context. This is not always possible with .get_stats64 because it
is also called in atomic contexts.

For these SoCs, the retrieval of the current counters in .get_stats64 is
skipped and the counters are simply retrieved a lot more often from the HW.

Signed-off-by: Sven Eckelmann <se@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/20631
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-16 00:10:56 +01:00
Sven Eckelmann
e76ed39f3b realtek: dsa: Refresh link_stats in .get_stats64
If an architecture doesn't need to sleep for retrieving the current
statistics from the HW, it is possible to directly retrieve the last values
from the HW when .get_stats64 is called. This avoids the stale counters
with the current refresh interval of 60 seconds.

Signed-off-by: Sven Eckelmann <se@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/20631
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-16 00:10:56 +01:00
Sven Eckelmann
bd78eeb53f realtek: dsa: Select counter lock based on sleeping behavior
On many architectures, retrieving the HW counters from the switch is not
potentially sleeping. This would potentially allow these architectures to
retrieve the most recent values from the HW when .get_stats64 is called.
But because of the global mutex (which may sleep on lock), this would no
longer be possible.

Reintroduce the per port counters lock which protects from parallel
writes+reads of the non-link_stat counters. The locking is made abstract by
using helpers which identify the correct locking mechanism based on the
used read methods of the SoC.

Signed-off-by: Sven Eckelmann <se@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/20631
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-16 00:10:56 +01:00
Harshal Gohel
3c95a60e33 realtek: dsa: rtl931x: add ethtool statistics support
Add MIB data structures and table access routines for the RTL931X family.
These counters can now be exposed through the ethtool statistics interface.

Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Co-developed-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Signed-off-by: Sven Eckelmann <se@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/20631
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-16 00:10:56 +01:00
Sharadanand Karanjkar
fdc424c1e3 realtek: dsa: add table-based statistics infrastructure
Some Realtek SoCs such as the RTL931X store MIB counters in tables rather
than registers. Unlike register reads, table access requires programming
the table control register, setting the command field to determine read or
write, and then polling for completion. This makes it necessary to
implement a separate path for table-based statistics.

Like register-based MIBs, the table-based MIBs also come in two types: STD
and PRIV which will require slightly different implementations.

Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Signed-off-by: Sven Eckelmann <se@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/20631
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-16 00:10:56 +01:00
Sharadanand Karanjkar
ac6bd8473d realtek: dsa: rework MIB read locking and polling
Some Realtek SoCs do not expose MIB counters as simple registers. Instead,
retrieving counters may require blocking operations or take longer than a
normal register read. This makes the existing approach of direct reads
unsuitable. The existing approach uses spin locks which forbid sleeping
inside their context. But some hardware accesses methods (for example table
reads) might block (sleep).

To handle this, the MIB read path is redesigned with two levels of
locking:

* A global mutex protects updates of MIB data from the hardware. This is
  necessary because reads can occur both in the polling workqueue and from
  ethtool callbacks, also two user threads might call the ethtools
  callbacks. A global mutex helps to avoid parallel reads of the same
  hardware data. For table reads, this is not necessarily required because
  they are already using a table lock. But they are the reason why
  spin-locks can no longer be used (see above).

* A per-port spinlock protects the shared memory region where per-port
  counters are copied. Avoids reading of half copied values in
  .get_stats64()

As part of this change, MIB reads were removed from .get_stats64() since
that callback can be started from an atomic context and must never sleep
(block) in this context. A shared memory region is provided which will be
updated periodically by MIB workqueue and .get_stats64() will simply return
data from the shared memory.

Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Signed-off-by: Sven Eckelmann <se@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/20631
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-16 00:10:56 +01:00
Pawel Dembicki
38ed1510db mac80211: mwl8k: inject DSSS Parameter Set element into beacons if missing
Some Marvell AP firmware used with mwl8k misbehaves when beacons do not
contain the DSSS Parameter Set (WLAN_EID_DS_PARAMS) with the current
channel. When hostapd/mac80211 omits this element (which is valid on
some bands), the firmware may report bogus RX channel information and AP
mode becomes unusable.

Backport the upstream fix that ensures beacons always carry the DSSS
Parameter Set for mwl8k: when setting the beacon, detect if the element
is missing and inject it after SSID and Supported Rates (per spec
ordering). This mirrors behaviour in newer Marvell drivers and restores
stable operation.

Tested on Linksys EA4500 (88W8366).

Fixes: openwrt/openwrt#19088
Link: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless.git/commit/?id=c4e1ac09ee1c750890e36cb1f841f25518f23589

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20757
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-15 22:11:29 +01:00
Aleksander Jan Bajkowski
787c1106d5 kernel: backport upstream realtek PHY patches
Changelog:
18aa36238a4d: net: phy: realtek: add interrupt support for RTL8221B
61958b33ef0b: net: phy: realtek: Add RTL8224 cable testing support
ffff5c8fc2af: net: phy: realtek: fix rtl8221b-vm-cg name
2c67301584f2: net: phy: realtek: Avoid PHYCR2 access if PHYCR2 not present
f63f21e82eca: net: phy: realtek: support for TRIGGER_NETDEV_LINK on RTL8211E and RTL8211F
a9b24b3583ae: net: phy: realtek: add error handling to rtl8211f_get_wol

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/20650
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-15 20:43:19 +01:00
Marcin Leksmark
35a86267e9 ramips: fix support for Cudy r700
This PR fixes support for Cudy r700.

Original PR: https://github.com/openwrt/openwrt/pull/18532
Fixed:

- WAN port functionality;
- RESET button;
- Status LED;
- LAN port names consistent with the chassis;
- Merged partitions "debug", "backup" & "firmware"  to one partition "firmware" ("debug" & "backup" contained unimportant data);
- Removed redundant DTS elements.

Installation:

To install OpenWRT, you need the intermediate firmware from Cudy. (U-boot is locked). After installing the intermediate firmware, you can install OpenWRT via sysupgrade.

Recovery:

TFTP available.
1. Place the recovery.bin in the serving directory of your TFTP server.
2. Set your IP to 192.168.1.88/24.
3. Press the “Reset” button of Cudy router and hold it. Before the Cudy router is powered on and before TFTP start to download the firmware, don't release the “Reset” button.
4. Power on the Cudy router.
5. You can release the reset button only when TFTP starts downloading firmware.
6. When the SYSTEM LED turns solid green, the upgrade is complete.

Fixes: 75403dd1d0 ("ramips: add support for Cudy R700")
Signed-off-by: Marcin Leksmark <lexmark3200@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/20756
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-15 20:37:20 +01:00
Tianling Shen
2f184801c3 rockchip: add Radxa ROCK 2A/F support
Hardware
--------
RockChip RK3528 ARM64 (4 cores)
1/2/4GB LPDDR4 RAM
1x LED (state)
1x Reset button
0/8/16/32/64GB eMMC on-board
Micro-SD Slot
PCIe FPC connector
3x USB 2.0 Port
HDMI/AV OUT
USB Type-C 5V Power

ROCK 2A:
+ 3.5mm audio out
+ 1000 Base-T
+ SYS LED
+ USB 3.0 Port (conflicts with PCIe)

Installation
------------
Uncompress the OpenWrt sysupgrade and write it to a micro SD card or
internal eMMC using dd.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-15 19:56:27 +01:00
Tianling Shen
b400ef9dbc uboot-rockchip: add ROCK 2A/2F support
Add support for the Radxa ROCK 2A/2F board.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-15 19:56:27 +01:00
Tianling Shen
da08958a30 rockchip: add Radxa E20C support
Hardware
--------
RockChip RK3528 ARM64 (4 cores)
1/2/4GB LPDDR4 RAM
2x 1000 Base-T
3x LEDs (LAN / SYS / WAN)
1x User button
0/8/16/32/64GB eMMC on-board
Micro-SD Slot
USB 2.0 Port
USB Type-C 5V2A Power

Installation
------------
Uncompress the OpenWrt sysupgrade and write it to a micro SD card or
internal eMMC using dd.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-15 19:56:27 +01:00
Tianling Shen
9aca1216d1 uboot-rockchip: add Radxa E20C support
Add support for the Radxa E20C board.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-15 19:56:27 +01:00
Tianling Shen
decaf4cc7a uboot-rockchip: backport updates for RK3528
Added USB boot support and eMMC r/w fixes for RK3528.
Refreshed upstreamed patches while at it.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-15 19:56:27 +01:00