Compare commits

...

683 Commits

Author SHA1 Message Date
Anton Danilov
5774c8b316 mediatek: add Motorcomm PHY support to Cudy AP3000 v1
Newer Cudy AP3000 v1 routers feature a Motorcomm YT8821 PHY
instead of the Realtek PHY [1]. Support for the YT8821
was recently introduced for the Cudy WR3000H router [2].
On the AP3000, the changes allow the PHY to be autodetected.

[1]: https://forum.openwrt.org/t/cudy-ap3000-v1-indoor-wan-motorcomm-yt8821-support/245491
[2]: https://github.com/openwrt/openwrt/pull/21399

Signed-off-by: Anton Danilov <frimen.c@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21776
(cherry picked from commit 31f30f5a6c)
Link: https://github.com/openwrt/openwrt/pull/21915
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-09 00:36:27 +01:00
Jakub Vaněk
bed6f08c36 mediatek: fix PHY autodetection on Cudy WR3000H
Newer Cudy WR3000H units have a Motorcomm YT8821 PHY instead of a
Realtek PHY on the WAN port. Before this commit, the Motorcomm PHY
could not be autodetected by the kernel -- the PHY would show up as
just a generic clause 45 PHY and the proper driver would not be loaded.

The cause of the detection failure likely was that the YT8821 PHY was
held in reset during PHY detection. To fix this, move the reset GPIO
definition to the MDIO bus level. This reset line is deasserted before
the autodetection process, see also [1]. With this change, both Realtek
and Motorcomm PHYs can be supported with a single device tree.

[1]: https://lore.kernel.org/all/20251119134750.394655-1-horatiu.vultur@microchip.com/

Signed-off-by: Jakub Vaněk <linuxtardis@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21399
(cherry picked from commit 02f0efd60b)
Signed-off-by: Jakub Vaněk <linuxtardis@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21531
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-07 16:33:07 +01:00
Andrew MacIntyre
09e56437e8 mediatek: add Motorcomm PHY driver to Cudy WR3000H
Recent Cudy WR3000H v1 units have a Motorcomm YT8821 2.5G PHY for
the WAN interface instead of the RTL8221B PHY used in earlier units,
so add kmod-phy-motorcomm to be able to use it.

Signed-off-by: Andrew MacIntyre <andymac@pcug.org.au>
[linuxtardis@gmail.com: slightly reworded the commit description]
Signed-off-by: Jakub Vaněk <linuxtardis@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21399
(cherry picked from commit dbafbab876)
Signed-off-by: Jakub Vaněk <linuxtardis@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21531
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-07 16:33:07 +01:00
Andrew MacIntyre
194275c6f3 kernel: add kmod-phy-motorcomm
The Motorcomm YT8821 2.5G PHY is being used in some devices as an
alternative to devices like the RTL8221B.  Package it as a kmod
so it can be used as a device package rather than requiring changes
to the target kernel config.

Signed-off-by: Andrew MacIntyre <andymac@pcug.org.au>
Link: https://github.com/openwrt/openwrt/pull/21399
(cherry picked from commit 96a1337374)
Signed-off-by: Jakub Vaněk <linuxtardis@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21531
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-07 16:33:07 +01:00
Jakub Vaněk
f3de64751c generic: backport Motorcomm YT8821 PHY driver
A recently introduced hardware revision of the Cudy WR3000H
router uses the Motorcomm YT8821 PHY chip on its 2.5G WAN port.
Backport the YT8821 enablement patch to the 6.6 kernel to make
the new WR3000H supportable on OpenWrt 24.10.

Signed-off-by: Jakub Vaněk <linuxtardis@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21531
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-07 16:33:06 +01:00
Tim Harvey
7c22ba7b33 kernel: modules: Add tpm-tis-spi
Add a module for tpm-tis-spi for TCG TIS 1.3 TPM security chips
connected to a regular non-tcg SPI master.

Add imx target compatibility for kmod-tpm.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/21726
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 92a94dc9b0)
Link: https://github.com/openwrt/openwrt/pull/21781
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-05 00:05:31 +01:00
Paweł Owoc
93d54b142e mac80211: ath11k: fix for unsupported 11ax EDCA
Currently publicly available firmware for ath11k does not support
the 11ax EDCA parameter.
Skipping sending this parameter allows the use of STA mode.

Fixes: https://github.com/openwrt/openwrt/issues/21555
Fixes: https://github.com/openwrt/openwrt/issues/20702
Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21563
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 5fc9296912)
Link: https://github.com/openwrt/openwrt/pull/21570
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-05 00:01:43 +01:00
Martin Schiller
9237dea49e openssl: update to version 3.0.19
OpenSSL 3.0.19 is a security patch release. The most severe CVE fixed
in this release is High.

This release incorporates the following bug fixes and mitigations:

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

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

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

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

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

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

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

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

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
Link: https://github.com/openwrt/openwrt/pull/21831
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-04 23:57:41 +01:00
Hirokazu MORIKAWA
466d57ea24 kernel: revert ip6_tunnel use skb_vlan_inet_prepare() in __ip6_tnl_rcv()
Fixe Linux 6.12.67 broke ipip6 tunnel (DS-Lite) and MAP-E.

Upstream report: https://lists.openwall.net/netdev/2026/01/30/70
Fixes: https://github.com/openwrt/openwrt/issues/21737
Signed-off-by: Hirokazu MORIKAWA <morikw2@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21783
(cherry picked from commit ee0b160acc)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21801
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-04 23:56:04 +01:00
Goetz Goerisch
08106add9c kernel: bump 6.6 to 6.6.122
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.122

All patches autorefreshed

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21801
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-04 23:56:04 +01:00
Dmitry Mostovoy
8843108ff0 mediatek: add kmod-usb3 to default package set of WR3000P
Include XHCI USB drivers on the Cudy WR3000P v1 router, the drivers are
required to be able to use the USB port for USD devices.

Closes: https://github.com/openwrt/openwrt/issues/21231
Fixes: 04e9d154f2 ("mediatek: filogic: add support for Cudy WR3000P v1")
Signed-off-by: Dmitry Mostovoy <dmitry.mostovoy@ceifx.com>
Link: https://github.com/openwrt/openwrt/pull/21281
(cherry picked from commit 9da57e2f82)
Link: https://github.com/openwrt/openwrt/pull/21405
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-19 01:20:16 +01:00
Trix Taiclet
94a54a1e03 uboot-mediatek: fix build with swig 4.3.0
Swig 4.3.0 has changed SWIG_Python_AppendOutput, which now requires an
additional parameter `is_void`. SWIG_AppendOutput remains unchanged.
This was fixed upstream in u-boot/u-boot@a63456b

```
scripts/dtc/pylibfdt/libfdt_wrap.c: In function ‘_wrap_fdt_next_node’:
scripts/dtc/pylibfdt/libfdt_wrap.c:5581:17: error: too few arguments to function ‘SWIG_Python_AppendOutput’
 5581 |     resultobj = SWIG_Python_AppendOutput(resultobj, val);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~
```

This is the same fix as applied in 363e07d and 71b5de6.

This commit is not part of the main branch, as the main branch has
already bumped past 2025.01, removing the need for this patch.
uboot-rockchip had the patch removed as part of 92814fe, which was the
bump to 2025.01.

Signed-off-by: Trix Taiclet <git@trix.moe>
Link: https://github.com/openwrt/openwrt/pull/21415
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-19 01:18:44 +01:00
Trix Taiclet
4327b82a7b uboot-d1: fix build with swig 4.3.0
Swig 4.3.0 has changed SWIG_Python_AppendOutput, which now requires an
additional parameter `is_void`. SWIG_AppendOutput remains unchanged.
This was fixed upstream in u-boot/u-boot@a63456b

```
scripts/dtc/pylibfdt/libfdt_wrap.c: In function ‘_wrap_fdt_next_node’:
scripts/dtc/pylibfdt/libfdt_wrap.c:5581:17: error: too few arguments to function ‘SWIG_Python_AppendOutput’
 5581 |     resultobj = SWIG_Python_AppendOutput(resultobj, val);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~
```

This is the same fix as applied in 363e07d.

Fixes: #20619
Link: #20620
Signed-off-by: Trix Taiclet <trix@c3l.lu>
Link: https://github.com/openwrt/openwrt/pull/20620
(cherry picked from commit 71b5de61ae)
Signed-off-by: Trix Taiclet <git@trix.moe>
Link: https://github.com/openwrt/openwrt/pull/21415
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-19 01:18:44 +01:00
Hauke Mehrtens
23180fbfaa uboot-sifiveu: fix build with swig 4.3.0
Fixes the following error by backporting upstream update:
```
scripts/dtc/pylibfdt/libfdt_wrap.c: In function ‘_wrap_fdt_next_node’:
scripts/dtc/pylibfdt/libfdt_wrap.c:5581:17: error: too few arguments to function ‘SWIG_Python_AppendOutput’
 5581 |     resultobj = SWIG_Python_AppendOutput(resultobj, val);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~
```

This is the same fix as applied in 4e68103c4e ("uboot-rockchip: fix build with swig 4.3.0")

Link: https://github.com/openwrt/openwrt/pull/20538
(cherry picked from commit 363e07dfa2)
Signed-off-by: Trix Taiclet <git@trix.moe>
Link: https://github.com/openwrt/openwrt/pull/21415
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-19 01:18:44 +01:00
Florian Maurer
6a11ba0fd6 mac80211: ath9k: Add RX inactivity detection and reset chip
Some ath9k chips can, seemingly at random, end up in a state which can
be described as "deaf". No or nearly no interrupts are generated anymore
for incoming packets. Existing links either break down after a while and
new links will not be established.

This is merged upstream in
https://patchwork.kernel.org/project/linux-wireless/patch/20241106-ath9k-deaf-detection-v1-1-736a150d2425@redhat.com/

Signed-off-by: Florian Maurer <f.maurer@outlook.de>
Link: https://github.com/openwrt/openwrt/pull/21487
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-19 01:16:27 +01:00
Goetz Goerisch
18771e11c9 kernel: bump 6.6 to 6.6.121
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.121

All patches autorefreshed

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21503
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-19 01:14:52 +01:00
Goetz Goerisch
67294cb751 kernel: bump 6.6 to 6.6.120
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.120

Removes upstreamed patches:
generic/backport-6.6/600-v6.10-net-Remove-conditional-threaded-NAPI-wakeup-based-on.patch [1]
generic/backport-6.6/601-v6.10-net-Allow-to-use-SMP-threads-for-backlog-NAPI.patch [2]

Manually rebase patches:
bcm27xx/patches-6.6/950-1396-i2c-designware-Add-support-for-bus-clear-feature.patch [3]
ipq40xx/patches-6.6/401-mmc-sdhci-msm-comment-unused-sdhci_msm_set_clock.patch [4]
mediatek/patches-6.6/733-01-net-phy-mediatek-Re-organize-MediaTek-ethernet-phy-d.patch [5]
qualcommax/patches-6.6/0113-remoteproc-qcom-Add-secure-PIL-support.patch [6]
qualcommax/patches-6.6/0116-remoteproc-qcom-Update-regmap-offsets-for-halt-regis.patch [6]

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.120&id=03765d5c18084eab40351fda09bc6fc1a343cd07
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.120&id=f3652768a89cfdaedbe2c9384299eea7ec435fef
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.120&id=62641daa93cb8b8ed975fad75fb07f9f9e3488cd
[4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.120&id=fe2ce8f925b09d819546feb5db52ab1db42cb0d4
[5] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.120&id=a902343f133154e438b772d3e7b538ed0b163acc
[6] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.120&id=61f371ade3b68dbb46e2d90882af993f73b489b5

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21503
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-01-19 01:14:52 +01:00
Steffen Förster
49862b1cf5 ramips: fix gmac definition for cudy ap1300 outdoor
The gmac definition has an offset of 1 at the moment. This leads to an
off by one error in downstream projects that rely on the package label mac.

Signed-off-by: Steffen Förster <nemesis@chemnitz.freifunk.net>
Link: https://github.com/openwrt/openwrt/pull/21543
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Link: https://github.com/openwrt/openwrt/pull/21561
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-01-18 17:01:18 +01:00
Maximilian Baumgartner
82f4ee5656 mediatek: fix gmac definition for cudy m3000
The gmac definition has an offset of 1 compared to the label MAC.
Fixes: a55ab9e134 ("mediatek: filogic: prevent faulty mac address assignment")

Signed-off-by: Maximilian Baumgartner <aufhaxer@googlemail.com>
Link: https://github.com/openwrt/openwrt/pull/21560
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 687a2535d5)
2026-01-18 11:37:52 +01:00
Eric Fahlgren
dcf11c832a mediatek: filogic: fix supported_devices list for gl-mt2500
The SUPPORTED_DEVICES sets for both Maxlinear (v1) and Airoha (v2)
devices were identical, so sysupgrade was unable to detect when an
incorrect image was being installed.  This caused "soft bricking" of
devices when a v1 image was installed on a v2 device, and vice versa.

Fix this by making the supported_devices distinct for each device
version, by renaming the devices with a version-specific name.
This is reflected in the file name and the image metadata.

Fixes: https://github.com/openwrt/openwrt/issues/20566
Fixes: https://github.com/openwrt/asu/issues/1525
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20632
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit b71f4665cd)
2025-12-30 23:05:19 +01:00
Florian Maurer
b023a06cfb ath79: cf-ew71-v2: set label-mac-device to eth1
The EW71v2 has the WAN port configured at eth1.
The printed label-mac is configured on this iface in openwrt.

Signed-off-by: Florian Maurer <f.maurer@outlook.de>
(cherry picked from commit 7f3537ee2c)
2025-12-27 18:30:17 +01:00
Mikhail Kshevetskiy
2916275a3d mediatek: fix pwn fan settings for sinovoip bpi-r3 (v3)
backport upstream commit 095151b235 (mediatek: fix pwn fan settings for
sinovoip bpi-r3 (v3))

Popular cheap PWM fans for this machine, like the ones coming in
heatsink+fan combos will not work properly at the currently defined
medium speed. Trying different pwm setting using a command

  echo $value > /sys/devices/platform/pwm-fan/hwmon/hwmon1/pwm1

I found:

  pwm1 value     fan rotation speed   cpu temperature     notes
  -----------------------------------------------------------------
    0            maximal              31.5 Celsius        too noisy
   40            optimal              35.2 Celsius        no noise hearable
   95            minimal
   above 95      does not rotate      55.5 Celsius
  -----------------------------------------------------------------

Current cooling levels are:

	cooling-levels = <255 96 0>;

Thus only cpu-active-high and cpu-active-low modes are usable.
This patch fixes cpu-active-medium settings for bpi-r3 board.

This patch may not be enough. Users may wants to tweak their thermal_zone0
trip points, thus tuning fan rotation speed depending on cpu temperature.
That can be done on the base of the following example:

  === example =========
  # cpu temperature below 25 Celsius degrees, no rotation
  echo 25000 > /sys/class/thermal/thermal_zone0/trip_point_4_temp
  # cpu temperature in [25..32] Celsius degrees, normal rotation speed
  echo 32000 > /sys/class/thermal/thermal_zone0/trip_point_3_temp
  # cpu temperature above 50 Celsius degrees, max rotation speed
  echo 50000 > /sys/class/thermal/thermal_zone0/trip_point_2_temp
  =====================

Changes v2:
* put patch to a proper directory
* updated patch description
* tested with latest openwrt based on linux-6.6

Changes v3:
* use upstream linux patch
* update patch description

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21252
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-22 16:09:46 +01:00
Hauke Mehrtens
4919ffd4f7 OpenWrt v24.10.5: revert to branch defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-18 21:39:37 +01:00
Hauke Mehrtens
4f7e6e554b OpenWrt v24.10.5: adjust config defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-18 21:39:34 +01:00
Markus Petri
d9c5716d1d vrx518_tc: fix rx_len_adj
Fix rx_len_adj to avoid leaking the ethernet FCS into the actual frame
data in single line mode (the default)

Fixes: https://github.com/openwrt/openwrt/issues/20983
Signed-off-by: Markus Petri <devel@isjunk.org>
Link: https://github.com/openwrt/openwrt/pull/21045
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 487178f8b0)
2025-12-17 22:08:22 +01:00
Hauke Mehrtens
e382fc552a wireless-regdb: Update to version 2025.10.07
e51d568 wireless-regdb: update regulatory rules for Botswana (BW) for 2022
5afc632 wireless-regdb: update regulatory rules for Sint Marteen (SX) for 2018
b484a31 wireless-regdb: Update regulatory info including bandwidth for Costa Rica (CR) for 2023
39e5e04 wireless-regdb: Permit lower 6 GHz band for Kazakhstan (KZ)
a827d3a wireless-regdb: update regulatory database based on preceding changes

Link: https://github.com/openwrt/openwrt/pull/20544
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit b4a8ba2e88)
2025-12-17 22:08:20 +01:00
Hauke Mehrtens
0f52a05723 dropbear: backport security fixes
This fixes the following security problems:
CVE-2025-14282: Avoid privilege escalation via unix stream forwarding in Dropbear server.
CVE-2019-6111: This allowed a malicious server to overwrite arbitrary local files.

This backports two upstream merged PRs:
https://github.com/mkj/dropbear/pull/391
https://github.com/mkj/dropbear/pull/394
and this upstream commit:
48a17cff6a

Link: https://github.com/openwrt/openwrt/pull/21192
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-17 21:19:28 +01:00
Martin Nadvornik
58a0211f82 mediatek: fix IPv4 address missing on interface in failsafe mode for cudy ap3000-v1
cudy ap3000-v1 did not work correctly in failsafe mode
because the address 192.168.1.1 was missing on the eth0 inteface.
it was reachable via it's IPv6 link-local address however.
this commit fixes the issue.

Fixes: https://github.com/openwrt/openwrt/issues/20750
Signed-off-by: Martin Nadvornik <martin.nadvornik@gmx.at>
Link: https://github.com/openwrt/openwrt/pull/21172
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit e5cd6461c9)
2025-12-16 00:29:58 +01:00
Thibaut VARÈNE
7aa929881e mediatek/filogic: fix Cudy WR3000H ethernet port order
The ports are physically labelled in reverse order on the device.
This patch aligns logical names with physical ones.
LED order on front of device is correct after this patch.

Fixes: 9d66b8b312
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Link: https://github.com/openwrt/openwrt/pull/20528
(cherry picked from commit 887cab883b)
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Link: https://github.com/openwrt/openwrt/pull/21173
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-16 00:11:44 +01:00
Hauke Mehrtens
b8d232d9dc kernel: Fix boot of realtek rtl838x
Revert two patches from upstream Linux:
135713cd07
231ac951fa

This fixes a boot hang on realtek rtl838x switches.
This is the last printed message:
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)

Thread on mips mailing list:
https://lore.kernel.org/linux-mips/b35fe4b3-8f42-49f4-a6bf-9f0e56d4050c@hauke-m.de/T/#u

Link: https://github.com/openwrt/openwrt/pull/21166
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-16 00:08:38 +01:00
Petr Štetiar
3c97c4a44c dropbear: enable configurable port forwarding options
Currently its only possible to disable port forwarding only for specific
keys, via the OpenSSH-style restriction in `authorized_keys` file.

In some use cases it might be feasible to disable such features globally
on service level, so lets add new LocalPortForward and RemotePortForward
config knobs.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
Link: https://github.com/openwrt/openwrt/pull/21071
(cherry picked from commit 83f6177dbf)
[ fix conflict error ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-12-15 19:25:58 +01:00
Ayra Hikari
30b7a5f27a mediatek/filogic: fix Totolink X6000R sysupgrade failed
Fix Totolink X6000R image failing to upgrade via sysupgrade due to an
incorrect upgrade case. The fallback upgrade path used the NAND upgrade
routine, which caused the "layout volume not found" error on NOR flash
devices. By adding a specific case for this board, sysupgrade now uses
`default_do_upgrade`, which is compatible with the NOR flash layout.

Fixes: 7cd10ad
Signed-off-by: Ayra Hikari <ayrahikari@linuxmail.org>
(cherry picked from commit 7cd10add2d)
Link: https://github.com/openwrt/openwrt/pull/20674
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-14 22:51:17 +01:00
Ari Kurniawan
8db7b6ff53 mediatek: filogic: add support for Totolink X6000R
Specification :
- SOC : Mediatek MT7981B (1.3GHz)
- RAM : 256MB
- Flash : 16MB SPI NOR
- Ports : 4 LAN (1G) & 1 WAN (1G)
- WIFI : MediaTek dual-band WiFi 6
  - 2.4 GHz : b/g/n/ax, MIMO 2x2
  - 5 GHz   : a/n/ac/ax, MIMO 2x2
- Buttons : Reset & WPS/Mesh
- LEDS : WAN (Green), Status (Red & Blue)
- Power : 12V1A

Install via OEM web ui:
Upload the sysupgrade image to firmware upgrade page on OEM web ui

Install via recovery / revert to stock firmware:
1. Unplug from power
2. Download the Sysupgrade (for openwrt installation) or OEM Factory image (for revert to stock firmware)
3. Set your computer ethernet IP to 192.168.1.X, subnet 255.255.255.0 (X=your chosen ip number ranging from 2-254)
4. Press and hold reset button while turn on / plug power adapter to the router. Wait untill ALL LAN green LED turn on, then release the reset button.
5. Plug the LAN cable from your computer into LAN 1 port then open web browser, and type in the address column : 192.168.1.1
6. Upload the sysupgrade / oem factory image
7. Wait until the router finished flashing (the router will reboot)
8. Set ethernet ip to dhcp
9. Open 192.168.1.1 (for openwrt install) / 192.168.0.1 (for OEM firmware)

Signed-off-by: Ari Kurniawan <noobhek@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20035
(cherry picked from commit 7cd10add2d)
Signed-off-by: Ari Kurniawan <noobhek@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20674
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-14 22:51:01 +01:00
Hauke Mehrtens
454fd69589 mac80211: update to version 6.12.61
This contains the following commits:
```
git log --oneline   v6.12.52...v6.12.61 -- drivers/net/wireless/ net/mac80211/ net/wireless/
a1eb56723b32 wifi: ath12k: correctly handle mcast packets for clients
c0a9c2c1b7b9 wifi: mac80211: use wiphy_hrtimer_work for csa.switch_work
d4caee32a9f8 wifi: cfg80211: add an hrtimer based delayed work item
6455948c8aab wifi: mac80211: reject address change while connecting
80dc5a2ce5b7 wifi: ath11k: Clear affinity hint before calling ath11k_pcic_free_irq() in error path
acd24d509227 wifi: mac80211: skip rate verification for not captured PSDUs
53cf801b8555 wifi: ath11k: zero init info->status in wmi_process_mgmt_tx_comp()
e8fa86b0bd96 wifi: mac80211_hwsim: Limit destroy_on_close radio removal to netgroup
77d4afd6c78b Revert "wifi: ath10k: avoid unnecessary wait for service ready message"
07d862c7de3d wifi: ath12k: Increase DP_REO_CMD_RING_SIZE to 256
522734fc807c wifi: mac80211: Track NAN interface start/stop
8db790c2491e wifi: ath10k: Fix connection after GTK rekeying
72f1984246e6 wifi: rtw89: renew a completion for each H2C command waiting C2H event
336da4414300 wifi: rtw89: obtain RX path from ppdu status IE00
da91687f01f4 wifi: mt76: mt7996: fix memory leak on mt7996_mcu_sta_key_tlv error
a534dd44b70e wifi: mt76: mt76_eeprom_override to int
aa5ed215cfe8 wifi: mt76: mt7996: Temporarily disable EPCS
efe2ef24feab wifi: mt76: mt7921: Add 160MHz beamformee capability for mt7922 device
5de410dfb4d9 wifi: mac80211: Fix HE capabilities element check
f157d1cb2cdc wifi: iwlwifi: fw: Add ASUS to PPAG and TAS list
c9df78e84e85 wifi: mac80211: Fix 6 GHz Band capabilities element advertisement in lower bands
958234997dd5 wifi: rtw89: fix BSSID comparison for non-transmitted BSSID
ca18975c4de2 wifi: rtw89: wow: remove notify during WoWLAN net-detect
bc1ca06998c1 wifi: rtw88: sdio: use indirect IO for device registers before power-on
8ebef59d0294 wifi: rtw89: print just once for unknown C2H events
5596a90c8952 wifi: mac80211: fix key tailroom accounting leak
23b8682f05ec wifi: mac80211: don't mark keys for inactive links as uploaded
e3373f10c6a6 wifi: ath11k: avoid bit operation on key flags
50f50dd024b4 wifi: ath11k: add support for MU EDCA
2a6cd5951ba8 wifi: ath12k: free skb during idr cleanup callback
775e37df2acc wifi: ath11k: Add missing platform IDs for quirk table
c4840991ee4c wifi: ath10k: Fix memory leak on unsupported WMI command
a6eed58249e7 wifi: brcmfmac: fix crash while sending Action Frames in standalone AP Mode
57100b87c778 wifi: ath12k: fix read pointer after free in ath12k_mac_assign_vif_to_vdev()
4a63523d3541 wifi: cfg80211: Add missing lock in cfg80211_check_and_end_cac()
e9fd43b799d2 wifi: rtw89: avoid possible TX wait initialization race
b419093e5e42 wifi: mt76: mt7921u: Add VID/PID for Netgear A7500
feb1774aaf85 wifi: mt76: mt7925u: Add VID/PID for Netgear A9000
bd3ac455a88d wifi: ath11k: HAL SRNG: don't deinitialize and re-initialize again
8055133a9f64 wifi: rtw89: avoid circular locking dependency in ser_state_run()
1c873416758f wifi: mac80211: fix Rx packet handling when pubsta information is not available
6e7d9fa61d7d wifi: ath10k: avoid unnecessary wait for service ready message
8d4f6ab4c53e wifi: ath12k: fix wrong logging ID used for CE
fc00890c55e3 wifi: mt76: mt7915: fix mt7981 pre-calibration
e18c4e6ba36c wifi: mt76: mt7996: Convert mt7996_wed_rro_addr to LE
f481404a9826 wifi: mt76: mt7996: Fix RX packets configuration for primary WED device
57519239c76c wifi: mt76: fix potential memory leak in mt76_wmac_probe()
27c8e2e4b56f wifi: iwlwifi: Remove redundant header files
605402433eb8 wifi: mwifiex: send world regulatory domain to driver
```

The removed patch was added upstream.

Link: https://github.com/openwrt/openwrt/pull/21134
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-14 22:41:16 +01:00
Florian Maurer
f415748ba8 ath11k: fix transmit queue flushing through flush_sta implementation
warning print "ath11k c000000.wifi: failed to flush transmit queue 0"
is observed during busy times.

The mac80211 fallback implementation of `flush_sta` does not handle the per STA queues well.
This is fixed by providing a ath11k specific implementation of flush_sta telling the firmware to flush a given station.
The draining of the transmit queues should therefore stop correctly, even if new packets arrive in the mean time.

An upstream ath11k RFC is available at:
https://patchwork.kernel.org/project/linux-wireless/patch/GV1P250MB14333A5BF24623C4753A10E1E8E0A@GV1P250MB1433.EURP250.PROD.OUTLOOK.COM/

The patch was tested on a Xiaomi AX3600.

Signed-off-by: Florian Maurer <f.maurer@outlook.de>
Tested-by: Florian Maurer  <f.maurer@outlook.de>
Co-authored-by: Benjamin Berg <benjamin@sipsolutions.net>
Tested-by: Flole <flole@flole.de>
Link: https://github.com/openwrt/openwrt/pull/20293
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 8faa9dedb4)
Signed-off-by: Felix Baumann <felix.bau@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/20667
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-12 01:32:26 +01:00
Shine
9123a0c358 mpc85xx: p1010: Use zImage loader for Watchguard Firebox T10
Since kernel 6.1, the Watchguard Firebox T10 can't boot anymore due to
increased kernel size.

This commit introduces the zImage loader from 7d768a9 to boot the kernel.
This is required, since the U-Boot version used in this device appears
to have a hard limit of 16MB for the kernel size it can handle. The
current kernel size is around 17MB, though, due to kernel page alignment
required for memory protection.

(cherry-picked from commit be7aa5bda4)
Signed-off-by: Shine <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21130
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-12 01:25:50 +01:00
Marcin Leksmark
22391baf99 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")
Link: https://github.com/openwrt/openwrt/pull/20756
(cherry picked from commit 35a86267e9)
Signed-off-by: Marcin Leksmark <lexmark3200@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/21068
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-12 01:23:49 +01:00
David DeGraw
4a3409f628 ramips: add support for Cudy R700
This is the same hardware as the Cudy WR2100 that's
had support for some time now, just without the WLAN
hardware.

This PR is mostly copied from the commit that added
support for the WR2100, here: 3501db9

Specifications:
SoC: MT7621
CPU: 880 MHz
Flash: 16 MiB
RAM: 128 MiB
Ethernet: 5x Gbit ports

Installation:
There are two known options:

The Luci-based UI.
Press and hold the reset button during power up.
The router will request 'recovery.bin' from a TFTP server at
192.168.1.88.

Both options require a signed firmware binary.
A signed firmware can be found in GitHub PR #18532.

R4 & R5 need to be shorted (0-100Ω) for the UART to work.

Link: https://github.com/openwrt/openwrt/pull/18532

Signed-off-by: David DeGraw <degraw@fastmail.com>
(cherry picked from commit 75403dd1d0)
Link: https://github.com/openwrt/openwrt/pull/21068
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-12 01:23:46 +01:00
Marcin Leksmark
a9858a9632 ramips: add support for Cudy C200P
This patch adds support for Cudy C200P.
Because v24.10 stable has no regulator definition, so we cannot make simple cherry-pick. We need another DTS file.

Specifications:

    SoC: MediaTek MT7621AT
    RAM: 256 MB (DDR3)
    Flash: 16 MB (NOR)
    POE Chip: IP804AR

Interfaces:

    Switch: 1 WAN, 4 LAN (Gigabit)
    Gigabit RJ45 PoE Ports on 2~5
    Max Power on a Single PoE Ports 	30W
    PoE Ports : The PoE ports comply with IEEE 802.3at/af standards.
    Ports: 1 USB-A 3.0 Ports

LED:

    System
    PoE Max Status
    Link/ACT/PoE Status of Each PoE Port

Physical Buttons:

 	Reset Button

Power Input:

 	DC Jack

Power Methods:

    DC: 54V 1.11A
    802.3at/af PoE
    Passive PoE: 24/48V

Max Power Consumption (W):

 	Total: 60W
    PoE: 55W
    PoE (when USB Device is plugged in): 50W
    No PoE: 5W

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.

Serial:

1. Serial connection parameters: 115200 / 8N1
2. Serial connection voltage: 3.3V

PoE is not supported at the time of PR. The IP804R chip is not yet supported by OpenWRT.

Signed-off-by: Marcin Leksmark <lexmark3200@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/21064
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-12 01:12:14 +01:00
Coia Prant
61408bb99a ramips: add support for Hongdian H8850 v20
This is an industrial 4G router equipped with OpenWrt SNAPSHOT OEM
customized version

WARNING: The original firmware device tree is modified from evb
boards, and the device tree name is evb board. This submitted device
tree is a modified version, which deletes the non-this-device parts
and adds GPIO watchdog.

Specification:
- SoC: MediaTek MT7628DAN
- Flash: 16 MB
- RAM: 64 MB
- Power: DC 5V-36V 1.5A
- Ethernet: 1x WAN/LAN, 3x LAN (10/100 Mbps)
- Wireless radio: 802.11n 2.4g-only
- LED:
  System/Power (PWR): Always Off
  Modem (NET): GPIO/3 active-low
  LAN: Always On
  RF (Modem Signal): GPIO/2 active-low
  WIFI: GPIO/44 active-low
- Button:
  WPS / RESET: GPIO/11 active-low
- UART: 1x UART on PCB - 115200 8N1
- GPIO Watchdog: GPIO/0 mode=toggle timeout=1s
- Modem: 1x Built-in modem on board (Power: GPIO/4 active-high)
- SIM Slots: 1x SIM Slots

Issue:
- Factory partition not store mac address on original firmware

Flash instruction:
Using TTL:
1. Connect the board to the computer via TTL.
2. Enter original firmware failsafe mode.
3. Use wget download firmware to board /tmp
4. Use command "mtd -r write openwrt-ramips-mt76x8-hongdian_h8850-v20-squashfs-sysupgrade.bin firmware"
   to flash

Original Firmware Dump / More details:
https://blog.gov.cooking/archives/research-hongdian-h8850-v20-and-flash.html

Signed-off-by: Coia Prant <coiaprant@gmail.com>
Tested-by: Coia Prant <coiaprant@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20259
(cherry picked from commit 23a070dfb1)
Link: https://github.com/openwrt/openwrt/pull/21007
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-12 01:07:50 +01:00
Mikhail Zadorozhnyi
ce660d934f mvebu: gl-mv1000: fix sdhci1 controller
GL-MV1000 external SD controller was broken by a recent kernel update
between OpenWRT releases 24.10.2 and 24.10.3 due to a mistake in Device
Tree: "regulator-gpio" was defined without required "gpios" property.

Since "no-1-8-v" property is also defined for this controller
a switchable vqmmc-supply regulator performs no function - a fixed 3.3V
IO voltage will always be used.

This regulator definition was probably added by mistake from a Device
Tree from another device.

Remove incomplete vcc_sd_reg1 regulator definition to fix this issue.

Issue discussion for reference: openwrt/openwrt#20309

Upstream commit: 6f2325b23d
Signed-off-by: Mikhail Zadorozhnyi <zador.blood.stained+git@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/20378
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-12 01:04:07 +01:00
Brian Lee
237b1c29e1 mediatek: filogic: add support for ASUS TUF-AX4200Q
ASUS TUF-AX4200Q(TUF 小旋风Pro WiFi6 AX4200) is a home router that adds an additional 2.5G Ethernet port to ASUS TUF-AX4200.

Hardware
- - - - - - - -
- SOC   : MediaTek MT7986
- RAM   : 512MB DDR3
- FLASH : 256MB SPI-NAND (Winbond W25N02KV)
- WIFI  : Mediatek MT7986 DBDC 802.11ax 2.4/5 GHz
- ETH   : MediaTek MT7531 Switch
          MaxLinear GPY211C 2.5 N-Base-T PHY (WAN)
          MaxLinear GPY211C 2.5 N-Base-T PHY (LAN)
- UART  : 3V3 115200 8N1 (Pinout silkscreened / Do not ocnnect VCC)

Installation
- - - - - - - -
Vendor-UI Method:

1. Download or make the OpenWrt initramfs.trx image
2. Connect the PC via LAN to one of the yellow router ports and wait until your PC to get a DHCP lease.
3. Browse to http://192.168.50.1/
4. If your router is brand new, finish the setup process and log into the Web-UI.
5. Navigate to Administration -> Firmware Upgrade and upload the downloaded OpenWrt image.
6. Wait for OpenWrt to boot. Transfer the sysupgrade image to the device using SCP and install using sysupgrade.

   $ sysupgrade -n <path-to-sysupgrade.bin>

TFTP Method:

1. Download the OpenWrt initramfs image.
   Copy the image to a TFTP server reachable at 192.168.1.70/24.
   Rename the image to tufax4200q.bin.

2. Connect the PC with TFTP server to the TUF-AX4200Q.
   Set a static ip on the ethernet interface of your PC.
   (IP address: 192.168.1.70, subnet mask: 255.255.255.0)
   Connect to the serial console,
   interrupt the autoboot process by pressing '4' when prompted.

3. Download & Boot the OpenWrt initramfs image.

   $ setenv ipaddr 192.168.1.1
   $ setenv serverip 192.168.1.70
   $ tftpboot 0x46000000 tufax4200q.bin
   $ bootm 0x46000000

4. Wait for OpenWrt to boot.
   Transfer the sysupgrade image to the device using SCP and install using sysupgrade.

   $ sysupgrade -n <path-to-sysupgrade.bin>

(based on support for ASUS RT-AX52 by achterin and trx image generation by remittor)

Link: https://github.com/openwrt/openwrt/pull/20900
(cherry picked from commit e7086d7a2f)
Signed-off-by: Brian Lee <larte332@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21036
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-11 23:36:58 +01:00
Oliver Sedlbauer
8498118893 mac80211: ath12k: backport correctly handle mcast packets
Backport upstream commit that fixes handling of multicast packets.
Without this patch, ARP resolution fails, and connectivity from a
station to an AP does not work reliably until traffic is initiated
by the AP.

Signed-off-by: Oliver Sedlbauer <os@dev.tdt.de>
Link: https://github.com/openwrt/openwrt/pull/21088
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-11 23:11:18 +01:00
Marcin Leksmark
6a92e68c51 ramips: add support for D-Link DIR-2660 A2
This patch adds support for D-Link DIR-2660 A2.
Based on the commit: https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=b5dd746cbb1aaf91f4b68e9f3eda97413550d904,

Both devices look identical, except for the A1/A2 designation.
You can safely install the A1 firmware for the A2 – I've been testing it for several months as a DUMB AP – without any problems.

Specifications:
* SoC: MediaTek MT7621AT
* RAM: 256 MB (DDR3)
* Flash: 128 MB (NAND)
* WiFi: MediaTek MT7615N (x2)
* Switch: 1 WAN, 4 LAN (Gigabit)
* Ports: 1 USB 2.0, 1 USB 3.0
* Buttons: Reset, WPS
* LEDs: Power (white/orange), Internet (white/orange), WiFi 2.4G (white),
        WiFi 5G (white), USB 3.0 (white), USB 2.0 (white)

Notes:
* WiFi 2.4G and WiFi 5G LEDs are wired directly to the wireless chips

Installation:
* D-Link Recovery GUI: power down the router, press and hold the reset
  button, then re-plug it. Keep the reset button pressed until the power
  LED starts flashing orange, manually assign a static IP address under
  the 192.168.0.xxx subnet (e.g. 192.168.0.2) and go to http://192.168.0.1

* Some modern browsers may have problems flashing via the Recovery GUI,
  if that occurs consider uploading the firmware through cURL:

    curl -v -i -F "firmware=@file.bin" 192.168.0.1

Signed-off-by: Marcin Leksmark <lexmark3200@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/20020
(cherry picked from commit 485f9b0d31)
Link: https://github.com/openwrt/openwrt/pull/21113
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-11 23:03:33 +01:00
Goetz Goerisch
581050ce4e kernel: bump 6.6 to 6.6.119
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.119

Removed upstreamed patch:
bcm27xx/patches-6.6/950-1255-Revert-Bluetooth-Always-request-for-user-confirmatio.patch [1]

All other patches auto-refreshed.

Upstream patch:
[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.119&id=fd6a1261d05d7f4d6630229e1f280dd7256b9ce8

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21076
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-11 22:11:28 +01:00
Andreas Gnau
c0b10f7442 build: depend on tools/zstd for download
Downloading packages from git requires zstd to compress their tarballs.
Make sure that zstd from host tools is compiled when running make
download. Otherwise, either the download would fail because zstd is not
present or a random version from the host would be used leading to hash
mismatches.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
Link: https://github.com/openwrt/openwrt/pull/21125
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit f3e4620f59)
2025-12-10 19:09:01 +01:00
Tianling Shen
9fa8e7e9a3 mediatek: fix ubi size for zbtlink zbt z8102ax v2
According to the factory uboot and firmware[1], the ubi size is set
to 512 MiB (0x20000000) and it exceeds the size of the flash, after
that the uboot and kernel resizes it to 114.5 MiB (0x7280000) instead
of 114.125 MiB (0x7220000). The mismatch of the ubi size causes
kernel fails to read ubi volumes and throws panic.

Trim whitespaces while at it.

1. https://github.com/immortalwrt/immortalwrt/issues/2123#issuecomment-3523744128

Fixes: c908fc7d95 ("mediatek: add support for Zbtlink ZBT-Z8102AX v2")
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20769
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit d2fa070f70)
[rebased upon 24.10 branch]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/21085
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-12-08 17:27:20 +01:00
Shine
0ed59099ee mpc85xx: p1010: Fix Sophos RED 15w NAND partitions
This partially reverts 78d259e7d2.
That commit broke mounting the root fs on Sophos RED 15w due to
partition size mismatch, and changed the partition sequence, causing
the OpenWrt partition numbers to change from mtd3:kernel/mtd4:ubi to
mtd4:kernel/mtd5:ubi.

Fixes: 78d259e7d2 ("mpc85xx: fix some dtc warnings")
(cherry-picked from commit 09e7b24ceb)
Signed-off-by: Shine <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21062
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-07 20:29:18 +01:00
Christian Marangi
d0c2c30e50 sdk: invert logic for GIT_BRANCH and GIT_TAGNAME
There is currently a logic error with generating the base feed string.

In the scenario where the commit of a Tag match the latest commit of a
stable branch, the stable branch have priority over the tag name.

This results in generating SDK that actually target the branch instead
of the specific tag.

To fix this invert the logic and give priority to the tag name.

Fixes: #18583
(cherry picked from commit 289172b00e)
[ fix conflict error ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-12-04 19:25:13 +01:00
Christian Marangi
9c23ecf31c sdk: filter out main on GIT_BRANCH parsing
Branch named main was never filter out on parsing the GIT_BRANCH define.

Add main to the name of branch that should be filtered.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 0338dd44d5)
2025-12-04 19:24:30 +01:00
Mikhail Zhilkin
96a67d2f2e kernel: add support for Fudan Micro FM25S01BI3 SPI-NAND
Add support for Fudan Micro FM25S01BI3 SPI NAND.
Link: https://www.fmsh.com/nvm/FM25S01BI3_ds_eng.pdf

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20872
(cherry picked from commit 05cddcd12a)
[Update patch path]
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20974
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-03 21:31:20 +01:00
Mikhail Zhilkin
15601a545e kernel: fix QE bit for Fudan Micro FM25S01A SPI-NAND
According to datasheet (http://eng.fmsh.com/nvm/FM25S01A_ds_eng.pdf)
there is no QE (Quad Enable) bit for FM25S01A flash, so remove it.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20872
(cherry picked from commit 40fc91be6e)
[Update patch path and number]
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20974
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-03 21:31:20 +01:00
Goetz Goerisch
b1528735da kernel: bump 6.6 to 6.6.118
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.118

All patches auto-refreshed.

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21022
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-12-03 21:28:27 +01:00
Andy Chiang
13226471ef ppp: add reqprefix norelease ac_mac
Use ppp and enable autoipv6, odhcp6c supports reqprefix and norelease to minimize the chance of IPv6 PD changes.[1]
PPPoE supports connecting to a specific AC/BRAS by using the pppoe-mac parameter.[2]

1. https://github.com/openwrt/openwrt/blob/master/package/network/ipv6/odhcp6c/files/dhcpv6.sh#L67
   https://github.com/openwrt/openwrt/blob/master/package/network/ipv6/odhcp6c/files/dhcpv6.sh#L77
2. https://github.com/ppp-project/ppp/blob/master/pppd/plugins/pppoe/plugin.c#L93

Signed-off-by: Andy Chiang <AndyChiang_git@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19978
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 7079e456ad)
Link: https://github.com/openwrt/openwrt/pull/20824
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-12-03 18:13:13 +01:00
George Sapkin
e781816fe1 formal: fix workflow permissions
Fix formality check permissions that are needed to post optional
summaries back to the PR.

Link: https://github.com/openwrt/actions-shared-workflows/pull/64
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/20930
(cherry picked from commit 9f6c16e722)
Link: https://github.com/openwrt/openwrt/pull/20986
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-11-30 12:42:58 +01:00
Qing W.
913e26b20f mediatek: add support for WAVLINK WL-WN536AX6 Rev a
Product name: Wavlink WL-WN536AX6 Rev a "Mighty LX2"
Product link: https://www.wavlink.com/en_us/product/WL-WN536AX6.html

Specifications:
SOC: MT7986AV
RAM: 512MB DDR4
Flash: 128MB SPI NAND
Ports: 4 LAN (1G) & 1 WAN (2.5G)
WIFI: MT7976PN + MT7975N
LEDs: 8 (STATUS, WIFI, WAN, LAN1, LAN2, LAN3, LAN4, PWR)
USB: 1 (3.0)

MAC table, same as stock firmware:
LAN: 80:3F:5D:xx:xx:x1 partition "hw" at 0x44e (ASCII)
WAN: 80:3F:5D:xx:xx:x2 partition "hw" at 0x460 (ASCII)
2G: 80:3F:5D:xx:xx:x3
5G: 80:3F:5D:xx:xx:x4

* Installation with OEM WebUI:

Note: Make sure PC is connected on LAN1 port. The OEM firmware has an unknown root password and settings are kept after upgrading firmware. Therefore, a customized Openwrt firmware is needed to remove the root password on login, by adding `passwd -d root` to /etc/init.d/bootcount. The WebUI does a filename check so the customized firmware is named accordingly.

1. Download modified firmware file `WAVLINK_WN536AX6-A_M36AX6_V250320-WO-437baca-modified.bin` from https://github.com/ses1er/firmware-misc/tree/main/wavlink/wl-wn536ax6a
2. Log into WebUI on default IP: http://192.168.20.1
3. Browse to More (top menu) -> System -> Firmware Upgrade.
4. Under `Local Upgrade` section, check the device to be upgraded and upload downloaded modified firmware. Click `UPLOAD FILE`, then `APPLY`
5. Wait about 2 minutes (ignore progress bar), and browse to http://192.168.20.1. You should see LUCI login page. Username is root and no password.
6. Browse to `System -> Backup/Flash Firmware`, click on `Flash Image`, click `Browse` and locate `openwrt-mediatek-filogic-wavlink_wl-wn536ax6-a-squashfs-sysupgrade.bin` file.
7. Uncheck `Keep settings and retain the current configuration` and click `Continue`.
8. Router will now be set to IP 192.168.1.1 which is the Openwrt default.

* Installation with UART:

Note: Having UART connected while cold booting the device will result in a kernel panic when initializing wifi. I've found this workaround:
1. Power off the device and ensure UART is not connected to PC.
2. Power up the device, when lights come on, plug in UART.
3. Warm boots and soft restarts will not cause kernel panic for the duration of device being powered on. Repeat steps for subsequent cold boots.

1. Configure TFTP server with IP 192.168.1.66. Copy `openwrt-mediatek-filogic-wavlink_wl-wn536ax6a-initramfs.itb` to TFTP root.
2. Interrupt boot by pressing 0.
3. Run the following in Uboot console: `setenv serverip 192.168.1.66; setenv ipaddr 192.168.1.1; tftpboot 0x46000000 openwrt-mediatek-filogic-wavlink_wl-wn536ax6-a-initramfs.itb; bootm`
4. Transfer `openwrt-mediatek-filogic-wavlink_wl-wn536ax6-a-squashfs-sysupgrade.bin` to device:
   (`scp -O openwrt-mediatek-filogic-wavlink_wl-wn536ax6-a-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/`)
5. Run the following on device: `sysupgrade -n /tmp/openwrt-mediatek-filogic-wavlink_wl-wn536ax6-a-squashfs-sysupgrade.bin`

Signed-off-by: Qing W. <ses1er@gmail.com>
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Link: https://github.com/openwrt/openwrt/pull/20760
(cherry picked from commit 1748ce8295)
Link: https://github.com/openwrt/openwrt/pull/20775
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-29 01:26:18 +01:00
Luis Mita
c6e59d06af ramips: mt7621: add support for Cudy AP1300 Outdoor v1
Hardware:
 - SoC: MediaTek MT7621DAT
 - Flash: 16 MiB XM25QH128C
 - RAM: 128 MiB
 - WLAN: 2.4 GHz (MT7603E, 11n), 5 GHz (MediaTek MT7613BEN, 11ac)
 - Ethernet: 1x10/100/1000 Mbps LAN
 - Buttons: 1 Reset button, 1 WPS button
 - LEDs: 5x Green
 - Serial Console: unpopulated header 115200 8n1 (silkscreen on PCB)
 - Power: POE 802.3af (37-57V DC)

MAC addresses:
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| LAN     | 80:af:ca:xx:xx:x0 | label     |
| WLAN 2g | 80:af:ca:xx:xx:x0 | label     |
| WLAN 5g | 82:af:ca:xx:xx:x1 | +1        |
+---------+-------------------+-----------+

Installation:
The factory firmware is locked: you can only work with Cudy signed firmware.
Download a intermediate firmware signed by Cudy here:
https://www.cudy.com/blogs/faq/openwrt-software-download

After that, login to the router (192.168.10.254, password "admin") and install the intermediate firmware.

If you can reach LuCI or SSH now on the intermediate firmware, just use the sysupgrade image with the 'Keep settings' option turned off.

Special thanks to Daniel de Kock for starting the porting work at #16265.

Signed-off-by: Luis Mita <luis@luismita.com>
Co-Authored-By: Daniel de Kock <daniel@riot.network>
Co-Authored-By: Hauke Mehrtens <hauke@hauke-m.de>
Link: https://github.com/openwrt/openwrt/pull/20268
(cherry picked from commit 8fb644e9e8)
Link: https://github.com/openwrt/openwrt/pull/20710
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-29 01:20:14 +01:00
Donghyun Ko
9f8c60c2c8 mediatek: use dt-bindings drive strength macros for ipTIME AX7800M-6E
Replace hardcoded numbers with the dt-bindings drive strength macros
defined in "dt-bindings/pinctrl/mt65xx.h".

Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20894
(cherry picked from commit 2c667f2df4)
Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20773
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-29 01:17:45 +01:00
Donghyun Ko
ea96f50747 mediatek: add support for ipTIME AX7800M-6E
Specification
-------------
- SoC       : MediaTek MT7986AV quad-core ARM Cortex-A53 2GHz
- RAM       : DDR4 512Mbytes, Nanya Technology NT5AD256M16E4
- Flash     : 128Mbytes NAND Flash, ESMT F50L1G41LB
- WLAN      : MediaTek MT7976DAN, MediaTek MT7916AN, MediaTek MT7976AN
  - 2.4GHz  : b/g/n/ax, Multi User MIMO
  - 5GHz    : a/n/ac/ax, Multi User MIMO
  - 6GHz    : ax, Multi User MIMO
- Ethernet  : 10/100/1000 Mbps x4, LAN (MediaTek MT7531AE)
              10/100/1000/2500 Mbps x1, WAN (MaxLinear GPY211C0VC)
- UART      : 1x4 pin header on PCB
  - [J1] 3.3V, TX, RX, GND (115200, 8N1)
- Buttons   : WPS, Reset
- Switches  : Rfkill Slide Switch
- USB       : 1x USB 3.0 (MediaTek MT7986AV peripheral)
- FAN       : 1x Fan (off - slow - fast)
- LEDs      : 1x Power (Blue)
              1x CPU (Blue)
              1x Wi-Fi 6GHz (Blue)
              1x Wi-Fi 5GHz (Blue)
              1x Wi-Fi 2.4GHz (Blue)
              4x LAN activity (Blue)
              1x WAN activity (Blue)
              1x USB 3.0 (Blue)
- Power     : 12VDC, 3.5A (Center positive polarity)

MAC address
-----------
+-----------+-------------------+------------------------+
| Interface | MAC               | Algorithm              |
+-----------+-------------------+------------------------+
| WLAN 2.4G | 58:86:94:xx:xx:xx | label1                 |
| WLAN 5G   | 5A:86:94:xx:xx:xx | label2 with LA Bit set |
| WLAN 6G   | 5A:86:94:xx:xx:xx | label1 with LA Bit set |
| WAN       | 58:86:94:xx:xx:xx | label1 + 1             |
| LAN       | 58:86:94:xx:xx:xx | label1 + 3             |
+-----------+-------------------+------------------------+
The WLAN 2.4G MAC address (label1) was found in 'Factory' partition, 0xA0004
The WLAN 5G MAC address (label2) was found in 'Factory' partition, 0x4

Installation
------------
1. Download the OEM recovery software (ipTIME Firmware Wizard (11ac))
   from the manufacturer's website
2. Download the *squashfs-factory.bin file from the OpenWrt website
3. Press a reset button, and power up the router (keep pressing the reset button)
4. Wait more than 10 seconds until the CPU LED stop blinking
5. Connect the router (LAN port) to the PC
6. Run the OEM recovery software and follow the instructions
7. Select the *squashfs-factory.bin file during the router recovery process
8. Wait for the router to boot from *squashfs-factory.bin

Note: The router will automatically reboot if no file is uploaded within
55 seconds.

Fan Control
------------
The fan speed is controlled by writing a value from 0 to 2 to the
`fan1_target` file.

```
cd /sys/devices/platform/gpio-fan/hwmon/hwmon2

echo '0' > fan1_target // off
echo '1' > fan1_target // slow
echo '2' > fan1_target // fast
```

Limitation: Enabling Wi-Fi 6E
----------
Wi-Fi 6E (6GHz) does not work out of the box on LuCI.
After installation, you need to configure a few settings in the `radio1`
and `default_radio1` sections of the `/etc/config/wireless`.
Once you have made these changes, you can enable and use Wi-Fi 6E.

In the `radio1` section, you need to add three common options:
- band: must be set to `6g`
- country: a valid country code for the 6GHz band
- channel: a preferrend scanning channel (PSC) for 6GHz

In the `default_radio1` section, you need to add the SSID and key:
- ssid: The public name of your Wi-Fi network
- key: The Wi-Fi password
- encryption: must be set to either `sae` for WPA3 or `owe` for OWE
  (open network)

Example:

```
config wifi-device 'radio1'
        ...
        option band '6g'
        option country 'KR'
        option channel '37'
        ...

config wifi-iface 'default_radio1'
        ...
        option ssid 'my_wifi_6e_name'
        option key 'my_strong_password1234'
        option encryption 'sae'
        ...
```

Note: A list of all the 6GHz PSC channels:

```
5, 21, 37, 53, 69, 85, 101, 117, 133, 149, 165, 181, 197, 213, and 229
```

Limitation: Maximum Transmit Power (Wi-Fi 6E)
----------
The maximum transmit power is currently broken. In the drop-down menu,
you can only choose between "driver default" and "255 dBm (2147493647
mW)". There is currently no workaround for the issue. Please leave the
maximum transmit power set to "driver default".

Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19763
(cherry picked from commit 2503e5bc37)
Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20773
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-29 01:17:45 +01:00
Michal Halva
51108508f1 mediatek: filogic: add support for Cudy WR3000P v1
Hardware
--------
MediaTek MT7981 WiSoC
512MB DDR4 RAM
128MB SPI-NAND
MediaTek MT7981 2x2 DBDC 802.11ax 2T2R (2.4 / 5)
4 LAN MediaTek MT7531 PHY
1 WAN RTL8221B-VB-CG 2.5Gbps PHY
UART: 115200 8N1 3.3V
USB2 Port
PoE on WAN Port

MAC:
LAN MAC: label mac
WAN MAC: label mac + 1
2.4G MAC: label mac
5G MAC: label mac + 1 with LA bit set

Gotchas:
WAN LED does not light up (might require further DTS tweaks)
PoE on WAN port was not tested

This commit is heavily based on WR3000H one, I've just ported DTS differences
from the official image to get USB support and proper LED mapping.

Installation
------------
[Untested as I've received and used a transitional image from Cudy]

1. Connect to the serial port as described in the "Hardware" section.

2. Power on the device + press reset pin. Keep pressing reset pin to enter the U-Boot  shell.

3. Download the OpenWrt initramfs image. Place it on an TFTP server
   connected to the Cudy LAN ports. Make sure the server is reachable at
   192.168.1.88. Rename the image to "cudy3000p.bin"

4. Download and boot the OpenWrt initramfs image.

   $ tftpboot 0x46000000 cudy3000s.bin; bootm 0x46000000

5. Transfer the OpenWrt sysupgrade image to the device using scp.
   Install with sysupgrade.

Signed-off-by: Michal Halva <hedik01@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19636
(cherry picked from commit 04e9d154f2)
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Link: https://github.com/openwrt/openwrt/pull/20830
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-29 01:10:10 +01:00
Liangbin Lian
414f196a96 rockchip: LinkEase EasePi R1 use dedicated uboot
Fixes the "mdio_bus stmmac-1: MDIO device at address 1 is missing" error
that occurs during cold boot when initializing GMAC.

Fixes: 8ca4caacd0 ("rockchip: Add support for RK3568 LinkEase EasePi R1")
Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20772
(cherry picked from commit e6a5ca0da7)
Link: https://github.com/openwrt/openwrt/pull/20744
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-29 01:05:47 +01:00
Liangbin Lian
9c25d39d3e uboot-rockchip: add dedicated uboot for LinkEase EasePi R1
The generic-rk3568 does not reset the gmac phy, causing the kernel to
fail to initialize gmac during cold boot with the error message
"mdio_bus stmmac-1: MDIO device at address 1 is missing."

Adding a dedicated uboot for EasePi R1 to resolve this issue.

The EasePi R1's DTS hasn't been merged into the Linux release yet,
so it cannot be submitted to the upstream u-boot.

Fixes: ef093299db ("uboot-rockchip: add support for LinkEase EasePi R1")
Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20772
(cherry picked from commit 5dff7b45d3)

With changes:
1. Reorder patch file names (`105-*` to `106-*`).
2. configs/easepi-r1-rk3568_defconfig needs CONFIG_SPL_PAD_TO on u-boot 2024.10.

Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20744
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-29 01:05:47 +01:00
Liangbin Lian
fbaf5271d2 rockchip: make NIC name predictable for LinkEase EasePi R1
The probe order for PCIe buses and devices is non-deterministic,
making the names eth2 and eth3 unpredictable (they may be swapped).

This patch fixes the names by referencing the device path using
`ucidef_set_network_device_path`.

This patch ensures that the OpenWrt interface name matches the case label.

Fixes: 8ca4caacd0 ("rockchip: Add support for RK3568 LinkEase EasePi R1")
Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20779
(cherry picked from commit d7530c1e54)
Link: https://github.com/openwrt/openwrt/pull/20744
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-29 01:05:47 +01:00
Liangbin Lian
c795a91579 rockchip: Add support for RK3568 LinkEase EasePi R1
Specification:
- Rockchip RK3568
- 2GB/4GB LPDDR4 RAM
- 16GB on-board eMMC
- 1x M.2 key for 2280 NVMe (PCIe 3.0)
- 1x USB 3.0 Type-A
- 1x USB 2.0 Type-C (for USB flashing)
- 2x 1000 Base-T (native, RTL8211F)
- 2x 2500 Base-T (PCIe, RTL8125B)
- 1x HDMI 2.0 Output
- 12v DC Jack
- 1x Power key connected to PMIC
- 2x LEDs (one static power supplied, one GPIO controlled)

Debug Serial Port: 3.3V TTL, 3-pin 2.54mm pitch connector, 1500000 bauds,
'J7' on board with G/R/T (GND/RX/TX) pins marked

Installation - eMMC:
-Boot official firmware (OpenWRT based)
-Upload sysupgrade.img.gz to /tmp/firmware.bin (with scp or web page)
-Flash to eMMC: sysupgrade -n -p -F /tmp/firmware.bin

Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20147
(cherry picked from commit 8ca4caacd0)
[refresh patches upon 24.10 branch]
Link: https://github.com/openwrt/openwrt/pull/20744
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-29 01:05:47 +01:00
Liangbin Lian
e35f37791f uboot-rockchip: add support for LinkEase EasePi R1
generic-rk3568 is enough

Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20147
(cherry picked from commit ef093299db)
Link: https://github.com/openwrt/openwrt/pull/20744
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-29 01:05:47 +01:00
Hauke Mehrtens
804a2e6c51 uboot-mediatek: mtd: spinand: esmt: add support for F50L1G41LC
Add support for esmt F50L1G41LC flash chip. It is used in some recent
Cudy devices.

(cherry picked from commit c84025dea2)
Link: https://github.com/openwrt/openwrt/pull/20963
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-29 00:00:04 +01:00
Hauke Mehrtens
6ff763e78c kernel: mtd: spinand: esmt: add support for F50L1G41LC
Backport upstream patch to add support for the ESMT F50L1G41LC flash
chip. It is used in multiple Cudy products manufactured starting
November 2025.

(cherry picked from commit 9424b2b786)
Link: https://github.com/openwrt/openwrt/pull/20963
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-28 23:59:45 +01:00
Goetz Goerisch
648fa1b6d3 kernel: bump 6.6 to 6.6.117
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.117

Manually updated:
bcm27xx/patches-6.6/950-0814-media-i2c-adv7180-Add-support-for-V4L2_CID_LINK_FREQ.patch
Updated with Raspberry Pi patch.

All patches auto-refreshed.

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20927
(cherry picked from commit 0337cdfb33)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20952
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-27 22:52:26 +01:00
Christian Marangi
443fc11576 package: drop creating spurious tmp directory in feed directory
In implementing APK support it seems a a leftover was never removed that
creates an unused tmp directory in the package feed directory.

Drop it as it's not used anywhere. What is actually needed is the
creation of the $$(PDIR_$(1)) directory for the feed package directory
in the bin/packages directory.

This was a side effect of using INSTALL_DIR on $$(PDIR_$(1))/tmp that
indirectly creates the $$(PDIR_$(1)) parent directory.

Fixes: d788ab376f ("build: add APK package build capabilities")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit f9802d70c6)
2025-11-23 11:41:47 +01:00
Felix Fietkau
444299d70c kernel: backport mediatek WED DMA mask fixes
Fixes issues on devices with 4 GB RAM.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 3632c0d3ce)
[ fix conflict errors ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-19 14:31:17 +01:00
Lorenzo Bianconi
6c5c8598ab mt76: Enable NPU support for Airoha AN7581 SoC
Airoha AN7581 SoC supports a Network Processor (NPU) to offload WiFi
traffic. Add the required bits to enable the support of it in the MT76
driver. This will be enabled by default if we are compiling for the
Airoha AN7581 SoC.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
[ improve commit title/description ]
Link: https://github.com/openwrt/openwrt/pull/20826
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 79d418eed8)
2025-11-19 13:54:41 +01:00
Felix Fietkau
59b4c9e114 mt76: update to Git HEAD (2025-11-06)
0aece3089a3a wifi: mt76: mt7996: Remove useless check in mt7996_msdu_page_get_from_cache()
05b3d899ad24 wifi: mt76: Move Q_READ/Q_WRITE definitions in dma.h
85e6517b0ac5 wifi: mt76: Add mt76_dev pointer in mt76_queue struct.
a3b6c67c97d2 wifi: mt76: Add the capability to set TX token start ID
141a81557070 wifi: mt76: Introduce the NPU generic layer
647d11bb17e0 wifi: mt76: mt7996: Add NPU offload support to MT7996 driver
8ff3b2bfc37f wifi: mt76: mt7996: fix typos in comments
0043147439b4 wifi: mt76: mt7925: refactor regulatory domain handling to regd.[ch]
f0e8fe441489 wifi: mt76: mt7925: refactor CLC support check flow
588cc87bf6a2 wifi: mt76: mt7925: refactor regulatory notifier flow
dac1d45fe94b wifi: mt76: mt7925: improve EHT capability control in regulatory flow
c166c4a0e750 wifi: mt76: mt7925: add auto regdomain switch support
d7b059bba166 wifi: mt76: mt7925: disable auto regd changes after user set
84f62a6beb99 wifi: mt76: mmio_*_copy fix byte order and alignment
f5ae5b2e8116 Revert "wifi: mt76: mt792x: improve monitor interface handling"
8ae7e6dc1d3a wifi: mt76: adjust BSS conf pointer handling
1b438ebe0d06 wifi: mt76: mt7925: cqm rssi low/high event notify
7519fa4ce62c wifi: mt76: mt7996: fix max nss value when getting rx chainmask
ea0580ad065f wifi: mt76: mt7996: no need to wait ACK event for SDO command
74112c2956fb wifi: mt76: mt7996: fix implicit beamforming support for mt7992
361d6bdac45d wifi: mt76: mt7996: support fixed rate for link station
d99274cdc30c wifi: mt76: mt7996: fix several fields in mt7996_mcu_bss_basic_tlv()
ad90a85b652b wifi: mt76: mt7996: fix teardown command for an MLD peer
e9fe8bc03e41 wifi: mt76: mt7996: set link_valid field when initializing wcid
050394665502 wifi: mt76: mt7996: use correct link_id when filling TXD and TXP
5d223855552c wifi: mt76: mt7996: fix MLD group index assignment
ab8361dbc421 wifi: mt76: mt7996: fix MLO set key and group key issues
7ce7ab881b3f wifi: mt76: mt7996: fix using wrong phy to start in mt7996_mac_restart()
1e0c23ff754b wifi: mt76: mt7996: fix EMI rings for RRO
eb567bc7f9b6 wifi: mt76: mt7925: ensure the 6GHz A-MPDU density cap from the hardware.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit e1a584b5d2)
2025-11-19 13:54:34 +01:00
Felix Fietkau
2b3f8c0d4c mt76: update to Git HEAD (2025-10-20)
9050597c4cd6 wifi: mt76: fix license/copyright of util.h
33f29d2345cc wifi: mt76: relicense to BSD-3-Clause-Clear
fc25ba82192e add LICENSE file
c1349a686cd1 wifi: mt76: mt7921: fix a potential clc buffer length underflow
4e7077f77400 wifi: mt76: mt7996: fix FCS error flag check in RX descriptor
754e3357045d wifi: mt76: mt7996: Remove unnecessary link_id checks in mt7996_tx
2e63c495f59b wifi: mt76: connac: Replace memcpy + hard-coded size with strscpy
95c4df3233ed wifi: mt76: Fix DTS power-limits on little endian systems
6f27d647c0ce wifi: mt76: mt7915: add bf backoff limit table support
1e91eadc9d46 wifi: mt76: wed: use proper wed reference in mt76 wed driver callabacks
2fe5bdbe7e13 wifi: mt76: use GFP_DMA32 for page_pool buffer allocation
c63db0fcadb8 wifi: mt76: mt7915: add WDS support when WED is enabled

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 13c30c2e58)
2025-11-19 13:54:27 +01:00
Christian Marangi
84927ebac6 mt76: update to Git HEAD (2025-10-03)
9ee788a38251 wifi: mt76: mt7996: fix null pointer deref in mt7996_conf_tx()
ec3f05480e5b tools: CMakeLists: update cmake minimum required version to 3.10

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 3531322a4a)
2025-11-19 13:54:15 +01:00
Pawel Dembicki
dbc2b142ce 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>
(cherry picked from commit 38ed1510db)
[refreshed patches]
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20817
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-18 12:41:38 +01:00
Álvaro Fernández Rojas
4d1c1d7754 odhcpd: backport memleak fix from Git HEAD
be7ca7c0792b config: fix memleak during odhcpd reload

https://github.com/openwrt/odhcpd/commit/be7ca7c0792b

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-11-14 23:02:27 +01:00
George Tsiamasiotis
58cde9ec22 scripts/patch-kernel.sh: do not try to check files after patch
Since we are not using patch -b, *.orig files are only created when
there are conflicts, or never according to posix patch.

As such, it doesn't really make sense to always delete *.orig files
presuming they are patch backups, even if they are patch backups.
Doing so is both deleting potentially useful information for failed
patch applications and creating hard to diagnose bugs [1].

In a similar vein, checking for *.rej files does not add any value
since we're already checking the patch command's return code.

[1]: https://github.com/openwrt/packages/issues/27485

Signed-off-by: George Tsiamasiotis <george@tsiamasiotis.gr>
Link: https://github.com/openwrt/openwrt/pull/20141
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 75ca6bafd6)
Link: https://github.com/openwrt/openwrt/pull/20742
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-12 12:09:43 +01:00
Ernestas Kulik
dddeea5e7f scripts: feeds: Don’t hardcode IS_TTY
When building in environments that set IS_TTY, the feeds script does not
honor it and passes a hardcoded value to scan.mk, causing unwanted
control characters to appear in stdout.

This commit addresses the issue by checking IS_TTY and MAKE_TERMOUT
variables and uses their values if defined.

Closes #8039

Signed-off-by: Ernestas Kulik <ernestas.k@iconn-networks.com>
Link: https://github.com/openwrt/openwrt/pull/20743
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit fd7e43d429)
2025-11-12 12:06:51 +01:00
Christian Marangi
d804c3110b airoha: backport patch fixing out of order DMA for ethernet driver
Backport upstream patch fixing out of order DMA access for ethernet
driver. This is relevant in the context of QoS when packets doesn't
follow linear handling by QDMA HW.

(cherry picked from commit 3169ffa4c7)
[ fix conflict errors ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-12 10:13:26 +01:00
Shiji Yang
b01c68ddbd ipq806x: migrate wifi configuration device paths for 6.12 kernel
The device tree PCIe host node names have been changed in the new
6.12 kernel[1]. Hence we have to update the wifi device path to
make sure it can work properly.

This script is based on:
target/linux/qualcommax/ipq807x/base-files/etc/hotplug.d/ieee80211/05-wifi-migrate

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=07299ba2e7d98045e6b522f7c5b97f402b15bc82
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18989
(cherry picked from commit ae70dbc267)

Backport the migration script that can also work backward, migrating
from 6.12 to 6.6. Like going from main/master to stable 24.10.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Link: https://github.com/openwrt/openwrt/pull/20739
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-12 00:08:15 +01:00
Shiji Yang
42ca1612a2 base-files: introduce a function to get kernel version number
A new function "get_linux_version()" to normalize and print the
kernel version as an integer. In some migration scripts, it is
useful for checking the Linux kernel version.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19172
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit a0fe3cfb62)
Link: https://github.com/openwrt/openwrt/pull/20739
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-12 00:08:14 +01:00
Christian Marangi
ae51d0098e airoha: refresh kernel patches
After all the backports, automatically refresh all the patches for
Airoha target.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-10 18:29:44 +01:00
Christian Marangi
2d05923d2e airona: an7583: fix typo for CONFIG_PHY_AIROHA_USB
KConfig flag have an extra whitespace for CONFIG_PHY_AIROHA_USB and
value is not ignored.

Drop the extra whitespace to correctly ignore the value on kernel
compilation.

Fixes: c5b12fc02a ("airoha: Introduce support for Airoha AN7583 SoC")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit eedc7b3b79)
2025-11-10 18:26:30 +01:00
Christian Marangi
81929a31af airoha: replace PWM patch with upstream version
Replace Airoha AN7581 PWM patch with upstream version and add kernel
version tag.

(cherry picked from commit 2352de96c1)
[ fix conflict error ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-10 18:20:45 +01:00
Christian Marangi
b3e90139ce airoha: backport minor fixes for NPU handling
Backport upstream minor fixed for NPU handling that might result in
kernel panic or handle leak.

(cherry picked from commit 83eacb6ab0)
[ fix conflict errors ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-10 18:20:45 +01:00
Lorenzo Bianconi
dcced671e2 airoha: Add missing board files for EN7581
Add missing leds and network board files for EN7581 SoC.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
[ drop reference to downstream 10g RFB board ]
Link: https://github.com/openwrt/openwrt/pull/20556
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 738eacb9a0)
2025-11-10 18:20:44 +01:00
Ziyang Huang
9d218f0853 airoha: adjust and default the loadaddr
Similar to e92b153e99 ("mediatek: introduce KERNEL_LOADADDR to Device/Default template"),
let's move the default loadaddr to Device/Default.

What's more, use 0x80200000 instead of the SDK default value 0x80088000
to avoid the following error which may overwrite TZ memory and cause crash:

    [    0.000000] [Firmware Bug]: Kernel image misaligned at boot, please fix your bootloader!
    [    0.000000] OF: reserved mem: Reserved memory: failed to reserve memory for node 'atf@80000000': base 0x0000000080000000, size 2 MiB

Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
[ fix spelling mistake ]
Link: https://github.com/openwrt/openwrt/pull/20470
(cherry picked from commit fed2d31343)
[ fix conflict error ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-10 18:20:44 +01:00
Christian Marangi
e905c45b05 airoha: an7581: enable USB node on eMMC RFB board
Enable USB node on eMMC RFB board and disable USB2 3.0 port to make the
3rd PCIe line correctly work.

This is needed to prevent the xHCI driver to mess with PCIe by
configuring the USB2 3.0 port. Port will still be detected but won't be
configureed by the driver and won't have PHY to configure for.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 6d51c80424)
2025-11-10 18:20:44 +01:00
Christian Marangi
b5a66740c2 airoha: an7581: correctly attach the USB2 PHY for 3rd PCIe line
The 3rd PCIe line use the USB2 serdes for PCIe operation. Correctly set
it to the DT node so that the mode can be correctly set in the PHY
driver.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 3ba92e0e32)
2025-11-10 18:20:44 +01:00
Christian Marangi
64ad16e3ed airoha: an7581: add USB nodes
Add USB nodes to AN7581 DTSI, disabled by default.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 3db72b71d1)
2025-11-10 18:20:44 +01:00
Christian Marangi
9aeda89c05 airoha: add pending patch for USB support on AN7581
Add pending patch for USB support on AN7581 SoC. This is also required
to make operational the 3rd PCIe line that use the USB2 Serdes for PCIe
operations.

(cherry picked from commit 7afc2da3fc)
[ fix conflict errors, add missing Kconfig flag ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-10 18:20:40 +01:00
Christian Marangi
9097d73cbb airoha: add nodes for 3rd PCIe line for AN7581
Some SoC might use the Serdes for the second USB port as a 3rd PCIe
line (with the SSTR register correctly setup).

Add the node for the 3rd PCIe card and enable for the eMMC RFB board.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 2fae199953)
2025-11-10 18:09:14 +01:00
Christian Marangi
7af48fdcd3 airoha: backport fix for Airoha offload support with airoha_hw_init fail
Backport a patch fixing a kernel panic on airoha_hw_init fail. This
should better handle scenario with NPU load Probe deferring.

(cherry picked from commit c3c75d0e68)
[ fix conflict error ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-10 18:09:14 +01:00
Christian Marangi
518f3c6171 airoha: backport cleanup patch for Airoha Ethernet driver
Backport cleanup patch for Airoha Ethernet patch to permit easier
backport in the future.

Automatically refresh all affected patch.

(cherry picked from commit 2f3ea18f91)
[ fix conflict errors, drop upstream patch ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-10 18:05:46 +01:00
Christian Marangi
9babe16bd2 airoha: an7581: add Aeonsemi AS21xxx PHY to RFB eMMC board
Airoha AN7581 eMMC RFB board mount 2 Aeonsemi AS21xxx PHY. One is
usually connected to GDM4 and the other is optionally connected to GDM2.
Add the relevant nodes to support the one connected to GDM4.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 26da4bf552)
2025-11-10 17:55:48 +01:00
Christian Marangi
fda425adf4 airoha: an7581: add BL2 and BL31+U-Boot Artifacts for RFB board
Pack the BL2 and BL31+U-Boot artifacts as Airoha AN7581 is currently
supported in upstream U-Boot and bootloader files can be used for
unfused boards.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 17cb69fe7f)
2025-11-10 17:55:41 +01:00
Christian Marangi
1f7de3311c airoha: backport additional upstream patch for NPU support for AN7583
Backport additional patch required for NPU support of Airoha AN7583.
These are specific for the NPU module with some minor fixes and to adds
upport for loading the specific Airoha AN7583 NPU firmware.

(cherry picked from commit 8b4adfbb87)
[ fix conflict errors ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-10 17:54:54 +01:00
Christian Marangi
4391bf8729 airoha: an7583: add NPU nodes and enable kernel config
Add relevant nodes for NPU support for Airoha AN7583 and enable the
kernel config to enable support in the Airoha Ethernet driver.

NPU firmware is scheduled to be upstreamed to linux-firmware and will be
added once present upstream.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 8758b58f25)
2025-11-10 17:54:16 +01:00
Christian Marangi
ed8ba06ced airoha: an7583: drop bootloader artifacts entry and add default pkg
Fix the current image Makefile for Airoha AN7583 by dropping the
artifacts entry for bootloader and add default PKG for the PHY mounted
on the RFB boards.

The artifacts for the bootloader will be readded later once ATF-A
support will be pushed mainline.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit a7964f0893)
2025-11-10 17:54:10 +01:00
Christian Marangi
89cee1bf3f airoha: an7583: Add missing DTS for EMMC RFB board
While adding support for Airoha AN7583, it was forget to push the EMMC
DTS while defining the variant in the image Makefile.

Add the missing DTS to fix image creation error.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 6fe65d404b)
2025-11-10 17:54:03 +01:00
Christian Marangi
4d4fd4d125 airoha: an7583: add additional comments on EVB board
On the Airoha AN7583 EVB there are 2 Aeonsemi AS21xxx PHY but only the
one connected to Serdes Ethernet is usable as the other connected to
Serdes PON is not actually HW connected (as the serdes is connected to
the BOSA port)

Add comments and disable the relevant PHY.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit ea850b5a18)
2025-11-10 17:53:56 +01:00
Christian Marangi
262b537f48 airoha: backport upstream patch for AN7583 Ethernet support
Backport upstream patch for AN7583 Ethernet support. While at it also
backport some additional fixes required to apply the AN7583 patches
cleanly.

Refresh all affected patch automatically (aside from the XSI patch that
changed the implementation)

Link: https://github.com/openwrt/openwrt/pull/20489
(cherry picked from commit 46a454fb9b)
[ fix conflict errors ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-10 17:53:47 +01:00
Aleksander Jan Bajkowski
c56fbe156e airoha: fix scuclk node for an7581
Add missing syscon compatible for scuclk node.
Fix the unit-address of the scuclk node.
This fixes the pcs driver error:

airoha-pcs 1fa08000.pcs: probe with driver airoha-pcs failed with error -22
airoha-pcs 1fa09000.pcs: probe with driver airoha-pcs failed with error -22

Fixes: c3d70b1 ("airoha: en7581: Add support for external PHY")
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/20190
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit a30daf8a0b)
2025-11-10 17:48:34 +01:00
Chukun Pan
84944c0311 airoha: set default DEVICE_DTS/DEVICE_DTS_DIR
All devices under airoha use dts directory under the target,
so update the default DEVICE_DTS_DIR. Also set the default
DEVICE_DTS based on the SoC name for non-dev boards.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/20190
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 866c4e5cdf)
2025-11-10 17:46:45 +01:00
Christian Marangi
0272d79e34 airoha: Introduce support for Airoha AN7583 SoC
Introduce initial support for Airoha AN7583 SoC and add all the required
patch for basic functionality of the SoC.

Airoha AN7583 is based on Airoha EN7581 SoC with some major changes on
the PHY handling and Serdes. It can be see as a lower spec of EN7581
with modern and simplified implementations.

All the patch are sent upstream and are pending revision. Support for
PCIe and USB will come later as soon as DT structure is accepted
upstream.

(cherry picked from commit c5b12fc02a)
[ fix conflict errors, add MDIO_AIROHA config ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-10 17:46:13 +01:00
Christian Marangi
1181c031a0 airoha: en7581: Add pending ASOC driver
Add pending ASOC driver for I2S sound support on Airoha EN7581 SoC.

(cherry picked from commit 14bc87cf76)
[ fix conflict error ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-10 17:37:04 +01:00
Christian Marangi
48ec8469fd airoha: en7581: Add support for external PHY
This add a pending version of the Airoha PCS driver to add support for
External PHY. The Airoha PCS driver will receive some minor modification
once we the PCS subsystem will be defined upstream.

Add all the required node for GDM2 and GDM4 and enable the PCS config.

(cherry picked from commit c3d70b1ae5)
[ fix conflict error ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-10 17:36:25 +01:00
Aleksander Jan Bajkowski
8c5ad273b4 airoha: en7581: dts: fix typo "disable"
No functional changes intended.

Fixes warning:
/linux/arch/arm64/boot/dts/airoha/en7581-gemtek-w1700k.dtb: i2c1@1fbf8100 (mediatek,mt7621-i2c): status: 'oneOf' conditional failed, one must be fixed:
	['disable'] is not of type 'object'
	'disable' is not one of ['okay', 'disabled', 'reserved', 'fail', 'fail-needs-probe']
	from schema $id: http://devicetree.org/schemas/dt-core.yaml#

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/20131
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 3872e9d317)
2025-11-10 17:30:05 +01:00
Aleksander Jan Bajkowski
f364fe5e09 airoha: an7581: enable uart baudrate control
The baud rate control on Airoha does not function properly. This
patch enables the inactive code responsible for this. The UART2
baud rate is correct. HSUART3 operates at twice the requested
baud rate. The same problem exists in the current code, so this
doesn't introduce any regression. Support for baud rates higher
than 460800 is still required. This will be added in the future.

Tested on Gemtek W1700k. UART2 and HSUART3 are working fine.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/20049
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 440b85f5b1)
[ solve conflict error ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-10 17:30:05 +01:00
Christian Marangi
dc11868486 airoha: backport upstream fixes for pinctrl PHY LED and MDIO
Backport fixes for Airoha pinctrl driver for PHY LED and MDIO bus. This
fix a copy-paste error for PHY LED and a misconfiguration for MT7530
embedded Switch MDIO bus GPIO pin to permit usage of external PHYs.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 35ff70e807)
2025-11-10 17:30:05 +01:00
Christian Marangi
6a7b16e616 airoha: add NPU and reserved memory node for AN7581
Add the NPU and reserved memory node for AN7581 dtsi since it's not
supported.

Link: https://github.com/openwrt/openwrt/pull/19816
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 3dca527e6d)
2025-11-10 17:30:05 +01:00
Christian Marangi
671f4d53ac airoha: major backport of Airoha Ethernet driver feature support
Major backport of upstream patch for support of multiple feature of the
Airoha Ethernet driver.

Feature backported are TSO, Jumbo packet, Offload and initial Wlan
Offload support.

Link: https://github.com/openwrt/openwrt/pull/19816
(cherry picked from commit 9d3009f426)
[ add missing kconfig flag ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-10 17:29:48 +01:00
Christian Marangi
bac7ee02f9 airoha: backport trivial fixes for pinctrl and ethernet driver
Backport trivial fixes from upstream related to pinctrl and ethernet
driver.

Link: https://github.com/openwrt/openwrt/pull/19816
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 354d7472d5)
2025-11-10 17:24:44 +01:00
Christian Marangi
3b1fc6661a airoha: backport patch adding support for AN7581 Ethernet PHY
Backport patch adding support for AN7581 Ethernet PHY based on the same
Mediatek embedded Switch PHY.

Link: https://github.com/openwrt/openwrt/pull/19816
(cherry picked from commit 0adaeff5ee)
[ rework backported patch ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-10 17:24:10 +01:00
Christian Marangi
a6e8cbdf53 airoha: replace thermal patch with upstream version
Replace thermal patch with upstream version. The thermal maintainer
reported that the sysfs entry are considered deprecated and that slope
and offset should be handled internally to the driver.

Link: https://github.com/openwrt/openwrt/pull/19816
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit a713260966)
2025-11-10 17:11:10 +01:00
Tianling Shen
a167e68c76 mediatek: add Konka KOMI A31 support
This board is also as known as E-Life ETR631-T/ETR635-U.

Hardware specification:
  SoC: MediaTek MT7981B 2x A53
  Flash: 128 MB SPI-NAND
  RAM: 256MB DDR3
  Ethernet: 4x 10/100/1000 Mbps
  Switch: MediaTek MT7531AE
  WiFi: MediaTek MT7976C
  Button: Reset, Mesh
  Power: DC 12V 1A

Gain telnet access:
1. Login into web interface, and download the configuration.
2. Uncompress the configuration:
     * Enter fakeroot if you are not login as root.
   tar -zxf <filename>.tar.gz
3. Edit 'etc/passwd', remove root password: 'root::1:0:99999:7:::'.
4. Edit 'etc/rc.local', insert telnetd command before 'exit 0':
   ( sleep 3s; telnetd; ) &
5. Repack the configuration:
   tar -zcf backup.tar.gz etc/
6. Upload new configuration via web interface, now you can connect to
   KOMI A31 via telnet.

Flash instructions:
1. Connect to KOMI A31, backup everything, especially 'Factory' part.
2. Write new BL2:
   mtd write openwrt-mediatek-filogic-konka_komi-a31-preloader.bin BL2
3. Write new FIP:
   mtd write openwrt-mediatek-filogic-konka_komi-a31-bl31-uboot.fip FIP
4. Set static IP on your PC:
   IP 192.168.1.254/24, GW 192.168.1.1
5. Serve OpenWrt initramfs image using TFTP server.
6. Cut off the power and re-engage, wait for TFTP recovery to complete.
7. After OpenWrt has booted, perform sysupgrade.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20357
(cherry picked from commit 8a7de107d8)
[rebase uboot patches upon 24.10 branch]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20595
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-09 14:42:06 +01:00
Luis Mita
d414ed185e ramips: mt76x8: add support for Cudy RE1200 Outdoor v1
Hardware:
 - SoC: MediaTek MT7628DAN
 - Flash: 8 MiB XMC 25QH64CHIQ
 - RAM: 64 MiB (integrated on SoC)
 - WLAN: 2.4 GHz (MT7603E, 11n), 5 GHz (MediaTek MT7613BEN, 11ac)
 - Ethernet: 1x10/100 Mbps LAN
 - Buttons: 1 Reset button, 1 WPS button
 - LEDs: 5x Green
 - Serial Console: unpopulated header 115200 8n1
 - Power: 24v Passive POE

MAC addresses:
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| LAN     | 80:af:ca:xx:xx:x0 | label     |
| WLAN 2g | 80:af:ca:xx:xx:x0 | label     |
| WLAN 5g | 80:af:ca:xx:xx:x2 | +2        |
+---------+-------------------+-----------+

Installation:
Please check the Wiki for this device for a more convenient solution than the one below.

1. Disassemble the device, desolder and dump the flash chip with a SPI programmer.
2. Separate the partitions with dd:

dd if=spi_dump.bin of=u-boot.bin     bs=1  skip=0        count=196608  status=progress
dd if=spi_dump.bin of=u-boot-env.bin bs=1  skip=196608   count=65536   status=progress
dd if=spi_dump.bin of=factory.bin    bs=1  skip=262144   count=65536   status=progress
dd if=spi_dump.bin of=firmware.bin   bs=1  skip=327680   count=7995392 status=progress
dd if=spi_dump.bin of=bdinfo.bin     bs=1  skip=8323072   count=65536   status=progress

3. Download the sysupgrade firmware at openwrt.bin.
4. The firmware size should be 7995392 bytes. Fix the size of your firmware putting zeros to the end, with:

truncate -s 7995392 firmware.bin

5. Combine all the parititions:

cat u-boot.bin u-boot-env.bin factory.bin openwrt.bin bdinfo.bin > spi_new.bin

6. Erase and flash the SPI chip with the new file. Solder the chip and boot the router.

Signed-off-by: Luis Mita <luis@luismita.com>
Link: https://github.com/openwrt/openwrt/pull/20381
(cherry picked from commit 65215e6d46)
Link: https://github.com/openwrt/openwrt/pull/20463
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-09 14:39:45 +01:00
Tianling Shen
c3b4e8e531 rockchip: add Lunzn FastRhino R66S support
Hardware
--------
RockChip RK3568 ARM64 (4 cores)
1/2GB LPDDR4 RAM
2x 2500 Base-T (PCIe, r8125b)
1 LED (Power)
1 Button (Reset)
Micro-SD Slot
2x USB 3.0 Port
12V DC Jack

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

Tested-by: Francisco G Luna <frangonlun@gmail.com>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/19990
(cherry picked from commit d76a774270)
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20618
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-09 14:36:56 +01:00
Tianling Shen
32a2193a48 uboot-rockchip: add Fastrhino R66S support
Add support for the Lunzn FastRhino R66S board.

Tested-by: Francisco G Luna <frangonlun@gmail.com>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/19990
(cherry picked from commit 678536740e)
[rebase patches upon 24.10 branch]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20618
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-09 14:36:56 +01:00
Shiji Yang
a902c0d020 ramips: dts: increase maximum MMC clock frequency
The High-Speed SD mode stability issue should have been fixed.
Increase the MMC max-frequency to improve the IO speed. We can
still use the sysfs to limit the clock frequency, e.g.

root@OpenWrt:~# echo 25000000 > /sys/kernel/debug/mmc0/clock

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18896
(cherry picked from commit 143cfd6113)
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20258
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-09 14:26:35 +01:00
Shiji Yang
43c1a0440f ramips: mtk-sd: stability improvements for MIPS mt762x SoCs
* Add tuning parameters to improve the stability of 48~50 MHz
  High-Speed SD mode.

* Fix I/O errors on EMMC mode by disabling unsupported auto CMD23
  feature.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18896
(cherry picked from commit 3f78e5c918)
[removed kernel 6.12 patches]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20258
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-09 14:26:34 +01:00
Shiji Yang
0be05cdf72 ramips: mtk-sd: backport Host Software Queue support
This new feature has some improvements for random RW performance.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18896
(cherry picked from commit db76fe6a02)
[removed kernel 6.12 patches]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20258
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-09 14:26:34 +01:00
Shiji Yang
0ed371472c ramips: mtk-mmc: fix data timeout value
The MT7628 programing guide shows that the correct DTOC unit is
1048576 clocks instead of 65536 clocks. This value is also used
by linux upstream mtk-sd driver. Correct the DTOC register and
also round up its value.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18896
(cherry picked from commit e69c867cdf)
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20258
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-09 14:26:34 +01:00
Shiji Yang
550fa37533 ramips: dts: adjust the power regulators of MMC controller
- Fix MMC bus IO voltage. The GPIO voltage of mt762x series SoCs
  is fixed 3.3V. There are no visible registers that can control
  the voltage level. Also add "no-1-8-v" property to indicate that
  MMC controller doesn't support 1.8V IO.

- Drop useless property "enable-active-high". These dummy fixed
  voltage regulators are not controlled by the GPIO. We don't need
  to set the GPIO polarity.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18886
(cherry picked from commit afdf88b9a1)
[rebased upon 24.10 branch]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20258
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-09 14:26:34 +01:00
Goetz Goerisch
9837ae4002 kernel: bump 6.6 to 6.6.116
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.116

All patches auto-refreshed.

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20598
(cherry picked from commit 099633be82)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20701
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-09 14:21:42 +01:00
Goetz Goerisch
597598baa9 kernel: bump 6.6 to 6.6.115
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.115

Patch manual updated:
- starfive/patches-6.6/0067-driver-uart-fix-up-uart-communicate-fail.patch [1]

All patches auto-refreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.115&id=f354f7510ff0efaa1735093625749fc788ec67d1

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20598
(cherry picked from commit 6526d6d057)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20701
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-09 14:21:42 +01:00
Hang Zhou
aa03dfeb96 bmips: fix leds on f@st3864op
gpio-leds were not working on F@ST3864OP before https://github.com/openwrt/openwrt/pull/17527 was merged.

This pull request adds definitions for all LEDs, including the previously
non-working WAN LEDs.

Signed-off-by: Hang Zhou <929513338@qq.com>
Link: https://github.com/openwrt/openwrt/pull/20533
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 6de96914e5)
2025-11-06 09:57:37 +01:00
Andreas Gnau
a38b0c94dd tools/ccache: same behaviour for local and CI builds
If the environment variable `CI` is set, ccache will enable the CMake
option CCACHE_DEV_MODE by default. This leads to differing behaviour
between local and CI builds which takes quite some time to debug. 🤯

Achieve consistent behaviour between local builds and CI builds by
setting CCACHE_DEV_MODE. Set it to OFF, because CCACHE_DEV_MODE amongst
other settings like linker choice, enables -Werror, which will lead to
potential compilation failures when the host compiler is updated. Using
-Werror for host utils is not desirable, because the compiler version
used is not controlled by the OpenWrt build system and host utils should
compile successfully on an as wide range of host OSes as possible.

Reported-by: Roman Azarenko <roman.azarenko@iopsys.eu>
Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
Link: https://github.com/openwrt/openwrt/pull/20290
(cherry picked from commit 6f32c657db)
Link: https://github.com/openwrt/openwrt/pull/20334
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-04 15:13:05 +01:00
Robert Marko
99e62c21c6 mold: dont allow on MacOS
Mold does not really work on MacOS, when attempting to use it for example
for ubus:
mold: get_self_path is not supportedcollect2: error: ld returned 1 exit status

Which was introduced by [1] so it seems that MacOS is not supported, so
lets make it non selectable when MacOS is the host.

[1] f9a37e9dd4

Link: https://github.com/openwrt/openwrt/pull/18575
(cherry picked from commit 3c65dc3678)
Link: https://github.com/openwrt/openwrt/pull/20621
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-11-03 10:21:02 +01:00
Zxl hhyccc
984a219781 kernel: bump 6.6 to 6.6.114
https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.114

Removed upstreamed:
/target/linux/generic/backport-6.6/540-v6.12-ksmbd-browse-interfaces-list-on-FSCTL_QUERY_INTERFACE_INFO.patch

merged upstream with commit: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.114&id=499089376206f3f7f09d6852b3ec92f2674d24bb

All other patches automatically rebased.

Build system: bcm4908
Build system: bcm53xx

Signed-off-by: Zxl hhyccc <zxlhhy@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20434
(cherry picked from commit 8103b79776)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20551
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-28 22:16:44 +01:00
Zxl hhyccc
8d90e178b1 kernel: bump 6.6 to 6.6.113
https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.113

Manually rebased:

/target/linux/generic/backport-6.6/540-v6.12-ksmbd-browse-interfaces-list-on-FSCTL_QUERY_INTERFACE_INFO.patch

Dropped patch

/target/linux/generic/backport-6.6/541-v6.18-ksmbd-add-max-ip-connections-parameter.patch

merged upstream with commit:  https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=bc718d0bd87e372f7786c0239e340f3577ac94fa

All other patches automatically rebased.

Build system: bcm4908
Build system: bcm53xx

Signed-off-by: Zxl hhyccc <zxlhhy@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20434
(cherry picked from commit d1d8febc42)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20551
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-28 22:16:44 +01:00
Zxl hhyccc
5902917588 kernel: bump 6.6 to 6.6.112
https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.112

All patches automatically rebased.

Build system: bcm4908
Build system: bcm53xx

Signed-off-by: Zxl hhyccc <zxlhhy@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20434
(cherry picked from commit 32062152a8)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20551
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-28 22:16:44 +01:00
Zxl hhyccc
630354031a kernel: bump 6.6 to 6.6.111
https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.111

All patches automatically rebased.

Build system: bcm4908
Build system: bcm53xx

Signed-off-by: Zxl hhyccc <zxlhhy@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20434
(cherry picked from commit 70df331a8e)
Link: https://github.com/openwrt/openwrt/pull/20551
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-28 22:16:44 +01:00
Christoph Krapp
2d758300e3 ath79: add calibration variant for TP-Link Archer C60 v2
Now that we have a board file, add calibration variant for TP-Link
Archer C60 v2 and add ipq-wifi package for it.

Tested-by: Semih Baskan <strstgs@gmail.com>
Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20496
Link: https://github.com/openwrt/openwrt/pull/20497
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-24 12:05:32 +02:00
Christoph Krapp
dbf2c101ed ipq-wifi: Add entry for TP-Link Archer C60 v2
Add IPQ Wifi entry for ath79 TP-Link Archer C60 v2.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20496
Link: https://github.com/openwrt/openwrt/pull/20497
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-24 12:05:32 +02:00
Robert Marko
ef3b14e06c ipq-wifi: update to Git HEAD (2025-10-22)
c585e435c611 ipq6018: add jdcloud_re-cs-02 BDF
14aef623f3e5 qcn9074: add jdcloud_re-cs-02 BDF
ec6831a43ff0 qca9888: replace TP-Link Archer C60 v2 BDF

Link: https://github.com/openwrt/openwrt/pull/20497
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-24 12:05:32 +02:00
Christian Marangi
bdb89ee6df image: fix race between mkits.sh and mkimage in .itb squashfs generation
With further investigation it was found a race in generating .itb images
that include a RootFS caused by the mkits.sh and the mkimage.

Due to the fact that mkits.sh generates a .pagesync image of the passed
rootfs, it can happen that, concurrently, mkimage can be called at the
same time mkits.sh is creating another .pagesync for the same rootfs.

This cause mkimage to use an half made rootfs.pagesync creating a
corrupted image.

To address this, also protect the mkimage with the same lock used for
mkits.sh preventing any kind of concurrent usage/generation of the
rootfs.pagesync blob

Fixes: 52cc9d82f1 ("kernel: rework Initramfs locking logic")
Link: https://github.com/openwrt/openwrt/pull/20492
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 3de1bbd5ae)
2025-10-23 18:16:33 +02:00
Robert Marko
debc420622 at91bootstrap: put at91bootstrap images into image staging directory
Currently, building at91 subtargets via image builder will fail as the
required built at91bootstrap is not present in the image builder at all
since its presumed to be in the binary directory which obviously does not
exist yet.

So, lets install the at91bootstrap binary into image staging directory and
use that instead

Link: https://github.com/openwrt/openwrt/pull/18414
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit a947be41b7)
2025-10-22 18:19:42 +02:00
Robert Marko
c5d7ef41f8 at91: put u-boot images into image staging directory
Currently, building at91 subtargets via image builder will fail as the
required built u-boot is not present in the image builder at all since its
presumed to be in the binary directory which obviously does not exist yet.

So, lets install the u-boot binary into image staging directory and use
that instead.

Link: https://github.com/openwrt/openwrt/pull/18414
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 4724331d70)
2025-10-22 18:19:37 +02:00
Robert Marko
be73a7f033 at91: add USB kmods only for subtargets that support USB
Currently, kmod-usb-ohci,kmod-at91-udc and kmod-usb-gadget-eth are included
as the default packages for all at91 subtargets.

However, this is breaking image builder as kmod-at91-udc is not being built
on sama7 since it depends on USB_SUPPORT and sama7 does not have USB support
enabled in the kernel as its not supported upstream so its not even
selectable in the config.

So, move to include these as default packages only for sama5 and sama9x as
both of those have USB support enabled.

Fixes: #18407
Link: https://github.com/openwrt/openwrt/pull/18413
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 02d3aa72bb)
2025-10-22 18:19:28 +02:00
Robert Marko
d4eb33990b layerscape: armv7: drop skipped packages
Now that all packages that relied on the skip mechanism are selected
via BUILD_DEVICES or by defaulting for the subtarget drop them from
individual DEVICE_PACKAGES so that Image Builder works again for armv7.

Fixes: #18411
Link: https://github.com/openwrt/openwrt/pull/18462
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 8cb7919a13)
2025-10-22 18:19:10 +02:00
Robert Marko
fa3632f332 ls-rcw: select by default for layerscape/armv7
Currently, ls-rcw package is being included in the individual
profile DEVICE_PACKAGES but using the feature that allows skipping their
inclusion in the end image package list if prefixed with a tilde(~) which
was added in:
377b66990b ("build: introduce support to declare skip package")

But it not added to Image Builder so currently trying to build layerscape
device images in Image Builder will fail with:
ERROR: '~ls-rcw' is not a valid world dependency, format is name(@tag)([<>~=]version)

So, instead of having to rely on support for skipping package installation
and declaring the ls-rcw package in DEVICE_PACKAGES lets select it when
layerscape/armv7 target is selected.

Fixes: #18411
Link: https://github.com/openwrt/openwrt/pull/18462
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 598a0556b7)
2025-10-22 18:19:10 +02:00
Robert Marko
5c6e95c5b4 layerscape: armv8_64b: drop skipped packages
Now that all packages that relied on the skip mechanism are selected
via BUILD_DEVICES or by defaulting for the subtarget drop them from
individual DEVICE_PACKAGES so that Image Builder works again for armv8_64b.

Fixes: #18412
Link: https://github.com/openwrt/openwrt/pull/18462
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit c04eaad12a)
2025-10-22 18:19:10 +02:00
Robert Marko
c39bc0375f ls-ddr-phy: select by default for layerscape/armv8_64b
Currently, ls-ddr-phy package is being included in the individual
profile DEVICE_PACKAGES but using the feature that allows skipping their
inclusion in the end image package list if prefixed with a tilde(~) which
was added in:
377b66990b ("build: introduce support to declare skip package")

But it not added to Image Builder so currently trying to build layerscape
device images in Image Builder will fail with:
ERROR: '~ls-ddr-phy' is not a valid world dependency, format is name(@tag)([<>~=]version)

So, instead of having to rely on support for skipping package installation
and declaring the ls-ddr-phy package in DEVICE_PACKAGES lets select it when
layerscape/armv8_64b target is selected.

Fixes: #18412
Link: https://github.com/openwrt/openwrt/pull/18462
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 8a28ddafe7)
2025-10-22 18:19:10 +02:00
Robert Marko
9f630a4141 ls-dpl: select by default for layerscape/armv8_64b
Currently, ls-dpl package is being included in the individual
profile DEVICE_PACKAGES but using the feature that allows skipping their
inclusion in the end image package list if prefixed with a tilde(~) which
was added in:
377b66990b ("build: introduce support to declare skip package")

But it not added to Image Builder so currently trying to build layerscape
device images in Image Builder will fail with:
ERROR: '~ls-dpl' is not a valid world dependency, format is name(@tag)([<>~=]version)

So, instead of having to rely on support for skipping package installation
and declaring the ls-dpl package in DEVICE_PACKAGES lets select it when
layerscape/armv8_64b target is selected.

Fixes: #18412
Link: https://github.com/openwrt/openwrt/pull/18462
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 84437eeec0)
2025-10-22 18:19:10 +02:00
Robert Marko
ebcda1d7da ls-mc: select by default for layerscape/armv8_64b
Currently, ls-mc package is being included in the individual
profile DEVICE_PACKAGES but using the feature that allows skipping their
inclusion in the end image package list if prefixed with a tilde(~) which
was added in:
377b66990b ("build: introduce support to declare skip package")

But it not added to Image Builder so currently trying to build layerscape
device images in Image Builder will fail with:
ERROR: '~ls-mc' is not a valid world dependency, format is name(@tag)([<>~=]version)

So, instead of having to rely on support for skipping package installation
and declaring the ls-mc package in DEVICE_PACKAGES lets select it when
layerscape/armv8_64b target is selected.

Fixes: #18412
Link: https://github.com/openwrt/openwrt/pull/18462
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 2fb3efda0a)
2025-10-22 18:19:10 +02:00
Robert Marko
975552ea14 fman-ucode: select by default for layerscape/armv8_64b
Currently, fman-ucode package is being included in the individual
profile DEVICE_PACKAGES but using the feature that allows skipping their
inclusion in the end image package list if prefixed with a tilde(~) which
was added in:
377b66990b ("build: introduce support to declare skip package")

But it not added to Image Builder so currently trying to build layerscape
device images in Image Builder will fail with:
ERROR: '~fman-ucode' is not a valid world dependency, format is name(@tag)([<>~=]version)

So, instead of having to rely on support for skipping package installation
and declaring the fman-ucode package in DEVICE_PACKAGES lets select it when
layerscape/armv8_64b target is selected.

Fixes: #18412
Link: https://github.com/openwrt/openwrt/pull/18462
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 22f02beaab)
2025-10-22 18:19:10 +02:00
Robert Marko
4108db2bd8 tfa-layerscape: set BUILD_DEVICES
Currently, tfa-layerscape packages are being included in the individual
profile DEVICE_PACKAGES but using the feature that allows skipping their
inclusion in the end image package list if prefixed with a tilde(~) which
was added in:
377b66990b ("build: introduce support to declare skip package")

But it not added to Image Builder so currently trying to build layerscape
device images in Image Builder will fail with:
ERROR: '~trusted-firmware-a-ls1012a-frdm' is not a valid world dependency, format is name(@tag)([<>~=]version)

So, instead of having to rely on support for skipping package installation
and declaring the individual TFA packages in DEVICE_PACKAGES we can just
do what other targets do and set BUILD_DEVICES so that TFA packages are
automatically set.

Fixes: #18412
Link: https://github.com/openwrt/openwrt/pull/18462
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 03ab770da5)
2025-10-22 18:19:10 +02:00
Robert Marko
4b7728ba8b bcm63xx-cfe: install into image staging dir
Currently, bcm63xx-cfe is being installed into kernel build dir, however
that does not work for Image Builder as only certain artifacts from kernel
build dir are included in Image Builder.

So, simply install bcm63xx-cfe into image staging dir so its artifacts can
be used in Image Builder as well.

Fixes: #18408
Fixes: #18409
Link: https://github.com/openwrt/openwrt/pull/18463
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 4a7de50769)
2025-10-22 18:17:40 +02:00
Eric Fahlgren
4ead11296a targetwide: imagebuilder: add explicit guards around initramfs rules
Additional work building upon f6e0f57be0

Add more explict guards around the unsupported generation of the initramfs
images and suppress requirement for certain others.

Fixes: https://github.com/openwrt/openwrt/issues/20151
Fixes: https://github.com/openwrt/asu/issues/1499
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20460
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit f5fd7ef888)
2025-10-21 11:39:10 +02:00
Hauke Mehrtens
859ff7a978 OpenWrt v24.10.4: revert to branch defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-21 00:00:26 +02:00
Hauke Mehrtens
78b23a26c4 OpenWrt v24.10.4: adjust config defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-21 00:00:21 +02:00
Eric Fahlgren
29397011cc targetwide: imagebuilder: add explicit guards around initramfs rules
The imagebuilder is not intended to build initramfs images.  Some
profiles attempt to do this and succeed, due to buildroot leaking
the initramfs-kernel into staging_dir; others attempt it, but fail
due to not having initramfs binaries present in the imagebuilder.

Fix this by adding an explict guard around the unsupported generation
of the initramfs images.  This saves space and time during imagebuilder
runs, fixes those that are currently broken and protects against future
breakage for profiles that inadvertently work now.

Fixes: https://github.com/openwrt/openwrt/issues/20151
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20347
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit f6e0f57be0)
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-19 18:37:45 +02:00
Christoph Krapp
c5892fe8c5 ipq40xx: fix Linksys WHW0x sorting
whw01 was incorrectly placed below whw03 definitions.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20441
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 1fecbaf3d8)
Link: https://github.com/openwrt/openwrt/pull/20454
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-19 17:24:59 +02:00
Christoph Krapp
b2119bbaa2 ipq40xx: add led aliases for Linksys WHW01
This adds led aliases for failsafe and upgrade. Before this change the
leds stayed dark in both situations.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20441
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 1afe4ba623)
Link: https://github.com/openwrt/openwrt/pull/20454
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-19 17:24:51 +02:00
Christoph Krapp
c416b8c44c ipq40xx: add label-mac-device alias for Linksys WHW01
Set the label-mac-device to be able to easily fetch the mac-address of
the device, which is printed on the bottom of the case.
While at it, remove the TODO - the ethernet0 alias is needed to get the
mac from bootloader.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20441
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit deca8fd24b)
Link: https://github.com/openwrt/openwrt/pull/20454
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-19 17:24:24 +02:00
Florian Eckert
50f98c5335 kernel: add missing cpe id for linux
No 'PKG_CPE_ID' is stored for the kernel package Makefile. This commit
adds this.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 112f594042)
2025-10-19 16:37:32 +02:00
Goetz Goerisch
efd444537d bcm53xx: modify 180-usb-xhci-add-support-for-performing-fake-doorbell.patch
upstream changes to the xhci_free_virt_device()

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/drivers/usb/host?h=v6.6.103&id=e600de541c37f97482fea2a7a26f186141e7ddea

The xhci_fake_doorbell() function should only free the device and not
deactivate it too. It just has to revert the call to
xhci_alloc_virt_device()

Fixes: #20153
Fixes: 1c92e468d5 ("kernel: bump 6.6 to 6.6.103")
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20362
[Update description and removed some unnecessary changes]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 84b2a987fc)
2025-10-19 16:29:37 +02:00
Álvaro Fernández Rojas
180646ce4b odhcpd: backport fixes from Git HEAD (2025-10-10)
A lot of recent commits in odhcpd main branch are structural/semantic
changes, so instead of adding those changes to 24.10 branch it's better
to focus on the fixes.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-10-18 19:27:27 +02:00
Álvaro Fernández Rojas
be32ab85cf odhcpd: update to Git HEAD (2025-10-02)
b14cf98 router: log “Sending a RA on lan” at LOG_DEBUG
c2810fe odhcpd: update cmake file
8c2c065 odhcpd: convert README to markdown
3b96480 odhcpd: allow the use of an alternative cfg file
7328bfe odhcpd: remove confusing #defines
cdb9e5b odhcpd: improve RFC9096 § 3.5 SLAAC compliance

RFC9096 § 3.5 SLAAC compliance introduces a new config option (odhcpd
piofolder), which may wear out the flash under certain conditions (for
example: ISPs with dynamic IPv6 prefixes which disconnect the clients
every X hours).
Therefore, setting "dhcp.odhcpd.piofolder" to persistent storage in the
router flash is not advisable and should be set to other kinds of
persistent storage such as USBs, SDs, NVMEs...
In order to prevent wearing out the router flash it's set to ephemeral
storage by default (tmp):
  uci set dhcp.odhcpd.piofolder="/tmp/odhcpd-piofolder"

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit ea79b5875a)
2025-10-18 17:23:58 +02:00
Ted Hess
82d31a02b7 odhcpd: update to Git HEAD (2025-09-27)
bc9f9d93d4d6 dhcpv4: allow lease takeover (bugfix)
b1547922257e odhcpd: bump minimum cmake version
86c0200f8067 odhcpd: apply RFC9096 recommended lifetimes

Signed-off-by: Ted Hess <thess@kitschensync.net>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 9b7d0c0d16)
2025-10-18 17:23:38 +02:00
Ted Hess
81dfcefb41 odhcpd: update to Git HEAD (2025-09-16)
c9816de148cc odhcpd: support multiple per-client MAC addresses

Signed-off-by: Ted Hess <thess@kitschensync.net>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 9939ebc7fc)
2025-10-18 17:23:07 +02:00
David Härdeman
39510c21a0 odhcpd: update to Git HEAD (2025-08-26)
2859741d971e dhcpv4: store reqopts as uint8_t
6d342cc03bf7 odhcpd: add DNR (RFC 9463) support
c89b8b3f2ff3 odhcpd: make the IPv6 RA DNR lifetime configurable
066b3dc6ec1a netlink: fix a memory leak
171140e90b6a odhcpd: add a helper function for addr6/prefix parsing
5585b969c18f router: move pref64 calculations to the config stage
4308384748be dhcpv6: add ipv6 pxe support
6e1ad492cef5 router: replace ssize_t with size_t

Signed-off-by: David Härdeman <david@hardeman.nu>
Link: https://github.com/openwrt/openwrt/pull/20022
Signed-off-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit a6da0e0d37)
2025-10-18 17:21:49 +02:00
Felix Fietkau
a790196993 ubus: update to Git HEAD (2025-10-17)
b462895d3157 lua: CMakeLists: drop redundant cmake_minimum_required
f247c18f8a55 examples: CMakeLists: drop redundant cmake_minimum_required
83a70399030d github: add CI build
d31effb4277b ubusd: Fix out of bounds access in event register message
d95837b1b143 ubusd: acl: compare uid/gid instead of user/group strings
b81257bb20dd ubusd: load extra group IDs for a client process
7d7b45fea05b add debian/ directory
aa4a7ee1d341 ubusd: fix more instances of missing length checks for patterns
60e04048a0e2 ubusd: fix ACL check for receiving events

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 4b907e69ea)
2025-10-18 14:56:36 +02:00
Hauke Mehrtens
c8ccf4c6a7 ubus: update to Git HEAD (2025-10-04)
ad2768bbc166 lua: build: require CMake >= 3.10 due to dropped legacy support

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit b00fcf3614)
2025-10-18 14:56:36 +02:00
Christian Marangi
a46d2efad2 ubus: update to Git HEAD (2025-10-04)
2b69c9859946 examples: CMakeLists: update cmake minimum required version to 3.10

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 88fe81bb0c)
2025-10-18 14:56:36 +02:00
Petr Štetiar
0d3076aa19 ebtables: fix PKG_MIRROR_HASH
Current PKG_MIRROR_HASH is wrong, but it went unnoticed, because the
tarball is being fetched from @OPENWRT project mirrors. Can be
reproduced with:

 make package/ebtables/{download,check} FIXUP=1 DL_DIR=/tmp PKG_MIRROR_HASH=''

Signed-off-by: Petr Štetiar <ynezz@true.cz>
Link: https://github.com/openwrt/openwrt/pull/20322
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 7d4edb21b6)
2025-10-18 14:55:40 +02:00
Andrea Pesaresi
d6f72e0cbb kernel: ksmbd: add max ip connection parameter
With this patch is set the maximum number of connections per ip address instead of no control.
The default is 8.

Signed-off-by: Andrea Pesaresi <andreapesaresi82@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20377
(cherry picked from commit e78f000869)
Link: https://github.com/openwrt/openwrt/pull/20442
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:42:55 +02:00
Andrea Pesaresi
225b6724cd kernel: ksmbd: browse-interfaces-list-on-FSCTL_QUERY_INTERFACE_INFO
backport from kernel 6.12

ksmbd.mount will give each interfaces list and bind_interfaces_only flags
to ksmbd server. Previously, the interfaces list was sent only
when bind_interfaces_only was enabled.
ksmbd server browse only interfaces list given from ksmbd.conf on
FSCTL_QUERY_INTERFACE_INFO IOCTL.

Signed-off-by: Andrea Pesaresi <andreapesaresi82@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20377
(cherry picked from commit 711e14af79)
Link: https://github.com/openwrt/openwrt/pull/20442
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:42:55 +02:00
Magnus Kroken
1a8d3ea89c mbedtls: update to 3.6.5
This release includes fixes for security issues.

Mbed TLS 3.6 is a long-term support (LTS) branch. It will be supported
with bug-fixes and security fixes until at least March 2027.

The two issues fixed were timing side channels:
* Padding oracle through timing of cipher error reporting
  (CVE-2025-59438) [1]
* Side channel in RSA key generation and operations (SSBleed, M-Step)
  (CVE-2025-54764) [2]

Bug fixes:
* Fix potential CMake parallel build failure when building both the static and shared libraries.
* Fix a build error or incorrect TLS session lifetime on platforms where mbedtls_time_t is not time_t.

[1]: https://mbed-tls.readthedocs.io/en/latest/security-advisories/mbedtls-security-advisory-2025-10-invalid-padding-error/
[2]: https://mbed-tls.readthedocs.io/en/latest/security-advisories/mbedtls-security-advisory-2025-10-ssbleed-mstep/

Full release announcement:
https://github.com/Mbed-TLS/mbedtls/releases/tag/mbedtls-3.6.5

Tested-by: Edoardo Pinci <epinci@outlook.com>
Signed-off-by: Magnus Kroken <mkroken@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20425
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit eb370a7d02)
2025-10-18 14:25:48 +02:00
Hauke Mehrtens
e001b31163 ltq-ptm: Fix unprivileged local user memory read and write
Use the copy_from_user() and copy_to_user() functions for accessing
memory provided by the user in the ptm netdev iotls.
In addition also check for root permission before executing ioctl.

Suggested-by: Stanislav Fort from Aisle Research
Reported-by: Stanislav Fort from Aisle Research
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 2a76abc544)
2025-10-18 14:25:03 +02:00
Shiji Yang
fe50cfded0 ltq-adsl-mei: fix missing-prototypes warnings
* Mark some functions as static.
* Add missing prototypes.

This patch fixes the following build warnings:

/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-adsl-mei-danube/ltq-adsl-mei/drv_mei_cpe.c:1182:1: error: no previous prototype for 'makeCMV' [-Werror=missing-prototypes]
 1182 | makeCMV (u8 opcode, u8 group, u16 address, u16 index, int size, u16 * data, u16 *CMVMSG)
      | ^~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-adsl-mei-danube/ltq-adsl-mei/drv_mei_cpe.c:1855:1: error: no previous prototype for 'DSL_BSP_ATMLedCBUnregister' [-Werror=missing-prototypes]
 1855 | DSL_BSP_ATMLedCBUnregister (int (*ifx_adsl_ledcallback) (void))
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-adsl-mei-danube/ltq-adsl-mei/drv_mei_cpe.c:2448:1: error: no previous prototype for 'IFX_MEI_Ioctls' [-Werror=missing-prototypes]
 2448 | IFX_MEI_Ioctls (DSL_DEV_Device_t * pDev, int from_kernel, unsigned int command, unsigned long lon)
      | ^~~~~~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-adsl-mei-danube/ltq-adsl-mei/drv_mei_cpe.c:2699:5: error: no previous prototype for 'ifx_mei_atm_led_blink' [-Werror=missing-prototypes]
 2699 | int ifx_mei_atm_led_blink(void)
      |     ^~~~~~~~~~~~~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-adsl-mei-danube/ltq-adsl-mei/drv_mei_cpe.c:2705:5: error: no previous prototype for 'ifx_mei_atm_showtime_check' [-Werror=missing-prototypes]
 2705 | int ifx_mei_atm_showtime_check(int *is_showtime, struct port_cell_info *port_cell, void **xdata_addr)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 8cf0c810fb)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:02 +02:00
Shiji Yang
6a54d623f2 ltq-adsl-mei: fix 'inline' declaration warning
Adjust the 'inline' declaration order to fix the build warning:

/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-adsl-mei-danube/ltq-adsl-mei/drv_mei_cpe.c:188:1: error: 'inline' is not at beginning of declaration [-Werror=old-style-declaration]
  188 | static void inline MEI_MASK_AND_ACK_IRQ(int x)
      | ^~~~~~

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>

fix inline declaration warning

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 335a88df64)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:02 +02:00
Shiji Yang
5e196ba548 ltq-adsl: silence missing-prototypes warnings
There are a lot of missing-prototypes warnings, It's not worth to
fix them one by one. Let us just ignore them.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit fb4aa6248f)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:02 +02:00
Shiji Yang
c9f2a60797 ltq-adsl: add missing header platform_device.h
Fix incomplete type error by including the correct header.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 29987d44bb)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:02 +02:00
Shiji Yang
a9fde24cbc ltq-vdsl-vr9-mei: fix missing prototypes warnings
* Mark some functions as static.
* Add missing prototypes.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 58e9780f4c)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:02 +02:00
Shiji Yang
045f0bf2e6 ltq-vdsl-vr9-mei: fix ignored-qualifiers build warnings
These functions return the register memory addresses. Usually
they are fixed values, hence I think it's safe to remove the
qualifier "volatile".

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit bcf3f96c02)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:02 +02:00
Shiji Yang
fc58c9481e ltq-vdsl-vr9-mei: convert platform driver .remove to .remove_new
Convert .remove to .remove_new so that it can be compatible with
both 6.6 and 6.12 kernels.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 7d6ee4e415)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
13b81e124c ltq-vdsl-vr9: fix missing-prototypes warnings
* Mark some functions as static.
* Include function prototypes header file.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 262917ef34)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
116c26120e ltq-vmmc: fix 'inline' declaration warning
Adjust the 'inline' declaration order to fix the build warning.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 86e5b77788)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
e52c85ee5d ltq-vmmc: fix unknown type name errors
Include missing header "drv_vmmc_api.h" to fix the compilation errors.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 1f909e9f6d)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
3fd6351335 ltq-vmmc: fix macro definition conflicts
Add LANTIQ prefix to workaround the build warnings.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 18aa58f200)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
b35acddeb4 ltq-vmmc: silence missing-prototypes warnings
There are a lot of missing-prototypes warnings, It's not worth to
fix them one by one.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 144228d618)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
5e095c87e2 ltq-vmmc: fix ignored-qualifiers warning
NULL and fixed addresses are constant, const qualifier are useless.

/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/mps/drv_mps_vmmc_ar9.c:47:1: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
   47 | const void (*ifx_bsp_basic_mps_decrypt)(unsigned int addr, int n) = NULL;
      | ^~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/mps/drv_mps_vmmc_ar9.c:246:49: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
  246 |                    ifx_bsp_basic_mps_decrypt = (const void (*)(unsigned int, int))0xbf0017c4;
      |                                                 ^~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/mps/drv_mps_vmmc_ar9.c:249:49: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
  249 |                    ifx_bsp_basic_mps_decrypt = (const void (*)(unsigned int, int))0xbf001ea4;
      |                                                 ^~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/mps/drv_mps_vmmc_ar9.c:252:49: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
  252 |                    ifx_bsp_basic_mps_decrypt = (const void (*)(unsigned int, int))0xbf001f38;
      |                                                 ^~~~~

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit ac8e876a6e)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
0d02cf9e34 ltq-ptm: adsl: fix 6.12 kernel build errors on lantiq/xway
Fix incomplete type error by including the correct header.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 2e00140e63)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
67d7504660 ltq-ptm: vdsl: fix 6.12 kernel build errors on lantiq/xrx200
Add missing header to fix the build errors on 6.12 kernel.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit b48ed6d19c)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
3f9c57b813 ltq-ptm: fix missing-prototypes warning
Mark cgu_get_pp32_clock() as static.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 621a1c9b56)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
7f3088e82d ltq-deu: fix 6.12 kernel build warnings on lantiq/xway
This patch fixes the following build warnings by adding
missing prototypes:

/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-deu-danube/ltq-deu/ifxmips_deu_danube.c:100:5: error: no previous prototype for 'input_swap' [-Werror=missing-prototypes]
  100 | u32 input_swap(u32 input)
      |     ^~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-deu-ar9/ltq-deu/ifxmips_deu_ar9.c:91:5: error: no previous prototype for 'input_swap' [-Werror=missing-prototypes]
   91 | u32 input_swap(u32 input)
      |     ^~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-deu-ar9/ltq-deu/ifxmips_deu_ar9.c:131:6: error: no previous prototype for 'chip_version' [-Werror=missing-prototypes]
  131 | void chip_version(void)
      |      ^~~~~~~~~~~~

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit fdc2d8d07b)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
b73d6d4b8a ltq-deu: fix 6.12 kernel build warnings on lantiq/xrx200
This patch fixes various missing-prototypes build warnings by:

* Mark some functions as static.
* Add missing prototypes.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit d81f8e159a)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
95edff3cc3 ltq-atm: fix missing-prototypes warnings for lantiq/ase
This patch fixes various missing-prototypes build warnings on
6.12 kernel.

/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_ase/ltq-atm-ase/ltq-atm/ifxmips_atm_amazon_se.c:257:13: error: no previous prototype for 'ase_fw_ver' [-Werror=missing-prototypes]
  257 | extern void ase_fw_ver(unsigned int *major, unsigned int *minor)
      |             ^~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_ase/ltq-atm-ase/ltq-atm/ifxmips_atm_amazon_se.c:266:5: error: no previous prototype for 'ase_init' [-Werror=missing-prototypes]
  266 | int ase_init(struct platform_device *pdev)
      |     ^~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_ase/ltq-atm-ase/ltq-atm/ifxmips_atm_amazon_se.c:283:6: error: no previous prototype for 'ase_shutdown' [-Werror=missing-prototypes]
  283 | void ase_shutdown(void)
      |      ^~~~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_ase/ltq-atm-ase/ltq-atm/ifxmips_atm_amazon_se.c:297:5: error: no previous prototype for 'ase_start' [-Werror=missing-prototypes]
  297 | int ase_start(int pp32)
      |     ^~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_ase/ltq-atm-ase/ltq-atm/ifxmips_atm_amazon_se.c:323:6: error: no previous prototype for 'ase_stop' [-Werror=missing-prototypes]
  323 | void ase_stop(int pp32)
      |      ^~~~~~~~

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit e839da1911)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
b5884358b0 ltq-atm: fix build warnings on lantiq/xway
Mark some functions as static to fix various missing-prototypes
build warnings on 6.12 kernel.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit ac18f03bd9)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
37af07700a ltq-atm: add missing header mod_devicetable.h
fix undefined type error:

/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/ltq-atm-vr9/ltq-atm/ltq_atm.c:1776:43: error: invalid use of undefined type 'const struct of_device_id'
 1776 |         ops = (struct ltq_atm_ops *) match->data;
      |                                           ^~

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 02e9f3be51)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
af8fc7ceab ltq-atm: apply local patch to the source files
This package is maintained by the OpenWrt local repository. There
is no need to modify it with the patch file. Just apply all patches
to the source files.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 491764f0f0)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
7d9670039d ltq-tapi: fix missing-prototypes build warnings
Mark some functions as static.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit e130308299)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
d136e3ca07 vrx518_tc: fix missing-prototypes build warnings
* Mark some functions as static.
* Include function prototypes header file.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit f6e7225039)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
406efebc5a ltq-vdsl-vr11: fix missing-prototypes build warnings
* Mark some functions as static.
* Include function prototypes header file.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit b219c749b7)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
7ddd410a9c ltq-vdsl-vr11-mei: fix ignored-qualifiers build warnings
These functions return the register memory addresses. Usually
they are fixed values, hence I think it's safe to remove the
qualifier "volatile".

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit c3cb6a8725)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
e59f6aff55 ltq-vdsl-vr11-mei: improve compatibility with the 6.12 kernel.
Convert .remove to .remove_new so that it can be compatible with
both 6.6 and 6.12 kernels.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 0d045a287a)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
73571ef4f4 ltq-vdsl-vr11-mei: fix missing-prototypes build warnings
Add prototype definition for exported function ifx_mei_atm_led_blink().

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit eb18b602da)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
e8639f57c5 ltq-ifxos: fix missing-prototypes build warning
Add prototype definition for exported function IFX_Var_Fifo_getRoom().

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit e9d3e0f1da)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Shiji Yang
f2fa99a452 vrx518_ep: fix macro redefined build error on 6.12 kernel
Add LANTIQ prefix to avoid name conflicts.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 8f80acfac0)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Andre Heider
1ba8af8c1c vrx518_ep: fix compilation error with kernel 6.12
PCI_IRQ_LEGACY was renamed to PCI_IRQ_INTX for kernel 6.10. Fix
compilation error:

/home/db/owrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/vrx518_ep-2.1.0/ep.c:469:69: error: 'PCI_IRQ_LEGACY' undeclared (first use in this function); did you mean 'NR_IRQS_LEGACY'?
  469 |         err = pci_alloc_irq_vectors(pdev, nvec, nvec, PCI_IRQ_MSI | PCI_IRQ_LEGACY);
      |                                                                     ^~~~~~~~~~~~~~
      |                                                                     NR_IRQS_LEGACY

Signed-off-by: Andre Heider <a.heider@gmail.com>
Co-authored-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit e80dfdb6c5)
Signed-off-by: Nora Matthias Schiffer <neocturne@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/20440
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-18 14:21:01 +02:00
Robert Marko
9687d14c07 ipq-wifi: update to Git HEAD (2025-10-17)
d818fb10428f qca4019: Add Meraki MR30H
a1529e183333 qca4019: Add Meraki Z3

Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-17 12:10:01 +02:00
Christoph Krapp
4e81893953 mediatek: filogic: add ASUS RT-AX52 factory-initramfs image generation
This adds the required image receipt to generate a vendor ui compatible
initramfs-factory image, that can be used to flash the final sysupgrade
image.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20409
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-17 10:55:43 +02:00
Pawel Dembicki
8a0b30db51 mpc85xx: p1010: kernel: add missing symbol
CONFIG_MTD_CFI was disabled in p1010 subtarget.
It causes problem with Aerohive BR200-WP router.

This patch enables CONFIG_MTD_CFI in p1010 config-default file.

Fixes: e9dd6da916 ("mpc85xx: p1010: add missing symbols")

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20419
(cherry picked from commit f21e8158fb)
Link: https://github.com/openwrt/openwrt/pull/20428
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-10-17 06:43:08 +02:00
Timothy Feierabend
d8f764ce81 rockchip: backport pcie fix for rk3399
This patch resolves the LAN port not initializing on the
FriendlyElec NanoPI R4S, especially during warm reboots.

Upstream commit patch is based on:
c3fe7071e1

I've experienced the LAN port failing to initialize from a cold boot and
after a reboot. Other users have reported this issue on
https://forum.openwrt.org/t/nanopi-r4s-rk3399-is-a-great-new-openwrt-device/79143.
The NanoPI R4S has its LAN port connected to the RK3399 via PCIE. Since the
PCIE lanes don't initialize correctly after reboot, the LAN port
doesn't initialize.

Signed-off-by: Timothy Feierabend <tim.feierabend@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20406
Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit 7ef19bb9cd)
Link: https://github.com/openwrt/openwrt/pull/20418
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-16 16:38:47 +02:00
Stefan Kalscheuer
a8afcd8fc2 mwlwifi: add pending patch to fix compilation with kernel 6.6.109+
Building against recent kernel versions (noticed with 6.12) and -Werror
can fail because a macro MAX(a,b) is already defined in minmax.h or
kernel.h before 5.10.

Initially noticed on 6.12, but it now happens after the kernel bump to
6.6.109 as well (upstream commit 6183c65)

In file included from ../mwlwifi-2025.02.06~db97edf2/hif/fwcmd.h:23,
                 from ../mwlwifi-2025.02.06~db97edf2/core.c:25:
../mwlwifi-2025.02.06~db97edf2/hif/hostcmd.h:1124: error: "MAX" redefined [-Werror]
 1124 | #define MAX(a, b) (((a) > (b)) ? (a) : (b))
      |         ^~~
In file included from usr/include/mac80211-backport/linux/minmax.h:4,
                 from ./include/linux/kernel.h:27,
                 from usr/include/mac80211-backport/linux/kernel.h:3,
                 from ./include/linux/skbuff.h:13,
                 from usr/include/mac80211-backport/linux/skbuff.h:3,
                 from ./include/linux/if_ether.h:19,
                 from usr/include/mac80211-backport/linux/if_ether.h:3,
                 from ./include/linux/etherdevice.h:20,
                 from usr/include/mac80211-backport/linux/etherdevice.h:3,
                 from ../mwlwifi-2025.02.06~db97edf2/core.c:18:
./include/linux/minmax.h:315: note: this is the location of the previous definition
  315 | #define MAX(a, b) __cmp(max, a, b)
      |         ^~~

Add a pending upstream patch which replaces the MAX(a,b) macro to avoid
conflicts and allow compilation with 6.12 backports

(cherry picked from commit 822bceb1d1)

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/20420
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-16 13:32:35 +02:00
Paweł Owoc
0c4f3b1246 qualcommax: fix upgrade function for Linksys MX dual boot devices
Function remove_oem_ubi_volume was called before CI_UBIPART variable was defined.

Fixes: df1f6e1e18 (qualcommax: ipq807x: Remove OEM UBI volume before upgrade for Linksys MX devices)
Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18090
Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20086
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-16 11:47:19 +02:00
Paweł Owoc
e301921ae3 qualcommax: ipq807x: Remove OEM UBI volume before upgrade for Linksys MX devices
Use 'remove_oem_ubi_volume' function to remove OEM UBI volume before upgrade.
This allows to upgrade even if we have OEM firmware on the second partition.
Applies to Linksys MX4200/MX4300/MX5300/MX8500.

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14720
Link: https://github.com/openwrt/openwrt/pull/20086
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-16 11:47:19 +02:00
Paweł Owoc
d63824f78f qualcommax: ipq807x: Update u-boot env only when changes for Linksys MX devices
Update u-boot env variables only when changes are made.
Applies to Linksys MX4200/MX4300/MX5300/MX8500.

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14720
Link: https://github.com/openwrt/openwrt/pull/20086
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-16 11:47:19 +02:00
Paweł Owoc
f84fde7fb9 qualcommax: ipq807x: Add ability to perform upgrade on current partition for Linksys MX devices
Dual firmware devices like Linksys MX4200, MX4300, MX5300 and MX8500 use separate rootfs partition.
This option helps to keep all configuration during upgrade.

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14720
Link: https://github.com/openwrt/openwrt/pull/20086
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-16 11:47:19 +02:00
Paweł Owoc
e0478edeed base-files: sysupgrade: Add new option -s to perform upgrade on current partition
Add new option to be able to perform upgrade on current partition for dual firmware devices:
  "-s           stay on current partition (for dual firmware devices)"

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14720
Link: https://github.com/openwrt/openwrt/pull/20086
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-16 11:47:19 +02:00
Hauke Mehrtens
8554e22ace mac80211: Update to version 6.12.52
This includes the following commits from upstream Linux between 6.12.44
and 6.12.52:
```
$ git log --reverse  --oneline  v6.12.44...v6.12.52 -- drivers/net/wireless/ net/mac80211/ net/wireless/
5b7ae04969f8 wifi: cfg80211: fix use-after-free in cmp_bss()
3e789f8475f6 wifi: brcmfmac: fix use-after-free when rescheduling brcmf_btcoex_info work
d9f2fb6a2ac8 wifi: mt76: mt7925: fix locking in mt7925_change_vif_links()
1fb26fd3f601 wifi: mt76: prevent non-offchannel mgmt tx during scan/roc
2aef3667e6b0 wifi: mt76: free pending offchannel tx frames on wcid cleanup
e4d5a5fc61fd wifi: mt76: fix linked list corruption
c2e32ac3f107 wifi: iwlwifi: uefi: check DSM item validity
609a8ffff5a0 wifi: ath11k: fix group data packet drops during rekey
cedbbba8a8e8 wifi: cw1200: cap SSID length in cw1200_do_join()
92bedee7168d wifi: libertas: cap SSID len in lbs_associate()
31229145e6ba wifi: cfg80211: sme: cap SSID length in __cfg80211_connect_result()
06616410a3e5 wifi: mwifiex: Initialize the chan_stats array to zero
a001c2f6a40c wifi: mt76: mt7925u: use connac3 tx aggr check in tx complete
eefa2ad9009b wifi: mt76: mt7996: Initialize hdr before passing to skb_put_data()
089fd41902ee wifi: mt76: mt7925: fix the wrong bss cleanup for SAP
26618c039b78 wifi: ath11k: update channel list in reg notifier instead reg worker
fa4abd439f27 wifi: ath11k: update channel list in worker when wait flag is set
2203ef417044 wifi: wilc1000: avoid buffer overflow in WID string configuration
32adb020b0c3 wifi: mac80211: increase scan_ies_len for S1G
8df33f4d4a0b wifi: mac80211: fix incorrect type for ret
79dc6d4932de wifi: virt_wifi: Fix page fault on connect
1f52119809b7 wifi: ath11k: fix NULL dereference in ath11k_qmi_m3_load()
895cccf639ac wifi: rtw89: fix use-after-free in rtw89_core_tx_kick_off_and_wait()
914d02595ba6 wifi: rtlwifi: rtl8192cu: Don't claim USB ID 07b8:8188
1713796d6538 wifi: rtl8xxxu: Don't claim USB ID 07b8:8188
```

Removed ath11k/940-ath11k-Revert-clear-the-keys-properly-when-DISABLE_K.patch
This problem is fixed by:
609a8ffff5a0 wifi: ath11k: fix group data packet drops during rekey

Link: https://github.com/openwrt/openwrt/pull/20311
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-15 00:04:43 +02:00
Christoph Krapp
0c1ff934ec ath79: add calibtation variant for TP-Link Archer C59 v1
Now that we have a board file, add calibration variant for TP-Link
Archer C59 v1 and add ipq-wifi package for it.

Tested-by: Mateusz Jończyk <matjon@users.noreply.github.com>
Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20401
Signed-off-by: Robert Marko <robimarko@gmail.com>
i(cherry picked from commit 2a44808374)
Link: https://github.com/openwrt/openwrt/pull/20407
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-14 22:22:00 +02:00
Christoph Krapp
467924878b ipq-wifi: Add entry for TP-Link Archer C59 v1
Add IPQ Wifi entry for ath79 TP-Link Archer C59 v1.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20401
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 8ea1396fd2)
Link: https://github.com/openwrt/openwrt/pull/20407
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-14 22:21:08 +02:00
Robert Marko
db4efd2e2d ipq-wifi: update to Git HEAD (2025-10-14)
821d27b582c1 qca9888: add BDF for TP-Link Archer C59 v1

Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit bef0bf8efc)
Link: https://github.com/openwrt/openwrt/pull/20407
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-14 22:21:08 +02:00
Robert Marko
07c7dae498 ipq-wifi: update to Git HEAD (2025-10-09)
20e5a5a32656 qca4019: add Linksys MR6350 BDF

Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 8ef2c4e881)
Link: https://github.com/openwrt/openwrt/pull/20407
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-14 22:21:08 +02:00
Hauke Mehrtens
6e068b7052 openssl: Update to version 3.0.18
OpenSSL 3.0.18 is a security patch release. The most severe CVE fixed in this
release is Moderate.

This release incorporates the following bug fixes and mitigations:

 * Fix Out-of-bounds read & write in RFC 3211 KEK Unwrap. (CVE-2025-9230)

 * Fix Out-of-bounds read in HTTP client no_proxy handling. (CVE-2025-9232)

The removed patch is included upstream:
c0d968f0ac

Link: https://github.com/openwrt/openwrt/pull/20312
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-13 23:41:16 +02:00
Goetz Goerisch
ade81ff85a kernel: bump 6.6 to 6.6.110
All patches auto-refreshed.

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.110
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20320
(cherry picked from commit 7a793724b1)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20348
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-09 23:16:51 +02:00
Coia Prant
e8df99cf7c ramips: Add factory image for Qding QC202
Added factory image using mkqdimg.

Signed-off-by: Coia Prant <coiaprant@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20102
(cherry picked from commit d0383bb175)
Link: https://github.com/openwrt/openwrt/pull/20159
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-05 18:50:05 +02:00
Coia Prant
b9382cb733 ramips: add support for Qding QC202
This is a smart door lock device equipped with OpenWrt 14.07 OEM
modified version Qdwrt

The OEM has closed down, This commit is intended to maximize the
remaining value of these devices. It can flash OpenWrt to become
an AP

Specification:
- SoC: MediaTek MT7628NN
- Flash: 8 MB
- RAM: 64 MB
- Power: DC 5V - 25V
- Ethernet: 1 x RJ45 (10/100 Mbps)
- Wireless radio: 802.11n 2.4g-only
- On-Board LED:
  Status 1: GPIO/43 active-low
  Status 2: GPIO/44 active-low
  Power: AlwaysOn
- Button:
  WPS / RESET: GPIO/14  active-low
- Bluetooth: CC2541 via UART1 (ttyS1) and GPIO/26-29
- RFID: MF RC522 on I2C@28
- RTC: DS1339 on I2C@68
- Shell (via CON1 cable)
  - LED (Swipe card area):
     -  Green  GPIO/3  active-high
     -  Red    GPIO/11 active-high
  - Matrix keypad: (active-low)
                 GPIO/20 GPIO/21 GPIO/19 (Rows)
        GPIO/24        1       2       3
        GPIO/25        4       5       6
        GPIO/22        7       8       9
        GPIO/23     BACK       0   ENTER
        (Cols)
- UART: 1 x UART on PCB - 57600 8N1
- GPIO Relay: GPIO/42 active-high
- GPIO Buzzer: GPIO/15 active-high

Warning:
The original firmware does not use the device tree.
This device tree is written based on the content of /sys/devices/platform
and has been tested

Note:
- On the device, matrix keypad rows actually are columns, and the columns actually are rows
- The key code of the CLEAR key of the matrix keypad is BACK in the original firmware.

Issue:
- No drivers in mainline kernel for RFID and Bluetooth.

Flash Instruction:
Using SSH/Telnet:
1. Connect the board to the computer via RJ45 Ethernet
2. Login 10.10.10.1 with root password "szqdingnet123" (SSH Port 22, Telnet Port 9900)
3. Download openwrt firmware on the computer.
4. Setup a http server on computer. And use wget download openwrt firmware from computer
5. Use command "mtd -r write openwrt-ramips-mt76x8-qding_qc202-squashfs-sysupgrade.bin firmware"
   to flash

Using U-Boot WebUI:
1. Configure PC with a static IP address 10.10.10.2/24.
2. Open http://10.10.10.1
3. Use "mkqdimg -B qc202 -f openwrt-ramips-mt76x8-qding_qc202-squashfs-sysupgrade.bin" to
   make image.
4. Upload factory.bin via U-Boot WebUI.

Original Firmware Dump / More details:
https://blog.gov.cooking/archives/research-qianding-smart-locker-and-flash.html

Original U-Boot firmware image tools:
https://gitlab.com/CoiaPrant/mkqdimg

Signed-off-by: Coia Prant <coiaprant@gmail.com>
Tested-by: Coia Prant <coiaprant@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17471
(cherry picked from commit b2f814fed4)
Link: https://github.com/openwrt/openwrt/pull/20159
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-05 18:49:46 +02:00
Nickolay Goppen
39d87fd2fe ramips: add support for Zbtlink ZBT-WG108
Specification:

CPU: MediaTek MT7621 (880 MHz)
Flash size: 16 MB NOR SPI
RAM size: 128 MB
Bootloader: Breed
Wireless: MT7612EN 2x2 802.11an+ac(5 GHz)
Wireless: MT7603EN 2x2 bgn(2.4 GHz)
Ethernet: 1 x WAN (10/100/1000Mbps) and 4 x LAN (10/100/1000 Mbps)
USB: 1x 2.0 Type-A port
External storage: 1x microSD (SDXC) slot
UART: console (115200 baud)
LEDs: Power, Wan, Lan 1-4, WiFi 2.4G, WiFi 5G
Buttons: Reset

How to install:
The original firmware is OpenWrt, so sysupgrade can be used.

Signed-off-by: Nickolay Goppen <setotau@mainlining.org>
Link: https://github.com/openwrt/openwrt/pull/19966
(cherry picked from commit 8dd3ee205a)
Link: https://github.com/openwrt/openwrt/pull/20124
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-05 18:46:11 +02:00
Coia Prant
7632dfa843 ramips: Fix Hongdian H7920 v40 mac address
After extracting the EEPROMs of different devices, only the 0x4 address is unique.

Use the 0x4 address as the LAN address, and the LAN+1 address as the WAN address.

Signed-off-by: Coia Prant <coiaprant@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20256
(cherry picked from commit c907c7c9b3)
Link: https://github.com/openwrt/openwrt/pull/20257
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-05 18:32:21 +02:00
Coia Prant
0f095274fc ramips: Fix Hongdian H7920 v40 pinctrl default state
According to the MT7628 hardware datasheet:
- GPIO/4 was originally used for I2C, but is now used as the Modem Power.
- GPIO/5 was originally used for I2C, but is now used as the SIM card select. (n/a for this device)
- GPIO/6 was originally used for SPI CS1, but is now used as the Serial mode switch.
- GPIO/36 was originally used for PERST, but is now used as the GPS OE. (n/a for this device)
- GPIO/38 was originally used for WDT, but is now used as the Modem2 Power. (n/a for this device)
- GPIO/44 was used for WLED_AN, but is now controlled by `gpio-leds`.

Corrected pinctrl to ensure it works properly in the future.

Signed-off-by: Coia Prant <coiaprant@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20256
(cherry picked from commit 44c79d094f)
Link: https://github.com/openwrt/openwrt/pull/20257
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-05 18:32:21 +02:00
Goetz Goerisch
28bb6f73e6 kernel: bump 6.6 to 6.6.109
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.109

Removed upstreamed patch:
lantiq/patches-6.6/0736-v6.11-net-dsa-lantiq_gswip-do-also-enable-or-disable-cpu-p.patch [1]

All other patches autorefreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.109&id=a7a2b29c1ee44b8d379ab>

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20277
(cherry picked from commit bb1779cdc5)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20299
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-05 18:20:27 +02:00
Matthew Bilker
10363b5e26 mediatek: filogic: fix for new GL.iNet GL-MT2500/GL-MT2500A hardware revision
GL.iNet shipped a hardware change of the WAN PHY going from the MaxLinear
GPY211C to the Airoha EN8811H.

Signed-off-by: Matthew Bilker <me@mbilker.us>
Link: https://github.com/openwrt/openwrt/pull/18799
(cherry picked from commit 8d30e07180)
Link: https://github.com/openwrt/openwrt/pull/20307
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-05 18:18:32 +02:00
Ondrej Cierny
3c04d09336 download: improve rawgit tar reliability
Packages that depend on rawgit can fail on systems with the tar UID
issue (https://bugzilla.redhat.com/show_bug.cgi?id=913406).
Fix this by adding tar flags to overwrite UID/GID, as in the
dl_tar_pack method.

Signed-off-by: Ondrej Cierny <o.cierny@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19243
(cherry picked from commit d4d5fbd375)
Link: https://github.com/openwrt/openwrt/pull/20185
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-10-05 12:16:58 +02:00
Florian Maurer
c1d14f2734 mac80211: ath: improve ath10k "failed to flush transmit queue" errors
Currently, in busy environments, ath10k logs "failed to flush transmit
queue" errors and have a spiking CPU usage, making the wireless barely
usable.
With this patch, taken from https://patchwork.kernel.org/project/linux-wireless/patch/20250806070005.1429-1-hujy652@gmail.com/
this does not occur in normal operation and the wifi is much more stable

Supersedes #19427
Ref: https://github.com/openwrt/openwrt/issues/15929#issuecomment-2227391307
Ref: https://github.com/openwrt/openwrt/issues/14965

Signed-off-by: Florian Maurer <f.maurer@outlook.de>
Link: https://github.com/openwrt/openwrt/pull/19529
(cherry picked from commit ab50b9a561)
Link: https://github.com/openwrt/openwrt/pull/20266
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-02 22:23:51 +02:00
Goetz Goerisch
bf7a4d9d5a kernel: bump 6.6 to 6.6.108
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.108

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20214
(cherry picked from commit 7114446523)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20237
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-01 22:26:05 +02:00
Goetz Goerisch
c8d2201f82 kernel: bump 6.6 to 6.6.107
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.107

All patches auto-refreshed.

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20095
(cherry picked from commit 2f61f77fb0)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20237
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-10-01 22:26:05 +02:00
Christoph Krapp
406b980d97 ath79: add calibtation variant for TP-Link Archer C60 v1
Now that we have a board file, add calibration variant for TP-Link
Archer C60 v1 and add ipq-wifi package for it.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19993
(cherry picked from commit 9401b8b86d)
Link: https://github.com/openwrt/openwrt/pull/20157
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-25 22:55:15 +02:00
Christoph Krapp
c3b19ebc68 ipq-wifi: Add entry for TP-Link Archer C60 v1
Add IPQ Wifi entry for ath79 TP-Link Archer C60 v1.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19993
(cherry picked from commit a7ca19962b)
Link: https://github.com/openwrt/openwrt/pull/20157
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-25 22:54:06 +02:00
Robert Marko
58bd949e34 ipq-wifi: update to Git HEAD (2025-09-16)
c40198780e44 qca9888: add BDF for TP-Link Archer C60 v1
65d951610e0c QCA9888: added TP-Link Archer C60 v2 (US) BDF Link: https://github.com/openwrt/firmware_qca-wireless/pull/67

Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 86f58731ef)
Link: https://github.com/openwrt/openwrt/pull/20157
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-25 22:52:40 +02:00
Tianling Shen
bb14c607a3 uboot-mediatek: update Airoha EN8811H driver
Use the version sent to upstream U-Boot[1], which has much better
code quality and also works better (without packet loss).

The `en8811h_read_fw` func is adapted to use current read logic.

1. https://lore.kernel.org/u-boot/20250720122852.22563-1-lucienzx159@gmail.com/

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20000
(cherry picked from commit b63a48b012)
Link: https://github.com/openwrt/openwrt/pull/20146
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-09-24 13:31:49 +02:00
Goetz Goerisch
1dc947ac69 kernel: bump 6.6 to 6.6.106
All patches autorefreshed.

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20013
(cherry picked from commit 8cbbcda1d9)
Link: https://github.com/openwrt/openwrt/pull/20036
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-22 01:22:49 +02:00
John Audia
6af8e20b45 x86: config: add CONFIG_MITIGATION_VMSCAPE=y
Introduced in the 6.6.106 update, set this new mitigation option to
be enabled. See: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/diff/arch/x86/Kconfig?id=v6.6.106&id2=v6.6.105

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 221eaf1339)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20036
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-22 01:22:49 +02:00
Goetz Goerisch
b46655aaa0 kernel: bump 6.6 to 6.6.105
removed upstreamed patches:
generic/backport-6.6/621-proc-fix-missing-pde_set_flags.patch [1]
generic/pending-6.6/742-net-ethernet-mtk_eth_soc-fix-tx-vlan-tag-for-llc-pac.patch [2]

manually rebase patches:
bcm27xx/patches-6.6/950-0518-net-macb-Also-set-DMA-coherent-mask.patch [3]

all other patches autorefreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.105&id=698abcf08818cb7bafb978f4c9f6674d6a825d10
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.105&id=61b80fbdc0726317f72f9074e10126e0eb0e49c5
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.105&id=5430388a81113e62a2d48b5d7dc1e76231908ebf

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20013
(cherry picked from commit 67c5ec7092)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20036
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-22 01:22:49 +02:00
Hauke Mehrtens
ef40cc6a42 OpenWrt v24.10.3: revert to branch defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-20 22:35:26 +02:00
Hauke Mehrtens
dbd975a3b6 OpenWrt v24.10.3: adjust config defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-20 22:35:21 +02:00
Linus Kardell
daca7c049b openssl: correct PKG_LICENSE_FILES
Point to correct file name.

Signed-off-by: Linus Kardell <linus.kardell@infobric.com>
Link: https://github.com/openwrt/openwrt/pull/19999
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit bcfc3f01a4)
2025-09-19 23:19:38 +02:00
Linus Kardell
36d93ba2bd libxml2: correct PKG_LICENSE_FILES
Point to correct file name.

Signed-off-by: Linus Kardell <linus.kardell@infobric.com>
Link: https://github.com/openwrt/openwrt/pull/19999
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 24ee23a8a5)
2025-09-19 22:44:54 +02:00
Oliver Sedlbauer
efcdbe1087 mac80211: backport EHT 1024 MPDU TX aggregation
Backport support for 1024 MPDU TX aggregation in EHT from upstream
kernel. Without this fix, TX performance on WiFi-7 links
is severely limited, making the link practically unusable.

Signed-off-by: Oliver Sedlbauer <osedlbauer@tdt.de>
2025-09-19 13:13:03 +02:00
Hauke Mehrtens
de44a34908 uqmi: Increase PKG_RELEASE
Make sure that the package gets updated after the last fix.

Fixes: 9d83c1b1a9 ("uqmi: fix data-format parsing")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 0203ef3fc9)
2025-09-19 01:56:33 +02:00
David Bauer
9d83c1b1a9 uqmi: fix data-format parsing
wda-get-data-format now returns an object instead of a single string.
Account for this change when reading the packet data format.

Suggested-by: Sebastian Ertz (https://github.com/sebastianertz)
Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit cd20ae44f2)
2025-09-18 23:28:41 +02:00
Hauke Mehrtens
640e364ec0 openssl: Backport fix for OpenSSL 3.5.2 and 3.0.17 regression
Fixes segmentation faults in openssl. This problem was introduced in
version 3.5.2 and 3.0.17. Backport a fix from the OpenSSL 3.0 branch.

Link: https://forum.openwrt.org/t/openssl-3-0-17-libcrypto-segmentation-faults-regression/240650/9
Link: https://github.com/openssl/openssl/issues/28171
Link: c0d968f0ac
Fixes: f68c3e5057 ("openssl: Update to version 3.0.17")
Link: https://github.com/openwrt/openwrt/pull/20069
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit aa3c98f821)
2025-09-18 21:18:13 +02:00
Paweł Owoc
bf3bc6a384 qualcommax: ipq807x: add support for Linksys HomeWRK
Hardware specification:
========
SoC: Qualcomm IPQ8174
Flash: 1GB (Micron MT29F8G08ABBCAH4 or AMD/Spansion S34MS08G2)
RAM: 2GB (2x Kingston B5116ECMDXGJD or ESMT M15T2G16128A DDR3L)
Ethernet: 4x 10/100/1000Mbps (Qualcomm QCA8075)
WiFi1: 5GHz ax 2x2 (Qualcomm QCN5054 + Skyworks SKY85755-11) - channels 36-64 (low band)
WiFi2: 2.4GHz ax 2x2 (Qualcomm QCN5024 + Skyworks SKY85340-11)
WiFi3: 5GHz ax 4x4 (Qualcomm QCN5054 + Skyworks SKY85755-11) - channels 100-177 (high band)
LED: 1x RGB status (NXP PCA9633)
USB: 1x USB 3.0
Button: WPS, Reset

Flash instructions:
========
1. Installation from initramfs image using USB drive:
Put the initramfs image on the USB drive:
- dd bs=1M if=openwrt-qualcommax-ipq807x-linksys_homewrk-initramfs-uImage.itb of=/dev/sdX
Connect serial console (JST PH 6-pin connector):
- 1 - GND, 2 - TX, 4 - RX (115200, 8N1, 3.3V)
Stop u-boot and run:
- usb start && usbboot 44000000 0 && bootm 44000000
Write firmware to the flash from initramfs:
- sysupgrade -n openwrt-qualcommax-ipq807x-linksys_homewrk-squashfs-sysupgrade.bin
or
- ubiformat /dev/mtd22 -y -f openwrt-qualcommax-ipq807x-linksys_homewrk-squashfs-factory.ubi

2. USB recovery:
Put the initramfs image on the USB:
- dd bs=1M if=openwrt-qualcommax-ipq807x-linksys_homewrk-initramfs-uImage.itb of=/dev/sdX
Set u-boot env:
- fw_setenv bootusb 'usb start && usbboot 44000000 0 && bootm 44000000'
- fw_setenv bootcmd 'run bootusb; bootipq'

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17463
Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17985
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-09-18 16:41:15 +02:00
Felix Fietkau
457d0ca359 mt76: update to Git HEAD (2025-09-15)
904abc93b7d7 wifi: mt76: mt7996: fix setting beacon protection keys
75cd7c365b26 wifi: mt76: mt7996: fix memory leak on mt7996_mcu_sta_key_tlv error
587012a43306 wifi: mt76: mt7996: delete vif keys when requested
e995f6198d8b wifi: mt76: mt7996: fix key add/remove imbalance
5b0cbb058089 wifi: mt76: mt7996: fix updating beacon protection with beacons enabled
bba7ae0b1a68 wifi: mt76: mt7996: drop connac mcu wtbl clear
1383b5548fd7 wifi: mt76: use altx queue for offchannel tx on connac+
fd4c0858e58d wifi: mt76: mt7996: disable promiscuous mode by default
a9d21b7ece99 wifi: mt76: mt7996: remove the mem_total field of STA_REC_BF command
e88deeb14596 wifi: mt76: mt7996: set VTA in txwi
a06461861f4a wifi: mt76: mt7996: fill User Priority in skb->priority for rx packets
d17519baab77 wifi: mt76: improve phy reset on hw restart
ddbe1f6eb25f wifi: mt76: abort scan/roc on hw restart
6745cece7a07 wifi: mt76: mt7996: reset station links on hardware restart
d4a79d50ffc6 wifi: mt76: mt7996: reset interface links on hardware restart
9b770cb3dacd wifi: mt76: mt76_eeprom_override to int
6467af3bcf11 wifi: mt76: mt7921u: Add VID/PID for Netgear A7500

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit b4d6b6c986)
2025-09-15 13:41:35 +02:00
Felix Fietkau
186534e167 mt76: update to Git HEAD (2025-09-09)
27ad37728c3f wifi: mt76: mt7996: Check phy before init msta_link in mt7996_mac_sta_add_links()
95c9b8099ede wifi: mt76: mt7996: Set EML capabilities for AP interface
08df8dd7b00b wifi: mt76: mt7996: Use proper link_id in link_sta_rc_update callback
15fa4e33ee8f wifi: mt76: mt7996: Enable MLO support for client interfaces
3400b1ba33be wifi: mt76: mt7925: add pci restore for hibernate
51a1c0a086c8 wifi: mt76: mt7921: Add 160MHz beamformee capability for mt7922 device
435e596914fa wifi: mt76: mt7996: Use proper link info in mt7996_mcu_add_group
d30faac3b645 firmware: update mt7996 and mt7992 firmware to 20250606
304226bc4552 wifi: mt76: mt7996: Fix mt7996_reverse_frag0_hdr_trans for MLO
7cf18f8ebbb8 wifi: mt76: mt7996: Add all active links to poll list in mt7996_mac_tx_free()
16090cb27d9f wifi: mt76: mt7996: Implement MLD address translation for EAPOL
a1c319500a53 wifi: mt76: mt7996: Temporarily disable EPCS
5f3ea4562fbf wifi: mt76: mt7921: Place upper limit on station AID
ef2468830f6d wifi: mt76: un-embedd netdev from mt76_dev
29bca0ca462b net: mediatek: wed: Introduce MT7992 WED support to MT7988 SoC
245f6ff460c8 wifi: mt76: Add reset_idx to reset_q mt76_queue_ops signature.
4a3a5a7d71a8 wifi: mt76: Remove q->ndesc check in mt76_dma_rx_fill()
d540538299f7 wifi: mt76: Differentiate between RRO data and RRO MSDU queues
d0217732f96e wifi: mt76: Do not always enable NAPIs for WED RRO queues
1df790839241 wifi: mt76: mt7996: Initial DMA configuration for MT7992 WED support
fca511f401e9 wifi: mt76: mt7996: Enable HW RRO for MT7992 chipset
8134055d3459 wifi: mt76: mt7996: Introduce the capability to reset MT7992 WED device
4f81d751b5de wifi: mt76: mt7996: Fix tx-queues initialization for second phy on mt7996
f559eef156fd wifi: mt76: mt7996: Fix RX packets configuration for primary WED device
6b518355fec6 wifi: mt76: mt7996: Enable WED for MT7992 chipset
13eb05fa4a43 wifi: mt76: mt7996: Introduce RRO MSDU callbacks
ac1bca49973b wifi: mt76: Add rx_queue_init callback
d82330a9d019 wifi: mt76: mt7996: Decouple RRO logic from WED support
0a32ae3cc23d wifi: mt76: Add mt76_dma_get_rxdmad_c_buf utility routione
6c902ccba889 wifi: mt76: mt7996: Add SW path for HW-RRO v3.1
f271ce48d73b mt76: mt7996: fix unsigned comparison
d48b221e39f1 wifi: mt76: mt7925: prevent NULL vif dereference in mt7925_mac_write_txwi
719cda7c9f18 wifi: mt76: mt7925: prevent NULL pointer dereference in mt7925_tx_check_aggr()
03b0c871630a wifi: mt76: mt7996: add missing NULL pointer check
91dcccebfe19 firmware: update mt7996/mt7992 firmware to 20250905
76401f5e2e05 mt76: update RRO patches to the latest version
7b4b6c844554 wifi: mt76: Convert mt76_wed_rro_ind to LE
0d6eaa417441 wifi: mt76: mt7915: fix mt7981 pre-calibration
015349622b0c wifi: mt76: mt7925: fix incorrect length field in txpower command
5776b3292908 wifi: mt76: mt7925: refine the txpower initialization flow
b50c633f9158 wifi: mt76: mt7996: support writing MAC TXD for AddBA Request
ea9998693579 wifi: mt76: mt7996: Add missing DMA sync for EAPOL frames
a4d6f193be22 wifi: mt76: mt7996: remove redundant per-phy mac80211 calls during restart
ffda4432654d wifi: mt76: mt7996: improve hardware restart reliability
a6559a003d1b wifi: mt76: mt7996: decrease timeout for commonly issued MCU commands

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit e401229918)
2025-09-15 13:40:27 +02:00
Álvaro Fernández Rojas
f3a27d09e2 kernel: r8127: update to v11.015.00
Changelog: https://github.com/openwrt/rtl8127/compare/11.014.00...11.015.00

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 1cffb44b3c)
2025-09-12 19:25:58 +02:00
Álvaro Fernández Rojas
4d6cb65ee0 kernel: r8126: update to v10.016.00
Changelog: https://github.com/openwrt/rtl8126/compare/10.015.00...10.016.00

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 27a3e5c7b7)
2025-09-12 19:25:58 +02:00
Álvaro Fernández Rojas
03497e6feb kernel: r8125: update to v9.016.01
Changelog: https://github.com/openwrt/rtl8125/compare/9.016.00...9.016.01

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 2dfad04a82)
2025-09-12 19:25:58 +02:00
Felix Fietkau
05e6fe692b kernel: mtk_eth_soc: zero-initialize PPE flow tables
Prevents invalid flow table data from leaking across reboots

Fixes: https://github.com/openwrt/openwrt/issues/19895
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 36d0690993)
2025-09-12 14:41:59 +02:00
Andy Chiang
c60b94a195 kernel: r8168: add missing flags
PKG_MAKE_FLAGS is required when compiling r8168-rss

Signed-off-by: Andy Chiang <AndyChiang_git@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/20001
Signed-off-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 5719d65064)
2025-09-11 12:47:02 +02:00
John Audia
2644445469 lantiq: adapt upstream commit to some dts files
Some lantiq dts files still use etop but 6.12.45[1] changed to ethernet
so bring them into parity with this change.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=8c431ea8f3f795c4b9cfa57a85bc4166b9cce0ac

Co-Authored-by: Hauke Mehrtens <hauke@hauke-m.de>
Co-Authored-by: Aleksander Bajkowski <olek2@wp.pl>
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19956
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit c55a411af2)
2025-09-10 00:08:24 +02:00
Fabrice Fontaine
d80fc3aaab package/libs/gettext-full: fix license
gettext-full only provides libintl which is not licensed under
GPL-3.0.-or-later but under LGPL-2.1-or-later as stated in
gettext-runtime/intl/COPYING.LIB

Fixes: c10d97484a (Add more license tags with SPDX identifiers)

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19943
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 13e10bb8d3)
2025-09-10 00:07:36 +02:00
Fabrice Fontaine
e0be7ecdca package/libs/elfutils: fix license
elfutils libraries are not licensed under GPL-3.0-or-later, they are dual
licensed: GPL-2.0-or-later OR LGPL-3.0-or-later as clearly stated in
source files as well as on https://sourceware.org/elfutils:

The libraries and backends are dual GPLv2+/LGPLv3+. The utilities are GPLv3+.

Fixes: b98fb76646 (elfutils: import package from packages.git)

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19941
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 9a157b5d83)
2025-09-10 00:07:33 +02:00
Tianling Shen
cd6dd1c01e rockchip: backport GATE_LINK support for RK3588
Apart from improved power consumption, this fixes the runtime errors
from the pmdomain driver (failed to set idle on domain '%s')

Backport four clk fixes while at it.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/19925
(cherry picked from commit 13db7a0708)
[rebased upon 24.10 branch]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/19989
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-10 00:05:41 +02:00
Tianling Shen
b142c7e0c3 rockchip: reorder hwRNG patches
Reorder hwRNG patches to match current naming.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/19989
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-10 00:05:41 +02:00
Tianling Shen
67f40cf6ff rockchip: increase the number of serial ports for rk35xx
The RK356x/RK3588 SoCs support up to 10 serial ports.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/19917
(cherry picked from commit 672e45e69f)
Link: https://github.com/openwrt/openwrt/pull/19988
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-10 00:03:59 +02:00
Mikhail Zhilkin
08478c517e mediatek: CMCC RAX3000M: add RAX3000Me as alt model
The devices are basically identical. The RAX3000Me can be with
ddr3 RAM.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19760
(cherry picked from commit 23f016cf1e)
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19991
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-10 00:02:22 +02:00
Tianling Shen
ac4516d64f kernel: add support for FudanMicro FM25S01A SPI-NAND
Add support for FudanMicro FM25S01A SPI NAND.
Datasheet: http://eng.fmsh.com/nvm/FM25S01A_ds_eng.pdf

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
[add lore.kernel.org link to the patch files]
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19760
(cherry picked from commit a140bcbc7c)
[drop patches for kernel 6.12, refresh patches]
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19991
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-10 00:02:22 +02:00
Jan Kardell
bc9f1cab83 libxml2: Add abi version
The version of libxml2 was bumped from 2.13.6 to 2.14.5. Since version
2.14, libxml2 is not binary compatible with older versions. Therefore
add an abi version.

From the NEWS file:
Binary compatibility is restricted to versions 2.14 or newer. On ELF
systems, the soname was bumped from libxml2.so.2 to libxml2.so.16.

Signed-off-by: Jan Kardell <jan.kardell@telliq.com>
Link: https://github.com/openwrt/openwrt/pull/19983
(cherry picked from commit 420be05d90)
Link: https://github.com/openwrt/openwrt/pull/19985
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-08 15:00:26 +02:00
Donghyun Ko
cd0b1a209f mediatek: filogic: add support for ipTIME AX3000Q
Specification
-------------
- SoC       : MediaTek MT7981BA dual-core ARM Cortex-A53 1.3GHz
- RAM       : DDR3 256Mbytes, ESMT M15T2G16128A
- Flash     : 128Mbytes NAND Flash, ESMT F50L1G41LB
- WLAN      : MediaTek MT7976CN dual-band Wi-Fi 6
  - 2.4GHz  : b/g/n/ax, MU-MIMO
  - 5GHz    : a/n/ac/ax, MU-MIMO
- Ethernet  : MediaTek MT7531AE
  - LAN     : 10/100/1000 Mbps x4
  - WAN     : 10/100/1000 Mbps x1
- UART      : 1x4 pin header on PCB
  - [J6] TX, RX, GND, 3.3V (115200, 8N1)
- Buttons   : WPS, Reset
- LEDs      : 1x CPU (Amber)
              1x Wi-Fi 5GHz (Amber)
              1x Wi-Fi 2.4GHz (Amber)
              1x WAN activity (Amber)
              4x LAN activity (Amber)
- Power     : 12VDC, 1A (Center positive polarity)

MAC address
-----------
+-----------+-------------------+-----------------------+
| Interface | MAC               | Algorithm             |
+-----------+-------------------+-----------------------+
| WLAN 2.4G | B0:38:6C:48:xx:xx | label                 |
| WLAN 5G   | B2:38:6C:48:xx:xx | label with LA Bit Set |
| WAN       | B0:38:6C:48:xx:xx | label + 1             |
| LAN       | B0:38:6C:48:xx:xx | label + 3             |
+-----------+-------------------+-----------------------+
The WLAN 2.4G MAC was found in 'Factory' partition, 0x4

Installation
------------
1. Download the OEM recovery software from the manufacturer's website
2. Download the *squashfs-factory.bin file from the OpenWrt website
3. Press a reset button, and power up the router(keep pressing the reset button)
4. Wait more than 10 seconds until the CPU LED stop blinking
5. Connect the router(LAN port) to the PC
6. Replace a file in the OEM recovery software with the file from step 2
7. Run the OEM recovery software and follow the instructions
8. Wait for the router to boot from *squashfs-factory.bin

Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19368
(cherry picked from commit aea6d1bf5e)
Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19939
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-08 14:37:25 +02:00
Marty Jones
99bae668a2 rockchip: add RK3588 Hardware Random Number Generator
Backport support for RK3588 hardware RNG driver.

(cherry picked from commit e02c7a2014)
Added 2 patches from 6.12:
057-01-v6.12-hwrng-rockchip-rst-is-used-only-during-probe.patch
057-02-v6.12-hwrng-rockchip-handle-devm_pm_runtime_enable-errors.patch

Signed-off-by: Marty Jones <mj8263788@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19366
Link: https://github.com/openwrt/openwrt/pull/19442
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-08 14:34:40 +02:00
Fil Dunsky
e64f54cc15 mediatek: Huasifei WH3000 Pro wifi fix
typo forgot to add `kmod-mt7915e`

Fixes: db1de8d21f ("mediatek: add Huasifei WH3000 Pro support")
Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19825
(cherry picked from commit 194466d52a)
Link: https://github.com/openwrt/openwrt/pull/19976
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-08 14:32:47 +02:00
Goetz Goerisch
fe3d783d1e kernel: bump 6.6 to 6.6.104
remove upstreamed patches:
generic/backport-6.6/626-v6.17-net-ipv4-fix-regression-in-local-broadcast-routes.patch [1]

All other patches auto-refreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.104&id=a208d67cb44ba441bd38e04e270e9f1e230234ee

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19955
(cherry picked from commit 0ee0846be1)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19972
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-08 14:31:30 +02:00
Jakob Haufe
6c7919471e octeon: ubnt-*: Add device specific DTS pruning
This imports device specific DTS pruning from
https://github.com/UI-Packages/kernel_e200/blob/master/arch/mips/cavium-octeon/octeon-platform.c#L1067

- Reduce MMC clock frequency on E200/E220 to make
  MMC communication reliable again. See linked issue.
- Remove unused MMC node on E300.

Link: https://github.com/openwrt/openwrt/issues/13762
Signed-off-by: Jakob Haufe <sur5r@sur5r.net>
Link: https://github.com/openwrt/openwrt/pull/19229
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry-picked from commit 6e58e64501)
Link: https://github.com/openwrt/openwrt/pull/19374
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-05 00:48:55 +02:00
Hauke Mehrtens
78763b7b84 lantiq: Fix VPE kernel patch
This fixes compilation of the vmmc driver, it uses these functions.

Fixes: c676281e7e ("kernel: bump 6.6 to 6.6.103")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-05 00:34:45 +02:00
FUKAUMI Naoki
2180b1d6de rockchip: Add Realtek RTL8821CU support for the Radxa ROCK Pi E v3
There is a variant of the Radxa ROCK Pi E v3 equipped with the Realtek
RTL8821CU. Add the kmod-rtw88-8821cu package for it.

Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Link: https://github.com/openwrt/openwrt/pull/18310
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
(cherry picked from commit f13ddfb0cf)
Link: https://github.com/openwrt/openwrt/pull/19940
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-04 23:55:53 +02:00
FUKAUMI Naoki
e52a2ca694 rockchip: Add support for Radxa ROCK 4SE
The Radxa ROCK 4SE[1] is a single board computer using the Rockchip
RK3399-T.

Hardware
--------

- Dual-core Cortex-A72 and quad-core Cortex-A53 CPU
- Mali-T860MP4 GPU
- LPDDR4 4GB RAM
- M.2 M Key slot (PCIe 2.1 x4)
- eMMC connector
- microSD card slot
- Wi-Fi 5 (not supported)
- Gigabit Ethernet with PoE support (additional PoE HAT required)
- USB 3.0 Type-A OTG port
- USB 3.0 Type-A HOST port
- 2x USB 2.0 Type-A HOST ports
- USB Type-C power port (5V only)
- 40 Pin GPIO header

[1] https://radxa.com/products/rock4/4se

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

Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Link: https://github.com/openwrt/openwrt/pull/17554
(cherry picked from commit 6690f551c8)
Link: https://github.com/openwrt/openwrt/pull/19940
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-04 23:55:53 +02:00
FUKAUMI Naoki
1ebda1b0fa rockchip: Add support for Radxa ROCK 4C+
The Radxa ROCK 4C+[1] is a single board computer with dual HDMI using
the Rockchip RK3399-T.

Hardware
--------

- Dual-core Cortex-A72 and quad-core Cortex-A53 CPU
- Mali-T860MP4 GPU
- LPDDR4 4GB RAM
- eMMC connector
- microSD card slot
- Wi-Fi 5 (not supported)
- Gigabit Ethernet with PoE support (additional PoE HAT required)
- USB 3.0 Type-A OTG port
- USB 3.0 Type-A HOST port
- 2x USB 2.0 Type-A HOST ports
- USB Type-C power port (5V only)
- 40 Pin GPIO header

[1] https://radxa.com/products/rock4/4cp

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

Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Link: https://github.com/openwrt/openwrt/pull/17554
(cherry picked from commit 18925614c0)
Link: https://github.com/openwrt/openwrt/pull/19940
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-04 23:55:53 +02:00
Hauke Mehrtens
65269fd3fc mac80211: Fix build of rt2800soc
This fixes the following build problem:
```
/drivers/net/wireless/ralink/rt2x00/rt2800soc.c:276:27: error: initialization of 'int (*)(struct platform_device *)' from incompatible pointer type 'void (*)(struct platform_device *)' [-Werror=incompatible-pointer-types]
  276 |         .remove         = rt2x00soc_remove,
      |                           ^~~~~~~~~~~~~~~~
```

Fixes: b4b9288f2a ("mac80211: Update to 6.12.44")
Link: https://github.com/openwrt/openwrt/pull/19946
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-04 12:08:06 +02:00
David Bauer
c46cccde28 uqmi: update to latest HEAD
7914da4 uqmi: extend wda-get-data-format
7aef645 wda: add option for enabling flow-control
f74ddb3 wds: implement retrieval of profile list
6be8b6e wds: implement selection of LTE attach PDNs
21c4aaa wds: implement selection of default profile
5c844c0 wds: implement profile deletion
0756755 wds: reduce code duplication
283fbe0 data: add downlink padding option
4b90804 wda: allow agggregation parameter configuration
c20c017 uqmi: enable binding WDS sessions to QMAP multiplex
a1b37fe uqmi: fix whitespace errors

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 1df3d0c4b8)
2025-09-03 12:17:02 +02:00
David Bauer
e32ee37fda uqmi: update to latest HEAD
a933061 uqmi nas: fix incorrect parameter order

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 9099721fb4)
2025-09-03 12:16:56 +02:00
Hauke Mehrtens
b4b9288f2a mac80211: Update to 6.12.44
Updates backports to kernel version 6.12.44. This includes many fixes
for normal and security bugs.

The removed patches were applied upstream and backported to kernel
6.12.44.

This is based on the same backports code as used for the old tar based
on kernel 6.12.6.

removed upstream patches:
ath11k/001-wifi-ath11k-Fix-DMA-buffer-allocation-to-resolve-SWIOTLB-issues.patch [1]
ath11k/002-wifi-ath11k-use-dma-alloc-noncoherent-for-rx-tid-buffer-allocation.patch [2]
rtl/050-wifi-rtlwifi-rtl8821ae-phy-restore-removed-code-to-f.patch [3]
subsys/400-v6.16-wifi-mac80211-do-not-offer-a-mesh-path-if-forwarding.patch [4]

Part of the following patch was merged upstream:
subsys/350-wifi-mac80211-Add-link-iteration-macro-for-link-data.patch [5]

[1]: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=b92c5179db4b19152c6492d1dfda457bff789272
[2]: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=115360031be90aa6cf11d718caf19fea94824285
[3]: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=411c7738669907b5e2288ee7a0396ec0980e58fc
[4]: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=4c43d2c649269e91a81cbc6b2d6b7c552d3eeb45
[5]: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=a4afc3d522ca03920fe14c2b95638237fb6edbd8

Link: https://github.com/openwrt/openwrt/pull/19920
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-02 23:37:28 +02:00
Donghyun Ko
faf4f1e49e mediatek: add factory image for ipTIME AX3000SM
Adds the capability to flash the factory image using the OEM recovery
software, ipTIME Firmware Wizard(11ac).

Installation
------------
1. Download the OEM recovery software from the manufacturer's website
2. Download the *squashfs-factory.bin file from the OpenWrt website
3. Press a reset button, and power up the router(keep pressing the reset button)
4. Wait more than 10 seconds until the CPU LED stop blinking
5. Connect the router(LAN port) to the PC
6. Run the OEM recovery software and follow the instructions
7. Select the *squashfs-factory.bin file during the router recovery process
8. Wait for the router to boot from *squashfs-factory.bin

Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19497
(cherry picked from commit 0e4a69e340)
Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19928
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-02 23:15:49 +02:00
Hauke Mehrtens
8b0eb9c91d kernel: Fix kernel regression in local-broadcast routes
Backport a patch from upstream kernel 6.17-rc4 which fixes a regression
introduced in the latest stable kernel versions.

This is already in the Linus stable queues for the next minor kernel
updates.

Fixes: 1c92e468d5 ("kernel: bump 6.6 to 6.6.103")
Fixes: f39c7e103f ("kernel: bump 6.12 to 6.12.43")
Reported-by: Goetz Goerisch <ggoerisch@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit c589fb7baf)
2025-09-02 23:12:52 +02:00
Goetz Goerisch
c676281e7e kernel: bump 6.6 to 6.6.103
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.103

removed upstream patches:
generic-backport/847-v6.17-Revert-leds-trigger-netdev-Configure-LED-blink-inter.patch [2]
bcm27xx/patches-6.6/950-0135-media-tc358743-Increase-FIFO-level-to-374.patch [4]
bcm27xx/patches-6.6/950-0137-media-tc358743-Check-I2C-succeeded-during-probe.patch [5]
bcm27xx/patches-6.6/950-0143-media-tc358743-Return-an-appropriate-colorspace-from.patch [6]
bcm27xx/patches-6.6/950-0237-media-i2c-tc358743-Only-allow-supported-pixel-fmts-i.patch [7]
bcm27xx/patches-6.6/950-0510-Allow-RESET_BRCMSTB-on-ARCH_BCM2835.patch [8]

update patch to upstream function change
bcm53x/patches-6.6/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
changed function xhci_disable_and_free_slot() upstream [3]
lantiq/patches-6.6/0152-lantiq-VPE.patch [9]

All other patches auto-refreshed.

[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.103&id=c66caf21b1d0a0847adc34d368e3f6753a2cbd53
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/drivers/usb/host?h=v6.6.103&id=e600de541c37f97482fea2a7a26f186141e7ddea
[4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=1512ced62c8776707acf2123f7d02f56e80aa782
[5] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=5c809ef89e1ba2c3132e959382a3c22f0f62d5f9
[6] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=9b023149b97a08bd1c47fb4700381dffdad8c9b0
[7] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.103&id=9b023149b97a08bd1c47fb4700381dffdad8c9b0
[8] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/drivers/reset/Kconfig?id=f8818e29d268efc6b52d301cbb38405651a784cd
[9] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/mips/include/asm/vpe.h?h=linux-6.6.y&id=7fe9533fb069013eafb862cefc60f7a9fb666615

Suggested-by: Leo Barsky <leobrsky@proton.me>
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19898
(cherry picked from commit 1c92e468d5)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19924
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-02 23:09:49 +02:00
Grzegorz Sterniczuk
c77f2b442e rockchip: fix eMMC corruption on NanoPC-T6 with A3A444 chips
Some NanoPC-T6 boards with A3A444 eMMC chips experience I/O errors and
corruption when using HS400 mode. Downgrade to HS200 mode to ensure
stable operation.

Fixes: #18844
Signed-off-by: Grzegorz Sterniczuk <grzegorz@sternicz.uk>
Link: https://github.com/openwrt/openwrt/pull/19398
[Add patch header]
(cherry picked from commit c4586ceae8)
[Merge fixes into patch 121]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/19926
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-01 23:23:23 +02:00
Hauke Mehrtens
2a2f1573a7 rpcd: update to git openwrt-24.10 branch HEAD
8b320f9 ucode: adjust for new ext resource type
 e61d2be sys: use strstr() to detect installed packages
 bba9519 rpc-sys: packagelist: don't truncate input lines on read

The removed patch was applied upstream.

Link: https://github.com/openwrt/openwrt/pull/19919
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-01 23:20:26 +02:00
Felix Fietkau
9de2da13bf kernel: mtk_eth_soc: fix tx vlan tag for llc packets
When sending llc packets with vlan tx offload, the hardware fails to
actually add the tag. Deal with this by fixing it up in software.

Fixes: https://github.com/openwrt/openwrt/issues/19916
Reported-by: Thibaut VARENE <hacks@slashdirt.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit f7d4036555)
2025-08-31 20:39:38 +02:00
Hauke Mehrtens
af3a18db95 tools: firmware-utils: update to Git HEAD (2025-08-03)
3346d77 build: add mkqdimg
950f834 iptime-crc32: add support for ipTIME AX7800M-6E

(cherry picked from commit f0746741f8)
Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19915
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-31 19:12:02 +02:00
Hauke Mehrtens
d9179345ea tools: firmware-utils: update to Git HEAD (2025-07-24)
075cdc0 iptime-crc32: add support for ipTIME AX3000Q
48ababa iptime-crc32: add support for ipTIME AX3000SM
f29de74 iptime-crc32: Add device support for ipTIME AX6000M

Link: https://github.com/openwrt/openwrt/pull/19520
(cherry picked from commit b087961ccb)
Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19915
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-31 19:12:02 +02:00
Markus Stockhausen
4576d311f8 realtek: fix stall after restart of otto timer
Once tested this will go upstream.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19468
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit f21475839f)
Signed-off-by: Felix Baumann <felix.bau@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19891
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-31 19:08:04 +02:00
Markus Stockhausen
203c9f063b realtek: avoid interrupt storm on mass packet receive
RTL83xx devices have two types of receive interrupts for each of its
8 rings. One for packet received and another for ring overflow. When
the switch is flooded with incoming packets the receive handler will
disable the packet receive notification but still keeps the overflow
notification enabled. While the receive path "slowly" processes the
received packets each new packet triggers the overflow IRQ again. The
device becomes unresponsive and eventually produces messages like:

[18441.709764] rcu: Stack dump where RCU GP kthread last ran:
[18441.727892] Sending NMI from CPU 1 to CPUs 0:
[18441.742300] NMI backtrace for cpu 0 skipped: idling at 0x8080e994
[18415.251700] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
[18415.271350] rcu:     0-...!: (0 ticks this GP) idle=d740/0/0x0 ...
[18415.303046] rcu:     (detected by 1, t=6004 jiffies, g=230925, ...
[18415.326095] Sending NMI from CPU 1 to CPUs 0:
[18415.340540] NMI backtrace for cpu 0

Fix this issue by always disabling receive and overflow interrupts at
the same time.

Test with hping3 --udp -p 5021 -d 1400 --flood 192.168.2.72

Before (3sec run):
[183260.324846] rtl838x-eth 1b00a300.ethernet eth0: RX buffer overrun: status 0x101, mask: 0x7ffeff
[183260.340524] rtl838x-eth 1b00a300.ethernet eth0: RX buffer overrun: status 0x1, mask: 0x7ffeff
[183260.345799] net_ratelimit: 489997 callbacks suppressed

After (3 sec run):
[  373.981479] rtl838x-eth 1b00a300.ethernet eth0: rx ring overrun: status 0x101, mask: 0x7fffff
[  374.031118] rtl838x-eth 1b00a300.ethernet eth0: rx ring overrun: status 0x101, mask: 0x7fffff
[  377.919996] net_ratelimit: 34 callbacks suppressed

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19365
(cherry picked from commit 963ee6ac3f)
Signed-off-by: Felix Baumann <felix.bau@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19891
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-31 19:08:04 +02:00
Igor Dyatlov
3db4d8f23a ath79: add calibtation variant for Xiaomi AIoT AC2350
Add calibration variant and ipq-wifi package for Xiaomi AIoT AC2350

Signed-off-by: Igor Dyatlov <dyatlov.igor@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19707
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 664424aaeb)
Link: https://github.com/openwrt/openwrt/pull/19902
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-31 18:43:06 +02:00
Igor Dyatlov
3180294897 ipq-wifi: add entry for Xiaomi AIoT AC2350
Add IPQ WiFi support for Xiaomi AIoT AC2350

Add board file suffixes .QCA9988/.qca9988.
These suffixes are mapped to QCA9984/hw1.0 path

Reference:
https://openwrt.org/toh/xiaomi/aiot_router_ac2350

Signed-off-by: Igor Dyatlov <dyatlov.igor@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19707
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit c42f05bf36)
Link: https://github.com/openwrt/openwrt/pull/19902
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-31 18:43:06 +02:00
Robert Marko
e6bb072af5 ipq-wifi: update to Git HEAD (2025-08-25)
a510502e7922 qca9988: add BDFs for Xiaomi AIoT Router AC2350

Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 30e20d8cb2)
Link: https://github.com/openwrt/openwrt/pull/19902
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-31 18:42:57 +02:00
Robert Marko
d247904482 ipq-wifi: update to Git HEAD (2025-08-12)
967cfe977926 qca9988: add BDFs for Xiaomi AIoT Router AC2350
6db497116709 qcn9274: update board file for 8devices Kiwi-DVK
7a161011d89d Add IPQ5018 and QCN9074 BDF for Yuncore AX850.
30b99fc9cc13 ipq6018: add jdcloud_re-ss-01 BDF

Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit f9a8a3636c)
Link: https://github.com/openwrt/openwrt/pull/19902
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-31 18:42:47 +02:00
Robert Marko
8e5c83ca85 ipq-wifi: update to Git HEAD (2025-06-23)
63bd0faafd4a Add IPQ5018 BDF for Yuncore AX830.

Link: https://github.com/openwrt/openwrt/pull/18968
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 6716fbb122)
Link: https://github.com/openwrt/openwrt/pull/19902
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-31 18:42:38 +02:00
Daniel Golle
c4ea5c0732 ipq-wifi: add BDF for IgniteNet SS-W2-AC2600
The IgniteNet SunSpot AC Wave2 comes with 2x QCA9994 ath10k chips
connected to the IPQ8068 SoC via PCIe.
Add board-2.bin for both radios on this board.

 3ac4a64 qca9984: add BDFs for IgniteNet SS-W2-AC2600

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit d8303b4721)
Link: https://github.com/openwrt/openwrt/pull/19902
[Do not add ignitenet_ss-w2-ac2600]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-31 18:41:55 +02:00
Robert Marko
777d90a935 ipq-wifi: update to Git HEAD (2025-06-13)
5be4c60a9084 ipq5018: add BDF for Xiaomi AX6000
22588512b844 qcn9074: add BDF for Xiaomi AX6000
4810aacf3b1c qca9889: add BDF for Xiaomi AX6000

Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 17d7e0bf90)
Link: https://github.com/openwrt/openwrt/pull/19902
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-31 18:41:45 +02:00
Robert Marko
bd7ab1e9ce ipq-wifi: update to Git HEAD (2025-06-11)
79ba11f2da5e qca9888: add TP-Link WA1201 v2 BDF
abf47841e7e4 qca9988: add BDFs for Xiaomi AIoT Router AC2350
07af197b77fa qca9988: add BDFs for Xiaomi AIoT Router AC2350
61dbb1c3d694 ipq5018: add BDF for I-O DATA WN-DAX3000GR
1d8452d844b9 qcn6122: add BDF for I-O DATA WN-DAX3000GR

Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 12fd5e8f84)
Link: https://github.com/openwrt/openwrt/pull/19902
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-31 18:41:39 +02:00
Mathew McBride
6ae235bcd0 armsr: remove 'console=tty1' from kernel command line
We have modified the kernel to setup all "default" consoles,
including serial ports and framebuffers/screens, providing
no console= argument is supplied on the kernel command line.

Adding 'console=tty1' caused the 'default' serial port on
device tree systems to break, as the kernel would not carry
over the settings (like baud rate) from the bootloader.

The system administrator can still force the use of a
specific console by adding their own console= arguments.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Fixes: c099523d66 ("armsr: use console=tty1 to make
console more readily available")
Link: https://github.com/openwrt/openwrt/pull/17012
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit bff179de73)
Link: https://github.com/openwrt/openwrt/pull/19894
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-31 18:30:08 +02:00
Mathew McBride
20271bf505 armsr: add patch (hack) to enable all "default" consoles
A previous change added 'console=tty1' to the default kernel command
line on armsr, in order to ensure the framebuffer console is enabled
on systems capable of graphics output.

Unfortunately, this change broke boards that used device tree
(DT) firmware with serial consoles, as the serial console
specified by the system firmware (stdout-path) was no longer
setup by the kernel.

A bit of probing determined that the SPCR (serial port console
direction table) on ACPI systems was preventing Linux from setting
up a default framebuffer console on these systems (which is why
console=tty1 was added).

(The affected ACPI systems are usually VMs using QEMU's
'virt' machine and EDK2 firmware. The firmware on these systems
does not remove the SPCR when a screen is present)

So to ensure all possible systems are setup correctly, we modify
the kernel so all "default" console types (serial and screen)
are setup when no console= arguments are specified on the kernel
command line.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Fixes: c099523d66 ("use console=tty1 to make console more
readily available")
Link: https://github.com/openwrt/openwrt/pull/17012
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 3697022ce3)
Link: https://github.com/openwrt/openwrt/pull/19894
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-31 18:30:08 +02:00
Hauke Mehrtens
a65ca44cb7 kernel: bump 6.6 to 6.6.102
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.102

Added backport to fix ipv6 breakage with the 6.12.42 release:
generic/backport-6.6/621-proc-fix-missing-pde_set_flags.patch[1]

All patches auto-refreshed.

1. https://lore.kernel.org/all/20250821105806.1453833-1-wangzijie1@honor.com

Link: https://github.com/openwrt/openwrt/pull/19876
(cherry picked from commit 34e1092e88)
Link: https://github.com/openwrt/openwrt/pull/19877
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-28 21:17:44 +02:00
Hauke Mehrtens
406489fd83 kernel: bump 6.6 to 6.6.101
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.101
All patches auto-refreshed.

Link: https://github.com/openwrt/openwrt/pull/19876
(cherry picked from commit 9fbbcd16f7)
Link: https://github.com/openwrt/openwrt/pull/19877
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-28 21:16:43 +02:00
Felix Fietkau
03fe596699 mac80211: extend connection monitoring for MLO
Required for latest mt76

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 6fbf6d0cfd)
2025-08-27 15:44:53 +02:00
Felix Fietkau
64bbe71219 mt76: update to Git HEAD (2025-08-27)
5f61f34087c5 wifi: mt76: mt7996: fix crash on some tx status reports
d729307b5e8b mt76: mt7996: add missing null pointer check
fb22489fd738 wifi: mt76: do not add non-sta wcid entries to the poll list
fb7e0501b8f9 wifi: mt76: mt7996: add missing check for rx wcid entries
4cd64ad1283b wifi: mt76: mt7915: fix list corruption after hardware restart
ee538efba542 wifi: mt76: free pending offchannel tx frames on wcid cleanup
415b5a68878b wifi: mt76: fix list corruption
3ed2c4030d42 wifi: mt76: mt7925u: use connac3 tx aggr check in tx complete
a35af277873f wifi: mt76: mt7925: skip EHT MLD TLV on non-MLD and pass conn_state for sta_cmd
384d3a9bff2d wifi: mt76: mt7996: Use deflink for AMPDU rx reordering
9bae5f956e65 wifi: mt76: Remove dead code in mt76_scan_work
de1df8b888bd wifi: mt76: mt7996: Export MLO AP capabilities to mac80211

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 2760a08b40)
2025-08-27 13:34:30 +02:00
Felix Fietkau
5c37d1b9a7 udebug: update to Git HEAD (2025-08-24)
6e4ffe2c6657 ucode: add function for getting the number of entries in a snapshot
a62edd89255b ucode: add support for fetching kernel tracepoint events
edeb4d6dc690 udebug-cli: add support for streaming tracing data

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 78188ee2bc)
2025-08-26 19:22:13 +02:00
Felix Fietkau
3e0bcf3af7 udebug: update to Git HEAD (2025-08-17)
892647b81d30 ucode: add ferror() call to check for closed write file descriptor

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 899deae535)
2025-08-26 19:22:13 +02:00
Felix Fietkau
c1a8e48f3b udebug: update to Git HEAD (2025-08-15)
3d953628bf17 udebugd: add support for setting an override config
93f6df0240e5 udebug-cli: add support for overriding config on the command line

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit c4e7b9b9b7)
2025-08-26 19:22:13 +02:00
Felix Fietkau
76eb96c875 wifi-scripts: fix reload handling with random macaddr
Allow initially generated MAC address to be preserved across reload

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 5bdb7a5990)
2025-08-26 11:54:52 +02:00
Hauke Mehrtens
6bf869db0f kernel: Remove patch for fixed bug
The problem was fixed in upstream kernel in a different way and the
change was backported to kernel 6.6 in the following change:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=48e8791843206baf76827df1b6ee3cb88a2a17d8

The removed patch changes the endianness again and breaks the
functionality, use only the upstream code and remove our unneeded patch.

The 823-v6.12-0003-nvmem-layouts-add-U-Boot-env-layout.patch patch was
adapted in the kernel bump too. It moves the code with the fix now.

Fixes: 05d344cb2c ("kernel: bump 6.6 to 6.6.100")
Reported-by: Michael Pratt <mcpratt@pm.me>
Link: https://github.com/openwrt/openwrt/pull/19830
(cherry picked from commit 4cd256c72a)
Link: https://github.com/openwrt/openwrt/pull/19839
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-24 15:30:57 +02:00
Stefan Dösinger
c510f7e973 ramips: fix TP-Link mr600 radio partition offset
This makes 5ghz WiFi work out of the box on these devices, eliminating
the need to flash a magic blob to the radio partition.

This was found by user BulldozerBSG on the OpenWRT Forums:
https://forum.openwrt.org/t/tp-link-archer-mr600-exploration/65489/20
All credit belongs to them. I can confirm the correctness of the
findings. At least one other user (Iggy87100) confirmed them too.

Signed-off-by: Stefan Dösinger <stefandoesinger@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19790
(cherry picked from commit e7ed87b83b)
Link: https://github.com/openwrt/openwrt/pull/19839
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-24 15:30:57 +02:00
Felix Golatofski
52ec0cbab8 ath79: fix LED GPIOs for COMFAST CF-EW71 v2
The vendor DTS defined incorrect GPIOs for the LEDs, which caused them
to not function properly. Initially, the WAN, WLAN LEDs appeared to
work, but further testing showed that they were non-functional.

This patch corrects the GPIO assignments in the DTS, restoring full LED
functionality including blinking, except the power LED which cannot be
software controlled.

Tested on a CF-EW71 v2 unit.

Fixes: ee3a6adc6c ("ath79: add support for Comfast CF-EW71 v2")
Signed-off-by: Felix Golatofski <git@xdfr.de>
Link: https://github.com/openwrt/openwrt/pull/19665
(cherry picked from commit 9ce23ac840)
Link: https://github.com/openwrt/openwrt/pull/19839
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-24 15:30:57 +02:00
Daniel Golle
7f68339963 kernel: add backport to fix broken PHY LEDs
A commit which broke netdev trigger LEDs offloaded to PHYs recently made
it all the way down to the Linux 6.6 stable branch. The revert has been
accepted to linux-next, however, a backport to the various -stable trees
is still pending.

Import the backported revert commit to fix in OpenWrt in the meantime
until the revert also gets picked to linux-stable.

Link: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=26f732791f2bcab18f59c61915bbe35225f30136
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 1de1df1bea)
Link: https://github.com/openwrt/openwrt/pull/19839
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-24 15:30:57 +02:00
Karsten Sperling
2cffcdc7ae mbedtls: Expose MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED config option
This enables software that requires this cipher suite (e.g. OpenThread Border
Router) to be compiled against the shared library rather than a separate copy.

Signed-off-by: Karsten Sperling <ksperling@apple.com>
Link: https://github.com/openwrt/openwrt/pull/19489
(cherry picked from commit 97dc9f8dbf)
Link: https://github.com/openwrt/openwrt/pull/19839
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-24 15:30:57 +02:00
Hauke Mehrtens
f894fa971b mediatek: Remove modules.builtin file
This file should be generated automatically at runtime by the kernel
build system.

Link: https://github.com/openwrt/openwrt/pull/19473
(cherry picked from commit e53c53b7d5)
Link: https://github.com/openwrt/openwrt/pull/19839
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-24 15:30:57 +02:00
Fengyu Wu
bf0887bd42 ca-certificates: Update to 20250419
upstream changelog:

[ Alexander Kanavin ]
* update-ca-certificates: add a --sysroot option

[ Julien Cristau ]
* Update Mozilla certificate authority bundle to version 2.74.
  The following certificate authorities were added (+):
  + D-TRUST BR Root CA 2 2023
  + D-TRUST EV Root CA 2 2023
  The following certificate authorities were removed (-):
  - Entrust Root Certification Authority - G4
  - SecureSign RootCA11
  - Security Communication RootCA3
  - SwissSign Silver CA - G2

Signed-off-by: Fengyu Wu <saldry@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19462
(cherry picked from commit 8bf023da76)
Link: https://github.com/openwrt/openwrt/pull/19839
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-24 15:30:57 +02:00
Bradley M. Kuhn
fcaa4fdbbf Note inspiration for this script to give credit where it's due
There is some confusion in the Git log of this file.  Specifically,
the commit message on 7b7f1702 incorrectly indicates that there was
"potential fear" about copyright infringement.

Upon review of this situation, there is, in my opinion, no concern of
copyright infringement here.  This is not legal advice; it is my
opinion based of years of work on copyright policy for FOSS.

However, Elliott Mitchell's idea was obviously helpful as inspiration
in writing this script and deserves credit.  Ideas alone, however,
are not to my knowledge copyrightable anywhere in the world.

Signed-off-by: Bradley M. Kuhn <bkuhn@sfconservancy.org>
(cherry picked from commit d8e738e5c4)
Link: https://github.com/openwrt/openwrt/pull/19839
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-24 15:30:57 +02:00
Jan Hoffmann
ba7b5d23f6 ltq-adsl-mei: check status register before reading mailbox messages
The interrupt handler reads from the mailbox if no other reason for the
interrupt is known. If a spurious interrupt is received just after a
mailbox message has been sent, this means that the response to the
previous message is read again and returned by DSL_BSP_SendCMV instead
of the actual response.

To fix this, check the status register before reading from the mailbox
in the interrupt handler.

Tested on Fritzbox 7320. Without this change, there is occasionally a
kernel panic due to an out-of-bounds memory access in the ltq-adsl
driver (in DSL_DRV_DEV_G997_SnrAllocationNscGet), as a result of an
incorrect value returned by DSL_DRV_DANUBE_CmvRead. This is reproducible
by calling "dsl_cpe_pipe.sh g997dsnrg 1 1" multiple times.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/19385
(cherry picked from commit 6889ea7b9a)
Link: https://github.com/openwrt/openwrt/pull/19839
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-24 15:30:57 +02:00
Shiji Yang
e627539601 ipq40xx: dts: reduce the maximum SPI clock frequency to 24MHz
The IPQ4019 datasheet indicates that the maximum supported SPI
frequency is 25 MHz. My experiment on SKSpruce WIA3300-20 shows
that exceeding this threshold can lead to instability of SPI
peripheral. Limit the SPI clock frequency to the QSDK recommended
value 24MHz to enhance stability.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19744
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 3ff8a3dca8)
Link: https://github.com/openwrt/openwrt/pull/19796
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-21 22:57:20 +02:00
Jiasheng Zhu
191d738469 mediatek: add support for OpenFi 6C
PR of openwrt:main: https://github.com/openwrt/openwrt/pull/19512

OpenFi 6C is a portable Wi-Fi 6 travel router based on MediaTek MT7981B+MT7976CN.

Two slightly different versions have been sold. The V1 board has a green color and lacks the modem LED. The V2 board is black and has a LED for the modem.

Specifications:
- SoC: MediaTek MT7981B (Filogic 820) 1.3GHz dual-core ARM Cortex-A53
- RAM: 1GB DDR4
- Flash: 256MB SPI NAND
- Wireless: 2.4GHz/5GHz 802.11ax
- Ethernet: 1x 10/100/1000M LAN
- USB: 1x USB 3.0 Type-A port
- Expansion: M.2 slot for 5G modem
- Cooling: PWM-controlled fan
- Buttons: Reset, Mode switch
- LEDs: System, Ethernet, 5G WiFi, Modem status

**Installation via U-Boot web page**

1. Set static IP 192.168.21.2/255.255.255.0 on your computer.
2. Connect to the Ethernet port and hold the reset button while booting the device. Wait for 6-8 seconds, and release the reset button.
3. Open U-boot web page on your browser at http://192.168.21.1
4. Select the OpenWRT sysupgrade image, upload it, and start the upgrade.
5. Wait for automatic reboot.

**Installation via sysupgrade**

Flash the sysupgrade file via LuCI upgrade page without saving the settings.

Signed-off-by: Jiasheng Zhu <newbanyaya@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19512
(cherry picked from commit 536a25ebf8)
Link: https://github.com/openwrt/openwrt/pull/19536
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-21 22:52:43 +02:00
Mateusz Krzak
124f61eddb mediatek: filogic: D-Link M30/M60: include initramfs in recovery
Currently, if OEM recovery flashes OpenWrt to second ubi1,
OpenWrt cannot boot. With this commit, recovery image is built
with initramfs kernel, so that it can boot from either ubi or ubi1.

This adds an extra step to OpenWrt installation from OEM:
user needs to sysupgrade from initramfs to full system.

Signed-off-by: Mateusz Krzak <kszaquitto+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18878
(cherry picked from commit 6615c8cfc8)
Signed-off-by: Mateusz Krzak <kszaquitto+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19595
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-21 22:48:48 +02:00
Coia Prant
05db6b3c5a ramips: add support for Hongdian H7920 v40
This is an industrial 4G router equipped with OpenWrt SNAPSHOT OEM
customized version

WARNING: The original firmware device tree is modified from evb
boards, and the device tree name is evb board. This submitted device
tree is a modified version, which deletes the non-this-device parts
and adds GPIO watchdog.

Specification:
- SoC: MediaTek MT7628NN
- Flash: 16 MB
- RAM: 128 MB
- Power: DC 5V-36V 1.5A
- Ethernet: 1x WAN [slot not install], 1x LAN (10/100 Mbps)
- Wireless radio: 802.11n 2.4g-only [antenna not install]
- LED:
  System/Power (RUN): GPIO/37 active-low
  Modem: GPIO/3 active-low
  RF (Modem Signal): GPIO/2 active-low
- Button:
  WPS / RESET: GPIO/11 active-low
- UART: 1x UART on PCB - 115200 8N1
- Serial / COM: 1X RS232/RS485 on board (GPIO/6 hi:RS485 lo:RS232)
- GPIO Watchdog: GPIO/0 mode=toggle timeout=1s
- Modem: 1x Built-in modem on board (Power: GPIO/4 active-high)
- PCIe: 1x miniPCIe for modem [slot not install]
- SIM Slots: 1x SIM Slots

Issue:
- Factory partition not store mac address on original firmware

Flash instruction:
Using SSH/Telnet:
1. Connect the board to the computer via RJ45 Ethernet
2. Login 192.168.8.1 with root password "superzxmn" (SSH Port 22, Telnet Port 5188)
3. Download openwrt firmware on the computer.
4. Use scp or sftp put firmware to board /tmp
5. Use command "mtd -r write openwrt-ramips-mt76x8-hongdian_h7920-v40-squashfs-sysupgrade.bin firmware"
   to flash

Original Firmware Dump / More details:
https://blog.gov.cooking/archives/research-hongdian-h7920-v40-and-flash.html

Signed-off-by: Coia Prant <coiaprant@gmail.com>
Tested-by: Coia Prant <coiaprant@gmail.com>
(cherry picked from commit ebee946227)
Link: https://github.com/openwrt/openwrt/pull/19716
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-21 22:43:43 +02:00
Christian Marangi
97a75a72e3 generic: backport some flow offload helper patch
Backport some flow offload helper patch in preparation for Airoha Flow
Offload support.

Link: https://github.com/openwrt/openwrt/pull/18166
(cherry picked from commit 34ba7e8a8a)
[ drop merged patch 705-v6.12-netdevice-add-netdev... ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-08-21 17:06:50 +02:00
Christian Marangi
d12f30f760 airoha: backport upstream patch for Flow Offload support for AN7581
Backpot upstream patch for Flow Offload support for AN7581 and refresh
all affected patch. To correctly work a dedicated firmware is needed to
use the dedicated Network Coprocessor (NPU).

This also introduce good cleanup and moves the driver in a dedicated
Airoha directory. While currently not totally usable (due to lack of
firmware blob) this is needed to backport support for external PHY/SFP
support.

Refresh all affected patch.

Tested-by: Aleksander Jan Bajkowski <olek2@wp.pl> # tested on Quantum W1700k
Tested-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18166
(cherry picked from commit ad2077165b)
[ refresh patches ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-08-20 08:47:47 +02:00
Christian Marangi
62cee22812 airoha: backport minor fixes for ethernet driver
Backport some upstream patch for Airoha ethernet driver in preparation
for Flow Offload support.

Tested-by: Aleksander Jan Bajkowski <olek2@wp.pl> # tested on Quantum W1700k
Tested-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18166
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit afea8bda0d)
2025-08-20 08:43:36 +02:00
Christian Marangi
30bd948a1c airoha: replace PCIe patch with upstream version
Replace PCIe patch with upstream version and update DTS with new PBUS
CSR property now required.

Tested-by: Aleksander Jan Bajkowski <olek2@wp.pl> # tested on Quantum W1700k
Tested-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18166
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 921d438564)
2025-08-20 08:43:29 +02:00
Rosen Penev
1c81724718 airoha: pwm: use devm
Removes the need for a remove function in platform_device.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18660
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit aa4c96b925)
2025-08-20 08:43:18 +02:00
Christian Marangi
1fef2116ac airoha: drop MTD Airoha parser patch
Drop Airoha MTD parser patch as a better solution was agreed with a
fixed partition table.

Tested-by: Aleksander Jan Bajkowski <olek2@wp.pl> # tested on Quantum W1700k
Link: https://github.com/openwrt/openwrt/pull/18112
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 90dee1ab30)
2025-08-20 08:42:49 +02:00
Stefan Dösinger
92d4f59709 kernel: fix Mediatek queue size patch
This got added in commit 15887235, cherry-picked into the 24.10 branch
as 642b5b61 and was partially lost in a manual patch refresh in
3a2a2c99.

The main branch still contains the full set of rx DMA size changes, so I
assume it was lost by accident.

With rx.dma_size=2K, my TP-Link Archer MR600v2 (MT7621) randomly reboots
due to OOM.

Signed-off-by: Stefan Dösinger <stefandoesinger@gmail.com>
2025-08-15 10:46:13 +02:00
Felix Fietkau
faf168ffc9 mt76: update to Git HEAD (2025-08-13)
3e25f2bc33af wifi: mt76: mt7925: introduce MLO capability control
ce3622257026 wifi: mt76: mt7925: fix fails to enter low power mode in suspend state
dfdb8e975718 wifi: mt76: mt7915: fix possible integer overflows in mt7915_muru_stats_show()
29f0ad5a439a wifi: mt76: mt7925: ensure wow pattern command align fw format
5eab65bb5473 wifi: mt76: mt7925: fix country count limitation for CLC
d6a197dbc9a2 wifi: mt76: Add check for devm_kstrdup()
901492c4621a wifi: mt76: mt7925: Remove unnecessary if-check
24062ce4fa0f wifi: mt76: mt7925: Simplify HIF suspend handling to avoid suspend fail
56c0beddbed8 wifi: mt76: mt7921: fix kernel panic due to null pointer dereference
11bacfcce3b9 Revert "wifi: mt76: mt7925: Update mt7925_mcu_uni_[tx,rx]_ba for MLO"
2823c50b1c15 wifi: mt76: mt7925: fix the wrong link_idx when has p2p_device
f54ff3cabab6 wifi: mt76: mt7925: fix the wrong simultaneous cap for MLO
aa7d366ccf40 wifi: mt76: mt7925: adjust rm BSS flow to prevent next connection failure
d25359e8bb83 wifi: mt76: mt7925: integrate *mlo_sta_cmd and *sta_cmd
25a0285d8ee3 wifi: mt76: mt7925: update the power-saving flow
5910f0806c05 wifi: mt76: mt7925: load the appropriate CLC data based on hardware type
454a69cbb718 wifi: mt76: mt7925: add EHT control support based on the CLC data
bdc09b8f2321 wifi: mt76: mt7925: update the channel usage when the regd domain changed
772dcb4b4e61 wifi: mt76: mt7925: remove unused acpi function for clc
b94b025490ef wifi: mt76: mt792x: extend MTCL of APCI to version3 for EHT control
9ff2afce5fef wifi: mt76: mt7925: add MTCL support to enhance the regulatory compliance
f11807364258 wifi: mt76: add mt76_get_power_bound helper function
ffd1cbfc485e wifi: mt76: mt7921: fix returned txpower
687e2fdfbf40 wifi: mt76: mt7925: fix returned txpower
43aaa62fbc55 wifi: mt76: mt7915: cleanup mt7915_get_power_bound
a4be3fc9ed4b wifi: mt76: mt7996: cleanup mt7996_get_power_bound
0ba7a69f8927 wifi: mt76: move napi_enable() from under BH
1b370c689a2f wifi: mt76: mt7921: avoid undesired changes of the preset regulatory domain
e931cecc45de mt76: mt792x: fix unused variable warning
539e7e711a15 Revert "wifi: mt76: mt7925: fix returned txpower"
67c724cc60b1 Revert "wifi: mt76: mt7921: fix returned txpower"
52f51a398e7e wifi: mt76: mt7996: Add change_vif_links stub
b3b61abd733f wifi: mt76: mt7996: Introduce mt7996_sta_link container
915938e83c35 wifi: mt76: mt7996: Add mt7996_sta_link struct in mt7996_vif_link
3e06380a43a4 wifi: mt76: mt7996: Add vif_cfg_changed callback
f419c62e9198 wifi: mt76: mt7996: Add link_info_changed callback
3082c9edbe35 wifi: mt76: mt7996: Add mt7996_sta_state routine
46e20e5d7455 wifi: mt76: mt7996: Rely on mt7996_sta_link in sta_add/sta_remove callbacks
1de180821525 wifi: mt76: mt7996: Add mt7996_mac_sta_change_links callback
2efb26f1fc10 wifi: mt76: mt7996: Support MLO in mt7996_mac_sta_event()
2e249744bc12 wifi: mt76: Check link_conf pointer in mt76_connac_mcu_sta_basic_tlv()
0eee20d3e388 wifi: mt76: mt7996: Update mt7996_mcu_add_sta to MLO support
200ce414fe61 wifi: mt76: mt7996: Rely on mt7996_vif_link in mt7996_mcu_twt_agrt_update signature
d195324131ba wifi: mt76: mt7996: Rely on mt7996_vif/sta_link in twt teardown
7757e7c140f7 wifi: mac80211: call rate_control_rate_update() for link STA
a3b651aeb551 wifi: mt76: mt7996: Update mt7996_mcu_add_rate_ctrl to MLO
2a005953dc49 wifi: mt76: mt7996: Add mt7996_mcu_sta_mld_setup_tlv() and mt7996_mcu_sta_eht_mld_tlv()
58e8b71782fc wifi: mt76: mt7996: Add mt7996_mcu_teardown_mld_sta rouine
e0b422f2acaf wifi: mt76: mt7996: rework mt7996_mac_write_txwi() for MLO support
21aa0c288470 wifi: mt76: mt7996: Rely on wcid_to_sta in mt7996_mac_add_txs_skb()
87c437fa8b43 wifi: mt76: mt7996: rework mt7996_rx_get_wcid to support MLO
9b4de3ce7fc7 wifi: mt76: mt7996: rework mt7996_sta_set_4addr and mt7996_sta_set_decap_offload to support MLO
a369b0c14d25 wifi: mt76: mt7996: Add mt7996_sta_link to mt7996_mcu_add_bss_info signature
9c6ec015afbb wifi: mt76: mt7996: rework mt7996_set_hw_key to support MLO
60967d28a5e0 wifi: mt76: mt7996: rework mt7996_sta_hw_queue_read to support MLO
3668d57795e3 wifi: mt76: mt7996: remove mt7996_mac_enable_rtscts()
275e6a681bac wifi: mt76: mt7996: rework mt7996_mac_sta_rc_work to support MLO
057822770ca5 wifi: mt76: mt7996: rework mt7996_mac_sta_poll to support MLO
b9682a51c109 wifi: mt76: mt7996: rework mt7996_update_mu_group to support MLO
d1a5a0afa6d6 wifi: mt76: mt7996: rework mt7996_net_fill_forward_path to support MLO
56529041b364 wifi: mt76: mt7996: rework mt7996_mcu_add_obss_spr to support MLO
c788d5748dc8 wifi: mt76: mt7996: rework mt7996_mcu_beacon_inband_discov to support MLO
974e6c2df98b wifi: mt76: mt7996: set vif default link_id adding/removing vif links
70717b761af2 wifi: mt76: mt7996: rework set/get_tsf callabcks to support MLO
d01b9d300eaa wifi: mt76: mt7996: rework mt7996_ampdu_action to support MLO
d5cddf65f7a7 wifi: mt76: mt7996: Update mt7996_tx to MLO support
a1ed21a66913 wifi: mt76: mt792x: re-register CHANCTX_STA_CSA only for the mt7921 series
a826fc287483 wifi: mt76: mt7925: update MLO cleanup flow during disconnection
0994f0af632e wifi: mt76: mt7925: fix the incomplete revert of [tx,rx]_ba for MLO
5169d4e8669b wifi: mt76: mt76x2u: add TP-Link TL-WDN6200 ID to device table
46f3a10a9f0f mt76: mt7925: sync with upstream cleanups
de635e1e3adc wifi: mt76: mt7996: fix locking in mt7996_mac_sta_rc_work()
63a4edf1cb74 wifi: mt76: mt7996: add macros for pci decive id
a2dd2f7896f7 wifi: mt76: connac: add support to load firmware for mt7990
3908cf04aa39 wifi: mt76: mt7996: rework WA mcu command for mt7990
6243414a4e80 wifi: mt76: mt7996: rework DMA configuration for mt7990
a8def214d736 wifi: mt76: mt7996: rework register mapping for mt7990
51db7a2d57f6 wifi: mt76: mt7996: add eeprom support for mt7990
d0799f3303e9 wifi: mt76: mt7996: adjust HW capabilities for mt7990
10c3ea97a86d wifi: mt76: connac: rework TX descriptor and TX free for mt7990
bc588ac3d104 wifi: mt76: mt7996: rework background radar check for mt7990
f8c3dd3677dd wifi: mt76: mt7996: add PCI device id for mt7990
3cec186474c4 wifi: mt76: mt7915: set correct background radar capability
9bacdb2bf2c3 wifi: mt76: mt7915: rework radar HWRDD idx
a19543c7e05e wifi: mt76: mt7996: rework radar HWRDD idx
b0cf33e76a3a wifi: mt76: mt7925: Fix logical vs bitwise typo
0433adc883c9 wifi: mt76: mt7925: add EHT preamble puncturing
be28ef77e330 wifi: mt76: mt7996: Add NULL check in mt7996_thermal_init
55218e636092 Revert "wifi: mt76: mt7996: fill txd by host driver"
fdfe9eca6401 wifi: mt76: disable napi on driver removal
d7a070e11de4 wifi: mt76: mt7925: fix missing hdr_trans_tlv command for broadcast wtbl
29363a669195 wifi: mt76: mt7996: prevent uninit return in mt7996_mac_sta_add_links
e285cb42be03 wifi: mt76: Remove an unneeded local variable in mt76x02_dma_init()
3dee73c357cf wifi: mt76x2: Add support for LiteOn WN4516R,WN4519R
73f9582f92b6 wifi: mt76: mt7925: introduce thermal protection
cf8522c5eea8 wifi: mt76: mt7925: fix host interrupt register initialization
8a24527e6c63 wifi: mt76: mt7921: add 160 MHz AP for mt7922 device
d0ef73122e8b wifi: mt76: mt7996: avoid NULL pointer dereference in mt7996_set_monitor()
7fdbe4cb5c8d wifi: mt76: mt7996: avoid null deref in mt7996_stop_phy()
925d156dab3d wifi: mt76: mt7996: fix uninitialized symbol warning
a403590fd464 Revert "wifi: mt76: Check link_conf pointer in mt76_connac_mcu_sta_basic_tlv()"
ca76c1bcede4 wifi: mt76: mt7996: remove duplicate check in mt7996_mcu_sta_mld_setup_tlv()
b70a4a619538 wifi: mt76: scan: Fix 'mlink' dereferenced before IS_ERR_OR_NULL check
2247afffc734 wifi: mt76: add mt76_connac_mcu_build_rnr_scan_param routine
460aa7da0ef6 wifi: mt76: mt7925: add RNR scan support for 6GHz
a68584ddf98e wifi: mt76: mt7996: Fix null-ptr-deref in mt7996_mmio_wed_init()
025c1d19b55a wifi: mt76: mt7915: Fix null-ptr-deref in mt7915_mmio_wed_init()
c20015bdc88b wifi: mt76: mt7925: prevent multiple scan commands
832387a1f876 wifi: mt76: mt7925: refine the sniffer commnad
7bf6a2914a54 wifi: mt76: mt7925: ensure all MCU commands wait for response
1bd4dbd48281 wifi: mt76: mt7925: extend MCU support for testmode
0ca6ed4e2724 wifi: mt76: mt7925: add test mode support
a2838480f805 wifi: mt76: remove capability of partial bandwidth UL MU-MIMO
1865f5ea80ea wifi: mt76: mt7996: fix beamformee SS field
3bda39f1465e wifi: mt76: mt7996: set EHT max ampdu length capability
7d30840e5b21 wifi: mt76: mt7996: drop fragments with multicast or broadcast RA
bf22595a1d8a wifi: mt76: mt7996: fix invalid NSS setting when TX path differs from NSS
b9f01d7c368c wifi: mt76: mt7996: change max beacon size
8808d7c4eed7 wifi: mt76: mt7996: fix RX buffer size of MCU event
36e0b90e47ff wifi: mt76: fix available_antennas setting
da2c23bec426 wifi: mt76: support power delta calculation for 5 TX paths
3e161d0cf3c7 wifi: mt76: mt7925: add rfkill_poll for hardware rfkill
ee6dac9b6b76 wifi: mt76: mt7915: mcu: increase eeprom command timeout
0534761b76e1 wifi: mt76: mt7915: mcu: lower default timeout
79dd14f2e816 wifi: mt76: mt7915: mcu: re-init MCU before loading FW patch
f2943046881d wifi: mt76: Assume __mt76_connac_mcu_alloc_sta_req runs in atomic context
656eb209ec42 wifi: mt76: Move RCU section in mt7996_mcu_set_fixed_field()
4f47d90943a3 wifi: mt76: Move RCU section in mt7996_mcu_add_rate_ctrl_fixed()
189532e383c1 wifi: mt76: Move RCU section in mt7996_mcu_add_rate_ctrl()
5603bd03d56a wifi: mt76: Remove RCU section in mt7996_mac_sta_rc_work()
ca24f0794e94 wifi: mt76: mt7925: fix the wrong config for tx interrupt
63f18baa5bb6 wifi: mt76: mt7925: fix invalid array index in ssid assignment during hw scan
4bdc4c5f26e0 wifi: mt76: mt7925: fix incorrect scan probe IE handling for hw_scan
321ae47a7439 wifi: mt76: mt7925: fix off by one in mt7925_mcu_hw_scan()
3699df4e85ec wifi: mt76: mt7925: prevent NULL pointer dereference in mt7925_sta_set_decap_offload()
a17fbd3d8598 wifi: mt76: mt7921: prevent decap offload config before STA initialization
6df761e0e6c7 mt76: fix signature of platform_driver remove funtions for newer kernels
5724be1a6b12 wifi: mt76: Replace strlcpy() with strscpy()
c4a114e2b8c9 wifi: mt76: fix queue assignment for deauth packets
243e572d89fc wifi: mt76: add a wrapper for wcid access with validation
e41c7785589f wifi: mac80211: get tx power per link
d70f62b8f1c7 wifi: mt76: fix vif link allocation
7b3cd3274a24 wifi: mt76: mt7996: Fix secondary link lookup in mt7996_mcu_sta_mld_setup_tlv()
cf89b6218043 wifi: mt76: mt7996: Rely on for_each_sta_active_link() in mt7996_mcu_sta_mld_setup_tlv()
d71108eedab1 wifi: mt76: mt7996: Do not set wcid.sta to 1 in mt7996_mac_sta_event()
32f8c5849ed1 wifi: mt76: mt7996: Fix mlink lookup in mt7996_tx_prepare_skb
ffff9f71e29d wifi: mt76: mt7996: Fix possible OOB access in mt7996_tx()
afe63e758196 wifi: mt76: mt7996: Fix valid_links bitmask in mt7996_mac_sta_{add,remove}
68dd28b99dad wifi: mt76: mt7996: Add MLO support to mt7996_tx_check_aggr()
293778652452 wifi: mt76: mt7996: Move num_sta accounting in mt7996_mac_sta_{add,remove}_links
a94166b21e20 wifi: mt76: Get rid of dma_sync_single_for_device() for MMIO devices
87873d854e51 wifi: mt76: mt7925: Fix null-ptr-deref in mt7925_thermal_init()
06ba3d5e91f4 wifi: mt76: mt792x: Limit the concurrent STA and SoftAP to operate on the same channel
b9f4e0df317d wifi: mt76: mt792x: improve monitor interface handling
ec95319fd3fb wifi: mt76: mt7921s: Introduce SDIO WiFi/BT combo module card reset
dd2d862251cb firmware: add missing mt7990 eeprom files
05eaa56bc7a4 firmware: update mt7992 firmware to 20250328
32ca2b6db354 firmware: update mt7996 firmware to 20250328
00275548ba8f wifi: mt76: mt7996: Overwrite unspecified link_id in mt7996_tx()
2601bb91e078 wifi: mt76: mt7996: Fix mt7996_mcu_sta_ba wcid configuration
110ecc331123 wifi: mt76: mt7996: Fix mt7996_mcu_bss_mld_tlv routine
449a1aca9f72 wifi: mt76: mt7996: Initialize hdr before passing to skb_put_data()
1de707e73fc7 wifi: mt76: mt7921: don't disconnect when CSA to DFS chan
fce683dbcfc9 wifi: mt76: mt7925: fix locking in mt7925_change_vif_links()
11f721bce235 wifi: mt76: mt7925: fix the wrong bss cleanup for SAP
b3613d9a317d wifi: mt76: mt7996: Set def_wcid pointer in mt7996_mac_sta_init_link()
d1a2900a390d wifi: mt76: mt7996: Set proper link destination address in mt7996_tx()
56990ce9289a wifi: mt76: mt7925u: Add VID/PID for Netgear A9000
e796542a0585 wifi: mt76: mt7925: add MBSSID support
e35e4f8fcf8a wifi: mt76: fix potential memory leak in mt76_wmac_probe()
aa2f13c3be79 wifi: mt76: mt7996: disable beacons when going offchannel
630e166c958d wifi: mt76: prevent non-offchannel mgmt tx during scan/roc
d3e7c2051aae wifi: mt76: mt7996: use the correct vif link for scanning/roc
903a7e0ace79 wifi: mt76: mt7921: add MBSSID support

Sync with commit 4010984db9

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-08-13 17:33:08 +02:00
Rosen Penev
9d193d9b65 mpc85xx: tl-wdr4900: add back 5ghz LED
In the conversion to dts, qca,led-pin was used for both interfaces.
Unfortunately, it's mutually exclusive with gpio-controller which made
it not do anything.

Fixes: 949e1a0 ("mpc85xx: tl-wdr4900: move platform code to dts")

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19758
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit cc0ff28f23)
2025-08-13 09:58:03 +02:00
Christian Korber
33728aa96c hostapd: fix logging of configuration content
This commit is an adoption of the fix for #14049 to
apply it for openwrt-24.10.

Signed-off-by: Christian Korber <ck@dev.tdt.de>
Link: https://github.com/openwrt/openwrt/pull/17718
Link: https://github.com/openwrt/openwrt/pull/19660
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-10 21:53:43 +02:00
Felix Fietkau
b2116dbce4 rpcd: backport ucode fix
ucode: adjust for new ext resource type
ucv_resource_dataptr always returns null for resources with embedded data.

Fixes: https://github.com/openwrt/rpcd/issues/17
Fixes: https://github.com/openwrt/luci/issues/7878
Fixes: https://github.com/openwrt/openwrt/issues/19726
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-08-09 16:01:48 +02:00
jinkela air
155eea44e7 mediatek: Ruijie RG-X60 Pro: Fix LAN port status light
Fix the status indicator light of the LAN port.

Signed-off-by: jinkela air <air_jinkela@163.com>
Link: https://github.com/openwrt/openwrt/pull/19135
(cherry picked from commit 1e00b92597)
Link: https://github.com/openwrt/openwrt/pull/19567
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-29 23:18:45 +02:00
Hauke Mehrtens
4941509f57 uhttpd: update to Git HEAD (2025-07-06)
b3e3c05 client: don't send stray EOF chunk on connection timeout
fad0d05 proc: inhibit chunked transfer encoding on existing TEs or known length
3d6f01b file: prevent writes beyond end of uh_buf on enumerating directories
c7294e7 client: reject requests with multiple content-lengths and/or TEs
7e64e8b client: Allow sending content in DONE state

uhttpd commit 3d6f01b fixes: CVE-2025-32108

Link: https://github.com/openwrt/openwrt/pull/19290
(cherry picked from commit efb4200ba5)
Link: https://github.com/openwrt/openwrt/pull/19563
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-28 23:23:50 +02:00
Hauke Mehrtens
4c1a6ecb44 kernel: Fix boot of amrsr target in qemu
The bootup of the armsr target sometimes failed like this:
```
[    0.762283] NET: Registered PF_INET6 protocol family
[    0.791987] workqueue: Failed to create a worker thread: -EAGAIN
[    0.801986] workqueue: Failed to create a rescuer kthread for wq "mld": -EAGAIN
[    0.964017] NET: Unregistered PF_INET6 protocol family
```

Increase the maximum number of threads the kernel allows.

Link: https://github.com/openwrt/openwrt/pull/19376
(cherry picked from commit c5330bdf7e)
Link: https://github.com/openwrt/openwrt/pull/19554
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-28 23:22:19 +02:00
Tomasz Maciej Nowak
8ee468ff68 tegra: bring back workaround for spurious interrupts
Unfortunately they still apear with prolonged serial console usage.
While it's not common to use serial console past initial setup, alas
when the condition is hit the console is almost unusable.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/20250618170045.473711-2-tmn505@terefe.re/
(cherry picked from commit b8dea6056d)
Link: https://github.com/openwrt/openwrt/pull/19555
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-28 23:20:46 +02:00
Jan Hoffmann
ecb35b36fa ltq-*-app: correctly report downstream band borders
The direction needs to be included in the IOCTL call.

Fixes: b91d7d9d78 ("ltq-*-app: extend ubus metrics/statistics")
Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/19363
(cherry picked from commit b002cdd6a3)
Link: https://github.com/openwrt/openwrt/pull/19556
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-28 23:17:57 +02:00
Hauke Mehrtens
05a1a71530 toolchain: glibc: Update glibc 2.38 to recent HEAD
f510d75ff7 nscd: Use time_t for return type of addgetnetgrentX
5aa4bb67b9 resolv: Fix some unaligned accesses in resolver [BZ #30750]
249646f12b Force DT_RPATH for --enable-hardcoded-path-in-tests
697ab62d11 i386: Disable Intel Xeon Phi tests for GCC 15 and above (BZ 31782)
c8cb4d2b86 misc: Add support for Linux uio.h RWF_NOAPPEND flag
712453634c s390x: Fix segfault in wcsncmp [BZ #31934]
7bfc35959d nptl: fix potential merge of __rseq_* relro symbols
d9d019d674 elf: Make dl-rseq-symbols Linux only
bb30bd2162 Linux: Make __rseq_size useful for feature detection (bug 31965)
dc512364e8 resolv: Allow short error responses to match any query (bug 31890)
6cad0f543c resolv: Do not wait for non-existing second DNS response after error (bug 30081)
1bed6acf50 resolv: Track single-request fallback via _res._flags (bug 31476)
0301637b99 linux: Update the mremap C implementation [BZ #31968]
f0e2114535 mremap: Update manual entry
6bb75212e6 Add mremap tests
3ac7ba61d2 Update syscall lists for Linux 6.5
9184c13681 resolv: Fix tst-resolv-short-response for older GCC (bug 32042)
059f82c3b9 Fix name space violation in fortify wrappers (bug 32052)
c005d1bd6f x86: Fix bug in strchrnul-evex512 [BZ #32078]
28f358bc42 support: Add FAIL test failure helper
99ffa84bdc stdio-common: Add test for vfscanf with matches longer than INT_MAX [BZ #27650]
87a1968a72 Make tst-ungetc use libsupport
804d3c8db7 ungetc: Fix uninitialized read when putting into unused streams [BZ #27821]
b9f72bd5de ungetc: Fix backup buffer leak on program exit [BZ #27821]
15ca66303f posix: Use <support/check.h> facilities in tst-truncate and tst-truncate64
f30501ca75 nptl: Use <support/check.h> facilities in tst-setuid3
370be85892 libio: Attempt wide backup free only for non-legacy code
4dd8641461 Add crt1-2.0.o for glibc 2.0 compatibility tests
fa4ad10406 elf: Change ldconfig auxcache magic number (bug 32231)
9423cc5387 nptl: initialize rseq area prior to registration
37ded328c4 nptl: initialize cpu_id_start prior to rseq registration
cf06772360 x86: Avoid integer truncation with large cache sizes (bug 32470)
5c9be512ee x86_64: Sort fpu/multiarch/Makefile
49016f2190 x86_64: Add log2 with FMA
b2a45f1eee x86_64: Add expm1 with FMA
c92946d9b2 x86_64: Add log1p with FMA
58822f954f x86: Check the lower byte of EAX of CPUID leaf 2 [BZ #30643]
7772f9358c elf: Fix slow tls access after dlopen [BZ #19924]
5a64f93365 x86: Only align destination to 1x VEC_SIZE in memset 4x loop
0d14bf0754 sysdeps/x86/Makefile: Split and sort tests
dc1762113d x86_64: Fix missing wcsncat function definition without multiarch (x86-64-v4)
04b8d48432 x86: Improve large memset perf with non-temporal stores [RHEL-29312]
12fec8aae5 x86/string: Fixup alignment of main loop in str{n}cmp-evex [BZ #32212]
48642ef1a5 elf: Avoid some free (NULL) calls in _dl_update_slotinfo
549e7f7c5a elf: Support recursive use of dynamic TLS in interposed malloc
c32fd59314 Fix underallocation of abort_msg_s struct (CVE-2025-0395)
650a0aaaff stdlib: Test using setenv with updated environ [BZ #32588]
f984e2d7e8 assert: Add test for CVE-2025-0395
9ca74b8ad1 AArch64: Improve generic strlen
95aa21432c AArch64: Optimize memset
5fe151d86a AArch64: Remove zva_128 from memset
3de5112326 math: Improve layout of expf data
52c2b1556f AArch64: Add SVE memset
097299ffa9 AArch64: Use prefer_sve_ifuncs for SVE memset
5a08d049dc math: Improve layout of exp/exp10 data
3be3728df2 elf: Ignore LD_LIBRARY_PATH and debug env var for setuid for static
454f24e981 support: Use const char * argument in support_capture_subprogram_self_sgid
4335cd9b58 support: Add support_record_failure_barrier
31fa0f73e2 elf: Test case for bug 32976 (CVE-2025-4802)
ca41fe44a5 x86_64: Fix typo in ifunc-impl-list.c.
ca7e32d024 elf: Fix subprocess status handling for tst-dlopen-sgid (bug 32987)
81f58dd9b7 support: Pick group in support_capture_subprogram_self_sgid if UID == 0
5a6276d97a Fix error reporting (false negatives) in SGID tests
1a0d73a625 pthreads NPTL: lost wakeup fix 2
b5c4727e59 nptl: Update comments and indentation for new condvar implementation
1fa5e51897 nptl: Remove unnecessary catch-all-wake in condvar group switch
44eaf0615d nptl: Remove unnecessary quadruple check in pthread_cond_wait
7625579f11 nptl: Remove g_refs from condition variables
6bac834c5a nptl: Use a single loop in pthread_cond_wait instaed of a nested loop
5765653697 nptl: Fix indentation
8899e89b29 nptl: rename __condvar_quiesce_and_switch_g1
39a80f4035 nptl: Use all of g1_start and g_signals
51210d6496 nptl: PTHREAD_COND_INITIALIZER compatibility with pre-2.41 versions (bug 32786)
879f0ee122 malloc: add indirection for malloc(-like) functions in tests [BZ #32366]
a637f2c42f malloc: obscure calloc use in tst-calloc
21019afe65 malloc: cleanup casts in tst-calloc
6a52d5cab0 posix: Fix double-free after allocation failure in regcomp (bug 33185)

Link: https://github.com/openwrt/openwrt/pull/19551
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-27 19:47:26 +02:00
Hauke Mehrtens
7230ddb06b wireless-regdb: Update to version 2025.07.10
6953f19 wireless-regdb: Update regulatory info for Indonesia (ID) for 2025
2e8214e wireless-regdb: Permit 320 MHz bandwidth in 6 GHz band for GB
a94f685 wireless-regdb: Update regulatory info for Egypt (EG) for 2024
7628ce2 wireless-regdb: Update regulatory rules for Brazil (BR) on 6GHz
4411b39 wireless-regdb: Update regulatory info for Vietnam (VN) for 2025
490f136 wireless-regdb: Update regulatory info for Estonia (EE) for 2024
c56c663 wireless-regdb: update regulatory rules for Paraguay (PY) on 6 GHz for 2025
5a8ced5 wireless-regdb: Update regulatory info for CEPT countries for 6GHz listed by WiFi Alliance
5fd8ee3 wireless-regdb: update regulatory rules for Bosnia and Herzegovina (BA) for 6 GHz
e05260a wireless-regdb: update regulatory database based on preceding changes

Link: https://github.com/openwrt/openwrt/pull/19474
(cherry picked from commit 7fe06b7f56)
Link: https://github.com/openwrt/openwrt/pull/19538
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-27 19:46:13 +02:00
Petr Štetiar
bfed41cc6a busybox: fix login applet on selinux
Currently the system boots up, but is unusable because pressing enter
does not provide login with error:

  login: can't get SID for root

This is happenning, because login.c passes the Linux username directly
to get_default_context(), while libselinux expects an SELinux user
identity, causing the call to fail for users without a matching SELinux
name (e.g., root) and aborting login on SELinux-enabled systems.

Fixes: #19075
Upstream-Status: Submitted [https://lists.busybox.net/pipermail/busybox/2025-April/091407.html]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Link: https://github.com/openwrt/openwrt/pull/19080
(cherry picked from commit 5809bfaaac)
Link: https://github.com/openwrt/openwrt/pull/19542
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-27 19:42:04 +02:00
Leo Barsky
254f6b2414 kernel: bump 6.6 to 6.6.100
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.100
Manually refreshed:
    823-v6.12-0003-nvmem-layouts-add-U-Boot-env-layout.patch
All other patches auto-refreshed.

Signed-off-by: Leo Barsky <leobrsky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19514
(cherry picked from commit 05d344cb2c)
Co-authored-by: Goetz Goerisch <ggoerisch@gmail.com>
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19533
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-27 19:40:40 +02:00
John Audia
01bee440ad libxml2: update to 2.14.5
Release Notes:
    https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.13.7
    https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.13.8
    https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.3
    https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.4
    https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.5

Fixes:
CVE-2025-32415 CVE-2025-32414 CVE-2025-6170 CVE-2025-49794 CVE-2025-49795 CVE-2025-49796

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/19383
(cherry picked from commit c08c2d6eb3)
Link: https://github.com/openwrt/openwrt/pull/19486
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-26 23:43:53 +02:00
David Bauer
ac80abb085 wifi-scripts: correctly set basic-rates with wpa_supplicant
Correctly load the list of basic_rates from UCI. basic-rates shall be
stored as a option-list. The current code did not retrieve this list
correctly.

wpa_supplicant uses a different config option to set basic-rates
when operating in mesh-mode.

Use the correct config key and calculation for mesh-interfaces.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit a854d833ea)
2025-07-24 03:46:38 +02:00
Felix Fietkau
3bdd6d492e ucode: add padding to uc_resource_ext_t
Fixes misaligned allocations for ext resources

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 6c22e8ef53)
2025-07-23 12:19:14 +02:00
Felix Fietkau
39972c47eb ucode: update to Git HEAD (2025-07-18)
54b00e3b1fa9 ubus: fix double registry clear on disconnect
69521b55855c ubus: fix use-after-free on deferred request reply() method
f499de690c33 Merge pull request #298 from nbd168/ubus-fixes
22e8c16d9deb debug: fix crash when passing tagged string to getinfo()
2c9eea5174d6 ubus: use ucv_resource_create_ex for connections/channels
0a4cf4b7e71a ubus: use ucv_resource_create_ex for for ubus.request resources
99ee75a69cd3 ubus: use ucv_resource_create_ex for ubus.deferred resources
f085a42b977f ubus: use ucv_resource_create_ex for objects
94ad17d13a0d ubus: use ucv_resource_create_ex for ubus.notify resources
a3fa47fdda3e ubus: use ucv_resource_create_ex for ubus.listener resources
9ab5fa869dec ubus: use ucv_resource_create_ex for ubus.subscriber resources
43dd5716db84 Merge pull request #300 from nbd168/ubus-gc
be92ebd70633 CI: debian: install cmake package
fd202fd40bd1 socket: respect port argument in sockinst.connect()
767c209b917b socket: properly handle async `connect(2)` errors in socket.connect()
37ac8f112af6 socket: improve port argument validation in sockinst.connect()
5b3b6b789b9c ubus: fix refcount issue in uc_ubus_object_notify
cdcd50ad0408 Merge pull request #305 from nbd168/ubus-fix
f682ac2f6b82 program: add bytecode version to program header flags
af411d8101b2 vm: implement PVAL opcode
afdfffb61258 vm: support initiating method calls with I_CALL/I_QCALL opcodes
5d680425db40 compiler: stop emitting I_MCALL/I_QMCALL opcodes
a616feed39eb compiler, vm: rework optional chaining and function call semantics
d29ec45ab107 Merge pull request #306 from jow-/optional-chaining-short-circuiting
0946a4fb20b8 vm: adjust JMPNT opcode behavior
6f8291f73757 compiler: improve assignment lhs expression checks
22e1346a7bda Merge pull request #308 from jow-/compiler-lhs-check-fixes
cf846c4a11d4 vm: properly handle modulo by zero
4d81e6c13506 resolv: add documentation and fix clobbering ns strings
20ee2dabd243 debian/changelog: v0.0.20250529
82426d1a02e2 Merge pull request #314 from jow-/resolv-fix313
50d303c8309d ubus: add support for automatically subscribing to objects
fdbf73da4136 Merge pull request #312 from nbd168/ubus-subscribe
5a0d21d59f88 vm: export function for converting exception to ucode value
aaf712eb4fb4 uloop: add guard() function
693af2b61b52 ubus: add guard() function

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit c39a09686e)
2025-07-23 12:19:14 +02:00
Felix Fietkau
628bc50eb1 udebug: update to Git HEAD (2025-07-23)
5d10084ea885 lib-ucode.c: add #define _GNU_SOURCE
a95364b41d52 udebug-cli: fix terminating uloop
c00eb9b685a8 ucode: use FILE handle for pcap output
4265167cb6e8 ucode: add error reporting to pcap_write
4a908ee731a6 udebug-cli: stop event loop on write failure
6e04f4187231 ucode: use ucv_resource_create_ex for remote rings
c297f04e1852 ucode: drop use ucv_resource_create
f207d37a1055 ucode: add support for specifying ring format
98683a94bcdd ucode: support appending array data, similar to socket.send()
a7ecd483ed38 ucode: allow calling udebug.init() multiple times
d4a4c788c416 ucode: fix allocation size of local ring meta
184706abaf50 ucode: add timestamp argument to foreach()
8442c948c193 ucode: add function for getting ring information
f4958a4c591a ucode: add const entries for enum udebug_format
14d4fec36993 udebug-cli: add logstream command
6ed8536142bb ucode: fix entries/size confusion

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 7b0ce213e9)
2025-07-23 12:06:02 +02:00
Felix Fietkau
a8fb4f6f0c libubox: update to Git HEAD (2025-07-23)
b7acc8e6fd5e remove compatibility code for older json-c versions
a1acd99f2eb7 udebug: remove obsolete debug message
49056d178f42 udebug: fix issue with snapshot of remote ring

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 19a327dde5)
2025-07-23 12:04:47 +02:00
Felix Fietkau
6489f3ef89 toolchain/gcc: prevent the use of LDRD/STRD on ARMv5TE
These instructions are for 64-bit load/store. On ARMv5TE, the CPU
requires addresses to be aligned to 64-bit. When misaligned, behavior is
undefined (effectively either loads the same word twice on LDRD, or
corrupts surrounding memory on STRD).

On ARMv6 and newer, unaligned access is safe.

Removing these instructions for ARMv5TE is necessary, because GCC
ignores alignment information in pointers and does unsafe optimizations
that have shown up as bugs in various places.

This patch was originally added more than 11 years ago in commit b050f87d13,
but got lost 6 years ago, when gcc 9.1 was added in 88c07c6552.

This primarily affects the kirkwood and ixp4xx targets

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit c1c1112006)
2025-07-22 12:05:09 +02:00
Fil Dunsky
150f181700 mediatek: add Huasifei WH3000 Pro support
**Huasifei WH3000 Pro**
Portable Wi-Fi 6 travel router based on MediaTek MT7981A SoC. MT7981B+MT7976CN+RTL8221B Dual Core 1.3GHZ with 5G modems module and PWM Fan.

**Specifications**
SoC: Filogic 820 MT7981A (1.3GHz)
RAM: DDR4 1GB
Flash: eMMC 8GB
WiFi: 2.4GHz and 5GHz with 3 antennas
Ethernet:
1x WAN (10/100/1000M)
1x LAN (10/100/1000/2500M)
USB: 1x USB 3.0 port
Two buttons: power/reset and mode (BTN_0)
LEDS: blue, red, blue+red=pink
UART: 3.3V, TX, RX, GND / 115200 8N1

**Installation via U-Boot rescue**
1. Set static IP 192.168.1.2 on your computer and default route as 192.168.1.1
2. Connect to the WAN port and hold the reset button while booting the device.
3. Wait for the LED to blink 5 times, and release the reset button.
4. Open U-boot web page on your browser at http://192.168.1.1
5. Select the OpenWRT sysupgrade image, upload it, and start the upgrade.
6. Wait for the router to flash the new firmware.
7. Wait for the router to reboot itself.

**Installation via sysupgrade**
Just flash sysupgrade file via [LuCI upgrade page](http://192.168.1.1/cgi-bin/luci/admin/system/flash) without saving the settings.

**Installation via SSH**
Upload the file to the router `/tmp` directory, `ssh root@192.168.1.1` and issue a command:
```
sysupgrade -n /tmp/openwrt-mediatek-filogic-huasifei_wh3000-pro-squashfs-sysupgrade.bin
```

**Factory MAC**
You can find your Factory MAC which is mentioned on the box at `/dev/mmcblck0p2` partition `factory` starting from `0x4`
```
dd if=/dev/mmcblk0p2 bs=1 skip=4 count=6 | hexdump -C
```

Cherry-picked from 949d0bd77a

Fixed `green` to `blue` LED in dts, added `SUPPORTED_DEVICES += huasifei,fudy-pro` - to make sysupgrade compatible with factory QWRT/Lede fork firmware.

Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19315
(cherry picked from commit db1de8d21f)
Link: https://github.com/openwrt/openwrt/pull/19391
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-22 00:16:25 +02:00
Leo Barsky
f59e340e11 kernel: bump 6.6 to 6.6.99
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.99

All patches auto-refreshed.

Signed-off-by: Leo Barsky <leobrsky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19448
(cherry picked from commit 3148a57758)
Co-authored-by: Goetz Goerisch <ggoerisch@gmail.com>
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19454
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 20:13:02 +02:00
Donghyun Ko
25467b09f1 mediatek: add support for ipTIME AX3000SM
Specification
-------------
- SoC       : MediaTek MT7981BA dual-core ARM Cortex-A53 1.3GHz
- RAM       : DDR3 256Mbytes, Nanya Technology NT5CC128M16IP
- Flash     : 128Mbytes NAND Flash, ESMT F50L1G41LB
- WLAN      : MediaTek MT7976CN dual-band Wi-Fi 6
  - 2.4GHz  : b/g/n/ax, MU-MIMO
  - 5GHz    : a/n/ac/ax, MU-MIMO
- Ethernet  : 10/100/1000 Mbps x4, LAN (MediaTek MT7531AE)
              10/100/1000 Mbps x1, WAN (MT7981 internal PHY)
- UART      : 1x4 pin header on PCB
  - [J500] 3.3V, TX, RX, GND (115200, 8N1)
- Buttons   : WPS, Reset
- LEDs      : 1x Power (Amber)
              1x CPU (Amber)
              1x Wi-Fi 5GHz (Amber)
              1x Wi-Fi 2.4GHz (Amber)
              1x WAN activity (Amber)
              4x LAN activity (Amber)
- Power     : 12VDC, 1A (Center positive polarity)

MAC address
-----------
+-----------+-------------------+-----------+
| Interface | MAC               | Algorithm |
+-----------+-------------------+-----------+
| WLAN 2.4G | B0:38:6C:xx:xx:xx | label     |
| WLAN 5G   | B2:38:6C:4x:xx:xx |           |
| WAN       | B0:38:6C:xx:xx:xx | label + 1 |
| LAN       | B0:38:6C:xx:xx:xx | label + 3 |
+-----------+-------------------+-----------+
The WLAN 2.4G MAC address was found in 'Factory' partition, 0x4

Installation
------------
1. Download the *initramfs-kernel.bin file from the OpenWrt website
2. Attach UART to the router, and interrupt the boot process by pressing '0'

   If you successfully interrupt the boot process, a terminal prompt
   name should look like this:

   MT7981>

3. Connect the router(LAN port) to the PC
4. Assign the PC IP address: 192.168.0.100/24
5. Load and run the *initramfs-kernel.bin:

  tftpboot 0x46000000 initramfs-kernel.bin
  bootm

6. Upload the OpenWrt *squashfs-sysupgrade.bin to the router
7. Run 'sysupgrade -n' with the sysupgrade OpenWrt image

Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18689
(Cherry picked from commit 1c6cb6d5be)
Link: https://github.com/openwrt/openwrt/pull/19410
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-19 21:02:07 +02:00
Tim Harvey
791c0ad7c4 uboot-envtools: add support for Gateworks venice
Add uboot-envtools support for Gateworks venice boards based on i.MX8M
SoC's (imx_cortexa53) which boot from and store their U-Boot env on
eMMC boot0 hardware partition.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/19347
(cherry picked from commit 29f7c0ef97)
Link: https://github.com/openwrt/openwrt/pull/19437
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-19 18:31:14 +02:00
Goetz Goerisch
1034594ded kernel: bump 6.6 to 6.6.98
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.98

- x86/CPU/AMD: Properly check the TSA microcode

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19354
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-17 20:49:02 +02:00
Shiji Yang
05d8b931fb kernel: bump 6.6 to 6.6.97
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.97

Remove upstream patches:
  generic/backport-6.6/001-powerpc-kernel-Fix-pcc_save_regs-inclusion.patch [1]

Manually rebased patch:
  bcm53xx/patches-6.6/180-usb-xhci-add-support-for-performing-fake-doorbell.patch[2]

New Kconfig symbol:
  x86: enable MITIGATION_TSA [3]

All other patches are automatically refreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.97&id=8a7ac2737211451b8b98657b919c4c4e0a4c0c2f
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.97&id=7609899eb6b70b536123eb58eeab27c764752b82
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.97&id=90293047df18caf7ed0fe566d89af0720f2dc98a

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Co-authored-by: John Audia <therealgraysky@proton.me>
Tested-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19317
(cherry picked from commit 04d764576b)
Co-authored-by: Goetz Goerisch <ggoerisch@gmail.com>
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19354
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-17 20:49:02 +02:00
Shiji Yang
b2fcc6f9f3 kernel: bump 6.6 to 6.6.96
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.96

Remove upstreamed patches:
  generic/pending-6.6/650-Revert-ipv6-save-dontfrag-in-cork.patch [1]

All other patches are automatically refreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.96&id=c46358d0275953b27c3d86f7a224e229f2d57d05

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Tested-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19317
(cherry picked from commit 2d8d11a42c)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19354
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-17 20:49:02 +02:00
Felix Fietkau
787072906d build: ipkg-remove: fix source name / package confusion, optimize
The script always gets passed the package name, not the source name.
Optimize for the default case where the package name matches the
filename prefix.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 471fd0a502)
2025-07-17 10:46:39 +02:00
Felix Fietkau
37233122a7 ubus: update to Git HEAD (2025-07-02)
27839f854a58 ubusd: make txq_len field signed
b35b2bc63e8e ubusd: treat EACCES on write like EAGAIN
713e9d19b2b6 ubusd: retry write on EINTR
8bb523ab20e0 ubusd: fix txq_len accounting
b1b783c74742 ubusd: add another tx attempt on enqueueing the first message for a client
5952b48e251c ubusd: do not call socket callback from ubus_msg_send

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 90cd8640bd)
(cherry picked from commit d9cd67b542)
2025-07-17 10:45:15 +02:00
Antony Kolitsos
49fdb75c7b mbedtls: update to 3.6.4
This release includes fixes for security issues.

Mbed TLS 3.6 is a long-term support (LTS) branch. It will be supported with bug-fixes and security fixes until at least March 2027.

Security Advisories

For full details, please see the following links:

    Race condition in AESNI support detection [1]
    Heap buffer under-read when parsing PEM-encrypted material [2]
    Unchecked return value in LMS verification allows signature bypass [3]
    Out-of-bounds read in mbedtls_lms_import_public_key() [4]
    Timing side-channel in block cipher decryption with PKCS#7 padding [5]
    NULL pointer dereference after using mbedtls_asn1_store_named_data() [6]
    Misleading memory management in mbedtls_x509_string_to_names() [7]

[1] https://mbed-tls.readthedocs.io/en/latest/security-advisories/mbedtls-security-advisory-2025-06-1/
[2] https://mbed-tls.readthedocs.io/en/latest/security-advisories/mbedtls-security-advisory-2025-06-2/
[3] https://mbed-tls.readthedocs.io/en/latest/security-advisories/mbedtls-security-advisory-2025-06-3/
[4] https://mbed-tls.readthedocs.io/en/latest/security-advisories/mbedtls-security-advisory-2025-06-4/
[5] https://mbed-tls.readthedocs.io/en/latest/security-advisories/mbedtls-security-advisory-2025-06-5/
[6] https://mbed-tls.readthedocs.io/en/latest/security-advisories/mbedtls-security-advisory-2025-06-6/
[7] https://mbed-tls.readthedocs.io/en/latest/security-advisories/mbedtls-security-advisory-2025-06-7/

Signed-off-by: Antony Kolitsos <zeusomighty@hotmail.com>
Link: https://github.com/openwrt/openwrt/pull/19291
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 2c8a433cd2)
Link: https://github.com/openwrt/openwrt/pull/19324
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-10 20:49:17 +02:00
Hauke Mehrtens
f68c3e5057 openssl: Update to version 3.0.17
This release incorporates the following bug fixes and mitigations:

    Miscellaneous minor bug fixes.

Link: https://github.com/openwrt/openwrt/pull/19325
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-10 20:47:58 +02:00
cheng wang
0ec28e59a8 mediatek: add support for Cudy TR3000 256MB v1 flash version
This device is similar to the Cudy TR3000 v1 128MB version.
The difference is that the flash memory is 128mb and the other is 256mb

Hardware:
 - SoC: MediaTek MT7981B
 - CPU: 2x 1.3 GHz Cortex-A53
 - Flash: 256 MiB SPI NAND
 - RAM: 512 MiB
 - WLAN: 2.4 GHz, 5 GHz (MediaTek MT7976CN, 802.11ax)
 - Ethernet: 1x 10/100/1000/2500 Mbps RTL8221B WAN, 1x10/100/1000 Mbps MT7981 LAN
 - USB 3.0 port
 - Buttons: 1 Reset button, 1 slider button
 - LEDs: 1x Red, 1x White
 - Power: 5 VDC, 3 A

Installation:
Cudy has distributed intermediate firmware to make installation easier
1. Go to [Cudy CN official website](https://www.cudy.com/zh-cn/pages/download-center/tr3000-1-0) and download the intermediate firmware
2. Upgrade the intermediate firmware on the page
3. Visit the intermediate firmware 192.168.1.1 webpage and use the sysupgrade image to update

other:
If you fail to flash the device, you can use TFTP to flash back to the original firmware.
1. Ask Cudy CN official customer service for the original firmware
2. With the router off, press the RESET button. While the router is turning on, the button should continue to be pressed for at least 5 seconds.
3. A u-boot shell will automatically open.
4. Connect to LAN and set your IP to 192.168.1.88/24. Configure a TFTP server and an recovery.bin firmware file.

Signed-off-by: cheng wang <typedelta@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19167
(cherry picked from commit 594da824a4)
Link: https://github.com/openwrt/openwrt/pull/19348
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-10 20:45:19 +02:00
Valeriy Manzhos
32b0c89947 ath79: enable USB by default on hAP ac
Due to a bug, USB is not powered on after boot on hAP ac.
This prevents extroot configurations from working as overlayfs is mounted
before USB device can be powered on. This commit fixes this by enabling USB
in devicetree.

Related discussion links:
- https://forum.openwrt.org/t/usb-power-is-off-on-boot/229007

---

Extroot configuration requires the USB to be powered on before
preinit_main/80_mount_root. Probably the simplest approach is to enable
it in the devicetree. Another approach would be to add a script into
/lib/preinit that will power on USB via /sys/class/gpio/usb-power/value
E.g.
cat /lib/preinit/79_power_on_usb
do_power_on_usb(){
  echo '1' > /sys/class/gpio/usb-power/value
}
boot_hook_add preinit_main do_power_on_usb

Signed-off-by: Valeriy Manzhos <manzhos.va@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19149
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit f7dba4ebbc)
Link: https://github.com/openwrt/openwrt/pull/19334
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-08 09:41:44 +02:00
Dim Fish
5096c7624f mediatek: spinand: force update_cache_variants to use reset for Foresee NAND
Force update_cache_variantsvariants to use reset for Foresee NAND with bad blocks.

Tested on Xiaomi AX3000T + F35SQA001G with bad blocks and without bad blocks

Signed-off-by: Dim Fish <dimfish@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17963
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
(cherry picked from commit edc7cb9104)
[drop patch for linux kernel 6.12]
Fixes: https://github.com/openwrt/openwrt/issues/17962
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19297
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-06 17:35:16 +02:00
Tianling Shen
95c9f6e326 mediatek: add ubootmod layout for cudy tr3000 v1
This allows us to use the full size of nand, which increases ubi size
from 64M to 122.25M.

If you are at factory firmware, please refer commit 63b8d98dd0 ("mediatek: add support for Cudy TR3000 v1")
to boot into OpenWrt initramfs (stock layout).

Flash instructions:
1. Login into the device and backup everything, especially 'Factory' part.
1. Unlock mtd partitions:
   opkg update && opkg install kmod-mtd-rw
   insmod mtd-rw i_want_a_brick=1
3. Write new BL2 and FIP
   mtd write openwrt-mediatek-filogic-cudy_tr3000-v1-ubootmod-preloader.bin BL2
   mtd write openwrt-mediatek-filogic-cudy_tr3000-v1-ubootmod-bl31-uboot.fip FIP
4. Set static IP on your PC:
   IP 192.168.1.254/24, GW 192.168.1.1
5. Serve OpenWrt initramfs image using TFTP server.
6. Cut off the power and re-engage, wait for TFTP recovery to complete.
7. After OpenWrt has booted, perform sysupgrade.

Tested-by: Yangyu Chen <cyy@cyyself.name>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 6f8c58bfd8)
[sync uboot defconfigs with 24.10 branch, change apk to opkg]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/18945
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-06 17:17:39 +02:00
Chukun Pan
5889aae07a rockchip: backport PCIe MSI fixes for RK356x SoC
Backport GIC ITS support for RK356x SoC, which fixes long-standing
MSI/MSI-X bug. (Previously MSI-X could only work on one PCIe node)

e.g. [    7.250882] r8125 0002:01:00.0: no MSI/MSI-X. Back to INTx.

Tested on Radxa E25 with kmod-r8125-rss driver.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/18800
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 6b99c5d21e)
Link: https://github.com/openwrt/openwrt/pull/19272
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-06 17:03:31 +02:00
Chukun Pan
ccc61439a3 rockchip: replace RK356x RNG patch with upstream
Replace RK356x RNG patch with upstream version to
add the tag flag them as upstreamed.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/18800
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit cca80986b5)
Link: https://github.com/openwrt/openwrt/pull/19272
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-06 17:03:31 +02:00
Chukun Pan
6becf1877e rockchip: armv8: Refresh kernel config
Run 'make kernel_oldconfig' to get an up-to-date config.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/18800
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit e66437a1ea)
Link: https://github.com/openwrt/openwrt/pull/19272
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-06 17:03:31 +02:00
Thibaut VARÈNE
ad765d3cc4 mt76: fix system recovery routine for MT7915
These patches are part of an mt76 update in main branch.

Link: https://github.com/freifunk-gluon/gluon/pull/3436

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Link: https://github.com/openwrt/openwrt/pull/19239
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-06 16:53:42 +02:00
John Audia
f754de7e30 kernel: bump 6.6 to 6.6.95
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.95

Removed upstreamed:
 backport-6.6/201-v6.16-mips-Add-std-flag-specified.patch[1]
 mvebu/patches-6.6/0004-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch[2]
 mvebu/patches-6.6/0005-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch[3]
 mvebu/patches-6.6/0006-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch[4]
 mvebu/patches-6.6/0007-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch[5]
 gemini/patches-6.6/0005-net-ethernet-cortina-Use-TSO-also-on-common-TCP.patch [6]

Manually refreshed:
 bcm27xx/patches-6.6/950-0092-MMC-added-alternative-MMC-driver.patch
 bcm27xx/patches-6.6/950-0678-fbdev-Allow-client-to-request-a-particular-dev-fbN-n.patch [7]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=231f6a1de15b3f62eb8d6163a8b1bc5935025c69
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=ae48bc0b8be8786fd0ceab4b5a95c09b5aa93816
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=8a15a5438c5816a1003b88ce20f25ccc92909ee7
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=02c966a8869becb29282403540c88ba33e19c347
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=14a26f6692062a529b612420adb6c0b9290b25d3
6. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=a37888a435b0737128d2d9c6f67b8d608f83df7a
7. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=0909b2b49c4546a7a08c80f53d93736b63270827

Build system: x86/64
Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64
Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19248
(cherry picked from commit 1831966406)
Co-authored-by: Goetz Goerisch <ggoerisch@gmail.com>
Co-authored-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19265
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-06 14:51:08 +02:00
Kazuhiro Ito
4a18bb1056 x86: 64: Enable PCI MMCONFIG
Some devices can't boot since kernel 6.6 without PCI MMCONFIG.

Fixes: https://github.com/openwrt/openwrt/issues/18228
Fixes: https://forum.openwrt.org/t/openwrt-24-10-x86-64-boot-hangs-after-pci-nvme-initialization/229086
Link: https://github.com/openwrt/openwrt/pull/19256
Signed-off-by: Kazuhiro Ito <kzhr@d1.dion.ne.jp>
Link: https://github.com/openwrt/openwrt/pull/19262
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-30 11:58:32 +02:00
Marius Durbaca
e876f7bc62 mediatek: add support for Zbtlink ZBT-Z8102AX v2
Specifications:
SoC: MediaTek MT7981B
RAM: 1024MiB
Flash: SPI-NAND 128 MiB
Switch: 1 WAN, 4 LAN (Gigabit)
USB: two M.2 slots for 5G modems via USB 3.0 hub, external USB 3.0 port
Buttons: Reset, Mesh
Power: DC 12V 1A
WiFi: MT7976CN
UART: 115200n8
UART Layout:
VCC-RX-TX-GND

Installation:
1. Power down the router and hold in the Reset button.
2. While holding in the button power up the router again.
3. Hold the button in for 10 seconds and then release.
4. Use your browser to go to 192.168.1.1
5. If you see a GUI that is for flashing firmware then you have the V2 model.
	If there is no GUI and the router continues to boot up normally
	you have the V1 model.
6. Now use the V2 sysugrade file.

Note: Recovery GUI it can be used to recover from an incorrect firmware flash.

Based on patches adding support for this device by Yannick Chabanois (openmptcprouter)
and Dairyman (ofmodemsandmen)

Signed-off-by: Marius Durbaca <mariusd84@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18514
(cherry picked from commit c908fc7d95)
Link: https://github.com/openwrt/openwrt/pull/19216
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-29 15:24:37 +02:00
Hauke Mehrtens
aaee6bfb06 kernel: Add missing config option
This broke the armsr/armv8 build.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Link: https://github.com/openwrt/openwrt/pull/19200
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit a944a6d6b1)
2025-06-29 15:21:25 +02:00
John Audia
2f40059708 kernel: bump 6.6 to 6.6.94
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.94

Removed upstreamed:
	generic/backport-6.6/421-01-v6.16-spi-bcm63xx-spi-fix-shared-reset.patch[1]
	generic/backport-6.6/421-02-v6.16-spi-bcm63xx-hsspi-fix-shared-reset.patch[2]
	generic/backport-6.6/725-01-v6.16-net-dsa-tag_brcm-legacy-fix-pskb_may_pull-length.patch[3]
	mvebu/patches-6.6/0001-v6.16-pinctrl-armada-37xx-use-correct-OUTPUT_VAL-register-.patch[4]
	mvebu/patches-6.6/0002-v6.16-pinctrl-armada-37xx-set-GPIO-output-value-before-set.patch[5]

Added new back-port:
	generic/backport-6.6/001-powerpc-kernel-Fix-pcc_save_regs-inclusion.patch[6]

Manually refresh:
	bcm27xx/patches-6.6/950-0624-drm-vc4-tests-Drop-drm-parameter-for-vc4_find_crtc_f.patch

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=29abb7fc82443bee273ba4623ce319bf7ba1d43d
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=59d5f3134b5c265df233b7f385bbe718191411be
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=2e02edb66427e3b8752e1f3dd3cfc1bef3f2357b
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=39ed85ae485d991ffb24d25629a679c0b22e2d8f
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=8f0f45a312151a52aae920a091ea4b454ac97caf
6. Addresses a build failure for pcc

Build system: x86/64
Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64
Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19183
(cherry picked from commit 836a4cc6d3)
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19209
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-29 15:19:56 +02:00
Tim Harvey
009aad8a02 imx: venice: disable PCI AER
As a workaround to an issue causing hang during PCI enumeration on
imx8mp with a specific PCI switch, disable PCI AER.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/19218
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-25 21:02:35 +02:00
Tim Harvey
fa34d9c511 imx: venice: add dt overlay support
Enable DT overlay support:
 - add dt-overlay to board features
 - add DEVICE_DTS_OVERLAYS
 - update the boot script to resize before applying each overlay

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/19218
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-25 21:02:35 +02:00
Tim Harvey
7bf3b29a56 imx: kernel: backport additional upstream patches
Backport some additional upstream patches to resolves some issues when using
dt overlays on gw72xx-0x and gw73xx-0x:
 - 6.13-arm64-dts-imx8mm-venice-gw73xx-remove-compatible-in-overlay-files.patch
 - 6.12-arm64-dts-imx8mm-venice-gw72xx-remove-compatible-in-overlay-files.patch

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/19218
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-25 21:02:35 +02:00
Hauke Mehrtens
5ff7149a08 OpenWrt v24.10.2: revert to branch defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-23 23:32:10 +02:00
Hauke Mehrtens
bb59922007 OpenWrt v24.10.2: adjust config defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-23 23:32:07 +02:00
Mario Andrés Pérez
d9340319c6 ramips: mt7621: include uboot-envtools in some missed devices
Add uboot-envtools (removing -uboot-envtools) to devices which were
missed in the commit 79bd017 ("ramips: mt7621: add uboot-envtools to
all devices")

- Mi Router 3G
- Mi Router AC2100

While at here remove two redundant entries from devices which were added
just after the referenced commit 79bd017 and did not account for the
new DEFAULT_PACKAGES member:

- SNR-CPE-ME1
- SNR-CPE-ME2-SFP

Fixes: 79bd017 ("ramips: mt7621: add uboot-envtools to all devices")
Fixes: https://github.com/openwrt/openwrt/issues/18960

Signed-off-by: Mario Andrés Pérez <mapb_@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19012
(cherry picked from commit 6dffaf9316)
Link: https://github.com/openwrt/openwrt/pull/19213
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-23 22:40:36 +02:00
Christian Schmidbauer
63064db765 ipq806x: fix Extreme Networks AP3935 LAN/WAN ports
This commit changes LAN1 to be WAN and LAN2 to be LAN, like all other
dual port Extreme Networks devices.

This partially reverts commit 84a489b7cf

Signed-off-by: Christian Schmidbauer <github@grische.xyz>
(cherry picked from commit 710ec82367)
2025-06-22 13:40:28 +02:00
Christian Schmidbauer
394697b7e4 ipq806x: fix Extreme Networks AP3935 LAN LED order
Fixes LAN LED "1" to show activity of LAN1 and LAN LED "2" to show
activity of LAN2, not vice versa.

Signed-off-by: Christian Schmidbauer <github@grische.xyz>
(cherry picked from commit f02e614f50)
2025-06-22 13:40:28 +02:00
Hauke Mehrtens
05d243637a kernel: Fix IPv6 UDP fragmentation regression
Fixes a IPv6 UDP fragmentation regression introduced in v6.6.93.

Fixes: https://github.com/openwrt/openwrt/issues/19198
Link: https://github.com/openwrt/openwrt/pull/19199
(cherry picked from commit f62c33bc4a)
Link: https://github.com/openwrt/openwrt/pull/19201
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-22 13:36:30 +02:00
David Bauer
eee14dd6db wifi-scripts: add missing mesh_nolearn
Add the missing mesh_nolearn option in order to make it work.

Signed-off-by: David Bauer <mail@david-bauer.net>
2025-06-20 23:51:20 +02:00
Felix Fietkau
d848c2790d hostapd: fix generating own neighbor report for dynamically added/changed interfaces
hostapd_neighbor_set_own_report is normally called from interface setup only.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 9850052190)
2025-06-20 14:58:29 +02:00
Felix Fietkau
ba25b41913 hostapd: fix dealing with mac address changes for the primary BSS
Ensure that hapd->own_addr is set properly, since hostapd_setup_bss
only handles it for secondary BSS interfaces

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 3ebf110711)
2025-06-20 14:58:28 +02:00
Josef Schlehofer
989b12999c perf: disable slang support
libs/slang2 is getting picked up from the packages feed, if the slang2
is compiled first and then if you try to compile perf, it fails
due to unmet dependency.

Fixes:
Package perf is missing dependencies for the following libraries:
libslang.so.2

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19123
(cherry picked from commit 764576eb5b)
Link: https://github.com/openwrt/openwrt/pull/19166
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-17 23:36:56 +02:00
Roland Reinl
f50551dd18 mediatek: filogic: add support for Cudy WR3000E v1
The WR3000E has the same board layout as the WR3000S. Differences:
- Different flash chip
- LEDs with red/blue colour intead of white

Hardware:
- MediaTek MT7981 WiSoC
- 256MB DDR3 RAM
- 128MB SPI-NAND (F50L1G41LB)
- MediaTek MT7981 2x2 DBDC 802.11ax 2T2R (2.4 / 5)

MAC Addresses in OEM firmware:
- There is one on the label, e.g. AA:BB:CC:DD:EE:FF
- WLAN (2.4G) uses the same as on the label
- WLAN (5G) is the one on the label but
  - first byte (e.g. AA) + 2
  - fourth byte (e.g. DD) - 0x40
- WAN is the one on the label + 1
- LAN is the one on the label

MAC Addresses in OpenWrt:
- Same handling as in WR3000s is used

GPIO:
- 2 Buttons (all low active):
  - WPS on GPIO 0
  - Reset on GPIO 1
- 6 LEDs (all low active):
  - Power: Blue on GPIO 8, no red LED
  - WPS: Blue on GPIO 10, Red on GPIO 4
  - Internet: Blue on GPIO 11, no red LED
  - LAN: Blue on GPIO 9, Red on GPIO 5
  - WiFi 2.4G: Blue on GPIO 6, no red LED
  - WiFi 5G: Blue on GPIO 7, no red LED

Disassembly:
- Remove the 4 screws at the bottom of the case
- Cover is clipped to the bottom part of the case with clips in the front and the back

UART:
- UART pins are accessible on the bottom of the board
- The connector with the square shape is TX
- Pins: [ ] TX, ( ) RX, ( ) GND, ( ) VCC
- Settings: 115200 8N1 3.3V

Migration to OpenWrt via OEM firmware:
- There should be a migration image available from Cudy as soon as there is official OpenWrt support
- Download the migration image via OEM web interface
- After flashing, OpenWrt is accessible via 192.168.1.1
- Flash the official OpenWrt image

Migration to OpenWrt using TFTP:
- Connect UART as described above
- Press the reset button while powering on the device
- U-Boot will now try to load a recovery.bin via TFTP, this must be ignored
- After detecting a timeout, the U-Boot console is available via UART
- Set up a TFTP server on IP 192.168.1.88 and connect it to one of the LAN ports
- Provide the initramfs image via TFTP as cudy3000e.bin
- Run the following command in U-Boot: tftpboot 0x46000000 cudy3000e.bin; bootm 0x46000000
- OpenWrt initramfs image is now booting and accessible via 192.168.1.1
- Flash the sysupgrade image

Revert back to OEM:
- Set up a TFTP server on IP 192.168.1.88 and connect it to one of the LAN ports
- Provide the Cudy firmware via TFTP as recovery.bin
- Press the reset button while powering on the device
- Recovery process will start now
- After recovery is done, the OEM firmware is available at 192.168.10.1 again

Signed-off-by: Roland Reinl <reinlroland+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18609
(cherry picked from commit 300335f1ff)
Link: https://github.com/openwrt/openwrt/pull/19063
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-17 23:32:18 +02:00
Roland Reinl
0254415769 mediatek: Create common DTSI for WR3000H and WR3000S
This change moves common elements of the WR3000H and the WR3000S to mt7981b-cudy-wr3000-nand.dtsi.
This will simplify adding of new similar devices, for exapmle WR3000E.

Signed-off-by: Roland Reinl <reinlroland+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18619
(cherry picked from commit 54febbc55b)
Link: https://github.com/openwrt/openwrt/pull/19124
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-17 23:06:01 +02:00
Juan Pedro Paredes Caballero
72529db50e mediatek: filogic: fix 2.5G phy compatible for WR3000H
Following the initial support of the Cudy WR3000H with PHY C22 for the 2.5G WAN
interface, several improvements fixing issues with RealTek RTL8221B PHYs have
been merged.
Therefore we can now bring the DT in line with other equipment and declare the
2.5G WAN PHY as C45.

Fixes: 9d66b8b ("mediatek: filogic: Add support for cudy wr3000h")
Signed-off-by: Juan Pedro Paredes Caballero <juanpedro.paredes@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17739
[reword commit description]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit dcc5587374)
Link: https://github.com/openwrt/openwrt/pull/19124
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-17 23:06:01 +02:00
Hauke Mehrtens
197c6ee66c mediatek: filogic: Cudy WR3000H: Fix SUPPORTED_DEVICES
Fix the name used for the transition image from Cudy.
This should make it possible to use the cudy transition image.

Fixes: 9d66b8b312 ("mediatek: filogic: Add support for cudy wr3000h")
Link: https://github.com/openwrt/openwrt/pull/17652
(cherry picked from commit 0f8a5a5fd6)
Link: https://github.com/openwrt/openwrt/pull/19124
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-17 23:06:01 +02:00
Juan Pedro Paredes Caballero
fdbbb8415f mediatek: filogic: Add support for cudy wr3000h
The manufacturer Cudy usually releases signed openwrt firmware, to
facilitate the migration from the proprietary version to the official
versions of openwrt. In contact with the manufacturer tells me that only
releases the firmware of the WR3000H if and only if
there is an official version. With this proposal I pretend to have an
initial operative version so that they do their part, and facilitate to
the users the possibility of using openwrt. In the present state, it is
only possible to use this firmware by uploading and installing it with
UART connection.

AX3000 2.5G Dual Band Wi-Fi 6 Mesh Router (WR3000H)

Hardware
--------
MediaTek MT7981 WiSoC
256MB DDR3 RAM
128MB SPI-NAND (XMC XM25QH128C)
MediaTek MT7981 2x2 DBDC 802.11ax 2T2R (2.4 / 5)
4 LAN MediaTek MT7531 PHY
1 WAN RTL8221B-VB-CG 2.5Gbps PHY (C22)
2 Radios MT7976CN
UART: 115200 8N1 3.3V

MAC:
LAN MAC: label mac
WAN MAC: label mac + 1
2.4G MAC: label mac
5G MAC: label mac + 1 with LA bit set

Installation
------------

1. Connect to the serial port as described in the "Hardware" section.

2. Power on the device + press reset pin. Keep pressing reset pin to
   enter the U-Boot shell (The recovery.bin image load process must fail).

3. Download the OpenWrt initramfs image. Place it on an TFTP server
   connected to the Cudy LAN ports. Make sure the server is reachable at
   192.168.1.88. Rename the image to "cudy3000h.bin"

4. Download and boot the OpenWrt initramfs image.

   $ tftpboot 0x46000000 cudy3000h.bin; bootm 0x46000000

5. IMPORTANT: Make backup from original firmware. System -> Backup
   /Flash Firmware -> Save mtdblock contents. All mtdblock one by one,
keep unaltered (BL2, u-boot-env, Factory, bdinfo, FIP, and ubi).

6. Transfer the OpenWrt sysupgrade image to the device using scp.
   Install with sysupgrade.

Warning for BL2 and U-BOOT developers
-------------------------------------
The nand partition layout from vendor is slightly diferent from "standard".
The FIP partition starts at 0x3c0000 be carefull with BL2 to BL31.
The UBI partition start at 0x5c0000 be carefull.
DO NOT OVERWRITE bdinfo partition it contains hardware MAC definition
Layout is start-end (not start size)
  - 0x000000000000-0x000007800000 : "nmbm0"
          - 0x000000000000-0x000000100000 : "bl2"
          - 0x000000100000-0x000000180000 : "u-boot-env"
          - 0x000000180000-0x000000380000 : "factory"
          - 0x000000380000-0x0000003c0000 : "bdinfo"
          - 0x0000003c0000-0x0000005c0000 : "fip"
          - 0x0000005c0000-0x0000045c0000 : "ubi"
ALLWAYS for U-BOOT operations check this
setenv mtdids nmbm0=nmbm0
setenv mtdparts nmbm0:1024k(bl2),512k(u-boot-env),2048k(factory),256k(bdinfo),2048k(fip),65536k(ubi)

Signed-off-by: Juan Pedro Paredes Caballero <juanpedro.paredes@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17458
(cherry picked from commit 9d66b8b312)
Link: https://github.com/openwrt/openwrt/pull/19124
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-17 23:06:01 +02:00
George Sapkin
a52a1387e0 tools/expat: bump to 2.7.1 to fix several CVEs
Addresses CVE-2024-8176 and CVE-2024-50602.

Changelog: https://github.com/libexpat/libexpat/blob/R_2_7_1/expat/Changes
Fixes: https://github.com/openwrt/packages/issues/26255
Fixes: https://github.com/advisories/GHSA-9hcv-xw76-m4h6
Fixes: https://github.com/advisories/GHSA-79wf-qgrg-2p6c
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/18421
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 14a88ba520)
Link: https://github.com/openwrt/openwrt/pull/19079
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-17 12:03:04 +02:00
Russell Senior
d45e94264f tools/patch: bump version to v2.8
drop upstream patches

  $ git log --no-merges --oneline v2.7.6..v2.8
  48ceda8 Version 2.8
  b3d0c93 Regression in commit abe92e8010ab affecting MariaDB tests
  29fced6 Count traditional diff pattern lines correctly
  b5d2124 patch: fix --no-backup-if-mismatch regression
  86ac7e2 Fix dodgy assert with side-effects in insert_cached_dirfd
  7d87652 Declare an expected test failure on Haiku.
  86baf97 build: update gnulib submodule to latest
  1ba2c1b Fix two test failures on Haiku.
  1da6bf8 Check for newlines only when creating a file name
  30ee610 Gnulib renamed some modules
  6dbc381 maint: update bootstrap from gnulib
  05ac924 build: update gnulib submodule to latest
  95e0092 maint: make update-copyright
  5bac274 Set --no-backup-if-mismatch when in --posix mode
  910fecf Add missing feature tests to the test suite
  be8b3c6 Disable release-prep
  c61485b Fix "make release" to handle alpha releases
  499916f Add announce-gen module for "make release"
  adb1ebc Pacify gcc -fsanitize=address
  6bdae94 Fix memory leak when malformed unidiff patch
  72a146c Port to clang address sanitizer
  e2e6820 Refactor argc+argv processing
  606c091 Omit needless get_some_switches code
  ee3cc40 Revert "Remove obsolete require_gnu_diff function"
  8cae4fc Remove obsolete require_gnu_diff function
  164b529 savebuf can return a null pointer
  91c1e4f Spelling fixes
  a03e1ba Port other reject-format test to non-GNU diff
  9ba5eb0 Don’t be fooled by NUL bytes in diff directives
  79dd5e7 Don’t be fooled by "\000" in file name
  8492a6a Port to quasi-GNU diff
  f6f2c6f In previous patch, make w_q static
  0525681 Pacify -Wunterminated-string-initialization
  301411d Spelling fixes
  4615206 Remove double semicolon
  923e0ef Prefer angle bracket headers
  5d17ca0 Update more old copyright notices
  5f4edd3 Simplify memory allocation of files to delete
  802511c Report patch read errors more immediately
  a93b50d Port fflush usage to OpenBSD 7.5
  55e224b Update old copyright notices
  33a7fd8 Fix gl_gcc_warnings typo in ‘configure’
  2313b37 build: update gnulib submodule to latest
  37fec39 Remove some dependencies no longer needed
  cc87173 Update NEWS as per recent changes
  7887622 Update POSIX citations
  18f4dd6 Use “Gruenbacher” in international contexts
  638675c Adjust libs to match recent Gnulib
  53400a1 Pacify clang -Wbitwise-conditional-parentheses
  e8e1bcb Remove “support” for nested critical sections
  b963510 Simplify critical section code in util fns
  85949fb Shrink critical sections
  448ff9b Defer signals by hand with sigatomic_t
  b95a603 output_file_later avoid a malloc+free pair
  2663228 Defend against closed stdin/stdout/stderr
  fc77964 Stop using Gnulib ‘execute’ module
  470699c Move defer_signals up
  f696e4e Make sigs, NUM_SIGS local
  4d3a4ab Rename block_signals
  b3bb925 Trade a bit of space for time in parse_c_string
  070d859 Allocate first patchbuf statically
  f46a90f Use bigger buffer size by default
  2e64cfd Preinitialize fatal_act.sa_hander
  45de0d9 Prefer EXIT_SUCCESS etc. to literal integers
  82c4940 Fix some signal handling races
  eceea61 Fix --set-utc TZ setting
  9c55d3f Improve logic for when rename removes source
  61c72f0 Fix signal race when renaming file
  705c9bc Simplify traverse_another_path via last_component
  77f21a6 Stop using Gnulib dirname module
  fe8ffd9 Fix implausible overflow when reading symlinks
  5e84bda Access checks should use effective, not real
  8d4ca49 Don’t assume AT_FDCWD != -1
  fe5d4a0 Copy input to output attributes via fd if possible
  ca4c431 Simplify timestamp epoch checking
  0ad4347 Check for ftello failures
  c49a16d Remove format_linenum
  22efdee Fix "with multiple words" line number
  5a70a1b Drop Plan B
  c0d465f Prefer ximemdup0 to xmemdup0
  b91aab2 Refactor ifetch API
  55c8a5c Do not attempt huge I/Os
  e0e121e Use outfd when setting file attributes
  241e57e Don’t assume Linux-like S_IFREG
  0f8c628 Use STDOUT_FILENO etc
  f2c3676 Fix unlikely glitch with ed diffs
  cec6407 Use fds to copy attrs in create_backup_copy
  6b7b01b Be more careful about (time_t) -1
  0433553 X == -1 → X < 0
  0a66dee Let set_file_attributes use fds not names
  36ff2c9 Port to narrow unsigned uid_t
  3951496 Check for output errors more systematically
  6429630 Report input error right away
  03cb187 Simplify EOF testing
  cc7cde7 Prefer other types to ‘int’
  4c6650b Detect unlikely integer overflow in size calcs
  abe92e8 Prefer idx_t, ptrdiff_t to lin
  30449e2 Fix compatibility issue with blanks in patches
  9228a8c pch_swap return type cleanup
  c1c438d Fix unlikely int overflow in hunk counts
  5d3f41f Use char for char in plan_a
  fb056f2 Cache cwd_is_root dev, ino
  84b5f34 Avoid ‘unsigned’ in safe.c
  d2e113e Simplify get_sha1
  f73718b Avoid casts in patch.c
  79eef3e Prefer idx_t in util.c
  11588d0 Prefer idx_t in pch.c
  e16037d Prefer idx_t in patch.c
  388926f Prefer idx_t in list.h
  3582fdb Prefer idx_t in inp.c
  4a47c00 build: update gnulib submodule to latest
  4f8c4b8 Don’t limit strip counts etc. to INT_MAX
  0a810b6 Fix unlikely integer overflows in patch.c
  bac3b6d Fix unlikely integer overflows in pch.c
  8fb784b Fix unlikely integer overflows in inp.c
  e10f3ca Promote minmax.h to common.h
  57e2165 Avoid some memory allocation by not using ‘const’
  eb18b39 Remove unnecessary char * casts in inp.c
  d60cb72 Pacify gcc -Wunused-parameter when !USE_XATTR
  05ef886 Pacify gcc -Wunused-parameter when !USE_XATTR
  1f8d192 maint: stop using alloca
  ba92722 Don’t assume O_RDONLY == 0
  0f98e03 Avoid syscall when nested signal block
  1235ccc Add signal comment
  43ee674 build: update gnulib submodule to latest
  e381947 Update NEWS, README-prereq
  2c2a83b Omit _Noreturn when easy
  a13c2ea Replace __attribute__ with attribute.h
  6eb2d13 Switch from ctype.h to c-ctype.h
  d1a6847 Simplify warning configuration
  d6631b3 Prefer ATTRIBUTE_* to _GL_ATTRIBUTE_*
  bc6899d Pacify gcc -Wno-unused-parameter
  da25985 Improve ‘git diff’ output if desired
  248ef13 Prefer strerror to perror
  6cb321a A bit more long-string fixing
  47bc09d Prefer nullptr to NULL
  7608746 More fixing of printing of very long strings
  323da0d Don’t assume string sizes fit in int when printing
  53d1014 Avoid fprintf INT_MAX overflow when merging
  59681c8 Avoid sprintf INT_MAX overflow
  4278b91 Reject output file names containing '\n'
  34b45bc Update man page a bit.
  d18c05d Update copyright notices
  af828e5 Fix some races involving signals
  b3a6c95 Don’t attempt to remove files we didn’t create
  9abc949 Omit goto in try_safe_open
  90e62d5 Pacify clang re obsolete O_CREAT test
  2b87c1e Allow nested block/unblock of signals
  7aa1c3b Adjust to new Gnulib bootstrap post imports
  99c0c0b maint: remove generated file lib/Makefile.am
  1c087d6 Rely on Gnulib inttypes module
  7214f8d Update main locals more consistently
  6785b2c Use struct outfile * in function args
  72d7ed0 Refactor temp names into struct
  abf6fb1 Simplify by using Gnulib sigaction
  d3816ac Avoid unnecessary freeing in output_files
  346d3ac Clean up cleanup
  ff2317b Port better to GNU/Hurd
  c2d9792 Don’t say empty backups are unreadable
  8c27a03 Spelling fixes
  d46d729 Change manywarnings usage to be more like coreutils
  924698b Pacify clang, which dislikes n + "y"
  8939519 Pacify -Wstrict-overflow in pch.c
  531cc2b Pacify -Wsuggest-attribute=format in util.c
  ff13fea Port to non-VLA C compilers
  3d5c0d1 Rename vars to pacify gcc -Wshadow
  56788ce Stop including stdbool.h
  c10da77 Recommend 64-bit time_t on 32-bit platforms
  1e21767 Remove pch_sha1
  39005cf Move skip_spaces
  755712d Remove pch_timestamp function
  04f0eeb Prefer extern inline to static inline for list.h
  f06c123 maint: pacify gcc 14 -Wcast-align
  aab6e7b maint: pacify -Wanalyzer-null-argument
  d1d32c9 maint: work around GCC bug 109839
  7575694 maint: pacify gcc -Wmissing-variable-declarations
  8f78b09 maint: pacify gcc -Winline
  bb841fd maint: port _FORTIFY_SOURCE to Ubuntu
  4887683 maint: assume STDC_HEADERS
  5b8ecde maint: spruce up our .m4 files a bit
  009a424 maint: omit obsolete macro calls
  299167f maint: simplify .gitignore
  3ec44a4 build: update gnulib submodule to latest
  68cb529 build: update gnulib submodule to latest
  f144b35 build: Enable the 'subdir-objects' Automake option.
  faafc79 build: update gnulib submodule to latest
  c835ecc Pass the correct stat to backup files
  24f81be maint: modernize README-{hacking,prereq}
  7623b2d Fix test for presence of BASH_LINENO[0]
  0993940 gnulib: update to latest
  78ed9de Add missing-section tests to context-format test case
  76e7758 Fix failed assertion 'outstate->after_newline'
  15b158d Avoid invalid memory access in context format diffs
  dce4683 Don't follow symlinks unless --follow-symlinks is given
  61d7788 Don't crash when RLIMIT_NOFILE is set to RLIM_INFINITY
  b7b028a Abort when cleaning up fails
  a5b442c Skip "ed" test when the ed utility is not installed
  2b584ae Improve support for memory leak detection
  9c98635 Fix swapping fake lines in pch_swap
  ff81775 Make the (debug & 2) output more useful
  369dccc Don't leak temporary file on failed multi-file ed-style patch
  1959988 Don't leak temporary file on failed ed-style patch
  f322a7e Request 'alloca' module from gnulib.
  458ac51 Fix 'ed-style' test failure.
  1e9104c Fix check of return value of fwrite().
  ae81be0 maint: avoid warnings from GCC8
  2a32bf0 Minor cleanups in do_ed_script
  ff1d3a6 Use gnulib execute module
  3fcd042 Invoke ed directly instead of using the shell
  123eaff Fix arbitrary command execution in ed-style patches (CVE-2018-1000156)
  b5a91a0 Allow input files to be missing for ed-style patches
  f290f48 Fix segfault with mangled rename patch
  074e239 Test suite: fix Korn shell incompatibility
  f6bc5b1 Test suite compatibility fixes
  3bbebbb Avoid set_file_attributes sign conversion warnings

Signed-off-by: Russell Senior <russell@personaltelco.net>
Link: https://github.com/openwrt/openwrt/pull/18479
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit f45df2167b)
2025-06-17 11:02:42 +02:00
Tony Ambardar
976b09707e strace: Update to version 6.12
Release Notes:
https://github.com/strace/strace/releases/tag/v6.12

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/17457
Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit 389dd8dcf6)
Link: https://github.com/openwrt/openwrt/pull/19099
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-16 15:48:00 +02:00
Thomas Richard
04a7d672d7 arm-trusted-firmware-stm32: bump to v2.10.17
Changelog: https://trustedfirmware-a.readthedocs.io/en/lts-v2.10.17/change-log.html

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/19076
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-16 15:35:49 +02:00
Stijn Tintel
a4f56aca81 include/trusted-firmware-a.mk: support LTS releases
TF-A LTS releases have an lts- prefix in their version tag. Introduce a
PKG_LTS variable to support these.

As the non-LTS tarbals do not contain the version prefix in the
directory, we need different PKG_BUILD_DIR for each variant:

➜ tar --list --file dl/trusted-firmware-a-v2.12.tar.gz  | head -n1
trusted-firmware-a-2.12/
➜ tar --list --file dl/trusted-firmware-a-lts-v2.12.1.tar.gz  | head -n1
trusted-firmware-a-lts-v2.12.1/

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
cherry picked from commit 06c4e8a262
Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/19076
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-16 15:35:49 +02:00
Mateusz Jończyk
926314ab12 ramips/mt7621: mark EEE as broken in devicetree
Multiple users have reported a regression [1] in OpenWRT 24.10 with the
ramips/mt7621 target, which has the MT7530 PHYs: the Ethernet link is
periodically going down for a brief period of time:

        mt7530-mdio mdio-bus:1f lan1: Link is Down
        br-lan: port 1(lan1) entered disabled state
        mt7530-mdio mdio-bus:1f lan1: Link is Up - 1Gbps/Full - flow control rx/tx

The symptoms stop after disabling EEE and it was reported by Mediatek in
2021 that EEE is unstable for the MT7530 PHYs [2]:

> EEE of the 10-year-old MT7530 internal gephy has many IOT problems, so
> it is recommended to disable its EEE.

EEE is enabled by default for these devices in OpenWRT 24.10 whereas in the
previous version (OpenWRT 23.05, Linux 5.15) it was not. It was determined
that in Linux 6.6, the PHY driver tries to disable EEE in
mtk_gephy_config_init() in drivers/net/phy/mediatek-ge.c, but this is later
overridden by a subsequent execution of the genphy_c45_write_eee_adv()
function, which enables every EEE mode supported.

The best way forward for now seems to be to mark EEE as broken directly in
the devicetree, which affects the genphy_c45_write_eee_adv() function.

There are some devices, like GnuBee GB-PC2, that define additional PHYs,
for example ethernet-phy@5 or ethernet-phy@7. As reported by Chester A.
Unal, these are not MT7530 PHYs and they are not affected.

This would need to be cherrypicked for the OpenWRT 24.10 branch.

[1] https://github.com/openwrt/openwrt/issues/17351

[2] https://lore.kernel.org/all/0adde34f936a2dafca40b06b408d82afe0852327.camel@mediatek.com/

Tested-by: Darren Tucker
Signed-off-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
Closes: https://github.com/openwrt/openwrt/issues/17351
Link: https://github.com/openwrt/openwrt/pull/18585
(cherry picked from commit b7fa9d92ae)
Signed-off-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
Tested-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
Link: https://github.com/openwrt/openwrt/pull/19150
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-16 15:28:15 +02:00
Nick Hainke
26c2ff9e5d libxml2: update to 2.13.6
Release Notes:
https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.13.5
https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.13.6

Fixes: CVE-2025-24928 CVE-2024-56171

Link: https://github.com/openwrt/openwrt/pull/18194
Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit fe47089878)
Link: https://github.com/openwrt/openwrt/pull/19122
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-15 14:48:49 +02:00
Robert Marko
09915e64a6 netifd: update to Git HEAD (2025-05-23)
61ae5732adea iprule: amend ipproto netlink nla_put_u32 to nla_put_u8
d610d68c71b8 device: add support for configuring vrf
a1b6386a20a6 device: fix bonding primary port selection
e8bbf246ce2e system-linux: fix sysfs name for all_ports_active flag
723c699e84f4 Restore disable_ipv6 sysctl after removing a device from bridge or bond
d476e18e8d43 iprule: resolve ipproto by name
7901e66c5f27 netifd: iprule add sport and dport

Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 15c2ca0a83)
Link: https://github.com/openwrt/openwrt/pull/19125
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-15 13:59:05 +02:00
Antonio Flores
963943787d rockchip: fix the SD card detection on NanoPi R6C/R6S
This patch backport a fix for the SD card detection on NanoPi R6c/R6S
from upstream commit 95147bb42b

Signed-off-by: Antonio Flores <antflores627@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18553
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 5c83301107)
Link: https://github.com/openwrt/openwrt/pull/19138
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-15 13:55:20 +02:00
John Audia
4b8881cee9 ipq806x: config-6.6: add new option
6.6.93 introduced new config option[1]

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.93&id=fba6e5d44fb8df6bdadb1e90d2ddca715462248f

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19026
Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit a2eaadeed2)
Link: https://github.com/openwrt/openwrt/pull/19113
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-15 13:37:46 +02:00
John Audia
ff393cbe9c ipq40xx: config-6.6: add new option
6.6.93 introduced new config option[1]

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.93&id=fba6e5d44fb8df6bdadb1e90d2ddca715462248f

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19026
Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit 45e53284e6)
Link: https://github.com/openwrt/openwrt/pull/19113
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-15 13:37:46 +02:00
John Audia
7d620f83e3 kernel: bump 6.6 to 6.6.93
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.93

Removed upstreamed:
	backport-6.6/780-51-v6.15-r8169-don-t-scan-PHY-addresses-0.patch[1]
Additionally removed during backporting to 24.10:
        platform/950-0423-media-i2c-imx219-Correct-the-minimum-vblanking-value.patch [2]
        platform/950-1550-drm-v3d-Add-clock-handling.patch [3]

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.93&id=961ee132104b09e054308e53d8ab4a2386a21904
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.93&id=0b9d2468c3d88c924f505e950c4de74ace09795c
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.93&id=9ef9ecabc6b559a0cf8603696997625087791a53

All other patches automatically rebased.

Build system: x86/64
Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64
Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19026
Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit a878dd24e7)
Co-authored-by: Goetz Goerisch <ggoerisch@gmail.com>
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19113
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-15 13:37:46 +02:00
Nick Hainke
79f8461b78 ipq-wifi: add missing dependency on TARGET_ath79
A previous commit backported the ipq-wifi update to fix support for the
TP-Link Archer C6 v2 by adding the device to the package. However, it
missed adding the required TARGET_ath79 dependency, causing the
ipq-tplink_archer-c6-v2 build to fail.

The dependency was previously added in commit 4990ce613b ("ipq-wifi:
update to 2024-02-17") when several ath79 devices were introduced.
However, since this backport only fixes support for the Archer C6 v2, it
is not feasible to backport all related changes. Therefore, this commit
adds only the missing dependency to resolve the build issue without
pulling in unrelated updates.

Fixes: 0c43acc349 ("ipq-wifi: update to Git HEAD (2025-05-30)")
Signed-off-by: Nick Hainke <vincent@systemli.org>
Link: https://github.com/openwrt/openwrt/pull/19120
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-13 14:48:53 +02:00
Felix Fietkau
c45c2f3c1c ucode: ubus: fix use-after-free on deferred request reply() method
Hold a reference to the defer resource as long as it is still needed

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 87bfde67f2)
2025-06-12 14:33:54 +02:00
Felix Fietkau
0ea2a93fc7 ucode: update to Git HEAD (2025-05-11)
567207a9bf16 fs: implement fileno() on directory handles
eb1d93235509 fs: support passing directory handle or fd in chdir()
38a2254337f1 build: detect whether toolchain employs default source fortification
6eddfc9dff17 resolv: fix fd leak in send_queries
3d36856b2dc5 uci: fix memory leak on cursor() error
aafde95f1ecf uci: add cursor() flags argument
d8cebc5a6bfd Revert "WIP: lib: support map() over objects"
2599cf80736b zlib: incorporate latest PR changes
830f316a7e49 socker: let sock.peercred() clear error on success
4cbac141406e types: rename u64_to_constant flag to ext_flag
d802fe5da5cd types: add support for resources with embedded data/values
71b4fdc6f60b types: add support for setting resource persistent flag
141f799eba08 uloop: use container_of instead of direct pointer casts
1396f8f2988d uloop: use uc_fn_thisval
9a121fc7440c uloop: drop object_registry
11b804d97086 socket: do not clear last_error in socket.error()
d5b3a9dc1091 socket: add strerror() method

Fixes: https://github.com/jow-/ucode/issues/285
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 2a9316fbfb)
2025-06-12 14:33:54 +02:00
Felix Fietkau
7dd96329ef ucode: add fix for double registry clear on channel disconnect
Avoid clobbering registry items of unrelated connections.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit eaab68be92)
2025-06-12 14:33:54 +02:00
Felix Fietkau
9d7aa9abad ucode: update to Git HEAD (2025-03-24)
2824982da336 ubus: fix broken uc_ubus_defer()

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 2ced0e59a4)
2025-06-12 14:33:54 +02:00
Felix Fietkau
f3ee7c9e14 ucode: update to Git HEAD (2025-03-17)
9d94d54ed1a3 uci: implement cursor.list_append() and cursor.list_remove()
a5a299075f37 zlib: rework code logic
ee6a6c3ca579 zlib: deduplicate code
d20f7bb87d47 zlib: add stream-oriented deflate operations
0255af462be3 zlib: add stream-oriented inflate operations
9260bd5354bf WIP: lib: support map() over objects
60f05ac60bfe docs: cover switch statement in syntax article
338aa2ebf00e docs: add article with array specific information
df5a79a04b17 uci: link save() and commit() functions in cursor class description
03fb60d0e4b3 docs: add detailed documentation article for dictionaries
8e122f16327c ubus: add support for calling system objects
21a615c84367 socket: add reuseaddr argument for socket.listen()
e04908ef57e7 uci: add support for altering the override config directory
9dbace122d7e socket: add missing documentation for socket.listen() reuseaddr
312b25482b30 ubus: add errval_return() helper macro
1af4a6bbc206 ubus: add channel defer() method
0002684b9772 ubus: support sending multiple reply messages on a request
fb1da7157d13 ubus: remove broken implied await when calling defer() outside of uloop.run()
67a4ad20f172 ubus: fix uninitialized variable warning

Fixes: https://github.com/jow-/ucode/issues/279
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 960e1c4c24)
2025-06-12 14:33:54 +02:00
Felix Fietkau
0b265f4562 libubox: update to Git HEAD (2024-12-19)
3868f47c8f6c blob: constify attr argument to blob_memdup

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 6f8f404113)
2025-06-12 14:33:54 +02:00
Felix Fietkau
2f27d0fefa ubus: update to Git HEAD (2025-05-16)
88e6325092bf libubus: flush all pending requests on connection loss

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 707a89bc26)
2025-06-12 14:33:54 +02:00
Álvaro Fernández Rojas
a3d7a9ec98 bcm27xx: select I2C/SPI packages by default
The I2C and SPI packages required for each RPi generation is different.
Therefore, in order to avoid confusion let's select them by default.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 9117ff7b39)
2025-06-12 13:51:03 +02:00
Álvaro Fernández Rojas
2e960cc69f bcm27xx: add support for BRCMSTB I2C controller
Add kernel package for Broadcom Settop/DSL I2C controller.
This controller is used on RPi devices.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 59f8312400)
2025-06-12 13:51:03 +02:00
Álvaro Fernández Rojas
40be479fe3 kernel: add support for DesignWare I2C Platform controller
Add kernel package for DesignWare I2C platform controller.
This controller is used on the RP1 SoC found on RPi 5 devices.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 84922a1e34)
2025-06-12 13:51:03 +02:00
Albrecht Lohofener
bb478a6dda kernel: add Microchip ENC28J60 SPI Ethernet controller module
The ENC28J60 is a 10 Mbps half-duplex Ethernet controller interfaced via SPI.
It achieves real-world bandwidth up to 5Mbit/s on devices like the RPi Zero due
to SPI limits.
Commonly used with Raspberry Pi Zero boards for wired network connectivity.

Signed-off-by: Albrecht Lohofener <albrechtloh@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19048
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 4987239913)
2025-06-12 13:51:03 +02:00
Albrecht Lohofener
d5ab1b48dc kernel: add support for DesignWare SPI MMIO controller
Add kernel packages for DesignWare SPI core and MMIO controllers.
This is needed for the RP1 SoC found on RPi 5 devices.

Tested with a Microchip ENC28J60 Ethernet controller on a RPi 5.

Signed-off-by: Albrecht Lohofener <albrechtloh@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19049
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 82d20a0fbd)
2025-06-12 13:51:03 +02:00
Georgi Valkov
f90e7a7397 toolchain: gcc: fix build error with Xcode 16.3
Xcode 16.3 defines TARGET_OS_MAC, it was not defined in prior versions.
zutil.h conditionally defines fdopen as NULL when this macro is defined,
resulting in the following build error:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:318:7: e>
  318 | FILE    *fdopen(int, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(fdopen));
      |          ^
./zutil.h:147:33: note: expanded from macro 'fdopen'
  147 | #        define fdopen(fd,mode) NULL /* No fdopen() */

In Xcode 16.2 and earlier, TARGET_OS_MAC was not defined so this entire
block was ignored, gcc and gdb used to compile and work fine.

This may have been used for compatibility with older versions of macOS,
but is no longer needed. By pure luck, the build worked fine for a long
time, because it did not properly detect macOS.
Fixed by removing the check for TARGET_OS_MAC.

Note that since Xcode 16.3, an entire set of TARGET_OS macros
are now defined, most of which are set to 0:
TARGET_OS_LINUX 0
TARGET_OS_MAC 1
TARGET_OS_OSX 1

Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18467
(cherry picked from commit d3bb23946e)
Link: https://github.com/openwrt/openwrt/pull/19096
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-12 10:51:01 +02:00
Georgi Valkov
9d3ca6d3e5 toolchain: gdb: fix build error with Xcode 16.3
Xcode 16.3 defines TARGET_OS_MAC, it was not defined in prior versions.
zutil.h conditionally defines fdopen as NULL when this macro is defined,
resulting in the following build error:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:318:7: error: expected identifier or '('
  318 | FILE    *fdopen(int, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(fdopen));
      |          ^
./zutil.h:147:33: note: expanded from macro 'fdopen'
  147 | #        define fdopen(fd,mode) NULL /* No fdopen() */

In Xcode 16.2 and earlier, TARGET_OS_MAC was not defined so this entire
block was ignored, gcc and gdb used to compile and work fine.

This may have been used for compatibility with older versions of macOS,
but is no longer needed. By pure luck, the build worked fine for a long
time, because it did not properly detect macOS.
Fixed by removing the check for TARGET_OS_MAC.

Note that since Xcode 16.3, an entire set of TARGET_OS macros
are now defined, most of which are set to 0:
TARGET_OS_LINUX 0
TARGET_OS_MAC 1
TARGET_OS_OSX 1

Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18467
(cherry picked from commit dfb8115d0c)
Link: https://github.com/openwrt/openwrt/pull/19096
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-12 10:51:01 +02:00
Eric Fahlgren
c99d356747 package: rework contents of package index.json
Rework the generation of the index.json version of the package
indexes to match the original intent (i.e., for use by the ASU
server and other downstream projects).  The current file contains
package names that have ABI versioning, making them unusable by ASU,
so we now remove the ABI suffixes.

Also adds a 'version' field to the json, so downstream utilities
can detect the new semantics of the package name fields.

Links: 218ce40cd7
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19051
(cherry picked from commit 2b0b16f1d1)
Link: https://github.com/openwrt/openwrt/pull/19097
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 19:12:09 +02:00
Álvaro Fernández Rojas
0db2af95bc kernel: r8125: update to v9.016.00
Changelog: https://github.com/openwrt/rtl8125/compare/9.015.00...9.016.00

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 60606fa980)
2025-06-09 08:03:25 +02:00
Paul Donald
73ea351f6c lldpd: enable hardware inventory information (TLV) management
lldpd can send several hardware inventory TLV fields. Extend the init
script to provide these when the existing flag 'lldpmed_no_inventory' is
disabled. Five new methods provide default values for some of them,
taken from /etc/os-release and /etc/board.json.

There is no homogeneous method to determine the hardware serial number,
so it can be provided manually, as can asset ID.

Note: properties >= 32 characters are truncated at send time (by lldpd),
and some (Cisco) equipment displays junk after strings >= 32 characters.
So truncate to 31.

Tested on: 24.10.0 (known compatible with 22 and 23 also)

===
Example
===

The following lldpd config lines:

 configure inventory hardware-revision "v0"
 configure inventory software-revision "r28427-6df0e3d02a"
 configure inventory firmware-revision "OpenWrt 24.10.0"
 configure inventory serial-number "ABCDEF-123456"
 configure inventory manufacturer "glinet"
 configure inventory model "GL.iNet GL-MT6000"
 # 32 characters:
 configure inventory asset "abcdefghijklmnopqrstuvwxyz 12345"

Produce the following TLV (decoded by Wireshark):

Telecommunications Industry Association TR-41 Committee - Inventory - Hardware Revision
    1111 111. .... .... = TLV Type: Organization Specific (127)
    .... ...0 0000 0110 = TLV Length: 6
    Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
    Media Subtype: Inventory - Hardware Revision (0x05)
    Hardware Revision: v0
Telecommunications Industry Association TR-41 Committee - Inventory - Firmware Revision
    1111 111. .... .... = TLV Type: Organization Specific (127)
    .... ...0 0001 0011 = TLV Length: 19
    Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
    Media Subtype: Inventory - Firmware Revision (0x06)
    Firmware Revision: OpenWrt 24.10.0
Telecommunications Industry Association TR-41 Committee - Inventory - Software Revision
    1111 111. .... .... = TLV Type: Organization Specific (127)
    .... ...0 0001 0101 = TLV Length: 21
    Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
    Media Subtype: Inventory - Software Revision (0x07)
    Software Revision: r28427-6df0e3d02a
Telecommunications Industry Association TR-41 Committee - Inventory - Serial Number
    1111 111. .... .... = TLV Type: Organization Specific (127)
    .... ...0 0001 0100 = TLV Length: 20
    Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
    Media Subtype: Inventory - Serial Number (0x08)
    Serial Number: ABCDEF-123456
Telecommunications Industry Association TR-41 Committee - Inventory - Manufacturer Name
    1111 111. .... .... = TLV Type: Organization Specific (127)
    .... ...0 0000 1010 = TLV Length: 10
    Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
    Media Subtype: Inventory - Manufacturer Name (0x09)
    Manufacturer Name: glinet
Telecommunications Industry Association TR-41 Committee - Inventory - Model Name
    1111 111. .... .... = TLV Type: Organization Specific (127)
    .... ...0 0001 0101 = TLV Length: 21
    Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
    Media Subtype: Inventory - Model Name (0x0a)
    Model Name: GL.iNet GL-MT6000
Telecommunications Industry Association TR-41 Committee - Inventory - Asset ID
    1111 111. .... .... = TLV Type: Organization Specific (127)
    .... ...0 0010 0011 = TLV Length: 35
    Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
    Media Subtype: Inventory - Asset ID (0x0b)
    Asset ID: abcdefghijklmnopqrstuvwxyz 1234

The Cisco DUT displays:

Hardware Revision: 	v0
Firmware Revision: 	OpenWrt 24.10.0
Software Revision: 	r28427-6df0e3d02a
Serial Number:  ABCDEF-123456
Manufacturer Name: 	glinet
Model Name: 	GL.iNet GL-MT6000
Asset ID: 	abcdefghijklmnopqrstuvwxyz 1234

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18354
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 412c850f07)
Link: https://github.com/openwrt/openwrt/pull/18469
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 21:25:07 +02:00
Markus Stockhausen
0f9ebe2da7 realtek: fix mdio parent/child locking issues
Since the early beginning of the Realtek DSA driver there is an uncovered
locking issue between the standard (parent) mdio bus and the DSA (child)
mdio bus. This comes from the fact that the DSA bus simply links to the
parent read and write functions and calls them directly. This leads to
the following lock issue.

- Child bus calls phy_read/write functions and uses its internal lock
- Parent bus calls phy_read/write functions and uses its internal lock

It becomes clear that critical section can be accessed twice without
knowing that a operation from the other bus is currently active. This
can lead to critical malfunctions because the mdio driver needs a lot of
internal magic to get page selection done right. Effects are:

- The original page is lost after a phy_write/read_paged() call
- dmesg like "Realtek RTL8218B (external) rtl838x slave mii-0:00:
  Expected external RTL8218B, found PHY-ID 6b23"

Other DSA drivers simply use the read/write functions from the parent bus
and thus avoid locking issues. Do it the same way.

Fixes: 2b88563ee5 ("realtek: update the tree to the latest refactored version")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18824
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 461fc06f9d)
Link: https://github.com/openwrt/openwrt/pull/18755
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 21:19:31 +02:00
Markus Stockhausen
072fd4de3c realtek: refactor net rx interrupt handler rtl83xx_net_irq()
Cleanup the code of the RTL83xx packet receive interrupt handler. Not
only for better readability but to avoid inconsistencies and stalls on
the RTL839x targets.

The current implementation seems to come from the GPL source code.
Calling the existing cleanup() function inside the interrupt context
without any locks conflicts with SMP & NAPI polling and makes things
worse instead of giving any benefit. Simply ignore RX buffer overruns
and let the device handle packet dropping itself.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18855
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 8dde1e4638)
Link: https://github.com/openwrt/openwrt/pull/18755
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 21:19:31 +02:00
Markus Stockhausen
4c4b698a9c realtek: proper RTL8214FC fibre/copper detection
The RTL8214FC currently uses generic PHY functions. That makes it look like a copper
device. Switching to/from fibre works fortunately but the autonegotiation handling
still works on MII_LPA (PHY register 5) as if a copper link is used. Fix that by

- advertising a superset of TP/FIBRE features
- using clause 37 functions when on fibre

Additionally enhance the code of the driver to assist further development.

- log the speed of the inserted module to detect wrongly inserted 10gbase-r modules
- order phy driver functions alphabetically (keep match/name on top)
- remove genphy_loopback as the kernel uses it if not provided

Remark! The driver internally uses PORT_MII for the TP port. Align with that and
report MII to ethtool instead of TP. Other drivers do the same and it can be
changed in the future if needed.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18724
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 4cfd1c4501)
Link: https://github.com/openwrt/openwrt/pull/18755
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 21:19:31 +02:00
Sander van Deijck
7d74ef4b85 ramips: mt7621: add support for Arcadyan WE410443
The Arcadyan WE410443 is a WiFi AC access point distributed by various ISPs
under various names, including KPN SuperWifi and BT Whole Home Wi-Fi. It
features one ethernet port, dual MT7615N radios and four internal antennas.

Hardware:
- SoC: Mediatek MT7621AT
- Flash: 32 MB
- RAM: 128 MB
- Ethernet: 1x 10/100/1000 Mbps, built into the SoC
- WLAN: 2x MediaTek MT7615N
- Buttons: 1 Reset button, 1 WPS button
- LEDs: 1x Green, 1x Blue, 1x Red, all unmarked
- Power: 12 VDC, 1.5A barrel plug

Installation:
The bootloader is locked with a password, so the image needs to be written
directly to the SPI flash chip. To do this, you need to open up the case,
remove the heatsink and connect the flash chip to a Raspberry Pi. Use the
following connections:

Flash chip --> Raspberry Pi

VCC --> 3v3
RESET --> 3v3
/CS --> GPIO 8
DO --> GPIO 9
CLK --> GPIO 11
DI --> GPIO 10
GND --> Ground

You can solder wires to the flash chip, or use a SOIC16 clip. More details on
the Raspberry Pi and SPI chip pinouts are available on the wiki [1]
When you have the Raspberry Pi connected to the flash chip, boot your Pi and
follow the instructions:

1) Make sure your Pi has SPI enabled with sudo raspi-config

2) Install necessary tools: sudo apt install xxd libubootenv-tool mtd-utils

3) Upload overlay and execute:
sudo dtc -@ -I dts -O dtb -o
/boot/overlays/we410443.dtbo we410443-overlay.dts

4) Enable in /boot/firmware/config.txt by adding a new line containing
dtoverlay=we410443

5) Reboot your Pi and verify the mtd partitions with
cat /proc/mtd, you should see:

dev:    size   erasesize  name
mtd0: 02000000 00001000 "all"
mtd1: 00030000 00001000 "u-boot"
mtd2: 00010000 00001000 "u-boot-env"
mtd3: 00010000 00001000 "factory"
mtd4: 01f60000 00001000 "firmware"
mtd5: 00010000 00001000 "glbcfg"
mtd6: 00010000 00001000 "config"
mtd7: 00010000 00001000 "glbcfg2"
mtd8: 00010000 00001000 "config2"

6) Optionally (but recommended), make a backup:
sudo dd if=/dev/mtd0 of=backup.bin
It can be restored with: sudo flashcp backup.bin /dev/mtd0

7) Set the variables for the bootloader:
echo '/dev/mtd2 0x0 0x1000 0x1000' > fw_env.config
sudo fw_setenv -c fw_env.config bootpartition 0

8) Finally, flash the image:
sudo flashcp openwrt-ramips-mt7621-arcadyan_we410443-
squashfs-sysupgrade.bin /dev/mtd4

MAC addresses
The label address is stored in ASCII in the config partition

Use --> Address

Device --> label
Ethernet --> label
WLAN 2g --> + 1
WLAN 5g --> + 2

References:
[1] https://openwrt.org/toh/arcadyan/astoria/we410443

Signed-off-by: Sander van Deijck <sander@vandeijck.com>
Link: https://github.com/openwrt/openwrt/pull/17981
(cherry picked from commit b6a07dd091)
Link: https://github.com/openwrt/openwrt/pull/19068
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 21:12:52 +02:00
Sergey Shlukov
b39d82195d mediatek: add support for TP-Link Archer AX80v1(US/RU/CA)
This commit adds support for TP-Link Archer AX80v1(US/RU/CA).

Device specification
SoC Type:   MediaTek MT7986AV, Cortex-A53, 64-bit
RAM:        ESMT M15T4G16256 (512MB)
Flash:      ESMT F50L1G41LB (128 MB)
Ethernet:   MediaTek MT7531AE + 2.5GbE MaxLinear GPY211C0VC (SLNW8)
Ethernet:   1x2.5Gbe (WAN/LAN 2.5Gbps), 4xGbE (WAN/LAN 1Gbps, LAN1, LAN2, LAN3)
WLAN 2g:    MediaTek MT7976GN
WLAN 5g:    MediaTek MT7976AN
LEDs:       1 red,1 green,1 blue status LEDs,

Buttons:    4 (Reset,ledswitch,wps,wlan),
USB ports:  1 (USB 3.0)
Power:      12 VDC, 3,3 A
Connector:  Barrel
Bootloader: Main U-Boot - U-Boot 2022.01-rc4. Additionally, both UBI
            slots contain "seconduboot" (also U-Boot 2022.01-rc4)
Serial console (UART)
                            V
+-------+-------+-------+-------+
| +3.3V |  GND  |  TX   |  RX   |
+---+---+-------+-------+-------+
    |
    +--- Don't connect

Installation (UART)
Place OpenWrt initramfs image on tftp server with IP 192.168.1.2

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

Load and run OpenWrt initramfs image:

      tftpboot initramfs-kernel.bin
      bootm

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

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

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

Recovery

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

Stock layout

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

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

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

Signed-off-by: Sergey Shlukov <ichizakurain@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17753
(cherry picked from commit 8b24289a52)
Link: https://github.com/openwrt/openwrt/pull/19050
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 21:07:36 +02:00
Sergey Shlukov
6ddc43bc7a kernel: add kmod-leds-lp5523
Add kernel module for LP5523/LP55231 LED driver.
The kmod-leds-lp5523 depends on kmod-leds-lp55xx-common.

Signed-off-by: Sergey Shlukov <ichizakurain@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17753
(cherry picked from commit 92ad1ea245)
Link: https://github.com/openwrt/openwrt/pull/19050
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 21:07:36 +02:00
Antti Seppälä
fd85c0df78 qmi: increase SIM power-cycle timeouts
Some modems and SIM cards take a bit longer to initialize after UIM has been
powered off. Waiting too little time can cause the qmi protocol to end up
in a loop repeatedly power-cycling the SIM card.

Avoid that by
 a) increasing the time we unconditionally sleep after --uim-power-on
 b) increasing the time we allow uqmi to wait for response for --uim-get-sim-state

Signed-off-by: Antti Seppälä <a.seppala@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18772
(cherry picked from commit d63663601d)
Signed-off-by: Felix Baumann <felix.bau@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18965
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 21:03:58 +02:00
Leon M. Busch-George
871d7a9d68 qmi: sort config variables a little and fix minor bugs
Group 'local' declarations and 'json_get_vars', sort alphabetically within groups, and split off more generic parameters.

- delegate and sourcefilter were not declared as local variables

Signed-off-by: Leon M. Busch-George <leon@georgemail.eu>
(cherry picked from commit bf768867dc)
Signed-off-by: Felix Baumann <felix.bau@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18965
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 21:03:58 +02:00
Tianling Shen
c7c7a1cfc0 rockchip: add missing symbol
Commit 7cace002ba added a generic kernel patch that exposes a new
symbol REALTEK_PHY_HWMON when REALTEK_PHY and HWMON are enabled. The new
symbol was added to kmod-phy-realtek, but the kmod is not used in the
rockchip target.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/18921
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 15:54:37 +02:00
Shiji Yang
79cfac227e tools: zstd: update to 1.5.7
This new version has some performance enhancements.

Changelog:
https://github.com/facebook/zstd/releases/tag/v1.5.7

Upstreamed patch:
001-Provide-variant-pkg-config-file-for-multi-threaded-s.patch[1]

[1] f1f1ae369a

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/18064
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit ce67f08449)
2025-06-08 12:56:13 +02:00
Álvaro Fernández Rojas
2a348bdbef bcm27xx-gpu-fw: update to v1.20250430
Full changelog: https://github.com/raspberrypi/firmware/compare/1.20250305...1.20250430

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 79f097faae)
2025-06-06 12:34:56 +02:00
Christian Marangi
0bf0556401 ath79: add calibtation variant for TP-Link Archer C6 v2
Now that we have a board file, add calibration variant for TP-Link
Archer C6 v2 and add ipq-wifi package for it.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 427c4aa266)
Signed-off-by: Leopoldo Pla <leopoldoplasempere@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19035
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-06-06 09:43:40 +02:00
Christian Marangi
8979768b97 ipq-wifi: Add entry for TP-Link Archer C6 v2
Add IPQ Wifi entry for Ath79 TP-Link Archer C6 v2.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit c88515dd86)
Signed-off-by: Leopoldo Pla <leopoldoplasempere@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19035
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-06-06 09:43:40 +02:00
Christian Marangi
0c43acc349 ipq-wifi: update to Git HEAD (2025-05-30)
576ade747259 CI: add action that prints info about submited BDF-s
1d688e8654a5 qca9888 : add BDF for Yuncore WB5G08
ddfd9d2f3a8e ipq60xx: rename BDF for EAP623-Outdoor HD v1
bab36c1d947d ath10k: drop upstramed board files
09e5afab85b2 CI: add QCA9988
fde3d2a7ce59 qca9888: add TP-Link Archer C6 v2 (EU) BDF

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 8dd0020d1a)
Signed-off-by: Leopoldo Pla <leopoldoplasempere@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19035
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-06-06 09:43:40 +02:00
David Bauer
0a21ab7312 ipq40xx: enable WiFi LED for Teltonika RUTX50
Enable activity on the WiFi LEDs of the Teltonika RUTX50
like other boards in the ipq40xx target.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 54463f1e2e)
2025-06-05 14:12:09 +02:00
David Bauer
cab22784b1 ipq40xx: use correct wired MAC-addresses for RUTX50
The Teltonika RUTX50 mac-addresses on its wired interfaces are currently
random on every boot.

Setting the mac-addresses from device-tree using nvmem does not work, as
the vendor bootloader mangles the mtd partitions, removing the
nvmem-cells property.

To remedy the random mac-addresse, set the correct ones in preinit.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 08c93512fe)
2025-06-05 14:11:58 +02:00
David Bauer
796b7681bf ipq40xx: turn on Teltonika RUTX50 modem by default
Turn on the 5G modem of the RUTX50 on by default.

This allows to make the modem detectable on a fresh
installation OOTB without further intervention.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit ac1ad1a7ad)
2025-06-05 14:11:51 +02:00
Álvaro Fernández Rojas
4e63a06636 generic: backport brcm legacy dsa tag fix
Backport a small fix for brcm legacy dsa tags that has been accepted for
linux v6.16.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 84eefb493b)
2025-06-01 16:41:26 +02:00
Henry Tung
6706c8a6e3 tools/llvm-bpf: fix compilation with GCC15
Add cstdint include to SmallVector.h.

Backported from
7e44305041.

Signed-off-by: Henry Tung <henryptung@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18767
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 53054fead5)
2025-05-31 23:10:42 +02:00
Álvaro Fernández Rojas
a2ac2c5ea3 generic: backport bcm63xx SPI reset fix
Fixes SPI and HSSPI coexistance on bmips bcm6362 and bcm63268.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit ba1017bf74)
2025-05-31 18:32:33 +02:00
Nick Hainke
3b2051ce44 tools/b43-tools: update to latest version, fix C23 build
Update b43-tools to the latest upstream version to fix a
compilation error with C23:

  util.h:25:15: error: 'bool' cannot be defined via 'typedef'
     25 | typedef _Bool bool;
        |               ^~~~

Changelog:
c6fc53f replace custom bool typedef with <stdbool.h>
dadf30c fix format warning in compilation
2fe10ea b43-fwdump: Fix forwarding of arguments to disassembler

Link: https://github.com/openwrt/openwrt/pull/18708
Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit f8da45e25d)
2025-05-30 17:10:10 +02:00
Tomasz Maciej Nowak
2f289e3b74 libiconv: fix compilation on hosts GCC=15
Backport upstream commit dropping external definition of mbrtowc. The
said definition conflicts with one provided by GCC 15. Issue found on
24.10 SDK.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2025-05-30 13:10:11 +02:00
Goetz Goerisch
6d46015d8b x86: add missing configuration
Added settings:
        x86: CONFIG_MITIGATION_ITS=y [1]

[1] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=f7ef7f6ccf2bc3909ef5e50cbe9edf2bac71e1bd
Co-authored-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18924
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-28 13:22:00 +02:00
Goetz Goerisch
3a2a2c995f kernel: refresh patches
manually refresh kernel patches

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18924
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-28 13:22:00 +02:00
John Audia
f37e4dc300 rockchip: armv8: add missing config option
6.6.92 requires the addition of CONFIG_ARM_SCMI_DEBUG_COUNTERS

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18835
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 763339207b)
Link: https://github.com/openwrt/openwrt/pull/18924
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-28 13:22:00 +02:00
John Audia
3246d6c0a1 stm32: add missing config option
6.6.92 requires the addition of CONFIG_ARM_SCMI_DEBUG_COUNTERS

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18835
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 83ff9600dc)
Link: https://github.com/openwrt/openwrt/pull/18924
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-28 13:22:00 +02:00
John Audia
6f56ddc36f kernel: bump 6.6 to 6.6.92
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.92

No patches needed a rebase with this release/only archive hash updated.

Build system: x86/64
Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18835
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 2a7cfbbbef)
Link: https://github.com/openwrt/openwrt/pull/18924
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-28 13:22:00 +02:00
John Audia
9019992248 kernel: bump 6.6 to 6.6.91
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.91

Removed upstreamed:
	generic/pending-6.6/730-net-ethernet-mtk_eth_soc-reset-all-TX-queues-on-DMA-.patch[1]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.91&id=68f29bb97a0e0519156664cdc23e8b1f129e3254

Build system: x86/64
Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18835
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit ecac1d8abd)
Link: https://github.com/openwrt/openwrt/pull/18924
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-28 13:22:00 +02:00
Shiji Yang
01644cba60 kernel: bump 6.6 to 6.6.90
Remove upstreamed patches:
  bcm27xx/patches-6.6/950-0481-xhci-Use-more-event-ring-segment-table-entries.patch [1]
  pending-6.6/691-net-ipv6-fix-UDPv6-GSO-segmentation-with-NAT.patch [2]

Manually rebased patches:
  generic/hack-6.6/781-usb-net-rndis-support-asr.patch [3]

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.90&id=f377434945f528217e65fc5b18781caeba19ce72
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.90&id=e0272844995aff8cbf2cc88b78c2b35ca51eda43
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.90&id=222b6685efe0d8c1cdb078a67bbe806f56d18f94
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18775
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 01d5026239)
Link: https://github.com/openwrt/openwrt/pull/18924
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-28 13:22:00 +02:00
Benjamin Berg
e709e9bc06 mac80211: add patch to suppress PREP when mesh forwarding is disabled
This fixes a bug where mac80211 would respond to a PREQ frame when a
neighbor table entry exists locally even though it will not forward the
frame and the reported path does not actually work.

Link: https://github.com/openwrt/openwrt/pull/18657
Link: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/commit/?h=for-next&id=cf1b684a06170d253b47d6a5287821de976435bd
Link: https://patches.linaro.org/project/linux-wireless/patch/20250430191042.3287004-1-benjamin@sipsolutions.net/

Signed-off-by: Benjamin Berg <benjamin@sipsolutions.net>
(cherry picked from commit 26e64260e9)
2025-05-24 16:38:31 +02:00
Robert Marko
8e272a6d83 image: only filter out images when ImageBuilder is used
Currently, we are filtering out images if DEFAULT:=n or BROKEN:=y are set,
so if you are building from scratch and want to build custom images that
are stripped down to fit, you must edit the image recipe or its just
filtered out.

So, to allow this behaviour when building from scratch as we can assume
that person doing that knows what they are attempting to do lets just limit
the filtering to ImageBuilder.

Fixes: f060615a78 ("image: respect DEFAULT and BROKEN when Default profile is selected")
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-24 12:25:49 +02:00
Álvaro Fernández Rojas
0ccd68f9ba mac80211: brcm: update RPi brcmfmac patches
- Reorganize brcmfmac patches.
- Drop outdated RPi brcmfmac patches.
- Add RPi 6.12 brcmfmac patches with "rpi-6.12" name tag (excluding SAE).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit f23ad96e47)
2025-05-23 20:22:08 +02:00
Rosen Penev
01da187749 tools: add cmake dependency to bzip2
It's using cmake.mk so it needs CMake to build.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18880
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 9deb8fad2f)
2025-05-23 12:36:16 +02:00
Álvaro Fernández Rojas
424788fc46 generic: backport upstream v6.16 Realtek PHY patches
83d962316128 net: phy: realtek: add RTL8127-internal PHY
708686132ba0 net: phy: realtek: Add support for PHY LEDs on RTL8211E
be1cc96ddf82 net: phy: realtek: use __set_bit() in rtl8211f_led_hw_control_get()
8c4d0172657c net: phy: realtek: Group RTL82* macro definitions
12d40df259e3 net: phy: realtek: add RTL8211F register defines
7c6fa3ffd265 net: phy: realtek: Clean up RTL821x ExtPage access
f3b265358b91 net: phy: realtek: remove unsed RTL821x_PHYSR* macros
7840e4d6f48a net: phy: realtek: Add support for WOL magic packet on RTL8211F

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picled from commit d8375034b8)
2025-05-22 14:22:02 +02:00
Álvaro Fernández Rojas
8cac8d8723 generic: backport upstream v6.16 r8169 patches
f24f7b2f3af9 r8169: add support for RTL8127A
4f51e7d370a0 r8169: merge chip versions 52 and 53 (RTL8117)
f372ef6ed5a6 r8169: merge chip versions 64 and 65 (RTL8125D)
4dec0702b862 r8169: merge chip versions 70 and 71 (RTL8126A)
b7ed5d5a78fc r8169: use pci_prepare_to_sleep in rtl_shutdown
fe733618b27a r8169: add RTL_GIGA_MAC_VER_LAST to facilitate adding support for new chip versions
2b065c098c37 r8169: refactor chip version detection
0c49baf099ba r8169: add helper rtl8125_phy_param
8c40d99e5f43 r8169: add helper rtl_csi_mod for accessing extended config space

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 91ce7f606a)
2025-05-22 14:21:56 +02:00
Álvaro Fernández Rojas
e2457aa09f bcm27xx: switch to upstream SDHOST driver
The RPi upstream repo switched to the upstream SDHOST driver some time ago, so
it's time to do the same in our configs.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit cd79b6ede9)
2025-05-21 14:06:20 +02:00
Robert Marko
bc8b407400 mvebu: armada37xx: add pending PXA I2C recovery fix
Import pending PXA I2C recovery fixes so that if I2C recovery is enabled in
the DTS it does not completely break I2C as it currently does since kernel
6.6.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
(cherry picked from commit dfacae3049)
2025-05-21 10:26:20 +02:00
Robert Marko
6285ce709a mvebu: armada37xx: backport pinctrl fixes
Backport upstream pinctrl fixes, these are required for the follow-up I2C
PXA recovery fixes.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
(cherry picked from commit 831994e258)
2025-05-21 10:26:12 +02:00
Stijn Tintel
6d41cbf868 realtek: add missing symbol
Commit d7e82c78d7 added a generic kernel patch that exposes a new
symbol REALTEK_PHY_HWMON when REALTEK_PHY and HWMON are enabled. The new
symbol was added to kmod-phy-realtek, but the kmod is not used in the
realtek target.

Fixes: d7e82c78d7 ("generic: backport Realtek PHY patches from upstream")
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
(cherry picked from commit ab87087672)
2025-05-20 20:49:01 +01:00
Martin Schiller
b394fa6819 generic: net: phy: sfp: backport some FS copper SFP fixes
This fixes the handling of some FS copper SFP modules using the RollBall
protocol and needing some extra treatment.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
(cherry picked from commit bbe58f9830)
2025-05-20 20:49:01 +01:00
Shiji Yang
a53d175865 generic: crypto: fix jitterentropy initialization failed issue
Sync jitterentropy source code with linux-6.12 to solve the
issue of jitterentropy initialization failed:

[ 9.523489] jitterentropy: Initialization failed with host not compliant with requirements: 9
[ 9.661916] kmodloader: 1 module could not be probed
[ 9.662377] kmodloader: - jitterentropy_rng - 0

In linux upstream commit cf27d9475f37 ("crypto: jitter - use
permanent health test storage"), when FIPS crypto is disabled,
the health test results are always explicitly skipped. That means
it will never return error code 9 (health test failed) again.

Fixes: https://github.com/openwrt/openwrt/issues/16684
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18399
(cherry picked from commit eec11fbbb6)
Link: https://github.com/openwrt/openwrt/pull/18822
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-18 09:59:53 +02:00
Robert Marko
6d4554429a image: respect DEFAULT and BROKEN when Default profile is selected
Currently, when you select the Default profile it does not honor DEFAULT:=n
nor BROKEN:=y in device profiles but rather just tries to build all of them.

This may work when building directly, but when using Image Builder it will
always fail since no kernel or anything else is present for devices that
have DEFAULT:=n or BROKEN:=Y set since those are skipped during build.

So, lets look for DEFAULT being set to "n" or BROKEN being set to "y" and
then remove clear _PROFILE_SET so they dont end up being marked for
installation.

Fixes: #18410
Link: https://github.com/openwrt/openwrt/pull/18814
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit f060615a78)
2025-05-18 09:41:54 +02:00
Henry Tung
d2d9b1eaeb mac80211: ath11k: fix broadcast failures during GTK rekeying
Revert key_cipher change to NONE when clearing key.
Setting to NONE triggers asserts in the firmware and causes broadcast
drops with ath11k firmware 2.9.0.1, so until a future blob
fixes this, revert this as a workaround.

Imported from
https://git.codelinaro.org/clo/qsdk/oss/system/feeds/wlan-open/-/blob/win.wlan_host_opensource.3.0.r24/patches/ath11k/350-ath11k-Revert-clear-the-keys-properly-when-DISABLE_K.patch

Related discussion links:

- https://github.com/openwrt/openwrt/issues/9555
- https://lore.kernel.org/linux-wireless/Z2Q9POuV-6MIdzRf@pilgrim/T/#t

Signed-off-by: Henry Tung <henryptung@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18705
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 94e04a4513)
Link: https://github.com/openwrt/openwrt/pull/18754
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-15 20:27:48 +02:00
Felix Fietkau
ba37852951 kernel: fix warning on retrying page pool release
Fixes the following warning:
[  180.314652] NOHZ tick-stop error: local softirq work is pending, handler #08!!!

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 610dd871aa)
2025-05-15 15:43:58 +02:00
David Bauer
2bcc3163a6 ramips: pad EX400 kernel partition to retain web recovery
The web-recovery of the Genexis EX400 validates uploaded images to fit
in the rootf_0 partition.

With OpenWrt, only the kernel is stored in this partition, leaving the
partition very small. Currently, the first factory release image won't
be accepted by the recovery interface after the OpenWrt installation.

Pad the image of the ubifs to 10MB. This allows the 24.10 release image
to be uploaded, enabling device recovery.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit eea4689654)
2025-05-14 19:03:17 +02:00
Álvaro Fernández Rojas
65906202fc bmips: add missing NAND config symbol
bcm6328, bcm6362 and bcm6368 targets are missing a key config symbol which
prevents the NAND from working.

Fixes: f6c02b014d ("bmips: 6.1: refresh config and add missing symbols")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 61da745817)
2025-05-14 11:39:20 +02:00
Christoph Krapp
d71e6920fa mediatek: filogic: fix wifi on ASUS RT-AX52
Add missing kmod-7915e package to get both wireless interfaces working.

Link: https://github.com/openwrt/openwrt/issues/18690

Reviewed-by: Steffen Förster <nemesis@chemnitz.freifunk.net>
Signed-off-by: Christoph Krapp <achterin@gmail.com>
(cherry picked from commit 0d6ba33181)
2025-05-13 03:38:41 +02:00
David Bauer
6adcb5d75c ramips: use i2c-gpio driver for EX400
Configure the i2c pins as GPIO outputs and use the i2c-gpio driver to
control the Semtech SX9512 touch controller.

This fixes spurious errors in i2c transactions even at 1kHz with the
native i2c driver.

leds green:wan: Setting an LED's brightness failed (-6)

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit f828be4d10)
2025-05-12 02:20:58 +02:00
David Bauer
79cbeb8dd2 ramips: support Genexis EX400 touch controller
Add the necessary package dependencies as well as device-tree properties
to support the touch-inputs as well as missing LEDs on the Genexis Pulse
EX400 range extender.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 49a1781d74)
2025-05-12 02:20:58 +02:00
David Bauer
5216ad9731 ramips: add Semtech SX9512 touch input driver
This driver is required for the touch-inputs as well as some LEDs on the
Genexis Pulse EX400.

The driver was also sent upstream. As the EX400 is currently the only
consumer, the driver is added target-specific for ramips.

Once the driver has been accepted upstream and is provided in a kernel
release used by OpenWrt, the package should be moved to the global input
drivers.

Link: https://www.spinics.net/lists/kernel/msg5669349.html

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 0842e79338)
2025-05-12 02:20:58 +02:00
David Bauer
ea97c49766 ramips: drop ALT0 name from Pulse EX400 dts model
The alternative model name does not need to be represented in the DTS.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit ff55daf1eb)
2025-05-11 14:12:18 +02:00
Eric Fahlgren
52d4559fe1 imagebuilder: exclude metadata for profiles that have no kernel
Device profiles that specify 'DEFAULT := n' are being included
in the imagebuilder metadata, specifically in .profiles.mk, even
though there is no kernel built for the device.  This results in
'make info' showing the device as valid, but then 'make image
PROFILE=xxx' failing with 'No rule to make target xxx-kernel.bin ...'

We exclude these profiles from the imagebuilder, avoiding these
errors.

Fixes: https://github.com/openwrt/openwrt/issues/18410
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18748
(cherry picked from commit b88f3ebb33)
Link: https://github.com/openwrt/openwrt/pull/18765
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-10 12:12:26 +02:00
Mikhail Zhilkin
5db1b94b63 mediatek: add support for Routerich AX3000 v1
Routerich AX3000 v1 is a wireless WiFi 6 router.

Specification
-------------
- SoC       : MediaTek MT7981BA dual-core ARM Cortex-A53 1.3 GHz
- RAM       : DDR3 512 MiB
- Flash     : SPI-NAND 128 MiB (Winbond)
- WLAN      : MediaTek MT7976CN dual-band WiFi 6
  - 2.4 GHz : b/g/n/ax, MIMO 2x2
  - 5 GHz   : a/n/ac/ax, MIMO 2x2
- Ethernet  : 10/100/1000 Mbps x3, LAN (MediaTek MT7531AE)
              10/100/1000 Mbps x1, WAN (MT7981 internal PHY)
- USB       : 1x 3.0 with power control
- UART      : through-hole on PCB
  - [J500] GND, TX, RX, 3.3V (115200n8)
- Buttons   : Mesh, Reset
- LEDs      : 1x Power (Blue)
              1x WiFi 2.4 GHz (Blue)
              1x WiFi 5 GHz (Red)
              1x Mesh (Blue)
              3x LAN activity (Blue)
              1x WAN activity (Blue)
              1x WAN no-internet (Red)
- Power     : 12 VDC, 1.5 A

Installation
------------
Flash OpenWrt 'sysupgrade.bin' image using stock firmware web-interface
(without keeping settings).

Return to stock
---------------
Install stock firmware image (without keeping settings) using OpenWrt
sysupgrade method.

Recovery
--------
Connect uart, use u-boot menu to flash stock firmware image or boot
OpenWrt initramfs image.

MAC addresses
-------------
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| WAN     | 24:0f:5e:xx:xx:08 | label     |
| LAN     | 24:0f:5e:xx:xx:09 | label+1   |
| WLAN 2g | 24:0f:5e:xx:xx:0a | label+2   |
| WLAN 5g | 24:0f:5e:xx:xx:0b | label+3   |
+---------+-------------------+-----------+
The WLAN 2g MAC was found in 'Factory', 0x4

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
(cherry picked from commit fdb6962f20)
[fix merging conflict in mediatek_filogic, 01_leds, 02_network]
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18601
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-08 20:35:36 +02:00
Olgun Demir
d29ee6c47e ramips: Add support for Xiaomi MiWiFi 3A
The Xiaomi MiWiFi 3A wireless router has a similar system architecture as the Xiaomi Mi 4A router, which is already officially supported by OpenWrt.

Product website: https://www.mi.com/miwifi3a

Device specification
--------------------
SoC:      MT7628AN MIPS_24KEc @ 580 MHz 2.4G-bgn 2x2
WiFi:     MT7612EN 5G-an, ac 80 MHz 2T2R
Flash:    16 MB
DRAM:     64 MB
Switch:   MT7628AN (integrated in SoC)
Ethernet: 1 x 10 /100 Mbps
USB:      None
Antennas: 2 x 2,4 GHz and 2 x 5 GHz (all are external and non-detachable)
LEDs:     blue/red/amber
Buttons:  Reset
Serial:   115200,8n1

MAC addresses as verified by OEM firmware:
------------------------------------------
use address source
LAN *:DD factory 0x28
WAN *:DD factory 0x28
2g *:DE factory 0x4
5g *:DF factory 0x8004

OEM firmware uses VLAN's to create the network interface for WAN and LAN.

Bootloader info:
----------------
The stock bootloader uses a "Dual ROM Partition System".
OS1 is a deep copy of OS2.
The bootloader starts OS2 by default.
To force start OS1 it is needed to set "flag_try_sys2_failed=1".

How to install:
---------------
1- Use OpenWRTInvasion to gain Telnet, SSH and FTP access: https://github.com/acecilia/OpenWRTInvasion
[IP: 192.168.31.1 | Username: root | Password: root | FTP-Port: 21]
2- Connect to router using telnet or ssh.
3- Backup all partitions. Use command "dd if=/dev/mtd0 of=/tmp/mtd0". Copy /tmp/mtd0 to computer using ftp.
4- Copy openwrt-ramips-mt76x8-xiaomi_miwifi-3a-squashfs-sysupgrade.bin to /tmp in router using ftp.
5- Enable UART access and change start image to OS1.

nvram set uart_en=1
nvram set flag_last_success=1
nvram set boot_wait=on
nvram set flag_try_sys2_failed=1
nvram commit

6- Erase OS1 & OS2 and install OpenWrt

mtd erase OS1
mtd erase OS2
mtd -r write /tmp/openwrt-ramips-mt76x8-xiaomi_miwifi-3a-squashfs-sysupgrade.bin OS1

Credits:
--------
This PR is based on the work of Zehao Zhang (Github: @ZZH-Finalize) that he had published in the PR: #15698

Signed-off-by: Olgun Demir <olgun.demir@mail.com.tr>
Link: https://github.com/openwrt/openwrt/pull/18427
(cherry picked from commit c3b8108a2b)
Link: https://github.com/openwrt/openwrt/pull/18550
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-07 21:23:54 +02:00
Jonas Jelonek
6854e1e554 kernel: netdevices: add driver for Broadcom NetXtreme-C/E
Package bnxt_en kernel module for Broadcom NetXtreme-C/E based Ethernet
network chips like BCM573xx and BCM574xx.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17301
(cherry picked from commit a7f4155f54)
Signed-off-by: Josh Bendavid <joshbendavid@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18483
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-07 21:15:45 +02:00
Coia Prant
4a55d894fd kernel: modules: add HiNIC support
Add support for the Huawei Intelligent PCIE Network Interface Card (HiNIC)

Signed-off-by: Coia Prant <coiaprant@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18534
(cherry picked from commit 5fcc57cca6)
Link: https://github.com/openwrt/openwrt/pull/18571
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-07 21:12:31 +02:00
Sebastian Schaper
ca38f13ea2 mediatek: filogic: add support for WAVLINK WL-WN573HX3
The WL-WN573HX3 is an AX3000 outdoor Access Point by WAVLINK,
also sold in Europe as 7Links WLR-1300 (ZX-5612).

Specifications:

- MT7981B + MT7976 AX3000 2x2 DBDC (160 MHz)
- 16 MiB SPI NOR, 256 MiB RAM
- Gigabit ethernet port, 802.3af PoE
- IP67 outdoor case for wall or pole mounting with
    four single band RP-SMA fiberglass antennas (8 dBi)

Installation:

- OEM Web UI is at 192.168.30.1 which will forward to
    http://netlogin.link (using a captive portal)
- login with default password `admin`
- skip setup wizard by navigating directly to
    http://netlogin.link/html/meshUpgrade.html
- upload WN573HX3-sysupgrade.bin
- reset to factory defaults to discard OEM UCI settings

MAC address assignment:

LAN         80:xx:xx:76:xx:25  hw 0x44e
WLAN 2.4G   80:xx:xx:76:xx:27  factory 0x04 (label MAC)
WLAN 5G	    82:xx:xx:46:xx:27
pair key    8a:xx:xx:76:xx:27  also on label, not used by OpenWrt

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
Link: https://github.com/openwrt/openwrt/pull/18206
(cherry-picked from commit 907cb88e10)
Link: https://github.com/openwrt/openwrt/pull/18557
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-07 21:03:31 +02:00
Mikhail Zhilkin
cf9b806182 mediatek: filogic: fix mistaken executable bit on dts file
This commit fixes mistaken executable bit on
mt7981b-mercusys-mr80x-v3.dts file.

Fixes: 7921e48d43 ("mediatek: add support for Mercusys MR80X v3")
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
(cherry picked from commit f733442c02)
Link: https://github.com/openwrt/openwrt/pull/18522
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-07 20:58:33 +02:00
Schneider Azima
0ecf136f4d mediatek: add support for Mercusys MR80X v3
This commit adds support for Mercusys MR80X(EU) v3 router.

Device specification:
 - SoC: Mediatek MT7981b, Cortex-A53, 64-bit
 - RAM: 512MB
 - Flash: SPI NAND GigaDevice GD5F1GQ5UEYIGY (128 MB)
 - Ethernet: 4x 100/1000 Mbps LAN1,LAN2,LAN3 & WAN
 - Wireless: 2.4GHz (802.11 b/g/n/ax)
 - Wireless: 5GHz (802.11 a/n/ac/ax)
 - LEDs: 1 orange and 1 green status LEDs, 4 green gpio-controlled LEDs
   on ethernet ports
 - Buttons: 1 (Reset)
 - Bootloader: Main U-Boot - U-Boot 2022.01-rc4. Additionally, both UBI
   slots contain "seconduboot" (also U-Boot 2022.01-rc4)

Installation (UART):
 - Place OpenWrt initramfs-kernel image on tftp server with IP 192.168.1.2
 - Attach UART, switch on the router and interrupt the boot process by
   pressing 'Ctrl-C'.
 - Set the uboot environment for startup.
   setenv tp_boot_idx 0; setenv bootcmd bootm 0x46000000; saveenv
   If the bootarg is set to boot from ubi1, also change it to ubi0.
 - Load and run OpenWrt initramfs image.
   setenv serverip 192.168.1.2; setenv ipaddr 192.168.1.1; tftpboot initramfs-kernel.bin; bootm
 - Login as root via SSH (IP 192.168.1.1, port 22)
 - Upload OpenWrt sysupgrade.bin image to the /tmp dir of the router
 - Run sysupgrade:
   sysupgrade -n /tmp/sysupgrade.bin

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

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

ubi0/ubi1 format:
U-Boot at boot checks that all volumes are in place:
+-------------------------------+
| Volume Name: uboot   Vol ID: 0|
| Volume Name: kernel  Vol ID: 1|
| Volume Name: rootfs  Vol ID: 2|
+-------------------------------+

MAC addresses:
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| label   | 94:0C:xx:xx:xx:12 | label     |
| WAN     | 94:0C:xx:xx:xx:13 | label+1   |
| LAN     | 94:0C:xx:xx:xx:12 | label     |
| WLAN 2g | 94:0C:xx:xx:xx:11 | label-1   |
| WLAN 5g | 94:0C:xx:xx:xx:10 | label-2   |
+---------+-------------------+-----------+
label MAC address was found in UBI partition "tp_data", file
"default-mac".

Signed-off-by: Schneider Azima <Schneider-Azima12@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/18181
(cherry picked from commit 7921e48d43)
Signed-off-by: Schneider Azima <Schneider-Azima12@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/18522
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-07 20:58:33 +02:00
John Audia
e099424aaa kernel: bump 6.6 to 6.6.89
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.89

All patches automatically rebased.

Build system: x86/64
Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18607
(cherry picked from commit fbcd547a44)
Link: https://github.com/openwrt/openwrt/pull/18730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-07 20:53:17 +02:00
Mieczyslaw Nalewaj
9b28f32815 kernel: bump 6.6 to 6.6.88
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.88

Manually rebased:
 - bcm27xx/patches-6.6/950-0327-media-i2c-ov7251-Make-the-enable-GPIO-optional.patch[1]
 - bcm27xx/patches-6.6/950-0521-PCI-brcmstb-Add-BCM2712-support.patch[2]
 - generic/hack-6.6/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch[3]
 - generic/pending-6.6/734-net-ethernet-mediatek-enlarge-DMA-reserve-buffer.patch[4]

All other patches automatically rebased.

1. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.88&id=f249c05416ea0bef24c9dbed0e653d2fad87b127
2. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.88&id=1fea7726276e5d6526ecd4e7ccb4c91a6135deb5
3. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.88&id=95f17738b86fd198924d874a5639bcdc49c7e5b8
4. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.88&id=a2874f0dff63829d1f540003e2d83adb610ee64a

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18607
(cherry picked from commit a72a2fd7e0)
Link: https://github.com/openwrt/openwrt/pull/18730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-07 20:53:16 +02:00
Christian Marangi
cee749b889 generic: drop extra-old-deprecated pending fix patch for sch codel
Patch 620-net_sched-codel-do-not-defer-queue-length-update.patch is
actually an ancient patch that somehow manage to be ported for 7 solid
years.

This comes from [1] where a fix patch was proposed. Nobody notice that
the proposed patch was actually rejected upstream in favor of [2]. And
the upstream fix patch is present in kernel from version 4.18.

This means that we were actually fixing for a non existant bug and maybe
introducing regression down the line.

Drop the patch for good as we already have a fix for it in flace for a
long time.

[1] https://bugzilla.kernel.org/show_bug.cgi?id=109581
[2] 35b42da69e

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 0f9af6dcd9)
Link: https://github.com/openwrt/openwrt/pull/18730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-07 20:53:16 +02:00
John Audia
517d8a102f kernel: bump 6.6 to 6.6.87
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.87

Manually rebased:
	generic-hack/781-usb-net-rndis-support-asr.patch

All other patches automatically rebased.

Build system: x86/64
Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64
Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18457
(cherry picked from commit 66b5ed7a4e)
Link: https://github.com/openwrt/openwrt/pull/18730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-07 20:53:16 +02:00
Dave Marquard
b546f80a3f bcm27xx: bcm2712: support all devices
- RPi 500
- RPi 5 Compute Module
- RPi 5B (bcm2712 d0 rev)

Signed-off-by: Dave Marquard <dave-atx@users.noreply.github.com>
Link: https://github.com/openwrt/openwrt/pull/18622
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 169dc6270a)
2025-05-07 08:33:02 +02:00
Dave Marquard
c9de6f06db linux-firmware: add Raspberry Pi 5 CM NVRAM
The RPi 5 Compute Module expects the same NVRAM as the one from RPi 4
on a different file.

Signed-off-by: Dave Marquard <dave-atx@users.noreply.github.com>
Link: https://github.com/openwrt/openwrt/pull/18722
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 8774dd7761)
2025-05-07 08:33:02 +02:00
Tim Harvey
02422b04d4 imx: coretexa53: add network config for single-port Gateworks Venice boards
Add network config for single-port Gateworks venice boards such that the
ethernet port is the WAN port instead of the default being a LAN port.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/18629
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 2d6f0275f8)
2025-05-06 18:32:39 +02:00
Christoph Krapp
99708cc16d mediatek: filogic: add support for ASUS RT-AX52
Hardware
--------
SOC:   MediaTek MT7981b
RAM:   256MB DDR3
FLASH: 128MB SPI-NAND (Winbond W25N01GV)
WIFI:  Mediatek MT7981b DBDC 802.11ax 2.4/5 GHz
ETH:   MediaTek MT7531 Switch
UART:  3V3 115200 8N1 (Pinout silkscreened / Do not connect VCC)

Installation
-----------------------------------------------------------
Vendor-UI Method
-----------------------------------------------------------
1. Download the OpenWrt initramfs.trx image.

2. Connect the PC via LAN to one of the yellow router ports and wait
   until your PC to get a DHCP lease.

3. Browse to http://192.168.50.1

4. If your router is brand new, finish the setup process and log into
   the Web-UI.

5. Navigate to Administration -> Firmware Upgrade and upload the
   downloaded OpenWrt image.

6. Wait for OpenWrt to boot. Transfer the sysupgrade image to the device
   using scp and install using sysupgrade.

   $ sysupgrade -n <path-to-sysupgrade.bin>
-----------------------------------------------------------
TFTP Method
-----------------------------------------------------------
1. Download the OpenWrt initramfs image. Copy the image to a TFTP server
   reachable at 192.168.1.70/24. Rename the image to rtax52.bin.

2. Connect the PC with TFTP server to the RT-AX52.
   Set a static ip on the ethernet interface of your PC.
     (ip address: 192.168.1.70, subnet mask:255.255.255.0)
  Conect to the serial console,
   interrupt the autoboot process by pressing '4' when prompted.

3. Download & Boot the OpenWrt initramfs image.

   $ setenv ipaddr 192.168.1.1
   $ setenv serverip 192.168.1.70
   $ tftpboot 0x46000000 rtax52.bin
   $ bootm 0x46000000

4. Wait for OpenWrt to boot. Transfer the sysupgrade image to the device
   using scp and install using sysupgrade.

   $ sysupgrade -n <path-to-sysupgrade.bin>
---------------------------------------------------------------------------
Revert to stock firmware:
1: Download the rt-ax52 firmware from ASUS official website. Save
   the firmware to tftp server directory and rename to RT-AX52.trx

2: Connect the PC with TFTP server to the RT-AX52.
   Set a static ip on the ethernet interface of your PC.
     (ip address: 192.168.1.70, subnet mask:255.255.255.0)

3: Conect to the serial console,  power on again,  interrupt the
   autoboot process by pressing '4' when prompted.
  $: ubi remove linux
  $: ubi remove jffs2
  $: ubi remove rootfs
  $: ubi remove rootfs_data
  $: ubi create linux 0x45fe000
  $: reset

  Then the dut will reboot,interrupt the autoboot process by
  pressing '2' when prompted.
       2: Load System code then write to Flash via TFTP.
       Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N)
       $: enter y
  you will see the follow, type enter directly:
       Input device IP (192.168.1.1) ==:
       Input server IP (192.168.1.70) ==:
       Input Linux Kernel filename (RT-AX52.trx) ==:

4: wait for the device run up

Based on support for ASUS RT-AX52 by liudongdongdong7397
and trx image generation by remittor

Signed-off-by: Christoph Krapp <achterin@gmail.com>
(cherry picked from commit 50d9ca6e5a)
(remove factory image generation)
Signed-off-by: David Bauer <mail@david-bauer.net>
2025-05-04 16:36:49 +02:00
Robert Marko
069f988d9d toolchain: binutils: fix compilation with GCC15
GCC15 has switched the C language default from GNU17 to GNU23[1] and this
causes builds to fail with:
In file included from mips-opc.c:29:
mips-opc.c: In function 'decode_mips_operand':
mips-formats.h:86:7: error: expected identifier or '(' before 'static_assert'
   86 |       static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \
      |       ^~~~~~~~~~~~~
mips-opc.c:214:15: note: in expansion of macro 'MAPPED_REG'
  214 |     case 'z': MAPPED_REG (0, 0, GP, reg_0_map);
      |               ^~~~~~~~~~

So, backport upstream fix for this[2] to fix compilation with GCC15.
Patch for 2.40 was manually refreshed as part of the S390 code does not
exist in 2.40 as it was added after it.

[1] https://gcc.gnu.org/gcc-15/porting_to.html#c23
[2] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=8ebe62f3f0d27806b1bf69f301f5e188b4acd2b4

Fixes: #18678
Link: https://github.com/openwrt/openwrt/pull/18681
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit d3216173ab)
2025-05-03 22:47:07 +02:00
David Bauer
cc1b909a6b ramips: make Genexis EX400 factory image dependent on initramfs
The factory image generation for the Genexis EX400 image currently fails
if CONFIG_TARGET_ROOTFS_INITRAMFS is disabled.

Create the factory image only if said config option is enabled to avoid
failing builds.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 4e83d5ec26)
2025-05-01 14:58:54 +02:00
Felix Fietkau
0b392b925f kernel: fix UDPv6 GSO segmentation with NAT
Fixes issues with rx-gro-list and NAT66

Fixes: https://github.com/openwrt/openwrt/issues/18387
Fixes: https://github.com/openwrt/openwrt/issues/18516
Fixes: https://github.com/openwrt/openwrt/issues/18608
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 5501a502e4)
2025-04-26 20:53:51 +02:00
Robert Marko
78d517a18c toolchain: gdb: set -std=gnu17
Fedora 42 updated to GCC15 which now defaults to GNU23 as the default
instead of GNU17[1], and this breaks gdb compilation.

This looks like a readline issue, that was fixed in GDB 16.2 but to
not update toolchain components we can simply set the C standard back
to GNU17.

[1] https://gcc.gnu.org/gcc-15/porting_to.html#c23

Link: https://github.com/openwrt/openwrt/pull/18581
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-25 10:55:04 +02:00
Robert Marko
e0069e7587 jsonfilter: update to Git HEAD (2025-04-18)
8a86fb78235b build: set GNU17 for lemon compilation

Link: https://github.com/openwrt/openwrt/pull/18525
(cherry picked from commit 891c8244f2)
Link: https://github.com/openwrt/openwrt/pull/18581
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-25 10:55:04 +02:00
John Audia
5462cba522 tools/e2fsprogs: update to 1.47.2
Release information (not yet published):
https://e2fsprogs.sourceforge.net/e2fsprogs-release.html#1.47.2

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/17499
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 40e2710dfa)
Link: https://github.com/openwrt/openwrt/pull/18581
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-25 10:55:04 +02:00
Rosen Penev
a4fec25e24 tools/squashfs3-lzma: fix compilation with GCC15
Function pointers require proper types now.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18572
(cherry picked from commit d5c6452516)
Link: https://github.com/openwrt/openwrt/pull/18581
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-25 10:55:04 +02:00
Robert Marko
d9fccc8e1a tools: gmp: fix compilation with GCC15
Fedora 42 updated to GCC15 which now defaults to GNU23 as the default
instead of GNU17[1], and this breaks GMP compilation by failing to find
a working compiler test.

Its been fixed upstream [2][3], so backport the fix to fix GCC15 compilation.

[1] https://gcc.gnu.org/gcc-15/porting_to.html#c23
[2] https://gmplib.org/repo/gmp/rev/8e7bb4ae7a18
[3] https://gmplib.org/repo/gmp/rev/d66d66d82dbb

Link: https://github.com/openwrt/openwrt/pull/18506
(cherry picked from commit 31800db91d)
Link: https://github.com/openwrt/openwrt/pull/18581
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-25 10:55:03 +02:00
Robert Marko
1e51fd037d tools: elfutils: set -std=gnu17
Fedora 42 updated to GCC15 which now defaults to GNU23 as the default
instead of GNU17[1], and this breaks m4 compilation.

This looks like a gnulib issue, so until that is updated/fixed
lets simply set C language version back to GNU17.

[1] https://gcc.gnu.org/gcc-15/porting_to.html#c23

Link: https://github.com/openwrt/openwrt/pull/18506
(cherry picked from commit f165dd2f78)
Link: https://github.com/openwrt/openwrt/pull/18581
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-25 10:55:03 +02:00
Robert Marko
5531dc7109 tools: cpio: fix compilation with GCC15
Fedora 42 updated to GCC15 which now defaults to GNU23 as the default
instead of GNU17[1], and this breaks cpio compilation.

Its been reported upstream [2], so import the patch attached to the bug
report that fixes compilation with GCC15.

[1] https://gcc.gnu.org/gcc-15/porting_to.html#c23
[2] https://savannah.gnu.org/bugs/?66297

Link: https://github.com/openwrt/openwrt/pull/18506
(cherry picked from commit c5041094ba)
Link: https://github.com/openwrt/openwrt/pull/18581
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-25 10:55:03 +02:00
Robert Marko
9b652e276f tools: m4: set -std=gnu17
Fedora 42 updated to GCC15 which now defaults to GNU23 as the default
instead of GNU17[1], and this breaks m4 compilation.

Its been reported upstream [2], so until its fixed lets simply set C
language version back to GNU17.

[1] https://gcc.gnu.org/gcc-15/porting_to.html#c23
[2] https://savannah.gnu.org/support/?111150

Link: https://github.com/openwrt/openwrt/pull/18505
(cherry picked from commit 8c141e53d7)
Link: https://github.com/openwrt/openwrt/pull/18581
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-04-25 10:55:03 +02:00
Felix Fietkau
274418b028 udebug: add missing dependencies
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit b0710e964d)
2025-04-24 14:24:20 +02:00
Weijie Gao
3a481ae21b toolchain: mold: add PKG_NAME to Makefile
In include/host-build.mk, HOST_BUILD_DIR is set by default value:
HOST_BUILD_DIR ?= $(BUILD_DIR_HOST)/$(PKG_NAME)

However the mold package has no PKG_NAME set at all. This means the
HOST_BUILD_DIR is identical to $(BUILD_DIR_HOST).

In the Host/Prepare stage, by default, the $(HOST_BUILD_DIR) will be
deleted at first unconditionally. Since HOST_BUILD_DIR is identical
to $(BUILD_DIR_HOST), the entire build_dir/toolchain-* directory will
be removed and this will cause build failure.

Adding PKG_NAME:=ld.mold can solve this issue.

Signed-off-by: Weijie Gao <hackpascal@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18567
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit b9cb07eced)
2025-04-23 12:22:58 +02:00
Álvaro Fernández Rojas
49901245e5 kernel: r8168: add RSS variant
Instead of enabling RSS support, let's introduce a variant and let users
choose between both variants since it can cause network issues.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit cb3fc1aef9)
2025-04-23 10:25:39 +02:00
Álvaro Fernández Rojas
da59bc0a6b kernel: r8127: rss: enable ENABLE_MULTIPLE_TX_QUEUE
We need both ENABLE_RSS_SUPPORT and ENABLE_MULTIPLE_TX_QUEUE in order to
support multiple RX and TX queues.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 7615de6ef0)
2025-04-23 10:25:24 +02:00
Álvaro Fernández Rojas
c46ee416be kernel: r8126: rss: enable ENABLE_MULTIPLE_TX_QUEUE
We need both ENABLE_RSS_SUPPORT and ENABLE_MULTIPLE_TX_QUEUE in order to
support multiple RX and TX queues.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit a3e51a3956)
2025-04-23 10:25:10 +02:00
Pavel Kubelun
a42c06d674 kernel: r8125: rss: enable ENABLE_MULTIPLE_TX_QUEUE
We need both ENABLE_RSS_SUPPORT and ENABLE_MULTIPLE_TX_QUEUE in order to
support multiple RX and TX queues.

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18509
[bump release, improve commit description and package changes]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit d127963a46)
2025-04-23 10:24:50 +02:00
Pavel Kubelun
ec82f459c9 kernel: r8125: disable ASPM
Disable ASPM support for this NIC, fixing strange behavior problems, such as
increased latency, strange uneven throughput, etc.
With this option disabled the NIC achieves stable performance.
Upsteam r8169 driver disables ASPM by default for this NIC.

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18509
[bump release, fix commit description, split 2nd tx queue part]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit f99b39fd0c)
2025-04-23 10:24:30 +02:00
Álvaro Fernández Rojas
31292ddc10 kernel: r8127: load module at boot time
This allows the network interface naming to be stable, free from any
possible interaction from external USB network devices that might
claim usb* interface names.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit b5680bd113)
2025-04-23 10:24:10 +02:00
Álvaro Fernández Rojas
111d88e896 kernel: r8126: load module at boot time
This allows the network interface naming to be stable, free from any
possible interaction from external USB network devices that might
claim usb* interface names.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 9bb151d0c6)
2025-04-23 10:23:50 +02:00
Álvaro Fernández Rojas
50cf9bbf17 kernel: r8125: load module at boot time
This allows the network interface naming to be stable, free from any
possible interaction from external USB network devices that might
claim usb* interface names.

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18509
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit ce9f539672)
2025-04-23 10:23:30 +02:00
Álvaro Fernández Rojas
7bef5367a7 kernel: r8168: load module at boot time
This allows the network interface naming to be stable, free from any
possible interaction from external USB network devices that might
claim usb* interface names.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 617961403c)
2025-04-23 10:23:14 +02:00
Álvaro Fernández Rojas
6c15645a12 kernel: r8101: load module at boot time
This allows the network interface naming to be stable, free from any
possible interaction from external USB network devices that might
claim usb* interface names.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 7aeb837bf4)
2025-04-23 10:22:22 +02:00
Álvaro Fernández Rojas
1eab9b8a9b generic: 6.6: backport upstream v6.15 Realtek PHY patches
bfc17c1658353 net: phy: realtek: disable PHY-mode EEE
fabcfd6d10999 net: phy: realtek: add defines for shadowed c45 standard registers
8af2136e77989 net: phy: realtek: add helper RTL822X_VND2_C22_REG
02d3b306ac2f0 net: phy: realtek: switch from paged to MMD ops in rtl822x functions
da681ed73fb98 net: phy: realtek: improve mmd register access for internal PHY's
0bea93fdbaf86 net: phy: realtek: use string choices helpers
51773846fab24 net: phy: realtek: make HWMON support a user-visible Kconfig symbol

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 7673a165a9)
2025-04-23 08:38:32 +02:00
Álvaro Fernández Rojas
5663f8e166 generic: 6.6: backport upstream v6.15 r8169 patches
b48688ea3c9ac r8169: disable RTL8126 ZRX-DC timeout
3d9b8ac534126 r8169: enable RTL8168H/RTL8168EP/RTL8168FP ASPM support
473367a5ffe16 r8169: increase max jumbo packet size on RTL8125/RTL8126
853e80369cfce r8169: add PHY c45 ops for MDIO_MMD_VENDOR2 registers
d30460f42675f r8169: add support for Intel Killer E5000
faac69a4ae5ab r8169: don't scan PHY addresses > 0
135c3c86a7cef r8169: make Kconfig option for LED support user-visible

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 36623119b3)
2025-04-23 08:38:32 +02:00
Álvaro Fernández Rojas
c5abbe71d9 generic: backport pmdomain dummy release patch
Fixes the following warning trace on bcm27xx devices when bcm2835-power is
deferred:
[    0.216800] ------------[ cut here ]------------
[    0.216807] Device 'grafx' does not have a release() function, it is broken and must be fixed. See Documentation/core-api/kobject.rst.
[    0.216863] WARNING: CPU: 0 PID: 1 at drivers/base/core.c:2516 device_release+0x80/0x90
[    0.216887] Modules linked in:
[    0.216896] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.6.85 #0
[    0.216905] Hardware name: Raspberry Pi 4 Model B Rev 1.1 (DT)
[    0.216911] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    0.216919] pc : device_release+0x80/0x90
[    0.216928] lr : device_release+0x80/0x90
[    0.216936] sp : ffffffc080ccb6d0
[    0.216940] x29: ffffffc080ccb6d0 x28: 0000000000000000 x27: ffffff8040d49810
[    0.216953] x26: ffffff8040c904b8 x25: ffffff8040c904a0 x24: ffffffc0808a7f08
[    0.216964] x23: ffffffc080a1a6d8 x22: 0000000000000000 x21: ffffffc080a1afe0
[    0.216976] x20: 0000000000000000 x19: ffffff8040c900b8 x18: 000000000000009f
[    0.216987] x17: 206e656b6f726220 x16: 7369207469202c6e x15: ffffffc080b4ee88
[    0.216998] x14: 00000000000001dd x13: 000000000000009f x12: 00000000ffffffea
[    0.217009] x11: 00000000ffffefff x10: ffffffc080ba6e88 x9 : ffffffc080b4ee30
[    0.217020] x8 : 0000000000017fe8 x7 : c0000000ffffefff x6 : 0000000000057fa8
[    0.217031] x5 : 0000000000000fff x4 : 0000000000000000 x3 : ffffffc080ccb4d0
[    0.217042] x2 : ffffffc080b4edc8 x1 : ffffffc080b4edc8 x0 : 000000000000007a
[    0.217053] Call trace:
[    0.217058]  device_release+0x80/0x90
[    0.217067]  kobject_put+0xac/0x100
[    0.217078]  put_device+0x14/0x24
[    0.217086]  genpd_remove+0x16c/0x244
[    0.217093]  pm_genpd_remove+0x2c/0x50
[    0.217099]  bcm2835_power_probe+0x1f8/0x2b8
[    0.217107]  platform_probe+0x68/0xc4
[    0.217118]  really_probe+0x148/0x2b0
[    0.217125]  __driver_probe_device+0x78/0x128
[    0.217131]  driver_probe_device+0x40/0xdc
[    0.217138]  __device_attach_driver+0xb8/0xf8
[    0.217145]  bus_for_each_drv+0x70/0xb8
[    0.217151]  __device_attach+0xa0/0x184
[    0.217158]  device_initial_probe+0x14/0x20
[    0.217165]  bus_probe_device+0xac/0xb0
[    0.217171]  device_add+0x5a8/0x760
[    0.217177]  platform_device_add+0x184/0x240
[    0.217184]  mfd_add_device+0x3e8/0x4c0
[    0.217195]  devm_mfd_add_devices+0xa0/0x118
[    0.217202]  bcm2835_pm_probe+0x144/0x1d8
[    0.217210]  platform_probe+0x68/0xc4
[    0.217217]  really_probe+0x148/0x2b0
[    0.217224]  __driver_probe_device+0x78/0x128
[    0.217230]  driver_probe_device+0x40/0xdc
[    0.217237]  __driver_attach+0x90/0x160
[    0.217243]  bus_for_each_dev+0x64/0xa4
[    0.217249]  driver_attach+0x24/0x30
[    0.217256]  bus_add_driver+0xe4/0x208
[    0.217262]  driver_register+0x5c/0x124
[    0.217269]  __platform_driver_register+0x28/0x34
[    0.217276]  bcm2835_pm_driver_init+0x1c/0x28
[    0.217286]  do_one_initcall+0x6c/0x1fc
[    0.217294]  kernel_init_freeable+0x208/0x2e4
[    0.217306]  kernel_init+0x28/0x1e4
[    0.217313]  ret_from_fork+0x10/0x20
[    0.217320] ---[ end trace 0000000000000000 ]---

This issue was introduced in v6.6.69 with the following backport:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=36a6e8aeae4a41767bb59f56b100c8cc9ffae2cb

The upstream patch has been adapted to v6.6:
f64f610ec6

More info: https://github.com/raspberrypi/linux/issues/6777

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit f65c44f67f)
2025-04-23 08:37:03 +02:00
Mieczyslaw Nalewaj
687d713e79 generic: rename backport patch 752-03 to name with correct version
Rename 752-03-v6.6-net-ethernet-mtk_eth_soc-rely-on-mtk_pse_port-defini.patch
to 752-03-v6.7-net-ethernet-mtk_eth_soc-rely-on-mtk_pse_port-defini.patch
because it is used since kernel 6.7 (https://lore.kernel.org/lkml/20231028011741.2400327-1-kuba@kernel.org/).
Link: https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.7.y&id=5c33c09c89789ea45d2aac2471a28c9f90b04c95

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18253
(cherry picked from commit a81099bca2)
Link: https://github.com/openwrt/openwrt/pull/18428
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-22 19:16:30 +02:00
Mieczyslaw Nalewaj
4ee8c2dd1b generic: rename backport patches to names containing version
Rename 770-net-introduce-napi_is_scheduled-helper.patch
to 770-v6.7-net-introduce-napi_is_scheduled-helper.patch
because it is used since kernel 6.7 (https://lore.kernel.org/lkml/20231028011741.2400327-1-kuba@kernel.org/).
Link: https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.7.y&id=7f3eb2174512fe6c9c0f062e96eccb0d3cc6d5cd

Rename 751-01-STABLE-net-ethernet-mediatek-split-tx-and-rx-fields-in-mtk_.patch
to 751-01-v6.8-net-ethernet-mediatek-split-tx-and-rx-fields-in-mtk_.patch
because it is used since kernel 6.8.12 (https://lore.kernel.org/lkml/2024053036-matron-confess-13e0@gregkh/).
Link: https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.8.y&id=b411384df5814fe6fd861d4869607577bcec73a1

Rename 751-02-STABLE-net-ethernet-mediatek-use-QDMA-instead-of-ADMAv2-on-.patch
to 751-02-v6.8-net-ethernet-mediatek-use-QDMA-instead-of-ADMAv2-on-.patch
because it is used since kernel 6.8.12 (https://lore.kernel.org/lkml/2024053036-matron-confess-13e0@gregkh/).
Link: https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.8.y&id=0849f56b5146b70f2da328b1d178d0a3c53d6846

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18253
(cherry picked from commit 0991d2f06d)
Link: https://github.com/openwrt/openwrt/pull/18428
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-22 19:16:30 +02:00
Daniel Golle
9e9f6875bc generic: fitblk: close block device if mapping image failed
In case a broken fit image is present on flash the fitblk driver would
not map any /dev/fit* devices, but also not always close the block device
the image resides on. In case of ubiblock devices this is fatal as one
then cannot remove the ubiblock device (-EBUSY), and hence cannot replace
the broken image.
Always close the block device in case no sub-image was mapped.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 2b9c81d1cb)
2025-04-14 18:32:05 +01:00
Daniel Golle
be1b254888 kernel: move accepted patch from pending-6.6 to backport-6.6
742-net-phy-air_en8811h-reset-netdev-rules-when-LED-is-s.patch has been
accepted a while ago as
https://git.kernel.org/torvalds/linux/c/87bfdbbb1992

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 7a303d861a)
2025-04-14 18:32:05 +01:00
Hauke Mehrtens
6271b14140 OpenWrt v24.10.1: revert to branch defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-14 01:07:39 +02:00
Hauke Mehrtens
d183d7bb78 OpenWrt v24.10.1: adjust config defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-14 01:07:35 +02:00
Hannu Nyman
0425664679 ca-certificates: Update to 20241223
Update ca-certificates to version 20241223

  * Update Mozilla certificate authority bundle to version 2.70.
    The following certificate authorities were added (+):
    + Telekom Security TLS ECC Root 2020
    + Telekom Security TLS RSA Root 2023
    + FIRMAPROFESIONAL CA ROOT-A WEB
    + TWCA CYBER Root CA
    + SecureSign Root CA12
    + SecureSign Root CA14
    + SecureSign Root CA15
    The following certificate authorities were removed (-):
    - Security Communication Root CA (closes: #1063093)

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Link: https://github.com/openwrt/openwrt/pull/18468
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit c79572210f)
2025-04-13 18:38:32 +02:00
INAGAKI Hiroshi
c0ae5d2071 ath79: fix initramfs execution for NEC Aterm devices
Fix execution of initramfs image on NEC Aterm devices by increasing
available memory for lzma extraction of lzma-loader.

The size of initramfs image of v24.10.0 exceeds available memory
(LZMA_TEXT_START - LOADADDR) and loader data running at LZMA_TEXT_START
will be overwritten by extracted data. As a result, LZMA extraction will
be broken and stuck (or unexpectedly reset).
Fix that issue by setting higher LZMA_TEXT_START address to increase
available memory for LZMA extraction by lzma-loader.

log (v24.10.0):

boot> tftpd
tftpd start 192.168.0.1
boot> start tftp load openwrt-24.10.0-ath79-generic-ne
end tftp load length = 6569768
start memory load ...
memory load complete
  begin  : 0x80040000
  length : 6567044
  startup: 0x80040000

boot> boot
begin  : 0x80040000
length : 6567044
startup: 0x80040000
option: 0x0
NEC Aterm series (QCA9558)

Calibrating SGMII
SGMII cal value = 0xe

Configuring SGMII force mode
  SGMII_CONFIG : 0x000000a2
  MR_AN_CONTROL: 0x00008140
  MR_AN_CONTROL: 0x00000140

OpenWrt kernel loader for AR7XXX/AR9XXX
Copyright (C) 2011 Gabor Juhos <juhosg@openwrt.org>
Decompressing kernel... [:<syntax:value>]');retu  <--- (stuck)
IPL:SOFT-RESET                    <--- (reset by WDT)
memory test ... ok
flinstall OK

boot version: 1.0.0
...

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18476
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 10a674d277)
2025-04-13 16:55:16 +02:00
Álvaro Fernández Rojas
b4af5bbcf7 package: add kmod-r8127 ethernet driver
r8127 is an out of tree driver provided by Realtek for RTL8127 devices.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 851ea69d8e)
2025-04-10 22:39:58 +02:00
Matthias Franck
eed88d4f10 busybox: use external libtirpc when using glibc
In recent glibc versions rpc functionality has been moved to a separate
library instead of glibc itself.
Depend on this library when rpc functionality is needed and glibc is
used.

Signed-off-by: Matthias Franck <matthias.franck@softathome.com>
Link: https://github.com/openwrt/openwrt/pull/17796
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 84e0900867)
2025-04-10 20:51:56 +02:00
Ming Kuang
3f00d6ba01 wifi-scripts: mac80211.sh: add EHT and HE160 support to iw_htmode
For WIFI7 devices (such as mt7925e), the dev width is currently
always "20 MHz (no HT)" in monitor mode.

Add EHT and HE160 support to iw_htmode to fix this issue.
Additionally, the following changes are made:
1. Set iw_htmode to 160MHz for VHT160. The reason for the current
   VHT160 setting is unclear and seems to have been in place for
   over a decade (ibss_htmode [1]). If anyone knows its impact,
   please inform me so I can restore it.
2. Modify MHZ to MHz. The original matching table in the current
   iw tool uses MHz. Although the match is case-insensitive,
   correcting this won't hurt.

[1]: 768d09be87

Signed-off-by: Ming Kuang <ming@imkuang.com>
Link: https://github.com/openwrt/openwrt/pull/18319
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 86eb1c0b5a)
2025-04-10 20:51:56 +02:00
Shiji Yang
31c3ab3b45 ipq40xx: dts: fix "qcom,coexist-support" property type
Convert the property variable type of "qcom,coexist-support" from
u32 to u8 to match the definition in the dt-bindings document.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18393
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 3526dbabdc)
2025-04-10 20:51:56 +02:00
Shiji Yang
ced823497a ath10k-ct: remove "qcom,coexist-support" property type hack
The ath10k dt-binding property "qcom,coexist-support" was
explicitly defined as type uint8 since upstream commit
ed09c61eb19d ("dt-bindings: net: Convert ath10k to YAML").
Therefore, this hack patch no longer makes sense.

Link: ed09c61eb1
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18393
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit da13174aa1)
2025-04-10 20:51:18 +02:00
Shiji Yang
30c1c6d7c3 ath10k-ct: silence some harmless noisy logs
Users feel anxious about some ath10k driver logs. After further
investigation, in fact these logs are harmless. Only developers
need to care about them in order to optimize some parameters.
Let's just silence them to reduce these similar user reports.

Closes: https://github.com/openwrt/openwrt/issues/13148
Closes: https://github.com/openwrt/openwrt/issues/14422
Closes: https://github.com/openwrt/openwrt/issues/15959
Closes: https://github.com/openwrt/openwrt/issues/15997
Closes: https://github.com/openwrt/openwrt/issues/16896
Closes: https://github.com/openwrt/openwrt/issues/18046
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18368
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 88234a03bc)
[Apply to ath10k-ct 6.10]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-10 20:50:56 +02:00
Mieczyslaw Nalewaj
7145b85295 kernel: modules: ixgbe,ixgbevf,i40e: remove unused settings and depends
Remove settings and depends that are not used anywhere.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: #18291
(cherry picked from commit b6ff3d9afa)
Link: https://github.com/openwrt/openwrt/pull/18431
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-10 20:32:40 +02:00
Fil Dunsky
d47f6a365f mediatek: filogic: add support for Huasifei WH3000
**Huasifei WH3000 eMMC / Fudy MT3000**
Portable Wi-Fi 6 travel router based on MediaTek MT7981A SoC.
MT7981B+MT7976CN+RTL8221B Dual Core 1.3GHZ

**Specifications**
SoC: Filogic 820 MT7981A (1.3GHz)
RAM: DDR4 1GB
Flash: eMMC 8GB
WiFi: 2.4GHz and 5GHz with 3 antennas
Ethernet:
1x WAN (10/100/1000M)
1x LAN (10/100/1000/2500M)
USB: 1x USB 3.0 port
Two buttons: power/reset and mode (BTN_0)
LEDS: blue, red, blue+red=pink
UART: 3.3V, TX, RX, GND / 115200 8N1

**Installation via U-Boot rescue**
1. Set static IP 192.168.1.2 on your computer and default route as 192.168.1.1
2. Connect to the WAN port and hold the reset button while booting the device.
3. Wait for the LED to blink 5 times, and release the reset button.
4. Open U-boot web page on your browser at http://192.168.1.1
5. Select the OpenWRT sysupgrade image, upload it, and start the upgrade.
6. Wait for the router to flash the new firmware.
7. Wait for the router to reboot itself.

**Installation via sysupgrade**
Just flash sysupgrade file via [LuCI upgrade page](http://192.168.1.1/cgi-bin/luci/admin/system/flash) without saving the settings.

**Installation via SSH**
Upload the file to the router `/tmp` directory, `ssh root@192.168.1.1` and issue a command:
```
sysupgrade -n /tmp/openwrt-mediatek-filogic-huasifei_wh3000-emmc-squashfs-sysupgrade.bin
```

**Factory MAC**
You can find your Factory MAC which is mentioned on the box at `/dev/mmcblck0p2` partition `factory` starting from `0x4`
```
dd if=/dev/mmcblk0p2 bs=1 skip=4 count=6 | hexdump -C
```

**Enlarging a partition**
Though device has 8GB eMMC, it uses only 2GB `/dev/mmcblck0p6` as `rootfs` for `/rom` and `/overlay` leaving `/dev/mmcblck0p7` as empty unused space.
```
sgdisk -p /dev/mmcblk0
```
```
Disk /dev/mmcblk0: 15269888 sectors, 7.3 GiB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 2BD17853-102B-4500-AA1A-8A21D4D7984D
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 14942174
Partitions will be aligned on 1024-sector boundaries
Total free space is 11197 sectors (5.5 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            8192            9215   512.0 KiB   8300  u-boot-env
   2            9216           13311   2.0 MiB     8300  factory
   3           13312           21503   4.0 MiB     8300  fip
   4           21504           29695   4.0 MiB     8300  config
   5           29696           62463   16.0 MiB    8300  kernel
   6           62464         4256767   2.0 GiB     8300  rootfs
   7         4257792        14940159   5.1 GiB     8300
```

You can fix that by loading into `initramfs-kernel`, deleting empty `mmcblck0p7` partition and resizing `mmcblck0p6`
```
sysupgrade -F /tmp/openwrt-initramfs-kernel.bin
```
Install and run cfdisk
```
opkg update && opkg install cfdisk
cfdisk /dev/mmcblck0
```
- Select `mmcblck0p7` -> Delete
- Select `mmcblck0p6` -> Resize -> Write -> yes -> Quit

You will not see any difference in `cat /proc/partitions` after that but just flash a `sysupgrade` and you'll get the whole 7.3GB space for the `/overlay`.

Co-developed-by: hecatae <horus.ra@gmail.com>
Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18220
(cherry picked from commit 99ea96c297)
Link: https://github.com/openwrt/openwrt/pull/18434
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-10 20:29:37 +02:00
Mikhail Zhilkin
8e8cafcd0e mediatek: add support for netis NX31
This PR adds support for netis NX31 router.

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

Installation
------------
1. Connect to the router 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/openwrt-mediatek-filogic-netis_nx31-bl31-uboot.fip FIP
   mtd write /tmp/openwrt-mediatek-filogic-netis_nx31-preloader.bin BL2
6. Place OpenWrt
   'openwrt-mediatek-filogic-netis_nx31-initramfs-recovery.itb' image on
   the tftp server (IP: 192.168.1.254)
7. Erase 'ubi' partition and reboot the router:
   mtd erase ubi
   reboot
8. U-Boot automatically boot OpenWrt recovery image from tftp server to
   the RAM
9. Upload OpenWrt 'sysupgrade.itb' image to the /tmp dir of the router
   (IP: 192.168.1.1) using scp protocol
10. Connect to the router using ssh and run:
    sysupgrade -n openwrt-mediatek-filogic-netis_nx31-squashfs-sysupgrade.itb

Return to stock
---------------
1. Unpack stock BL2 and FIP partitions backup
2. Upload stock BL2 and FIP partitions backup to the /tmp dir of the
   router using scp protocol
3. 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 backup:
   mtd write /tmp/mtd4_FIP.bin FIP
   mtd write /tmp/mtd1_BL2.bin BL2
5. Erase ubi and reboot:
   mtd erase ubi
   reboot
6. Power off the router
7. Press Reset button and power on the router. Release the button after
   ~10 sec
8. Navigate to U-Boot recovery web server (http://192.168.1.1/) and
   upload the OEM firmware

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

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

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18324
(cherry picked from commit d8002cb627)
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18438
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-10 20:18:23 +02:00
Mieczyslaw Nalewaj
b16a42159b kernel: bump 6.6 to 6.6.86
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.86

Removed upstreamed:
        generic/pending-6.6/155-usbnet-restore-usb%d-name-exception-for-local-mac-addresses.patch[1]

1. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.86&id=2beb999f73b48f3cb04d7cb9c4b5400d59f80f89

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18443
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit f7c0331c50)
Link: https://github.com/openwrt/openwrt/pull/18451
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-10 20:14:56 +02:00
Álvaro Fernández Rojas
2b1847c781 bcm27xx: pull 6.6 patches from RPi repo
Adds latest 6.6 patches from the Raspberry Pi repository.

These patches were generated from:
https://github.com/raspberrypi/linux/commits/rpi-6.6.y/
With the following command:
git format-patch -N v6.6.85..HEAD
(HEAD -> bba53a117a4a5c29da892962332ff1605990e17a)

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 4618d09587)
2025-04-10 13:43:36 +02:00
Matthias Schiffer
a51b1a98e0 build: bpf: fix LLVM tool paths with host toolchain
Do not assume that the various tools like llc can be found under the
same path as clang; instead, look them up through BPF_PATH (while still
preferring ones found next to clang).

This fixes build in common setups with ccache, where clang resolves to a
path like /usr/lib/ccache/bin/clang, but no other tools can be found at
that location.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/18422
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 89f1d56a7e)
2025-04-09 18:30:49 +02:00
Matthias Schiffer
dc7933e77f build: bpf: drop clang-11 lookup
CLANG_MIN_VER is 12, so there is no point in looking for clang-11.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/18422
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 45f0eb106b)
2025-04-09 18:30:48 +02:00
Matthias Schiffer
2868202df3 ipq40xx: qca8k: hook up IPQ4019 bridge flag offloading
Adds support for setting bridge port learning and isolation flags on
ipq40xx.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/18375
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit af93874f4e)
2025-04-08 18:24:33 +02:00
Matthias Schiffer
eb1f411036 generic: qca8k: backport bridge port isolation support
Bridge port isolation offload support has been added to the bridge core
and many DSA drivers. mt7530 support was backported in OpenWrt commit
c4e6a147a6 ("generic: 6.6: mt7530: add support for bridge port
isolation").

Backport qca8k support as well.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Link: https://github.com/openwrt/openwrt/pull/18375
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 5d1dedd9f7)
2025-04-08 18:24:33 +02:00
Jan Hoffmann
8729666926 realtek: refactor RTL930x MAC config to fix PHY ports
Currently, network ports using PHYs get a link, but there is no traffic.
Make it work again by moving the MAC config to phylink_mac_link_up.

A similiar change has been previously applied for RTL83xx in commit
cd958d945b ("realtek: 6.6: refactor mac config and link up for
RTL83xx").

Fixes: https://github.com/openwrt/openwrt/issues/17010
Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Tested-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18268
Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit a7e1e13817)
2025-04-08 10:51:39 +02:00
John Audia
cf3988c266 kernel: bump 6.6 to 6.6.85
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.85

Removed upstreamed:
        bcm27xx/patches-6.6/950-1498-dts-bcm2711-PL011-UARTs-are-actually-r1p5.patch[1]
        bcm27xx/patches-6.6/950-1551-drm-v3d-Don-t-run-jobs-that-have-errors-flagged-in-i.patch[2]

Manually rebased:
        bcm27xx/patches-6.6/950-1512-dts-bcm2711-Don-t-mark-timer-regs-unconfigured.patch

All other patches automatically rebased.

1. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.85&id=61820187b3ef5a15aed7ef49ed1fcc13398b449c
2. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.85&id=7cd375d46afcce906cfcddf5aec6b318199d1f16

Build system: x86/64
Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64
Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18379
(cherry picked from commit 2e71e41ce6)
Link: https://github.com/openwrt/openwrt/pull/18419
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-05 17:07:43 +02:00
John Audia
52870ddf62 kernel: bump 6.6 to 6.6.84
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.84

All patches automatically rebased.

Build system: x86/64
Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, x86/64
Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, x86/64

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18326
Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit 314ca03877)
Link: https://github.com/openwrt/openwrt/pull/18419
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-05 17:07:43 +02:00
Kyle Hendry
f31675b69b bmips: add support for Actiontec T1200H
Specifications:
- SoC: Broadcom BCM63168 dual 400MHz MIPS
- Flash: 128MB NAND ESMT F59L1G81A
- RAM: 128MB DDR3
- Ethernet: 5x 1000M
- Wifi: BCM435F
- 1x USB 2.0 port
- 2x Button
- 11x LED
- Coax HPNA (unsupported)
- RJ11 xDSL (unsupported)

Install instructions:
The booloader will only install signed firmware so the image has to
be manually flashed.

- Set up a TFTP server on 192.168.1.0/24 to serve the initramfs image
- Interrupt the bootloader and run from RAM with
  r 192.168.1.100:openwrt-bmips-bcm63268-actiontec_t1200h-initramfs.elf
- On the openwrt console, copy the wfi image using wget/tftp/scp, i.e
  scp user@192.168.1.100:~/openwrt/bin/targets/bmips/bcm63268/openwrt-bmips-bcm63268-actiontec_t1200h-squashfs-cfe.bin /tmp/
- Erase half the flash partition where openwrt will be installed with
  flash_erase -j /dev/mtd1 0 491
- Flash the openwrt image with
  nandwrite -p /dev/mtd1 /tmp/openwrt-bmips-bcm63268-actiontec_t1200h-squashfs-cfe.bin
- Reboot
- Interrupt the bootloader again and use the c command to boot from
  previous firmware if vendor image is loaded

Signed-off-by: Kyle Hendry <kylehendrydev@gmail.com>
[Minor improvements to DTS file]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 65b8a978de)
2025-04-02 19:11:49 +02:00
Álvaro Fernández Rojas
d70709e5fe bcm63xx-cfe: update to latest version
actiontec: t1200h: add cferam.000 file

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit c01859e4f3)
2025-04-02 19:11:32 +02:00
Tim Harvey
ba66273943 mac80211: ath11k: Fix DMA buffer allocation to resolve SWIOTLB issues
Backport two commits to resolve issues with ath1kk causing it to fail
driver registration on iommuless systems with DRAM outside of 32bit
addressing such as a 4GiB imx8mm:

commit 1bcd20981834 ("wifi: ath11k: Fix DMA buffer allocation
to resolve SWIOTLB issues")
commit eeadc6baf8b3 ("wifi: ath11k: Use dma_alloc_noncoherent
for rx_tid buffer allocation")

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/17751
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit fa50e53aa9)
2025-04-02 10:23:27 +02:00
Magnus Kroken
53ab5629c3 mbedtls: update to 3.6.3
This release of Mbed TLS provides the fix for a tls compatibility issue of handling fragmented handshake messages.
This release includes fixes for security issues.

* Potential authentication bypass in TLS handshake (CVE-2025-27810) [1]
* TLS clients may unwittingly skip server authentication (CVE-2025-27809) [2]

[1]: https://mbed-tls.readthedocs.io/en/latest/security-advisories/mbedtls-security-advisory-2025-03-2/
[2]: https://mbed-tls.readthedocs.io/en/latest/security-advisories/mbedtls-security-advisory-2025-03-1/

Full release announcement:
https://github.com/Mbed-TLS/mbedtls/releases/tag/mbedtls-3.6.3

Signed-off-by: Magnus Kroken <mkroken@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18353
Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit 1732d81d80)
2025-04-01 00:31:41 +02:00
Tomas Lara
0073a7bc93 rockchip: fix missing ".patch" file extension
Fixes missing .patch file extension in:
- de9ad11dac
- 2e7d060fd1

Signed-off-by: Tomas Lara <tl849670@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18281
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit f86476b18b)
Link: https://github.com/openwrt/openwrt/pull/18347
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-01 00:26:09 +02:00
Michel Lespinasse
8e5c9dbb17 kernel: load r8169 network module at boot time
This allows the network interface naming to be stable, free from any
possible interaction from external USB network devices that might
claim usb* interface names.

(This was a real problem I encountered with a nanopi R6S device and
an external rtl8152 usb3 network controller - the USB controller would
claim the eth1 name, causing much confusion).

Signed-off-by: Michel Lespinasse <michel@lespinasse.org>
Link: https://github.com/openwrt/openwrt/pull/17638
(cherry picked from commit effcb6e4c3)
Link: https://github.com/openwrt/openwrt/pull/18347
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-01 00:26:09 +02:00
Michel Lespinasse
092ee8bf07 rockchip: set network IRQ affinity to fast CPU cores
The nanopi R6S, R6C and nanopc T6 platforms are based on rk3588(s) SoC,
which has fast and slow CPU cores. Set up network interrupt affinity to be
on the fast CPU cores by default. This is similar to the way this was
already configured on nanopi R4S.

Signed-off-by: Michel Lespinasse <michel@lespinasse.org>
Link: https://github.com/openwrt/openwrt/pull/17638
(cherry picked from commit 59215154a0)
Link: https://github.com/openwrt/openwrt/pull/18347
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-01 00:26:09 +02:00
Michel Lespinasse
f9d59735c6 rockchip: configure reset button on nanopi R6
Set up openwrt to handle the reset button appropriately (so that it
can trigger the various recovery modes) on the nanopi R6S and R6C models.

Signed-off-by: Michel Lespinasse <michel@lespinasse.org>
Link: https://github.com/openwrt/openwrt/pull/17638
(cherry picked from commit 2e7d060fd1)
Link: https://github.com/openwrt/openwrt/pull/18347
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-01 00:26:09 +02:00
Michel Lespinasse
ec231bf564 rockchip: show boot stages on nanopi R6 system LED
Set up openwrt to show boot progress on the nanopi R6S or R6C system LED.

The LED blinking states indicate the boot stage. The LED is defined as
a power LED, but can still be set to heartbeat in /etc/config/system
after the system is done booting.

Signed-off-by: Michel Lespinasse <michel@lespinasse.org>
Link: https://github.com/openwrt/openwrt/pull/17638
(cherry picked from commit de9ad11dac)
Link: https://github.com/openwrt/openwrt/pull/18347
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-04-01 00:26:09 +02:00
Coia Prant
76c1d0f493 ramips: Fix Hongdian H8922 v30 pinctrl default state
According to the MT7620A hardware datasheet, GPIO/14 was originally used for RIN of UARTF, but is now used as the WPS LED.

Corrected pinctrl to ensure it works properly in the future.

Signed-off-by: Coia Prant <coiaprant@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18278
Link: https://github.com/openwrt/openwrt/pull/18279
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 612bedaf5b)
2025-04-01 00:17:10 +02:00
Christian Marangi
64186283b2 mac80211: fix compilation error for old stable kernel version
Fix compilation error for old stable version caused by
genlmsg_multicast_allns backport fix pushed middle version.

Version 5.15 version 0-169, 6.1 version 0-115, 6.6 version 0-58 have the
old genlmsg_multicast_allns version with flags variable.

Compiling backport project with these version result in a compilation
error. To handle this, introduce a backport function for the affected
kernel version.

Link: https://github.com/openwrt/openwrt/pull/18373
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 4039388149)
2025-03-30 16:57:01 +02:00
Rui Salvaterra
1c1c373943 kernel: backport igc hw vlan patch to 24.10
Fix an abysmal out-of-the-box performance issue with igc-supported Ethernet
controllers and 802.1Q.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2025-03-28 16:26:03 +00:00
Paul Donald
de2718b2f3 lldpd: add custom-tlv handling
Do not verify the format of TLV. Leave that to lldpd.

These lldpd config entries:

config custom-tlv
	list ports 'eth0'
	option tlv 'replace oui 33,44,55 subtype 254 oui-info 55,55,55,55,55'

config custom-tlv
	option tlv 'oui 33,44,44 subtype 232'
	list ports 'br-lan'
	list ports 'eth0'

config custom-tlv # oui-info truncated
	option tlv 'add oui 33,44,33 subtype 66 oui-info 5555555555'

config custom-tlv
	option tlv 'add oui 33,44,31 subtype 44'

config custom-tlv # invalid oui
	option tlv 'add oui 3322 subtype 79'

config custom-tlv # invalid oui
	option tlv 'oui 3312 subtype 74'

Produce the following lldpd.conf content:

configure ports eth0 lldp custom-tlv replace oui 33,44,55 subtype 254 oui-info 55,55,55,55,55
configure ports br-lan,eth0 lldp custom-tlv oui 33,44,44 subtype 232
configure lldp custom-tlv add oui 33,44,33 subtype 66 oui-info 5555555555
configure lldp custom-tlv add oui 33,44,31 subtype 44
configure lldp custom-tlv add oui 3322 subtype 79
configure lldp custom-tlv oui 3312 subtype 74

And lldpd (v1.0.13 on v22) logs the following:

Sat Mar 16 19:11:39 2024 daemon.info lldpd[10916]: custom TLV op replace oui 33:44:55 subtype fe
Sat Mar 16 19:11:39 2024 daemon.info lldpd[10916]: custom TLV op add oui 33:44:44 subtype e8
Sat Mar 16 19:11:39 2024 daemon.info lldpd[10916]: custom TLV op add oui 33:44:33 subtype 42
Sat Mar 16 19:11:39 2024 daemon.info lldpd[10916]: custom TLV op add oui 33:44:33 subtype 42
Sat Mar 16 19:11:39 2024 daemon.info lldpd[10916]: custom TLV op add oui 33:44:31 subtype 2c
Sat Mar 16 19:11:39 2024 daemon.info lldpd[10916]: custom TLV op add oui 33:44:31 subtype 2c
Sat Mar 16 19:11:39 2024 daemon.warn lldpcli[10915]: invalid OUI value '3322'
Sat Mar 16 19:11:39 2024 daemon.info lldpcli[10915]: an error occurred while executing last command
Sat Mar 16 19:11:39 2024 daemon.warn lldpcli[10915]: invalid OUI value '3312'
Sat Mar 16 19:11:39 2024 daemon.info lldpcli[10915]: an error occurred while executing last command
Sat Mar 16 19:11:39 2024 daemon.info lldpcli[10915]: lldpd should resume operations

( The last two TLV are invalid: their oui must be three hex bytes, comma
separated. Only the first hex byte of oui-info 5555555555 is used )

Depends on #14867 and its release version bump

Tested on: 22.03.6

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14872
(cherry picked from commit 8d1fe32c2c)
Link: https://github.com/openwrt/openwrt/pull/18343
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-03-25 09:52:55 +01:00
Paul Donald
bde35a6c7d lldpd: get_config_cid_ifaces() -> get_interface_csv()
where csv = comma separated value(s)

Make the function more generic. Can use it for not only 'config'.

Now it can be used to parse interfaces for additional lldpd settings,
e.g. custom-tlv.

Tested on: 22.03.6

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14872
(cherry picked from commit a015f59880)
Link: https://github.com/openwrt/openwrt/pull/18343
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-03-25 09:52:55 +01:00
Felix Fietkau
9e63e2410d libnl-tiny: update to Git HEAD (2025-03-19)
c0df580adbd4 attr.c: fix nla_reserve size check

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit ddc2ae02b3495ffcc6bb5194c777952621c46c25)
2025-03-19 13:20:21 +01:00
Christian Marangi
53479294fb generic: globally enable CONFIG_PCPU_DEV_REFCNT
Quoting the kconfig description for CONFIG_PCPU_DEV_REFCNT:

network device refcount are using per cpu variables if this option is
set. This can be forced to N to detect underflows (with a performance
drop).

This was introduced from kernel 5.13 and was wrongly set as disabled.
Some target actually enables it but this should be always enabled unless
refcount needs to be debugged (unlikely for production images)

Enable in generic and drop the entry in every other target.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18174
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit ea6f3e49d6)
2025-03-19 09:24:43 +01:00
Tomasz Maciej Nowak
5c533d7a89 mediatek: u7623: fix network switch enumeration
With upstream changes hitting kernel 6.4 the dtb for u7623 ends up with
both mac (gmac) disabled, since this is now the default status in
mt7623.dtsi. Fix this by including mt7623a.dtsi (which already has all
necessary bits) and enabling all revlevant ports. This will also do
a side hustle of assigning proper clocks for power controller and
specifying proper power domain for few devices.

Link: https://lore.kernel.org/all/20230210182505.24597-1-arinc.unal@arinc9.com
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/20250304164507.60511-2-tmn505@terefe.re/
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit adc4d95c74)
2025-03-17 16:21:23 +01:00
Tomasz Maciej Nowak
82fabe4370 uboot-mediatek: u7623: remove keys pin function
Apparently U-Boot will discard whole node if requested pin function is
unknown to the driver. This resulted in inability to interact with
U-Boot on the said board, as U-Boot always assumed the recovery key
pressed and issued recovery procedure. Log snippet:

button_gpio gpio-keys: pinctrl_select_state_full: pinctrl_config_one: err=-38
reset button found
button pushed, resetting environment

Recovery procedure also booted recovery image, which didn't affect much
the 23.05.x release, since the root fs argument was valid, so changes
persisted. But as 24.10.x hit with fitblk, the board will boot only
recovery image (initramfs) because of default bootargs will reset on each
boot and U-Boot provided bootargs took precedence.

Fixes: 42eeb22450 ("uboot-mediatek: fix factory/reset button")
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/20250304164507.60511-1-tmn505@terefe.re/
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit f8a2e1c68b)
2025-03-17 16:21:23 +01:00
J. S. Seldenthuis
3c1edff293 ramips: use openwrt,netdev-name to fix port name conflict on TP-Link Deco M4R v4
Since 24.10.0, eth0, used for the WAN interface, does not work. From dmesg:

...
[    1.831126] mt7530-mdio mdio-bus:1f: MT7530 adapts as multi-chip module
[    1.846204] mtk_soc_eth 1e100000.ethernet eth0: mediatek frame engine at 0xbe100000, irq 19
...
[    1.933969] mt7530-mdio mdio-bus:1f: MT7530 adapts as multi-chip module
[    1.967668] mt7530-mdio mdio-bus:1f: configuring for fixed/rgmii link mode
[    1.975999] mt7530-mdio mdio-bus:1f eth0 (uninitialized): PHY [mt7530-0:00] driver [MediaTek MT7530 PHY] (irq=21)
[    1.986907] mt7530-mdio mdio-bus:1f: Link is Up - 1Gbps/Full - flow control rx/tx
[    1.987149] mtk_soc_eth 1e100000.ethernet eth0: error -17 registering interface eth0
[    2.004157] mt7530-mdio mdio-bus:1f eth1 (uninitialized): PHY [mt7530-0:01] driver [MediaTek MT7530 PHY] (irq=22)
[    2.017698] mtk_soc_eth 1e100000.ethernet eth0: entered promiscuous mode
[    2.024849] DSA: tree 0 setup
...
[    4.249680] mtk_soc_eth 1e100000.ethernet dsa: renamed from eth0
...

Like #15865, it seems that gmac0 does not rename eth0 to dsa until after the
switch ports are initialized, leading to a name collision (error -17 = EEXIST).

This patch follows #17062 by using openwrt,netdev-name to fix the collision.

Signed-off-by: J. S. Seldenthuis <jseldenthuis@lely.com>
Link: https://github.com/openwrt/openwrt/pull/18082
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 4fed462454)
2025-03-17 16:21:23 +01:00
Thomas Richard
2d8bed0fa1 optee-os.mk: override default PATH to not use hostpkg python
In some cases hostpkg python from packages feed is used (hostpkg has higher
priority in PATH) which causes build failure (cryptography module is
missing). So override PATH to not use hostpkg python.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/18102
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 8c3a43be27)
2025-03-17 16:21:23 +01:00
Shiji Yang
9db716b6dc stm32: modules: fix stm32-hash package build
* Remove misplaced backslash to fix the build warning:

WARNING: can't parse line: FILES:=/drivers/crypto/stm32/stm32-hash.ko

* Add missing dependency package kmod-crypto-engine:

Package kmod-stm32-hash is missing dependencies for the following libraries:
crypto_engine.ko

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/18241
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 4efb4a26d2)
2025-03-17 16:21:23 +01:00
John Audia
cfd155aab9 firmware: intel-microcode: update to 20250211
Debian Changelogs from 20240531:

 local access.
    - Mitigations for INTEL-SA-01079 (CVE-2024-23918)
      Potential security vulnerabilities in some Intel Xeon processors
      using Intel SGX may allow escalation of privilege.  Intel disclosed
      that some processor models were already fixed by a previous
      microcode update.
    - Updated mitigations for INTEL-SA-01097 (CVE-2024-24968)
      Improper finite state machines (FSMs) in hardware logic in some
      Intel Processors may allow an privileged user to potentially enable a
      denial of service via local access.
    - Mitigations for INTEL-SA-01103 (CVE-2024-23984)
      A potential security vulnerability in the Running Average Power Limit
      (RAPL) interface for some Intel Processors may allow information
      disclosure.  Added mitigations for more processor models.
  * Updated Microcodes:
    sig 0x000806f8, pf_mask 0x87, 2024-06-20, rev 0x2b000603, size 588800
    sig 0x000806f7, pf_mask 0x87, 2024-06-20, rev 0x2b000603
    sig 0x000806f6, pf_mask 0x87, 2024-06-20, rev 0x2b000603
    sig 0x000806f5, pf_mask 0x87, 2024-06-20, rev 0x2b000603
    sig 0x000806f4, pf_mask 0x87, 2024-06-20, rev 0x2b000603
    sig 0x00090672, pf_mask 0x07, 2024-05-29, rev 0x0037, size 224256
    sig 0x00090675, pf_mask 0x07, 2024-05-29, rev 0x0037
    sig 0x000b06f2, pf_mask 0x07, 2024-05-29, rev 0x0037
    sig 0x000b06f5, pf_mask 0x07, 2024-05-29, rev 0x0037
    sig 0x000906a3, pf_mask 0x80, 2024-06-03, rev 0x0435, size 223232
    sig 0x000906a4, pf_mask 0x80, 2024-06-03, rev 0x0435
    sig 0x000a06a4, pf_mask 0xe6, 2024-08-02, rev 0x0020, size 138240
    sig 0x000b06a2, pf_mask 0xe0, 2024-05-29, rev 0x4123, size 220160
    sig 0x000b06a3, pf_mask 0xe0, 2024-05-29, rev 0x4123
    sig 0x000b06a8, pf_mask 0xe0, 2024-05-29, rev 0x4123
    sig 0x000c06f2, pf_mask 0x87, 2024-06-20, rev 0x21000283, size 560128
    sig 0x000c06f1, pf_mask 0x87, 2024-06-20, rev 0x21000283
  * source: update symlinks to reflect id of the latest release, 20241112
  * Update changelog for 3.20240910.1 and 3.20240813.1 with new information:
    INTEL-SA-1103 was addressed by 3.20240813.1 for some processor models,
    and not by 3.20240910. INTEL-SA-1079 was addressed by 3.20240910.1 for
    some processor models.

 -- Henrique de Moraes Holschuh <hmh@debian.org>  Thu, 14 Nov 2024 15:37:40 -0300

intel-microcode (3.20241029.1) UNRELEASED; urgency=medium

  * New upstream microcode datafile 20241029
    - Not relevant for operating system microcode updates
    - Only when loaded from firmware, this update fixes the critical,
      potentially hardware-damaging errata RPL061: Incorrect Internal
      Voltage Request on Raptor Lake (Core 13th/14th gen) Intel
      processors.
  * Updated Microcodes:
    sig 0x000b0671, pf_mask 0x32, 2024-08-29, rev 0x012b, size 211968

 -- Henrique de Moraes Holschuh <hmh@debian.org>  Thu, 14 Nov 2024 14:49:03 -0300

intel-microcode (3.20240910.1) unstable; urgency=medium

  * New upstream microcode datafile 20240910 (closes: #1081363)
    - Mitigations for INTEL-SA-01097 (CVE-2024-24968)
      Improper finite state machines (FSMs) in hardware logic in some
      Intel Processors may allow an privileged user to potentially enable a
      denial of service via local access.
    - Fixes for unspecified functional issues on several processor models
    - The processor voltage limit issue on Core 13rd/14th gen REQUIRES A
      FIRMWARE UPDATE.  It is present in this release for sig 0xb0671, but
      THE VOLTAGE ISSUE FIX ONLY WORKS WHEN THE MICROCODE UPDATE IS LOADED
      THROUGH THE FIT TABLE IN FIRMWARE.  Contact your system vendor for a
      firmware update that includes the appropriate microcode update for
      your processor.
  * Updated Microcodes:
    sig 0x00090672, pf_mask 0x07, 2024-02-22, rev 0x0036, size 224256
    sig 0x00090675, pf_mask 0x07, 2024-02-22, rev 0x0036
    sig 0x000b06f2, pf_mask 0x07, 2024-02-22, rev 0x0036
    sig 0x000b06f5, pf_mask 0x07, 2024-02-22, rev 0x0036
    sig 0x000906a3, pf_mask 0x80, 2024-02-22, rev 0x0434, size 222208
    sig 0x000906a4, pf_mask 0x80, 2024-02-22, rev 0x0434
    sig 0x000a06a4, pf_mask 0xe6, 2024-06-17, rev 0x001f, size 137216
    sig 0x000b0671, pf_mask 0x32, 2024-07-18, rev 0x0129, size 215040
    sig 0x000b06a2, pf_mask 0xe0, 2024-02-22, rev 0x4122, size 220160
    sig 0x000b06a3, pf_mask 0xe0, 2024-02-22, rev 0x4122
    sig 0x000b06a8, pf_mask 0xe0, 2024-02-22, rev 0x4122
    sig 0x000b06e0, pf_mask 0x19, 2024-03-25, rev 0x001a, size 138240
  * Update changelog for 3.20240813.1 with new information
  * Update changelog for 3.20240514.1 with new information
  * source: update symlinks to reflect id of the latest release, 20240910

 -- Henrique de Moraes Holschuh <hmh@debian.org>  Sat, 21 Sep 2024 16:40:07 -0300

intel-microcode (3.20240813.2) unstable; urgency=high

  * Merge changes from intel-microcode/3.20240531.1+nmu1, which were left out
    from 3.20240813.1 by an oversight, regressing merged-usr. Closes: #1060200

 -- Henrique de Moraes Holschuh <hmh@debian.org>  Sat, 17 Aug 2024 11:31:32 -0300

intel-microcode (3.20240813.1) unstable; urgency=medium

  * New upstream microcode datafile 20240813 (closes: #1078742)
    - Mitigations for INTEL-SA-01083 (CVE-2024-24853)
      Incorrect behavior order in transition between executive monitor and SMI
      transfer monitor (STM) in some Intel Processors may allow a privileged
      user to potentially enable escalation of privilege via local access.
    - Mitigations for INTEL-SA-01118 (CVE-2024-25939)
      Mirrored regions with different values in 3rd Generation Intel Xeon
      Scalable Processors may allow a privileged user to potentially enable
      denial of service via local access.
    - Mitigations for INTEL-SA-01100 (CVE-2024-24980)
      Protection mechanism failure in some 3rd, 4th, and 5th Generation Intel
      Xeon Processors may allow a privileged user to potentially enable
      escalation of privilege via local access.
    - Mitigations for INTEL-SA-01038 (CVE-2023-42667)
      Improper isolation in the Intel Core Ultra Processor stream cache
      mechanism may allow an authenticated user to potentially enable
      escalation of privilege via local access.  Intel disclosed that some
      processor models were already fixed by the previous microcode update.
    - Mitigations for INTEL-SA-01046 (CVE-2023-49141)
      Improper isolation in some Intel Processors stream cache mechanism may
      allow an authenticated user to potentially enable escalation of
      privilege via local access.  Intel disclosed that some processor models
      were already fixed by the previous microcode update.
    - Mitigations for INTEL-SA-01079 (CVE-2024-23918)
      Potential security vulnerabilities in some Intel Xeon processors
      using Intel SGX may allow escalation of privilege.  Intel released this
      information during the full disclosure for the 20241112 update.
      Processor signatures 0x606a6 and 0x606c1.
    - Mitigations for INTEL-SA-01103 (CVE-2024-23984)
      A potential security vulnerability in the Running Average Power Limit
      (RAPL) interface for some Intel Processors may allow information
      disclosure. Intel released this information during the full disclosure
      for the 20240910 update.  Processor signatures 0x5065b, 0x606a6,
      0x606c1.
    - Fix for unspecified functional issues on several processor models
    - Fix for errata TGL068/ADL075/ICL088/... "Processor may hang during a
      microcode update".  It is not clear which processors were fixed by this
      release, or by one of the microcode updates from 2024-05.
    - Mitigations for INTEL-SA-01213 (CVE-2024-36293)
      Improper access control in the EDECCSSA user leaf function for some
      Intel Processors with Intel SGX may allow an authenticated user to
      potentially enable denial of service via local access.  Intel released
      this information during the full disclosure for the 20250211 update.
      Processor signature 0x906ec (9th Generation Intel Core processor).
  * Updated microcodes:
    sig 0x00050657, pf_mask 0xbf, 2024-03-01, rev 0x5003707, size 39936
    sig 0x0005065b, pf_mask 0xbf, 2024-04-01, rev 0x7002904, size 30720
    sig 0x000606a6, pf_mask 0x87, 2024-04-01, rev 0xd0003e7, size 308224
    sig 0x000606c1, pf_mask 0x10, 2024-04-03, rev 0x10002b0, size 300032
    sig 0x000706e5, pf_mask 0x80, 2024-02-15, rev 0x00c6, size 114688
    sig 0x000806c1, pf_mask 0x80, 2024-02-15, rev 0x00b8, size 112640
    sig 0x000806c2, pf_mask 0xc2, 2024-02-15, rev 0x0038, size 99328
    sig 0x000806d1, pf_mask 0xc2, 2024-02-15, rev 0x0052, size 104448
    sig 0x000806e9, pf_mask 0xc0, 2024-02-01, rev 0x00f6, size 106496
    sig 0x000806e9, pf_mask 0x10, 2024-02-01, rev 0x00f6, size 106496
    sig 0x000806ea, pf_mask 0xc0, 2024-02-01, rev 0x00f6, size 105472
    sig 0x000806eb, pf_mask 0xd0, 2024-02-01, rev 0x00f6, size 106496
    sig 0x000806ec, pf_mask 0x94, 2024-02-05, rev 0x00fc, size 106496
    sig 0x00090661, pf_mask 0x01, 2024-04-05, rev 0x001a, size 20480
    sig 0x000906ea, pf_mask 0x22, 2024-02-01, rev 0x00f8, size 105472
    sig 0x000906eb, pf_mask 0x02, 2024-02-01, rev 0x00f6, size 106496
    sig 0x000906ec, pf_mask 0x22, 2024-02-01, rev 0x00f8, size 106496
    sig 0x000906ed, pf_mask 0x22, 2024-02-05, rev 0x0100, size 106496
    sig 0x000a0652, pf_mask 0x20, 2024-02-01, rev 0x00fc, size 97280
    sig 0x000a0653, pf_mask 0x22, 2024-02-01, rev 0x00fc, size 98304
    sig 0x000a0655, pf_mask 0x22, 2024-02-01, rev 0x00fc, size 97280
    sig 0x000a0660, pf_mask 0x80, 2024-02-01, rev 0x00fe, size 97280
    sig 0x000a0661, pf_mask 0x80, 2024-02-01, rev 0x00fc, size 97280
    sig 0x000a0671, pf_mask 0x02, 2024-03-07, rev 0x0062, size 108544
    sig 0x000a06a4, pf_mask 0xe6, 2024-04-15, rev 0x001e, size 137216
  * source: update symlinks to reflect id of the latest release, 20240813
  * postinst, postrm: switch to dpkg-trigger to run update-initramfs

 -- Henrique de Moraes Holschuh <hmh@debian.org>  Thu, 15 Aug 2024 14:41:50 -0300

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18197
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit f4801cffc3)
2025-03-17 16:21:23 +01:00
Tianling Shen
a748c1af75 ramips: fix reading mac address for hiwifi hc5962
The spaces in variables have been stripped since commit 551e04f3c9
("base-files: strip space and tab characters from ASCII mac address"),
resulting "Vfac_mac " matches nothing. Fix the issue by removing the
space at end.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/18150
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 2091c29578)
2025-03-17 16:21:23 +01:00
Mikhail Zhilkin
d5a9ec601d mediatek: Xiaomi AX3000t: enable SPI calibration
Xiaomi enabled SPI calibration in new firmware:
- 1.0.84 and newer (rd03 model)
- 1.0.76 and newer (rd23 model)

This enables SPI calibration routines in OpenWrt too.

Tested-by: Aleksandr Danilov <sc16me@gmail.com>
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17976
(cherry picked from commit 043df82cea)
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18270
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-03-17 16:14:27 +01:00
Roland Reinl
4e69539953 ramips: Add support for Cudy M1200 v1
The M1200 v1 is similar to the TR1200 series from Cudy. Differences:
- Only 1 LAN port
- No USB

Specifications:
- MT7628
- MT7628AN (2.4G b/g/n) and MT7613BE (5G ac/n) wifi
- 128 MB RAM
- 16 MB flash

MAC Addresses:
- There is one on the label, e.g. xx:xx:xx:xx:xx:A4
- LAN (bottom connector) is the same as the label, e.g. xx:xx:xx:xx:xx:A4
- WAN (top connector) is label + 1, e.g. xx:xx:xx:xx:xx:A5
- WLAN (2.4G) is the same as the label, e.g. xx:xx:xx:xx:xx:A4
- WLAN (5G) is label + 2, e.g. xx:xx:xx:xx:xx:A6

UART:
- is available via the pin holes on the board
- The pinout is printed to the board: P: VCC, G: GND, R: RX, T:TX
- RX and TX require solder bridges to be installed
- Do NOT connect VCC
- Settings: 3.3V, 115200, 8N1

GPIO:
- There are two LEDs: Red (GPIO 4) and White (GPIO 0)
- There are two buttons: Reset (GPIO 11) and WPS (GPIO 5)

Migration to OpenWrt:
- Download the migration image from the Cudy website (it should be available as soon as OpenWrt officially supports the device)
- Connect computer to LAN (bottom connector) and flash the migration image via OEM web interface
- OpenWrt is now accessible via 192.168.1.1

Revert back 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
- Press the reset button while powering on the device
- Recovery process is started now
- When recovery process is done, OEM firmware is accessible via 192.168.10.1 again

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

Signed-off-by: Roland Reinl <reinlroland+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18233
(cherry picked from commit c13a050d5a)
Link: https://github.com/openwrt/openwrt/pull/18252
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-03-17 16:12:47 +01:00
Álvaro Fernández Rojas
5872633b9d bcm27xx: pull 6.6 patches from RPi repo
Adds latest 6.6 patches from the Raspberry Pi repository.

These patches were generated from:
https://github.com/raspberrypi/linux/commits/rpi-6.6.y/
With the following command:
git format-patch -N v6.6.83..HEAD
(HEAD -> 08d4e8f52256bd422d8a1f876411603f627d0a82)

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 251f76c1c6)
2025-03-16 21:08:29 +01:00
Álvaro Fernández Rojas
36e9edd677 bcm27xx-utils: update to latest version
Full changelog: 0c02957911...685afa8c0d

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 6403c2890c)
2025-03-16 21:08:29 +01:00
Álvaro Fernández Rojas
7f5659b79d bcm27xx-gpu-fw: update to v1.20250305
Full changelog: https://github.com/raspberrypi/firmware/compare/1.20241126...1.20250305

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 2804cfe553)
2025-03-16 21:08:29 +01:00
Felix Fietkau
07fb8d22e7 unetd: update to Git HEAD (2025-03-09)
d8b43985e4d7 ubus: fix token_create policy
7326459bd743 ubus: dump service information on network_get
6c9c8fbd8128 service: add @all as alias for all members, unless defined differently

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 84909c62c8)
2025-03-16 18:53:59 +01:00
John Audia
a3213ab1b5 kernel: bump 6.6 to 6.6.83
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.83

Removed upstreamed:
	bcm27xx/patches-6.6/950-0483-usb-xhci-borrow-upstream-TRB_FETCH-quirk-on-VL805-ho.patch[1]

Manually rebased:
	bcm27xx/patches-6.6/950-0061-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch
	bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
	bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch

All other patches automatically rebased.

1. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/drivers/usb/host/xhci-pci.c?h=linux-6.6.y&id=c401b1b4b835d66792e884b76264d742a20d931d

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

Signed-off-by: John Audia <therealgraysky@proton.me>
[fixed issues with bcm27xx patches]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 748682e855)
2025-03-16 08:10:32 +01:00
John Audia
24db615450 kernel: bump 6.6 to 6.6.82
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.82

All patches automatically rebased.

Added CONFIG_MICROCODE_INITRD32=y to x86: config-6.6[1]

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/diff/arch/x86/Kconfig?id=v6.6.82&id2=v6.6.81

Build system: x86/64
Build-tested: bcm27xx/bcm2712
Run-tested: bcm27xx/bcm2712

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18188
(cherry picked from commit 7cf8f61eb2)
Link: https://github.com/openwrt/openwrt/pull/18208
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-03-15 12:34:29 +01:00
John Audia
0fb8d7bc73 kernel: bump 6.6 to 6.6.81
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.81

All patches automatically rebased.

For x86, CONFIG_MICROCODE_LATE_FORCE_MINREV was introduced in this bump
with hrecommendation to enable it[1].

1. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/diff/arch/x86/Kconfig?id=v6.6.81&id2=v6.6.80

Build system: x86/64
Build-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Run-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18188
(cherry picked from commit aabc61d93f)
Link: https://github.com/openwrt/openwrt/pull/18208
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-03-15 12:34:29 +01:00
John Audia
41613c0f7b kernel: bump 6.6 to 6.6.80
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.80

Removed upstreamed:
	generic/backport-6.6/819-v6.8-0002-nvmem-Create-a-header-for-internal-sharing.patch[1]
	generic/backport-6.6/819-v6.8-0003-nvmem-Simplify-the-add_cells-hook.patch[2]
	generic/backport-6.6/819-v6.8-0004-nvmem-Move-and-rename-fixup_cell_info.patch[3]

All other patches automatically rebased.

1. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.80&id=39dfc17a38f77b14f7cb2619bd3488a18d797d5d
2. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.80&id=276dae17ad9757c3813d9e736a0210f05ccdf8b7
3. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.80&id=a0ee898a5024f12572e4ce45202df9b149dadc05

Build system: x86/64
Build-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Run-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18140
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 86fd00b0fb)
Link: https://github.com/openwrt/openwrt/pull/18208
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-03-15 12:34:29 +01:00
Roland Reinl
b16b75efba ramips: Add support for Cudy M1300 v2
The M1300 v2 is similar to the WR1300 series from Cudy. Differences:
- Only 1 LAN port
- No USB

Specifications:
- MT7621
- MT7603E (2.4G b/g/n) and MT7613BE (5G ac/n) wifi
- 128 MB RAM
- 16 MB flash

MAC Addresses:
- There is one on the label, e.g. xx:xx:xx:xx:xx:1C
- LAN (bottom connector) is the same as the label, e.g. xx:xx:xx:xx:xx:1C
- WAN (top connector) is label +2, e.g. xx:xx:xx:xx:xx:1E
- WLAN (2.4G) is the same as the label, e.g. xx:xx:xx:xx:xx:1C
- WLAN (5G) is the same as WAN, e.g. xx:xx:xx:xx:xx:1E

UART:
- is available via the pin holes on the board
- From inner to outer pin: TX, RX, GND, VCC
- Do NOT connect VCC
- Settings: 3.3V, 115200, 8N1

GPIO:
- There are two LEDs: Red (GPIO 3) and White (GPIO 4)
- There are two buttons: Reset (GPIO 8) and WPS (GPIO 10)

Migration to OpenWrt:
- Download the migration image from the Cudy website (it should be available as soon as OpenWrt officially supports the device)
- The migration image is also available here until a image is provided by Cudy: https://github.com/RolandoMagico/openwrt-build/releases/tag/M1300_Build_20240222
- File: openwrt-ramips-mt7621-cudy_m1300-v2-squashfs-flash-signed.bin
- Connect computer to LAN (bottom connector) and flash the migration image via OEM web interface
- In the migration image, LAN and WAN are swapped. Computer must be connected to the other port after flashing
- OpenWrt is now accessible via 192.168.1.1
- After flashing an up to date OpenWrt image, LAN and WAN settings are again the same as in the OEM firmware
- So use the other connector again

Revert back to OEM firmware:
- Set up a TFTP server on IP 192.168.1.88 and connect to the LAN port (lower port)
- Provide the Cudy firmware as recovery.bin in the TFTP server
- Press the reset button while powering on the device
- Recovery process is started now
- When recovery process is done, OEM firmware is accessible via 192.168.10.1 again

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

Signed-off-by: Roland Reinl <reinlroland+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18139
(cherry picked from commit 8a78637670)
Link: https://github.com/openwrt/openwrt/pull/18204
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-03-15 12:30:44 +01:00
Michael Trinidad
2304486d60 mwlwifi: update to version 10.4.11-20250206
The fixes are only for the WRT1900X and WRT1200AC.

It contains:

Deletes the driver's ability to modify the debit table.
Remove skb_get(done_skb) in txdone
Reworking ISR
clean code
Napi replaces tasklet
Add rx_decrypt feature

Signed-off-by: Michael Trinidad <trinidude4@hotmail.com>
Link: https://github.com/openwrt/openwrt/pull/17997
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18145
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-03-15 12:13:56 +01:00
Andreas Gnau
76565015f5 ramips: mt7621: Reduce hardcoded metadata for Inteno Y3 imgs
Instead of hardcoded metadata, put some sensible data instead.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
Link: https://github.com/openwrt/openwrt/pull/17551
(cherry picked from commit 4e3342f5f1)
Link: https://github.com/openwrt/openwrt/pull/18238
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-03-15 12:03:19 +01:00
Andreas Gnau
dd0c2839a8 ramips: Add support for Genexis / Inteno Pulse EX400
Add support for Genexis Pulse EX400 / Inteno Pulse EX400. A branded
variant for the Finnish ISP DNA has already been added in fea2264d9f
(ramips: mt7621: Add DNA Valokuitu Plus EX400, 2023-07-31). This commit
adds support for the generic variants with Inteno and Genexis branding.
Inteno changed its name to Genexis and both brandings exist.

In terms of electronics, there is no difference between the DNA-branded
version and other brandings. LED markings on the case are different,
though. While the DNA-version has a "software-update" LED, the other
versions have a WPS LED. To reduce user confusion, create a separate
image.

Add the different device-tree with the different LED and rename things
to work the same way for both variants.

Specifications:
- Device: Genexis Pulse EX400 / Inteno Pulse EX400
- SoC: MT7621A
- Flash: 256 MB NAND
- RAM: 256 MB
- Ethernet: Built-in, 2 x 1 GbE
- Wifi: MT7603 2.4 GHz 2x2 MIMO, MT7615 5 GHz 4x4 MU-MIMO
- USB: 1x 2.0
- LEDs (GPIO): green/red status, green WPS
- LEDs (SX9512, unsupported): Broadband, Wi-Fi 2.4G, Wi-Fi 5G
- Buttons (GPIO): Reset
- Buttons (SX9512, unsupported): Wi-Fi 2.4G, Wi-Fi 5G, WPS

MAC addresses:
- LAN:     U-Boot 'ethaddr' (label)
- WAN:     label + 1
- 2.4 GHz: label + 6
- 5 GHz:   label + 7

Serial:
 There is a black block connector next to the red ethernet connector. It
 is accessible also through holes in the casing.

Pinout (TTL 3.3V)
 +---+---+
 |Tx |Rx |
 +---+---+
 |Vcc|Gnd|
 +---+---+

Firmware:
 The vendor firmware is a fork of OpenWrt (Reboot) with a kernel version
 4.4.93. The flash is arranged as below and there is a dual boot
 mechanism alternating between rootfs_0 and rootfs_1.

 +-------+------+------+-----------+-----------+
 |       | env1 | env2 | rootfs_0  |  rootfs_1 |
 |       +------+------+-----------+-----------+
 |       |         UBI volumes                 |
 +-------+-------------------------------------+
 |U-Boot |             UBI                     |
 +-------+-------------------------------------+
 |mtd0   |             mtd1                    |
 +-------+-------------------------------------+
 |                     NAND                    |
 +---------------------------------------------+

 In OpenWrt rootfs_0 will be used as a boot partition that will contain the
 kernel and the dtb. The squashfs rootfs and overlay are standard OpenWrt
 behaviour.

 +-------+------+------+-----------+--------+------------+
 |       | env1 | env2 | rootfs_0  | rootfs | rootfs_data|
 |       +------+------+-----------+--------+------------+
 |       |         UBI volumes                           |
 +-------+-----------------------------------------------+
 |U-Boot |             UBI                               |
 +-------+-----------------------------------------------+
 |mtd0   |             mtd1                              |
 +-------+-----------------------------------------------+
 |                     NAND                              |
 +-------------------------------------------------------+

U-boot:
 With proper serial access, booting can be halted to U-boot by pressing
 any key. TFTP and flash writes are available, but only the first one has
 been tested.

 NOTE: Recovery mode can be accessed by holding down the reset button while
 powering on the device. The led 'Update' will show a solid green light
 once ready. A web server will be running at 192.168.1.1:80 and it will
 allow flashing a firmware package. You can cycle between rootfs_0 and
 rootfs_1 by pressing the reset button once.

Root password:
 With the vendor web UI create a backup of your settings and download the
 archive to your computer. Within the archive in the file
 /etc/shadow replace the password hash for root with that of a password you
 know. Restore the configuration with the vendor web UI and you will have
 changed the root password.

SSH access:
 You might need to enable the SSH service for LAN interface as by default
 it's enabled for WAN only.

Installing OpenWrt:
 With the vendor web UI, or from the U-Boot recovery UI, install the
 OpenWrt factory image. Alternatively, ssh to the device and use
 sysupgrade -n from cli.

 Finalize by installing the OpenWrt sysupgrade image to get a fully
 functioning system.

Reverting to the vendor firmware:

 Boot with OpenWrt initramfs image
  - Remove volumes rootfs_0, rootfs and rootfs_data and create vendor
    volumes.

    ubirmvol /dev/ubi0 -n 2
    ubirmvol /dev/ubi0 -n 3
    ubirmvol /dev/ubi0 -n 4
    ubimkvol /dev/ubi0 -N rootfs_0 -S 990
    ubimkvol /dev/ubi0 -N rootfs_1 -S 990

    Power off and enter to the U-boot recovery to install the vendor
    firmware.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
Link: https://github.com/openwrt/openwrt/pull/17551
(cherry picked from commit 3e7337feea)
Link: https://github.com/openwrt/openwrt/pull/18238
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-03-15 12:03:19 +01:00
Andreas Gnau
6e27a13205 ramips: mt7621: Move common DNA EX400 defs to dtsi
Move common definitions for DNA Valokuitu Plus EX400 to a dtsi include.
This is in preparation of adding the non-branded variant of the device
produced by Genexis / Inteno in the next commit. The device with DNA
branding differs in the LED labling on the device.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
Link: https://github.com/openwrt/openwrt/pull/17551
(cherry picked from commit e8603f3b5a)
Link: https://github.com/openwrt/openwrt/pull/18238
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-03-15 12:03:19 +01:00
Coia Prant
55e8ac5312 ramips: add support for Hongdian H8922 v30
This is an industrial 4G router equipped with OpenWrt 14.07 OEM
customized version

WARNING: The original firmware device tree is common to multiple
boards, and the device tree name is H9350. This submitted device
tree is a modified version, which deletes the non-this-device parts
and adds GPIO watchdog.

Specification:
- SoC: MediaTek MT7620A
- Flash: 16 MB
- RAM: 128 MB
- Power: DC 5V-36V 1.5A
- Ethernet: 1x WAN, 4x LAN (10/100 Mbps)
- Wireless radio: 802.11n 2.4g-only
- LED:
  System/Power (RUN): GPIO/26 active-low
  Ethernet: 1x WAN, 4x LAN
  Modem 1: GPIO/66 active-low
  RF 1 (Modem 1 Signal): GPIO/67 active-low
  Modem 2: GPIO 71 active-low
  RF 2 (Modem 2 Signal): GPIO/24 active-low
  WLAN: GPIO/72 active-low
  WPS: GPIO/12 active-low
- Button:
  WPS / RESET: GPIO/34 active-low
- UART: 1x UART on PCB - 115200 8N1
- GPIO Watchdog: GPIO/62 mode=toggle timeout=1s
- PCIe: 2x miniPCIe for modem
- SIM Slots: 2x SIM Slots

Issue:
- No factory partition, eeprom is located
 at /lib/firmware/mt7620a.eeprom

Flash instruction:
Using UART:
1. Configure PC with a static IP address and setup an TFTP server.
2. Put rootfs into the tftp directory.
3. Connect the UART line as described on the PCB.
4. Power up the device and press Ctrl+C to break auto boot.
5. Use `system 6` command and follow the instruction to set device
   and tftp server IP address and input the rootfs file name.
   U-boot will then load the rootfs and write it into
   the flash.
6. Use `system 1` command and follow the instruction to set device
   and tftp server IP address and input the firmware file name.
   U-boot will then load the firmware once.
7. Login to LuCI and use LuCI upgrade firmware.

Original Firmware Dump / More details:
https://blog.gov.cooking/archives/research-hongdian-h8922-and-flash.html

Signed-off-by: Coia Prant <coiaprant@gmail.com>
Tested-by: Coia Prant <coiaprant@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17472
Link: https://github.com/openwrt/openwrt/pull/18221
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 6a1bdcf545)
2025-03-15 11:54:54 +01:00
Coia Prant
40d36ac960 mac80211: rt2x00: load the eeprom data from devicetree embedded data on Ralink SoCs
It will allow loading eeprom from eeprom-data embedded in device tree.
Ported from mediatek mt76 wireless driver (drivers/net/wireless/mediatek/mt76/eeprom.c)

Signed-off-by: Coia Prant <coiaprant@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17472
Link: https://github.com/openwrt/openwrt/pull/18221
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 5d266b55ed)
2025-03-15 11:53:57 +01:00
Tianling Shen
df8679e29f mediatek: add support for CMCC A10
This board is also as known as SuperElectron ZN-M5 and ZN-M8. However,
for ZN-M5 and ZN-M8, there's another version uses ZX279128 as CPU
chip, which is unsupported.
You can check it in "高级设置" > "系统日志" > "内核日志" page from webUI.

Hardware specification:
  SoC: MediaTek MT7981B 2x A53
  Flash: 128 MB SPI-NAND
  RAM: 256MB
  Ethernet: 4x 10/100/1000 Mbps
  Switch: MediaTek MT7531AE
  WiFi: MediaTek MT7976C
  Button: Reset, WPS
  Power: DC 12V 1A

Stock layout flash instructions:
Login into webUI and upload sysupgrade firmware in "系统管理" > "升级固件" page.
Remember to unselect "保留配置" ("Keep configurations") first before doing that.

OpenWrt U-Boot layout flash instructions:
1. Flash stock layout firmware first.
2. Connect to the device via SSH, and backup everything,
   especially 'Factory' partition.
3. Unlock MTD partitions:
   opkg update && opkg install kmod-mtd-rw
   insmod mtd-rw i_want_a_brick=1
4. Write new BL2 and FIP:
   mtd write openwrt-mediatek-filogic-cmcc_a10-ubootmod-preloader.bin BL2
   mtd write openwrt-mediatek-filogic-cmcc_a10-ubootmod-bl31-uboot.fip FIP
5. Set static IP on your PC:
   IP 192.168.1.254/24, GW 192.168.1.1
6. Serve OpenWrt initramfs image using TFTP server.
7. Cut off the power and re-engage, wait for TFTP recovery to complete.
8. After OpenWrt has booted, perform sysupgrade.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/18121
(cherry picked from commit 96c6608346)
[sync uboot defconfigs with 24.10 branch, change apk to opkg]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/18218
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-03-15 11:48:57 +01:00
Daniel Golle
3da9786da3 libpcap: backport support for various DSA tags
Trying to tcpdump DSA conduits results in errors such as
"unsupported DSA tag: mtk".
Backport two commits adding support for various DSA tags to libpcap.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit fad94e8cda)
2025-03-13 23:07:35 +00:00
Robert Marko
ff5b9059b4 libpcap: add missing PKG_CONFIG_DEPENDS entries
Currently, enabling USB, BT or Netfilter support after initial compilation
will not trigger a rebuild, so add the missing PKG_CONFIG_DEPENDS so
that rebuild gets triggered.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
(cherry picked from commit fe37574be6)
2025-03-13 23:07:35 +00:00
Mieczyslaw Nalewaj
7f512e602a ramips: mt7621: 02_network optimization
Merging repeating blocks inside the ramips_setup_interfaces() function.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18146
(cherry picked from commit a0449f8cf3)
Link: https://github.com/openwrt/openwrt/pull/18205
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-03-13 21:52:51 +01:00
Eric ZHANG
2b0cce92ae dnsmasq: fix handlers for options filter_rr and cache_rr
According to:
- https://github.com/openwrt/luci/blob/master/modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js#L700
- https://github.com/openwrt/luci/blob/master/modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js#L402

These two options should be of type `MultiValue` but here there're used as single value. This results in dnsmasq crashes when either of these options are set with multiple values, which leads to an invalid space-separated value.

As these options are designed to take multiple values, I think it's better to use list format eg. `list filter_rr 'AAAA'`, instead of `option filter_rr 'AAAA,HTTPS'`.

See: https://forum.openwrt.org/t/selecting-more-than-one-filter-arbitrary-rr-or-cache-arbitrary-rr-in-v24-10-0-crashes-dnsmasq/225801

Tested on 24.10.0

Signed-off-by: Eric ZHANG <ericzhangjx@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18149
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit d136c24f7c)
2025-03-09 17:28:50 +01:00
Martin Schiller
d00ed19ed4 mediatek: filogic: enable CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY
The Cortex-A73 in MediaTek Filogic 880 (MT7988A) is vulnerable to
multiple Spectre variants including Spectre-BHB.

Ref: https://developer.arm.com/Arm%20Security%20Center/Speculative%20Processor%20Vulnerability
Signed-off-by: Martin Schiller <ms@dev.tdt.de>
Link: https://github.com/openwrt/openwrt/pull/18182
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 6af46a6984)
2025-03-08 17:04:29 +01:00
Martin Schiller
c70d0a6304 mediatek: Refresh kernel configuration
I selected one subtarget after the other and refreshed their
configuration using this command:
  make kernel_oldconfig CONFIG_TARGET=subtarget

For MT7629 I had to re-add CONFIG_LEDS_SMARTRG_LED manually.
Otherwise, building MT7629 with ALL_KMODS we get prompted for
LEDS_SMARTRG_LED and this will break CI and in future buildbot
compilation. See commit 6bdea8c7bd ("mediatek: mt7629: 6.6: disable
LEDS_SMARTRG_LED by default") for more details.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
Link: https://github.com/openwrt/openwrt/pull/18182
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 5013efc4f9)
2025-03-08 17:04:20 +01:00
Ahmed Naseef
315943c616 kernel: usbnet: Restore usb%d naming for cdc-ethernet devices with local MAC
Prior to commit 8a7d12d674,
cdc-ethernet USB LTE modems (e.g. Quectel EC200A) were consistently named
usb0. After 8a7d12d67, devices began renaming to eth1 due to an assumption
that local MAC addresses originate exclusively from the kernel. Some
devices provide driver-assigned local MACs, causing point-to-point
interfaces with driver-set MACs to adopt eth%d names instead of usb%d.

Restore the naming exception for point-to-point devices: interfaces
without driver MACs or with driver-provided local MACs will retain the
usb%d convention. This addresses issues reported in [1] and fixed in [2].

[1] https://lore.kernel.org/all/Z00udyMgW6XnAw6h@atmark-techno.com/
[2] https://lore.kernel.org/all/20241203130457.904325-1-asmadeus@codewreck.org/

Tested-by: Ahmed Naseef <naseefkm@gmail.com>
Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17757
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit ecd609f509)
2025-03-06 16:55:10 +01:00
Felix Fietkau
56559278b7 hostapd: add missing #ifdef to fix compile error when 802.11be support is disabled
Fixes: d65d546bce ("hostapd: add missing ctrl socket initialization on bss add")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 46c17c22cd)
2025-03-05 09:20:06 +01:00
Felix Fietkau
f0dbdf6b7f hostapd: add missing ctrl socket initialization on bss add
Fixes adding/removing individual bss interfaces

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit d65d546bce)
2025-03-05 08:04:52 +01:00
Matthew Cather
634ac2bab7 hostapd: get reference to object before removal
`ucv_array_set` releases the array's reference to the object being cleared.
If this is the last reference to the object, it will be freed, making our
pointer `val` invalid.

To avoid this, we need to obtain our own reference to the object so we
can safely return `val`.

Signed-off-by: Matthew Cather <mattbob4@gmail.com>
(cherry picked from commit 6a10da2934)
2025-03-05 08:04:52 +01:00
Matthew Cather
1af7bf38f7 hostapd: consistent reference counting for registry
Since `wpa_ucode_registry_add` collects its own reference to the values added, the
two functions `hostapd_ucode_bss_get_uval` and `hostapd_ucode_iface_get_uval` would
sometimes return a referenced object (from `uc_resource_new`) and sometimes return
an unreferenced object (from `wpa_ucode_registry_get`). Now, both functions always
return a referenced object.

This change also indirectly fixes `hostapd_ucode_bss_get_uval`, ensuring it now
always returns a referenced object.

Signed-off-by: Matthew Cather <mattbob4@gmail.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 7729f96093)
2025-03-05 08:04:52 +01:00
Matthew Cather
af65802319 hostapd: clean-up references to local variables
Remove extra ucv_get calls when passing a referenced value to an object
without using it further.

Signed-off-by: Matthew Cather <mattbob4@gmail.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 22eaf18647)
2025-03-05 08:04:52 +01:00
Matthew Cather
b7ab34d46c hostapd: fix ucode memory leak with strings
This fixes a common reference counting bug typically along the lines of:
```
uc_value_push(ucv_get(ucv_string_new(...)));
```
This would leave our new string with a reference count of 2, one from
the construction of the string, the other from `ucv_get`. This would
prevent the strings from being correctly cleaned up when it goes out
of scope.

Signed-off-by: Matthew Cather <mattbob4@gmail.com>
(cherry picked from commit f79968ee0f)
2025-03-05 08:04:52 +01:00
Cedric CHEDALEUX
9836836302 scripts/feeds: shallow clone submodules
When a feed has submodules, all its submodules are fully cloned whereas
the feed itself is shallowed. Let's be consistent and perform shallow clones
as well for the submodules.

Signed-off-by: Cedric CHEDALEUX <cedric.chedaleux@orange.com>
Link: https://github.com/openwrt/openwrt/pull/18003
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 9ec32cfb27)
2025-03-04 12:01:44 +01:00
Cedric CHEDALEUX
efffa8a608 scripts/feeds: shallow clone for specific commit update
When a feed is referenced with a specific commit (i.e. <git_url>^<sha1>),
a full clone was performed and a branch was created from the sha1
and named with the sha1. Other git clones operations are shallowed.

As Git does not support clone at a specific commit, let's first perform
a shallow clone to latest commit, then fetch the relevant commit and
finally checkout it (no more 'pseudo' branch).

It saves bandwith and significantly speeds up the feed update process.

Signed-off-by: Cedric CHEDALEUX <cedric.chedaleux@orange.com>
Link: https://github.com/openwrt/openwrt/pull/18003
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 32d0a57dc1)
2025-03-04 12:01:38 +01:00
Felix Fietkau
f3a210b742 unetd: update to Git HEAD (2025-02-28)
75a236be122a service: add missing null pointer check
f5341f327539 ubus: add api for generating and validating security tokens
3fab99eab4d5 add udebug support
28d86bd30e97 pex: only respond to update requests when we have network data
8e6f37cc361e pex-msg: ignore no-data responses if version is zero
12e6cf7f63e1 pex: create pex host from update responses
edc8fdae463a ubus: show the local addresses in network status

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit ce68f61cb6)
2025-02-28 17:37:24 +01:00
Daniel Golle
e664fe6a21 ethtool: work-around ETHTOOL_GRSSH/ETHTOOL_SRSSH ABI breakage
ethtool since version 6.9 introduced support for getting/setting RSS
input transformation supported in Linux since version 6.8.

The now changed kernel ioctl ABI, however, cannot be detected from
userland, and ethtool since version 6.9 simply assumes that a previously
reserved field is now used to set the input transformation.
Unfortunately the default value RXH_XFRM_NO_CHANGE (0xff) used by ethtool
userland creates an incompatibility with older kernels which cannot be
resolved easily without introducing even more ABI breakage.

Work-around the issue and fix support for --set-rxfh and --set-rxfh-indir
ethtool userland tool commands by making the support for input_xfrm
conditional on compile time, and keep it disabled for Linux 6.6.

Fixes: 8c2dcd1518 ("ethtool: update to 6.10")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Tested-by: Stijn Segers <foss@volatilesystems.org>
(cherry picked from commit 3a7467ffde)
2025-02-28 13:20:22 +00:00
Andrea Pesaresi
c9b97c0b4d ethtool: update to 6.11
Version 6.11 - October 8, 2024
	* Feature: cmis: print active and inactive firmware versions
	* Feature: flash transceiver module firmware (--flash-module-firmware)
	* Feature: add T1BRR 10Mb/s mode to link mode tables
	* Feature: support for disabling netlink from command line
	* Fix: fix lanes parameter format specifier
	* Fix: add missing clause 33 PSE manual description
	* Fix: qsf: Better handling of Page A2h netlink read failure
	* Fix: rss: retrieve ring count using ETHTOOL_GRXRINGS ioctl (-x)
	* Misc: man page formatting fix

* changelog here: https://git.kernel.org/pub/scm/network/ethtool/ethtool.git/commit/NEWS?id=c0ea4b70c71334ef038f7a3416b228a50dada406

Tested on gl.inet MT6000, retrieve ring count is now working

Signed-off-by: Andrea Pesaresi <andreapesaresi82@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17607
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 9454331b7f)
2025-02-28 13:20:21 +00:00
Álvaro Fernández Rojas
89f05e032b omcproxy: update to latest version
Changelog: bfba2aa758...582cd8d3ae

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-02-27 20:12:15 +01:00
Álvaro Fernández Rojas
abd08419de kernel: r8126: update to v10.015.00
Changelog: https://github.com/openwrt/rtl8126/compare/10.014.01...10.015.00

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 3d3328bf5f)
2025-02-27 11:58:27 +01:00
Álvaro Fernández Rojas
1ec8d8ea5c kernel: r8125: update to v9.015.00
Changelog: https://github.com/openwrt/rtl8125/compare/9.014.01...9.015.00

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit a8dea562aa)
2025-02-27 11:58:07 +01:00
Maxim Anisimov
d7d560b84b mediatek/filogic: add Keenetic KN-3811 support
Specification:
 * Mediatek MT7981BA
 * 256 MB SPI-NAND
 * 512 MB DDR4 RAM
 * MT7976CN DBDC AX Wi-Fi
 * MediaTek MT7531AE (3x LAN Gigabit ports) + Internal Gbe Phy (1x WAN Gigabit port)
 * 4x LED (power, internet, fn, wifi)
 * 3x buttons (wps, fn, reset)
 * 1x USB 3.0 port

Serial Interface:
 * 3 Pins GND, RX, TX
 * Settings: 115200, 8N1

Notes:
 * The device supports dual boot mode
 * Fn led reassigned to wlan 2.4

Flash instruction:
The only way to flash OpenWrt image is to use tftp recovery mode in U-Boot:

1. Configure PC with static IP 192.168.1.2/24 and tftp server.
2. Rename "openwrt-mediatek-filogic-keenetic_kn-3811-squashfs-factory.bin"
   to "KN-3811_recovery.bin" and place it in tftp server directory.
3. Connect PC with ethernet port, press the reset button, power up
   the device and keep button pressed until status led start blinking.
4. Device will download file from server, write it to flash and reboot.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17135
(cherry picked from commit d087a79b7b)
Link: https://github.com/openwrt/openwrt/pull/18055
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-26 23:32:40 +01:00
Maxim Anisimov
895531f5c5 mediatek/filogic: add Keenetic KN-3911 support
Specification:
 - MT7981 CPU using 2.4GHz and 5GHz WiFi (both AX)
 - 512MB RAM
 - 128MB SPI NAND
 - 2 LEDs (green, orange)
 - 3 buttons (fn, reset, wps)
 - 2 2.5Gbit ethernet ports based on Airoha EN8811H phy

Serial Interface:
 - 3 Pins GND, RX, TX
 - Settings: 115200, 8N1

Notes:
 - The device supports dual boot mode

Flash instruction:
The only way to flash OpenWrt image is to use tftp recovery mode in U-Boot:

1. Configure PC with static IP 192.168.1.2/24 and tftp server.
2. Rename "openwrt-mediatek-filogic-keenetic_kn-3911-squashfs-factory.bin"
   to "KN-3911_recovery.bin" and place it in tftp server directory.
3. Connect PC with ethernet port, press the reset button, power up
   the device and keep button pressed until status led start blinking.
4. Device will download file from server, write it to flash and reboot.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16830
(cherry picked from commit 5a4eb56a7b)
Link: https://github.com/openwrt/openwrt/pull/18055
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-26 23:32:40 +01:00
Maxim Anisimov
13e9117861 mediatek/filogic: enable mtd virtual concat support
This is required for upcoming Keenetic KN-3911 support

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16830
(cherry picked from commit 0d651dd302)
Link: https://github.com/openwrt/openwrt/pull/18055
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-26 23:32:40 +01:00
Maxim Anisimov
d93b6a2bc2 ramips: move zyimage creation to include/image-commands.mk
This is required for upcoming Keenetic KN-3911 support

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16830
(cherry picked from commit 79db5d65ca)
Link: https://github.com/openwrt/openwrt/pull/18055
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-26 23:32:40 +01:00
John Audia
3abbc15454 openssl: update to 3.0.16
Changes between 3.0.15 and 3.0.16 [11 Feb 2025]

CVE-2024-13176[1] - Fixed timing side-channel in ECDSA signature
computation.

There is a timing signal of around 300 nanoseconds when the top word of
the inverted ECDSA nonce value is zero. This can happen with significant
probability only for some of the supported elliptic curves. In
particular the NIST P-521 curve is affected. To be able to measure this
leak, the attacker process must either be located in the same physical
computer or must have a very fast network connection with low latency.

CVE-2024-9143[2] - Fixed possible OOB memory access with invalid
low-level GF(2^m) elliptic curve parameters.

Use of the low-level GF(2^m) elliptic curve APIs with untrusted explicit
values for the field polynomial can lead to out-of-bounds memory reads
or writes. Applications working with "exotic" explicit binary (GF(2^m))
curve parameters, that make it possible to represent invalid field
polynomials with a zero constant term, via the above or similar APIs,
may terminate abruptly as a result of reading or writing outside of
array bounds. Remote code execution cannot easily be ruled out.

1. https://www.openssl.org/news/vulnerabilities.html#CVE-2024-13176
2. https://www.openssl.org/news/vulnerabilities.html#CVE-2024-9143

Build system: x86/64
Build-tested: bcm27xx/bcm2712
Run-tested: bcm27xx/bcm2712

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/17947
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit b4e6fd7b76)
2025-02-25 23:30:54 +01:00
Rudy Andram
88ac2caceb wireless-regdb: Update to version 2025.02.20
b43aeb5 wireless-regdb: assert and correct maximum bandwidth within frequency difference
68588bf wireless-regdb: Update regulatory info for Syria (SY) for 2020
0dda57e wireless-regdb: Update regulatory info for Moldova (MD) on 6GHz for 2022
b19ab0b wireless-regdb: Update regulatory info for Azerbaijan (AZ) on 6GHz for 2024
f67f40d wireless-regdb: Update regulatory info for Oman (OM)
bd70876 wireless-regdb: Update regulatory rules for Armenia (AM) on 2.4 and 5 GHz
6c7cbcc wireless-regdb: Permit 320 MHz bandwidth in 6 GHz band in ETSI/CEPT
f9f6b30 wireless-regdb: Update regulatory rules for Austria (AT)
39b47ea wireless-regdb: Update regulatory info for Cayman Islands (KY) for 2024
3dd7ceb wireless-regdb: allow NO-INDOOR flag in db.txt
4d754a1 wireless-regdb: Update regulatory rules for Iran (IR) on both 2.4 and 5Ghz for 2021
8c8308a wireless-regdb: Update frequency range with NO-INDOOR for Oman (OM)
c2f11e2 wireless-regdb: update regulatory database based on preceding changes

Signed-off-by: Rudy Andram <rmandrad@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17957
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit da2cc98458)
2025-02-25 23:30:54 +01:00
Mieczyslaw Nalewaj
652fe915de ramips: improve MT7621S core detection
The proposed detection method was based on reading the LAUNCH_FREADY core flag.
However, this method only works before the cores are launched.
For this reason, the core number detection method has been changed to a simpler one.
For mt6721s the 17th revision bit is zero, hence we know that it is this chip,
so the number of cores is 1.

Fixes: https://github.com/openwrt/openwrt/issues/17764
Tested-by: Enrico Mioso <mrkiko.rs@gmail.com>
Tested-by: Simon Etzlstorfer <simon@etzi.at>
Tested-by: Mauri Sandberg <maukka@ext.kapsi.fi>
Co-authored-by: Shiji Yang <yangshiji66@qq.com>
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/17834
(cherry picked from commit bb84c256e7)
Link: https://github.com/openwrt/openwrt/pull/18015
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-25 23:20:05 +01:00
John Audia
22943245a5 kernel: bump 6.6 to 6.6.79
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.79

Manually rebased:
	ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch

All other patches automatically rebased.

Build system: x86/64
Build-tested: bcm27xx/bcm2712, filogic/glinet_gl-mt6000, filogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64
Run-tested: bcm27xx/bcm2712, filogic/glinet_gl-mt6000, filogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18066
Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit d664d74669)
Link: https://github.com/openwrt/openwrt/pull/17987
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-25 23:16:17 +01:00
John Audia
b9c6aeb628 kernel: bump 6.6 to 6.6.78
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.78

Removed upstreamed:
	bcm27xx/patches-6.6/950-0487-drivers-media-imx296-Add-standby-delay-during-probe.patch[1]
	mediatek/patches-6.6/256-clk-mediatek-mt2701-vdec-fix-conversion-to-mtk_clk_s.patch[2]
	mediatek/patches-6.6/257-clk-mediatek-mt2701-aud-fix-conversion-to-mtk_clk_si.patch[3]
	mediatek/patches-6.6/258-clk-mediatek-mt2701-bdp-add-missing-dummy-clk.patch[4]
	mediatek/patches-6.6/259-clk-mediatek-mt2701-mm-add-missing-dummy-clk.patch[5]
	mediatek/patches-6.6/260-clk-mediatek-mt2701-img-add-missing-dummy-clk.patch[6]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.78&id=25abffee5ceb6691ecd4f089be2bb28842e2d2fd
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.78&id=b6c5237ab7af82c9f1d8d772dbf309bb4aadfdbb
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.78&id=20210b5c775d2d96f706591c64bc2ad975c37eaf
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.78&id=a1fa3dda6bf0b7ecd95fa8f9125e5486b699a81f
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.78&id=fc60e9357f15372698da373ee76de8f52d22aac2
6. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.78&id=6f4868e6b2887b55531bc8e0a4106ef0150e6326

Build system: x86/64
Build-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64
Run-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18000
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 57b0304ce9)
Link: https://github.com/openwrt/openwrt/pull/17987
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-25 23:16:17 +01:00
John Audia
9ec355a921 kernel: bump 6.6 to 6.6.77
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.77

No patches automatically rebased/checksum update only

Build system: x86/64
Build-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Run-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/17822
(cherry picked from commit 16924e55f0)
Link: https://github.com/openwrt/openwrt/pull/17987
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-25 23:16:17 +01:00
John Audia
667b131ad1 kernel: bump 6.6 to 6.6.76
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.76

Manually rebased:
	bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch
	imx/patches-6.6/600-PCI-imx6-Start-link-at-max-gen-first-for-IMX8MM-and-IMX8MP.patch

Removed upstreamed:
	bcm27xx/patches-6.6/950-1446-media-i2c-ov9282-Correct-the-exposure-offset.patch[1]
	bcm47xx/patches-6.6/701-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch[2]
	bcm53xx/patches-6.6/700-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch[3]
	ramips/patches-6.6/003-v6.14-clk-ralink-mtmips-remove-duplicated-xtal-clock-for-Ralink.patch[4]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.76&id=11c7649c9ec3dcaf0a7760551ad30747d9e02d81
2, 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.76&id=5e6e723675e54ced5200bcc367e2526badc4070c
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.76&id=d0edcd0d18d700d76c61c091a24568b8b8c3b387

Build system: x86/64
Build-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Run-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/17822
(cherry picked from commit 84e370f16c)
Link: https://github.com/openwrt/openwrt/pull/17987
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-25 23:16:17 +01:00
John Audia
b71fafbb70 kernel: bump 6.6 to 6.6.75
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.75

All patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/17822
(cherry picked from commit 9790417109)
Link: https://github.com/openwrt/openwrt/pull/17987
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-25 23:16:17 +01:00
John Audia
81ef4bc44d kernel: bump 6.6 to 6.6.74
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.74

All patches automatically rebased.

Build system: x86/64
Build-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod
Run-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/17708
(cherry picked from commit e9fad02c10)
Link: https://github.com/openwrt/openwrt/pull/17987
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-25 23:16:17 +01:00
Tim Harvey
c51d899790 imx: cortexa53: fix sysupgrade image device support for venice
Set the SUPPORTED_DEVICES Device var so that sysupgrade images
are supported without a force.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/17964
(cherry picked from commit 5a124ff167)
Link: https://github.com/openwrt/openwrt/pull/18093
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-25 22:59:14 +01:00
Tim Harvey
79ba163090 imx: cortexa53: add 'gateworks,imx8m*' to sysupgrade board checks
The upstream device-tree files are now using 'gateworks' instead of 'gw'
for compatible. Add this pattern so that the newer boards support
sysupgrade.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/17964
(cherry picked from commit ee73d35fbe)
Link: https://github.com/openwrt/openwrt/pull/18093
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-25 22:59:04 +01:00
Robert Senderek
0963a15e7c ramips: Add support for Mercusys MR1800X as alt name of MR70X
Both share the same OEM firmware but differ in product_name for safeloader
product_name:MR1800X,product_ver:1.0.0,special_id:45550000

Signed-off-by: Robert Senderek <robert.senderek@10g.pl>
Link: https://github.com/openwrt/openwrt/pull/17965
(cherry picked from commit f93367227e)
Link: https://github.com/openwrt/openwrt/pull/18031
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-25 22:50:38 +01:00
Robert Senderek
b803517f90 tools: firmware-utils: update to Git HEAD (2024-02-16)
2051fe5 mktplinkfw2: Add 16MLmtk layout
5d1446b tplink-safeloader: Add more special_id's for MR70X

Signed-off-by: Robert Senderek <robert.senderek@10g.pl>
Link: https://github.com/openwrt/openwrt/pull/17999
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 1437ff840b)
Link: https://github.com/openwrt/openwrt/pull/18030
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-25 22:48:00 +01:00
INAGAKI Hiroshi
2343699c8c tools: firmware-utils: update to Git HEAD (2024-01-14)
12c0b42 nosimg-enc: add new tool for XikeStor SKS8300 series

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17593
Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit db0fcc0c8d)
Link: https://github.com/openwrt/openwrt/pull/18030
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-25 22:47:55 +01:00
Felix Fietkau
8c1296f157 kernel: fix IPv6 TCP GSO segmentation with NAT
Add missing checksum update

Fixes: https://github.com/openwrt/openwrt/issues/15857
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 00e4b23e27)
2025-02-24 12:27:03 +01:00
Sander Vanheule
bb6f183e93 realtek: add PoE enable line to Netgear GS310TP
By switching to the new RTL8231 driver in commit b7af54d5c1 ("realtek:
Simple conversions to RTL8231 MFD driver"), the bootloader state of the
RTL8231's pins is now maintained. As the bootloader de-asserts the PoE
enable signal, this means PoE output is no longer available.

Add a gpio-hog with high output, restoring the line value from when the
pin was configured (by default) as an input with a pull-up resistor.
This will hard-enable the PoE output, but the individual ports can still
be administratively disabled by realtek-poe or a similar tool.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 890293c13c)
2025-02-22 12:33:08 +01:00
Evan Jobling
8f3b24643b realtek: HPE 1920-48G-PoE: allow fan speed control
The JG928A has an RTL8231 on the aux mdio bus. Add it to dts to expose
the GPIO pins used to control and monitor the fan speed. To enable speed
control, add the appropriate kernel driver module to DEVICE_PACKAGES.

Of note, this does not control all fans for the unit. The power supply
fans are not controlled.

Signed-off-by: Evan Jobling <evan@jobling.au>
Link: https://github.com/openwrt/openwrt/pull/17699
Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit cbd1acbad3)
2025-02-22 12:32:35 +01:00
Sander Vanheule
0ae0766f29 realtek: drop old RTL8231 driver
The old RTL8231 driver integrated the MDIO bus access with the GPIO
control ops, making this driver not very portable to newer platforms.
It depended on the SoC ID instead of the compatible to determine the
MDIO access register, further complicating portability.

A new MFD driver is now available, which offers proper pin config as
well as optional LED support, which can work on any (bitbanged) MDIO
bus. Now that all devices have been migrated, we can drop the old code.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit b410f2216c)
2025-02-22 12:32:35 +01:00
Sander Vanheule
28fb32a550 realtek: add PoE enable line to Netgear GS110TPP
By switching to the new RTL8231 driver in commit b7af54d5c1 ("realtek:
Simple conversions to RTL8231 MFD driver"), the bootloader state of the
RTL8231's pins is now maintained. As the bootloader de-asserts the PoE
enable signal, this means PoE output is no longer available.

Add a gpio-hog with high output, restoring the line value from when the
pin was configured (by default) as an input with a pull-up resistor.
This will hard-enable the PoE output, but the individual ports can still
be administratively disabled by realtek-poe or a similar tool.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 807074309d)
2025-02-22 12:32:35 +01:00
Sander Vanheule
ed4f7a6dec realtek: switch RTL8231 driver for D-Link DGS-1210
Update the common external GPIO DTSI file for the DGS-1210 devices to
use an MDIO device on the auxilairy MDIO bus, as the original driver was
doing behind the screen.

Switching to the new driver will allow for full pin-control and will no
longer reset pin config set by the bootloader.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 3d6a1a7874)
2025-02-22 12:32:35 +01:00
Sander Vanheule
94e629a3a9 realtek: Switch DGS-1210-10P DTS to gpio.dtsi
The DTS file for the DGS-1210-10P is slightly different from the other
DGS-1210 devices, in that it didn't specify a gpio-restart node when it
was added. The gpio-restart has been found to work on the DGS-1210-10P
as well, so switch it over to the common definitions.

This converts the last device from the product family to the common
definition for the (external) GPIOs.

Tested-by: Michel Thill <jmthill@gmail.com>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 7c0d1c1eb1)
2025-02-22 12:32:35 +01:00
Sander Vanheule
f31df0bbba realtek: Drop unused property on DGS-1210 gpio0
The 'indirect-access-id' property on gpio0 is a remnant from the
original GPIO driver. This property has not been relevant on the SoC's
embedded GPIO controller for a long time, so just drop it.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 022b7d80bf)
2025-02-22 12:32:35 +01:00
Sander Vanheule
e76aae2253 realtek: Simple conversions to RTL8231 MFD driver
Change devices with RTL8231 GPIO expander definition that can easily be
translated to the new RTL8231 binding and carry over any gpio-hogs. This
will let them use the new RTL8231 MFD driver, without any functional
changes.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit b7af54d5c1)
2025-02-22 12:32:35 +01:00
Sander Vanheule
abf7f15257 realtek: Split Zyxel GS1900-8 into v1 and v2
Zyxel GS1900-8 v2 devices have been produced more recently than v1
devices. As there are v1 boards with RTL8380M rev. C SoCs, it can likely
safely be assumed that all v2 devices will also have a recent SoC
revision, supporting the hardware auxiliary MDIO controller.

Make the GS1900-8 v1 use an emulated auxiliary MDIO bus, for backward
compatibility with devices containing an RTL8380M rev. A.

Since the devicetrees are otherwise identical, GS1900-8 v1 devices with
an RTL8380M rev. B or C will also be able to use the (more efficient) v2
image. This includes any currently functioning device with OpenWrt, so
include the old compatible as a supported device for the GS1900-8 v2.

Link: https://github.com/openwrt/openwrt/issues/9534
Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 7322d3266d)
2025-02-22 12:32:35 +01:00
Sander Vanheule
f5b66f7651 realtek: rtl838x: Enable MDIO_GPIO driver
The mdio-gpio driver is required to support early revision of RTL8380M
slicon (rev A) where the auxilairy MDIO controller does not function
correctly. Add this driver to the rtl838x kernel so devices with old
SoCs are also able to function correctly.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit efffcfa436)
2025-02-22 12:32:35 +01:00
Sander Vanheule
8e539afa95 realtek: Move GS1900 external GPIO to new DTSI
In order to be able to define the external GPIO controller on an
emulated MDIO bus, move the controller definition outside of the main
GS1900 include for RTL838x-based devices.

Additionally, a new DTSI is provided defining the RTL8231 on the
emulated MDIO bus.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit a6a77896f4)
2025-02-22 12:32:35 +01:00
Sander Vanheule
c62bafb223 realtek: Add virtual MDIO bus on rtl838x
Some RTL8380M-based devices have been around for a long time and use an
early A revision of the RTL8380M SoC. This revision has an issue with
the auxiliary MDIO controller, causing it to malfunction. This may lead
to device reboots when the controller is used.

Provide a bit-banged MDIO bus, which muxes the auxiliary MDIO pins to
their GPIO function. Although this will result in lower performance,
there should otherwise be no functional differences.

Link: https://github.com/openwrt/openwrt/issues/9534
Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit d4bf16a9e1)
2025-02-22 12:32:35 +01:00
Sander Vanheule
fd978c2e80 realtek: Enable Zyxel GS1900's RTL8231 reset line
As the bootloader is reconfiguring the RTL8231 on these devices anyway,
no pin state can be maintained over warm reboots. This results in for
example the PoE disable pin always being asserted by the bootloader.

Define the GPIO line linked to the RTL8231's reset so the MDIO subsystem
will also reset the expander on boot and ensure the line in the correct
state.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit b2d17dbb68)
2025-02-22 12:32:35 +01:00
Sander Vanheule
3d26c1cae4 realtek: Switch RTL8231 driver on Zyxel GS1900-48
Switch the Zyxel GS1900-48 over to the new MDIO-based driver for the
RTL8231 GPIO expander.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 45aafe67f3)
2025-02-22 12:32:34 +01:00
Sander Vanheule
e5ac0c7391 realtek: rtl839x: Enable RTL8231 MFD driver
Enable the RTL8231 MFD core driver, as well as the pinctrl/gpio driver
to allow RTL839x devices to use it.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit fd5797b7ce)
2025-02-22 12:32:34 +01:00
Sander Vanheule
d7631cf577 realtek: rtl839x: Enable AUX MDIO controller
Enable the driver for the Realtek Otto auxiliary MDIO driver so RTL839x
devices can use it. The related node is added to the base devicetree for
rtl839x-based devices, so they can enabled and use it when required.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit cddcc69ddf)
2025-02-22 12:32:34 +01:00
Sander Vanheule
87d3e886d5 realtek: Update aux-mdio driver
For RTL839x, the driver was producing frequent timeouts on bus accesses.
Increasing the timeout to the one from a recent Realtek SDK resolves
these timeouts. To minimize overhead on different SoCs, each controller
can specify their own timeout.

This also add support for the register format as used on RTL93xx.
Support is added for the RTL930x "ext gpio" controller.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 52ffef6471)
2025-02-22 12:32:34 +01:00
Sander Vanheule
e8e5725cee realtek: Use atomic poll for aux-mdio commands
regmap_read_poll_timeout() relies on usleep_range() to time the polling
loop. With the current, rather large, scheduling interval, a short
usleep_range() may take a lot longer than expected, causing performance
issues.

Switch the driver over to using regmap_read_poll_timeout_atomic(), which
uses udelay() to time the polling loop.

For comparision, the 'ethtool -m <dev>' command is about 10 times faster
with the atomic variant.
Using 'perf -r10 ethtool -m lan25':
  - Driver using regmap_read_poll_timeout():
      2.0117 +- 0.0118 seconds time elapsed  ( +-  0.58% )
  - Driver using regmap_read_poll_timeout_atomic():
      0.1674 +- 0.0250 seconds time elapsed  ( +- 14.95% )

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 693c1ea81a)
2025-02-22 12:32:34 +01:00
Fabian Groffen
b98d99261a realtek: HPE 1920 24G PoE+ 180W/370W move fans to hwmon
Apply the equivalent of commit f64541db02 ("realtek: HPE 1920 8G PoE+
180W move fans to hwmon") to the 24-ports variants of the HPE 1920 PoE+
switches, with model numbers JG925A and JG926A.

Copy from the original commit message:

  Move to using hwmon and gpio-fan. This is by adding gpio_fan_array to
  DTS and kmod-hwmon-gpiofan to DEVICE_PACKAGES.

  In combination with the new rtl8231 gpio driver the default fan
  behaviour will be maximum fan speed.

  Bump compat value to 1.1 due to existing config in /etc/config/system
  via gpio_switch. Also notify in device compat that fan is now going to
  be at bootloader setting (maximum in this case) by default unless turned
  down.

As the init script 03_gpio_switches does not perform any action after
removing these devices from it, the file can be dropped.

Link: https://github.com/openwrt/openwrt/pull/17598
Signed-off-by: Fabian Groffen <grobian@gentoo.org>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 0a7c8ed9d9)
2025-02-22 12:32:34 +01:00
Sander Vanheule
88d7d0d9cc realtek: switch RTL8231 driver for HPE 1920-16/24G
Update the base DTS file for the 16 and 24 port HPE 1920 devices
(JG923A, JG924A, JG925A, JG926A), causing the new RTL8231 MFD driver to
be loaded at start-up.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 96850585e5)
2025-02-22 12:32:34 +01:00
Evan Jobling
5b96d45474 realtek: HPE 1920 8G PoE+ 180W move fans to hwmon
The GPIO numbering has changed and is not stable. As a result fan
control via gpio_switch is broken, resulting in errors:
    "export_store: invalid GPIO 456"

Move to using hwmon and gpio-fan. This is by adding gpio_fan_array to
DTS and kmod-hwmon-gpiofan to DEVICE_PACKAGES.

In combination with the new rtl8231 gpio driver the default fan
behaviour will be maximum fan speed.

Bump compat value to 1.1 due to existing config in /etc/config/system
via gpio_switch. Also notify in device compat that fan is now going to
be at bootloader setting (maximum in this case) by default unless turned
down.

Signed-off-by: Evan Jobling <evan@jobling.au>
Link: https://github.com/openwrt/openwrt/pull/17605
Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit f64541db02)
2025-02-22 12:32:34 +01:00
Sander Vanheule
d6f9466196 realtek: switch RTL8231 driver for HPE 1920-8G
Update the base DTS file for the 8 port HPE 1920 devices (JG920A,
JG921A, JG922A), causing the new RTL8231 MFD driver to be loaded at
start-up.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit e5d1a501cb)
2025-02-22 12:32:34 +01:00
Sander Vanheule
60cae0e08f realtek: rtl838x: Switch GS1900 rtl8231 driver
Update the devicetree files to switch the GS1900 devices over to the new
pinctrl and GPIO driver. Enable the drivers to ensure the nodes can be
used.

This may fix issues caused by bad RMW behaviour on the GPIO data lines,
or glitches due to setting the pin direction before the pin level.

Although the driver supports retaining GPIO state after a warm boot,
some bootloaders appear to apply a default configuration on boot, which
may cause an interrupt in PoE-PSE support.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 5141e2d861)
2025-02-22 12:32:34 +01:00
Sander Vanheule
07ebd87bd1 realtek: Add pinctrl support for RTL8231
Add pending patches to add RTL8231 support as a MDIO-bus attached
multi-functional device. This includes subdrivers for the pincontrol and
GPIO features, as well as the LED matrix support.

Leave the drivers disabled until required by a device.

Cherry picked from commit 6ef6014887, but
dropped already picked patch for gpio-regmap request/free, and rebased
configs

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2025-02-22 12:32:34 +01:00
Sander Vanheule
01bc33a913 realtek: rtl838x: Instantiate auxiliary MDIO bus
Add a disabled node for the auxiliary MDIO bus, used to manage the
RTL8231 expanders. A simple-mfd parent node is added, at the same
(implied) address as the switch@1b000000 node, as the switch drivers
should anyway transistion to MFD subdivices at some point.

Additionally, two pinctrl-single node are added to allow the MDX pins to
be muxed correctly, in case the bootloader leaves these unconfigured.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 92ae8cb16c)
2025-02-22 12:32:34 +01:00
Sander Vanheule
4a7945ee84 realtek: Add driver for auxiliary MDIO busses
Add a driver that exposes the auxiliary busses, used for the RTL8231
expanders, as a proper MDIO controller. The device must be instantiated
under an MFD device, so the driver should also be compatible with SoC
managed by an external CPU via SPI.

Leave the driver disabled in builds until required.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit ae833c01b3)
2025-02-22 12:32:34 +01:00
Felix Fietkau
315facfce6 kernel: receive all bridged multicast packets if IFF_ALLMULTI is set
Fixes issues with odhcpd, especially in relay mode

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 38c21271d2)
2025-02-17 12:31:11 +01:00
Daniel Golle
bbe51e72f1 mediatek: apply bootloader work-around for affected ASUS devices
Apply "u-boot-dont-touch-spi-nand" to ASUS RT-AX59U, ASUS TUF-AX4200 as
well as ASUS TUF-AX6000 routers to prevent U-Boot from wiping MTD
child nodes from DT.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 4387de9445)
2025-02-16 20:43:53 +00:00
Daniel Golle
36bde27e79 mediatek: add work-around for ASUS bootloader MTD behavior
ASUS makes use of U-Boot's fdt_fixup_mtdparts() function which applies
the partitions defined in U-Boot's mtdparts and mtdids environment
variables to the devicetree passed over to Linux.

The undesired side-effect is that in this way also all additional
properties and child nodes get wiped, preventing NVMEM cells to be
defined for MTD partitions or UBI volumes.

To work-around this issue, add an additional compatible string
'u-boot-dont-touch-spi-nand' which can be used instead of 'spi-nand' in
case the replacement of the MTD partitions by U-Boot should be skipped
alltogether.

In practise this is mostly relevant for SPI-NAND which anyway comes only
with two partitions nowadays: 'Bootloader' and 'UBI_DEV'. Hence this
work-around is applicable for SPI-NAND only. Similar work-arounds for
other MTD devices can be created as well should they actually be needed.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit c48afca32c)
2025-02-16 20:43:53 +00:00
Paweł Owoc
4c9cae1906 qualcommax: ipq807x: add support for Linksys MX4300 (LN1301)
Hardware specification:
========
SoC: Qualcomm IPQ8174
Flash: 1GB (Micron MT29F8G08ABBCAH4 or AMD/Spansion S34MS08G2)
RAM: 2GB (2x Kingston B5116ECMDXGJD or ESMT M15T2G16128A DDR3L)
Ethernet: 4x 10/100/1000Mbps (Qualcomm QCA8075)
WiFi1: 5GHz ax 2x2 (Qualcomm QCN5054 + Skyworks SKY85755-11) - channels 36-64 (low band)
WiFi2: 2.4GHz ax 2x2 (Qualcomm QCN5024 + Skyworks SKY85340-11)
WiFi3: 5GHz ax 4x4 (Qualcomm QCN5054 + Skyworks SKY85755-11) - channels 100-177 (high band)
LED: 1x RGB status (NXP PCA9633)
USB: 1x USB 3.0
Button: WPS, Reset

Flash instructions:
========
1. Manually upgrade firmware using openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin image.
More details can be found here: https://support.linksys.com/kb/article/6564-en/
After first boot check actual partition:
- fw_printenv -n boot_part
and install firmware on second partition using command in case of 2:
- mtd -r -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin kernel
and in case of 1:
- mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin alt_kernel

2. Installation using serial connection from OEM firmware (default login: root, password: admin):
- fw_printenv -n boot_part
In case of 2:
- flash_erase /dev/mtd21 0 0
- nandwrite -p /dev/mtd21 openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin
or in case of 1:
- flash_erase /dev/mtd23 0 0
- nandwrite -p /dev/mtd23 openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin
After first boot install firmware on second partition:
- mtd -r -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin kernel
or:
- mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin alt_kernel

3. Installation from initramfs image using USB drive:
Put the initramfs image on the USB drive:
- dd bs=1M if=openwrt-qualcommax-ipq807x-linksys_mx4300-initramfs-uImage.itb of=/dev/sdX
Stop u-boot and run:
- usb start && usbboot $loadaddr 0 && bootm $loadaddr
Write firmware to the flash from initramfs:
- mtd -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin kernel
and:
- mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin alt_kernel

4. Back to the OEM firmware:
- mtd -e kernel -n write FW_MX4300_1.0.4.215382_prod.img kernel
and:
- mtd -r -e alt_kernel -n write FW_MX4300_1.0.4.215382_prod.img alt_kernel

5. USB recovery:
Put the initramfs image on the USB:
- dd bs=1M if=openwrt-qualcommax-ipq807x-linksys_mx4300-initramfs-uImage.itb of=/dev/sdX
Set u-boot env:
- fw_setenv bootusb 'usb start && usbboot $loadaddr 0 && bootm $loadaddr'
- fw_setenv bootcmd 'run bootusb; if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi'

Co-authored-by: Qiyuan Zhang <zhang.github@outlook.com>
Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16070
(cherry picked from commit 4d310b176be9eea162159f2501e650ebbd6605e9)
Signed-off-by: Rafal Boni <rafal.boni@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17889
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-02-16 13:03:23 +01:00
Qiyuan Zhang
082608fd2b mtd: check the return value of malloc and pread
Check the return value of malloc and pread in case they fail.

Signed-off-by: Qiyuan Zhang <zhang.github@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/16070
(cherry picked from commit 3f014543cd4bd099dc089cbb9b9b2d7b0db8a021)
Signed-off-by: Rafal Boni <rafal.boni@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17889
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-02-16 13:03:23 +01:00
Qiyuan Zhang
45ce95a9b3 qualcommax: add kernel cmdline replacement hack
Add kernel command line replacement hack to qualcommax. Now we can
find and replace arguments in the kernel command line by setting
bootargs-find-1, bootargs-replace-1, bootargs-exact-match-1
and bootargs-find-2, bootargs-replace-2, bootargs-exact-match-2
under the chosen node in the device tree.

This hack replaces the first occurence of bootargs-find-X with
bootargs-replace-X. When bootargs-exact-match-X is set to "y",
then the replacement happens only if the kernel command line is
identical to bootargs-find-X.

Signed-off-by: Qiyuan Zhang <zhang.github@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/16070
(cherry picked from commit 337f6f76ca5361f45e76facd52396936b9fc25c0)
Signed-off-by: Rafal Boni <rafal.boni@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17889
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-02-16 13:03:23 +01:00
Qiyuan Zhang
ab9f1011ac mtd: fix resetbc on nand w/ min I/O size > 2048
Fix a bug in linksys_bootcount.c that resetbc  won't work on nand
with min I/O size> 2048.

Check the boot-log entry's intergrity with checksum.

Signed-off-by: Qiyuan Zhang <zhang.github@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/16070
(cherry picked from commit 62da99e6d506f3517f50c1efd61e1911df507ae3)
Signed-off-by: Rafal Boni <rafal.boni@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17889
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-02-16 13:03:23 +01:00
Paweł Owoc
b02cdced3f qualcommax: ipq807x: fix mac setup for Linksys MX4200v2
Currently for Linksys MX4200v2 all u-boot ethXaddr variables share the same MAC address
and there is no need to check them one by one.

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16070
(cherry picked from commit 80c867815636cbf32e85b431c5d06c531e4a371e)
Signed-off-by: Rafal Boni <rafal.boni@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17889
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-02-16 13:03:23 +01:00
Paweł Owoc
1252e16f77 qualcommax: ipq807x: define configuration for Linksys MX4x00 devices
Define shared configuration for Linksys MX4x00 devices.

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16070
(cherry picked from commit 73fc1e0aa2d9956561915e342d098a6881ec85a3)
Signed-off-by: Rafal Boni <rafal.boni@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17889
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-02-16 13:03:22 +01:00
Paweł Owoc
deccf0e37b qualcommax: ipq807x: create generic Linksys MX4x00 dts
Create a generic Linksys MX4x00 dts file and extract the specific configuration
for MX4200v1/v2 to a new file.

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16070
(cherry picked from commit ff85f883ea94f562af618fb26ba8b5e85e572d64)
Signed-off-by: Rafal Boni <rafal.boni@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17889
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-02-16 13:03:22 +01:00
Paweł Owoc
708a81fb8b qualcommax: ipq807x: remove unnecessary bootargs-append for MX4200
The default value for the "root" parameter is "/dev/ubiblock0_0"
and there is no need to append it to bootargs.

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16070
(cherry picked from commit fee2d93b276f3c44dad83849f9959638ce495de7)
Signed-off-by: Rafal Boni <rafal.boni@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17889
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-02-16 13:03:22 +01:00
Felix Fietkau
b7b6ae7424 mt76: update to Git HEAD (2025-02-14)
2919ae2c0f94 wifi: mt76: mt7996: revise TXS size
1aaacd335577 wifi: mt76: mt7996: fix SER reset trigger on WED reset
e9396ad2378f wifi: mt76: mt7996: remove unnecessary key->cipher check for BIP frames
e5fef138524e mt76: only mark tx-status-failed frames as ACKed on mt76x0/2

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 3dfd1f69a7)
2025-02-14 11:31:13 +01:00
Shiji Yang
cc5bc05a0e Revert "Revert "ramips: mt7620: fix patching mac address in caldata""
This reverts commit f628467dfd.

The initial fix was correct. However, a recently introduced bug in
base-files can cause some unexpected byte overwriting in eeprom.
Since it has been fixed, let's accept this patch again.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/17892
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 43bc5e6e12)
2025-02-13 00:32:30 +01:00
Shiji Yang
bccab05ac7 base-files: fix offset conversion on caldata_patch_data()
`$(( ))` will convert uninitialized variable to "0". If we want to
use "-n" to check the string length, it's necessary to make sure the
converted variable is not empty.

Fixes: 652a6677d5 ("base-files: Add new functions for ath11k caldata")
Fixes: https://github.com/openwrt/openwrt/issues/17818
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/17892
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 094b6f593f)
2025-02-13 00:32:30 +01:00
Shiji Yang
9b05ca988c ramips: mt7620: add missing PA/LNA pinctrl for Linksys E1700
This device has high-power external PA and LNA[1]. So we must
configure PA/LNA pins to make the wireless work properly.

[1] https://fccid.io/Q87-E1700/Internal-Photos/Internal-Photos-pdf-2135639.pdf
Fixes: https://github.com/openwrt/openwrt/issues/7959
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/17892
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 3aa9b70836)
2025-02-13 00:32:30 +01:00
Shiji Yang
2efd34dfa6 mac80211: rt2x00: fix eeprom load from PCI eFuse
When eeprom name is not defined, the file load function should
return an error code so that it can fallthrough to read eeprom
form NIC inside eFuse.

Fixes: https://github.com/openwrt/openwrt/issues/17854
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/17892
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 693108a318)
2025-02-13 00:32:30 +01:00
Lech Perczak
424d758d1f ath79: mikrotik: fix reference clock of Routerboard 911G
When support for Routerboard 911G was introduced, Routerboad 912UAG
device tree was used as a base, and the common part. This led to use of
40MHz as the reference clock frequency for both [1], while RB911G uses 25MHz
crystal on the board, causing heavy system clock drift.

Split the definition, and set the reference clock frequency for RB911G
back to 25MHz.

[1] a716ac5564 ("ath79: fix reference clock for RouterBoard 912UAG")

Fixes: bcc44b1212 ("ath79: support for MikroTik RouterBOARD 911G-(2,5)HPnD")
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17944
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 40fc6bd5cc)
2025-02-13 00:32:30 +01:00
Klaas Demter
d89527ce14 uboot-envtools: add support for ZyXEL GS-1900-24EP
It seems the that this was forgotten during initial adding of the
device in 0688cf5aeb

Thanks to
https://forum.openwrt.org/t/zyxel-gs1900-10hp-revision-b1-support-openwrt-firmware/131841/32
for putting me on the right track for this problem

Error that is being fixed - running fw_printenv results in:
"Warning: Bad CRC, using default environment"
and not showing boardmodel

Workaround, manually changing /etc/fw_env.config to
"/dev/mtd1 0x0 0x400 0x10000"

Signed-off-by: Klaas Demter <psychic-stool-cozy@duck.com>
Link: https://github.com/openwrt/openwrt/pull/17920
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 71a966c480)
2025-02-13 00:32:30 +01:00
Pietro Ameruoso
5b78205343 mediatek: filogic: fix mt7986a-zyxel-ex5601-t0-stock.dts model name and eth1 wan definition
Fix the model name to reflect the stock partitioning and the wan eth1 detection in the 02_network script.

Fixes: https://github.com/openwrt/openwrt/issues/14432
Fixes: b5df398a36 ("mediatek: add Zyxel EX5601-T0 with uboot custom partition")
Signed-off-by: Pietro Ameruoso <p.ameruoso@live.it>
Link: https://github.com/openwrt/openwrt/pull/17859
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit d023ee7439)
2025-02-13 00:32:30 +01:00
Felix Fietkau
cb4d2b3fb2 hostapd: fix sta psk index for dynamic psk auth
Depending on the config / circumstances, the get_psk call can be called
multiple times from differnt places, which can lead to wrong sta->psk_idx
values. The correct call is the one that is also interested in the vlan_id,
so use the vlan_id pointer as indication of when to set sta->psk_idx.
Also fix off-by-one error for secondary PSKs

Fixes: b2a2c28617 ("hostapd: add support for authenticating with multiple PSKs via ubus helper")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 8118b2dace)
2025-02-12 12:00:19 +01:00
Felix Fietkau
7955545469 wifi-scripts: fix mac address allocation with macaddr_base set
The 00 address_mask needs to be inverted, otherwise the mac address
allocation will modify the last byte instead of the first one.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 1ee44825ad)
2025-02-11 18:30:27 +01:00
Felix Fietkau
f47125f664 build: fix building llvm tarball
Add missing select NEED_BPF_TOOLCHAIN in order to ensure that the toolchain
actually gets built.

Fixes: https://github.com/openwrt/openwrt/issues/17926
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 04570f5ee2)
2025-02-10 22:12:06 +01:00
Felix Fietkau
5899fe220b umdns: update to Git HEAD (2025-02-10)
c0a2aa12c397 ubus: allow query without specifying interface
c5ca22a71b2e cache: improve service discovery reliability

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit dd5c598de0)
2025-02-10 21:44:00 +01:00
John Crispin
10ba7154db umdns: update to latest HEAD
93458ac dns: fix response to TYPE_PTR query
68af311 fix unicast response port and timeout
a2b4979 service: announce all services in single dns answer
4537734 display announced services in ubus call umdns browse
0b50c29 display more srv attributes in output of ubus browse function

Signed-off-by: John Crispin <john@phrozen.org>
(cherry picked from commit d162fd5ed4)
2025-02-10 17:09:49 +01:00
Felix Fietkau
058cf0a67d unetd: update to Git HEAD (2025-01-29)
aff192cda38b ubus: hide local private key in network_get
24e4aafaaa2f ubus: add detailed peer statistics
082b5482b97f pex: improve keepalive handling

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 087c5abdf5)
2025-02-10 17:08:18 +01:00
Felix Fietkau
b4b2f7fd80 unetd: update to Git HEAD (2025-01-27)
c293afa01c13 network: add support for the local_network option

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit c34eee5f39)
2025-02-10 17:08:18 +01:00
Felix Fietkau
3e7193933b unetd: update to Git HEAD (2025-01-26)
322500403615 service: add default group @ to match all nodes
5f7860306200 ubus: rename unetd_ubus_notify to unetd_ubus_network_notify
d13752814651 enroll: add PEX sub-protocol to support enrolling new nodes into a network

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit c0f06cb6ac)
2025-02-10 17:08:18 +01:00
Felix Fietkau
a9107e74a6 ucode: update to Git HEAD (2025-02-10)
a362263595e6 vm: fix inverted condition in uc_vm_signal_handlers_setup()
1b8660d33fb7 tests: adjust testcases after previous commit
4efad5388184 main: fix crash on printing -p output
0b80ceb29311 vm: close signal pipe in uc_vm_signal_handlers_reset()
175686c97d82 uci: eliminate usage of global variables
0f69da9c3777 struct: fix memory leak in buffer.pull()
47f3a6b69908 debian/control: Build-Depend on cmake
01efa7b92100 debian/control: Fix Standards-Version, add Bugs
f50149d67fef debian/source/format: change to native
bd001ae4f830 debian/control: libucode Recommends ucode-modules
87776a0bc2b2 docs: Mention `libmd` in macOS docs
826a5c9de7d3 docs: Fix compilation command for macOS
1fa771fc91c0 debian/copyright: fix missing dot to separate paragraphs
60c0e5eae992 debian/control: pkg-config now called pkgconf
244570db4f8e debian/changelog: switch versioning to native package scheme
fa2326fc00a0 .gitignore: ignore files generated by debuild
faec62367524 debian: ignore lintian warning no-manual-page
af881af4b0dc main: add global SCRIPT_NAME variable
5cbd32514187 socket: fix AF_PACKET recvmsg() and sockaddr formatting
6f71a35c4cfa rtnl: properly handle runtime exceptions in listener callback
6dd08716205f ci: bump actions/upload-artifact to v4
001ced17982f socket: properly support SO_ATTACH_FILTER sockopt
f0e865fe3ddd ubus: add named parameter support in functions with many params
18a2ffaf51fa fs: ioctl: export constants for direction values
0ba75bea925d fs: ioctl: improve ioctl read to avoid allocating twice
9da8b8aa4ad0 ubus: add defer.await() method
17dbf0bef4b6 ubus: add request get_fd/set_fd methods
4acb960c90f7 ubus: add support for sending file descriptors via ubus.call/defer
22b9523565a5 ubus: add support for receiving file descriptors in call and defer
c0d1654a450b ubus: add support for channels
b32321beb112 vm: fix crash due to stale frame pointer

Fixes: https://github.com/jow-/ucode/issues/254
Fixes: https://github.com/jow-/ucode/issues/255
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 0e672e9806)
2025-02-10 17:05:55 +01:00
Robert Marko
fbf04ab999 ucode: update to Git HEAD (2024-12-06)
47b54cf5a4b6 types: introduce `ucv_array_sort_r()` and `ucv_object_sort_r()`
efeb57806552 types, vm: refactor usage of global variables
f9d2faf67de6 vm: reset signals when freeing VM
4e86847d802d lib: utilize `ucv_array_sort_r()` and `ucv_object_sort_r()`
c71444ea301f types: ucv_resource_create(): rename `typename` parameter to `type`
373df7299c79 nl80211: properly support split_wiphy_dump for single phys
9bcd25f54708 lexer: Preserve keyword, regexp flags until processing non-comment tokens
0a7ff4715cb8 main: pretty-print `-p` output by default
4c3d5b469156 struct: Add new buffer API for incremental packing/unpacking
efc4122124cb struct: do not use global variables for caching types

Fixes: https://github.com/jow-/ucode/issues/248
Fixes: https://github.com/jow-/ucode/issues/250
Fixes: https://github.com/efahl/owut/issues/25
Link: https://github.com/openwrt/openwrt/pull/17191
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit af6f1a90bb)
2025-02-10 17:05:45 +01:00
John Crispin
16070364f9 ucode: update to latest HEAD
b0b5d93 Merge pull request #234 from IdWV/fs
60e7a88 Merge pull request #232 from sebastianertz/lib-digest
1752779 digest: implement compile time option to exclude less common algorithms
c7268a1 ci: include libmd in MacOS CI builds
fcb6f70 lib: introduce digest library
1323a27 Merge pull request #246 from jow-/fix-upvalue-resolve
ed5ce8f types: resolve upvalue values in arrays and objects
a6e0641 vm: resolve upvalues before pushing them onto the stack
ef1baab ci: drop OpenWrt tests for now
63e18ea fs: eliminate the usage of global variables
b1bd7b5 types: add ucv_resource_create() helper
3408edf Merge pull request #244 from nbd168/nl80211
8af77e7 nl80211: add new attributes for multi-radio support
1423ad7 nl80211: cover extended feature and EHT rate info attributes
ee1d6d8 Merge pull request #237 from sebastianertz/math
4b18a9b Merge pull request #213 from jow-/improve-vector-macros
1f022c0 math: removed global variable for thread safety
e5fe6b1 treewide: refactor vector usage code
20307ee utils: improve vector utilities
aa18952 Merge pull request #241 from jow-/socket-local-fanout-decl
79ccd9c socket: provide local definition of `struct fanout_args`
402280d Merge pull request #239 from jow-/safe-insert-during-obj-iteration
07afe96 Merge pull request #240 from jow-/stricter-number-conversion
736d450 types: fix potential use after free on adding keys during iteration
4134e71 vallist: more thoroughly check for trailing garbage after numeric string
9cf53dd Merge pull request #226 from jow-/lexer-improvements
2b2e732 lexer: make api functions public
855854f lexer: emit comment and template statement block tokens
328a50f lexer: improve token position reporting
fa22732 Merge pull request #225 from jow-/compiler-fix-keyword-property-labels-after-spread
6e88c62 Merge pull request #224 from jow-/lib-fs-readline-leak
94d1211 compiler: properly treat property names after spread expressions
67cd123 fs: fix potential memory leak on i/o errors in .read()

Signed-off-by: John Crispin <john@phrozen.org>
(cherry picked from commit ba9cdbeea8)
2025-02-10 17:05:42 +01:00
Tim Harvey
c4f5028bdf imx: coretexa53: add network configuration for gw82xx-2x
The GW82xx-2x has two network ports. By convention, the first
port (eth0) should be the WAN port and the second port (eth1)
should be the LAN port.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/17717
Signed-off-by: Robert Marko <robimarko@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17762
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit d2eaaa90d5)
2025-02-09 23:27:02 +01:00
Tim Harvey
7feb8be5e4 imx: 6.6: add a patch to work around a PCI init hang on IMX8M{M,P}
The act of attempting link at gen1 then trying to link at higher speeds
causes a hang with the specific PCIe switch used on the Gateworks Venice
boards. Work around this by linking at the highest speed first as is
common with all other PCI controller drivers.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/17717
Signed-off-by: Robert Marko <robimarko@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17762
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 23a18a57cf)
2025-02-09 23:26:39 +01:00
Tim Harvey
e2b064f5a4 imx: 6.6: add some backported kernel patches for Gateworks Venice
Add several dt backports for the Gateworks Venice product family.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/17717
Signed-off-by: Robert Marko <robimarko@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17762
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 1ce87cf25c)
2025-02-09 23:26:13 +01:00
Tim Harvey
fa64175e1a generic: 6.6: add backported btsdio patch for cyw437
Add a backport of a btsdio patch for the cyw437 bluetooth controller.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/17717
Signed-off-by: Robert Marko <robimarko@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17762
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit c9f11523dd)
2025-02-09 23:25:46 +01:00
Mikhail Zhilkin
db30b60bf1 mediatek: fix nmbm configuration mismatch (Xiaomi AX3000t)
This commit fixes nmbm configuration mismatch error on Xiaomi AX3000t
with Winbond W25N01KVZEIR spi-nand:
'''
[    0.786783] NMBM configuration mismatch
'''

Root cause:
1. U-Boot W25N01KV spi-nand driver ia compiled with 64B OOB size for the
   chip and store this size in the nmbm signature;
2. Linux W25N01KV driver use 96B OOB.

The change doesn't affect AX3000t variants with other spi-nand chips
(ESMT, Foresee) because their Linux drivers use 64B OOB.

Fixes: openwrt#16972
Tested-by: Aleksandr Danilov <sc16me@gmail.com>
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17549
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 3299d19c01)
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17898
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-09 23:19:11 +01:00
Mikhail Zhilkin
37cc725b1a kernel: nmbm: add mediatek,bmt-mtd-overridden-oobsize property
This commit adds new "mediatek,bmt-mtd-overridden-oobsize" property. The
property helps avoid "NMBM configuration mismatch" error if mtd "OOB size"
is not equal to the "spare size" which is stored in the nmbm signature.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17549
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit e585ae70d4)
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17898
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-09 23:19:11 +01:00
Felix Fietkau
122b637889 umdns: add firewall rule for configured interfaces
Makes it easier to enable MDNS on wan without having to edit the firewall
configuration for it

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 05138fe898)
2025-02-08 22:33:11 +01:00
Felix Fietkau
8cd50a6aec build: conditionally build llvm bpf toolchain by default
Unless another toolchain is present (or selected), build the bpf toolchain
whenever a package is selected that needs it.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 6605e45676)
2025-02-07 11:19:10 +01:00
Álvaro Fernández Rojas
7609571dcd kernel: r8168: update to v8.055.00
Changelog: https://github.com/openwrt/rtl8168/compare/8.054.00...8.055.00

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 5dd763680e)
2025-02-05 15:17:52 +01:00
Mieczyslaw Nalewaj
92e020b50f mt76: update to Git HEAD (2025-01-22)
3e85822b9c66 page_pool: remove PP_FLAG_PAGE_FRAG
a22d59e4ad50 tools: fix allocation check and missing memory freeing

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
(cherry picked from commit 17dc079)
Link: https://github.com/openwrt/openwrt/pull/17707
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-02-04 20:21:11 +01:00
Álvaro Fernández Rojas
e4d840b312 generic: 6.6: backport upstream r8169 patches
b11bff90f2ad r8169: add support for RTL8125BP rev.b
b3593df26ab1 r8169: add support for RTL8125D rev.b
b299ea006928 r8169: adjust version numbering for RTL8126
bb18265c3aba r8169: remove support for chip version 11
2e20bf8cc057 r8169: remove unused flag RTL_FLAG_TASK_RESET_NO_QUEUE_WAKE
e340bff27e63 r8169: copy vendor driver 2.5G/5G EEE advertisement constraints

The EEE advertisement patch has been reworked for linux v6.6 because
phy_set_eee_broken() is only present on linux >= v6.13 and eee_broken_modes
declaration has been converted to a bitmap, so linkmode_set_bit() can't be
used either.
e340bff27e
ed623fb8e3
721aa69e70

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 084618f8db)
2025-02-04 07:30:39 +01:00
Hauke Mehrtens
9e1b04fbdc OpenWrt v24.10.0: revert to branch defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-02-04 00:10:38 +01:00
1438 changed files with 94436 additions and 8866 deletions

View File

@@ -5,8 +5,14 @@ on:
permissions:
contents: read
pull-requests: write
jobs:
build:
name: Test Formalities
uses: openwrt/actions-shared-workflows/.github/workflows/formal.yml@main
# with:
# # Post formality check summaries to the PR.
# # Repo's permissions need to be updated for actions to modify PRs:
# # https://docs.github.com/en/rest/issues/comments?apiVersion=2022-11-28#create-an-issue-comment
# post_comment: true

View File

@@ -176,6 +176,7 @@ menu "Global build settings"
config MOLD
depends on (aarch64 || arm || i386 || i686 || m68k || powerpc || powerpc64 || sh4 || x86_64)
depends on !GCC_USE_VERSION_11
depends on !HOST_OS_MACOS
def_bool $(shell, ./config/check-hostcxx.sh 10 2 12)
config USE_MOLD

View File

@@ -1,4 +1,4 @@
src-git packages https://git.openwrt.org/feed/packages.git^201fd099b80a2931b7326ce20b0cbb824296c99f
src-git luci https://git.openwrt.org/project/luci.git^7b0663a5557118499dc3b3d44550efc1b6fa3feb
src-git routing https://git.openwrt.org/feed/routing.git^e87b55c6a642947ad7e24cd5054a637df63d5dbe
src-git telephony https://git.openwrt.org/feed/telephony.git^fd605af7143165a2490681ec1752f259873b9147
src-git packages https://git.openwrt.org/feed/packages.git;openwrt-24.10
src-git luci https://git.openwrt.org/project/luci.git;openwrt-24.10
src-git routing https://git.openwrt.org/feed/routing.git;openwrt-24.10
src-git telephony https://git.openwrt.org/feed/telephony.git;openwrt-24.10

View File

@@ -1,30 +1,40 @@
BPF_DEPENDS := @HAS_BPF_TOOLCHAIN
LLVM_VER:=
BPF_DEPENDS := @HAS_BPF_TOOLCHAIN +@NEED_BPF_TOOLCHAIN
CLANG_MIN_VER:=12
ifneq ($(CONFIG_USE_LLVM_HOST),)
find-llvm-tool=$(firstword $(shell PATH='$(BPF_PATH)' command -v $(1) || echo '$(firstword $(1))-not-found'))
BPF_TOOLCHAIN_HOST_PATH:=$(call qstrip,$(CONFIG_BPF_TOOLCHAIN_HOST_PATH))
ifneq ($(BPF_TOOLCHAIN_HOST_PATH),)
BPF_PATH:=$(BPF_TOOLCHAIN_HOST_PATH)/bin:$(PATH)
else
BPF_PATH:=$(PATH)
endif
CLANG:=$(firstword $(shell PATH='$(BPF_PATH)' command -v clang clang-13 clang-12 clang-11))
CLANG:=$(call find-llvm-tool,clang clang-13 clang-12)
LLVM_VER:=$(subst clang,,$(notdir $(CLANG)))
endif
ifneq ($(CONFIG_USE_LLVM_PREBUILT),)
CLANG:=$(TOPDIR)/llvm-bpf/bin/clang
endif
ifneq ($(CONFIG_USE_LLVM_BUILD),)
CLANG:=$(STAGING_DIR_HOST)/llvm-bpf/bin/clang
endif
LLVM_PATH:=$(dir $(CLANG))
LLVM_LLC:=$(LLVM_PATH)/llc$(LLVM_VER)
LLVM_DIS:=$(LLVM_PATH)/llvm-dis$(LLVM_VER)
LLVM_OPT:=$(LLVM_PATH)/opt$(LLVM_VER)
LLVM_STRIP:=$(LLVM_PATH)/llvm-strip$(LLVM_VER)
BPF_PATH:=$(dir $(CLANG)):$(BPF_PATH)
LLVM_LLC:=$(call find-llvm-tool,llc$(LLVM_VER))
LLVM_DIS:=$(call find-llvm-tool,llvm-dis$(LLVM_VER))
LLVM_OPT:=$(call find-llvm-tool,opt$(LLVM_VER))
LLVM_STRIP:=$(call find-llvm-tool,llvm-strip$(LLVM_VER))
else
LLVM_PATH:=/invalid
ifneq ($(CONFIG_USE_LLVM_PREBUILT),)
LLVM_PATH:=$(TOPDIR)/llvm-bpf/bin
endif
ifneq ($(CONFIG_USE_LLVM_BUILD),)
LLVM_PATH:=$(STAGING_DIR_HOST)/llvm-bpf/bin
endif
CLANG:=$(LLVM_PATH)/clang
LLVM_LLC:=$(LLVM_PATH)/llc
LLVM_DIS:=$(LLVM_PATH)/llvm-dis
LLVM_OPT:=$(LLVM_PATH)/opt
LLVM_STRIP:=$(LLVM_PATH)/llvm-strip
endif
BPF_KARCH:=mips
BPF_ARCH:=mips$(if $(CONFIG_ARCH_64BIT),64)$(if $(CONFIG_BIG_ENDIAN),,el)

View File

@@ -232,7 +232,9 @@ define DownloadMethod/rawgit
echo "Generating formal git archive (apply .gitattributes rules)" && \
(cd $(SUBDIR) && git config core.abbrev 8 && \
git archive --format=tar HEAD --output=../$(SUBDIR).tar.git) && \
$(if $(filter skip,$(SUBMODULES)),true,$(TAR) --ignore-failed-read -C $(SUBDIR) -f $(SUBDIR).tar.git -r .git .gitmodules 2>/dev/null) && \
$(if $(filter skip,$(SUBMODULES)),true, \
$(TAR) --numeric-owner --owner=0 --group=0 --ignore-failed-read -C $(SUBDIR) -f $(SUBDIR).tar.git -r .git .gitmodules 2>/dev/null \
) && \
rm -rf $(SUBDIR) && mkdir $(SUBDIR) && \
$(TAR) -C $(SUBDIR) -xf $(SUBDIR).tar.git && \
(cd $(SUBDIR) && $(if $(filter skip,$(SUBMODULES)),true,git submodule update --init --recursive -- $(SUBMODULES) && \

View File

@@ -391,8 +391,9 @@ define Build/fit
$(if $(DEVICE_DTS_OVERLAY),$(foreach dtso,$(DEVICE_DTS_OVERLAY), -O $(dtso):$(KERNEL_BUILD_DIR)/image-$(dtso).dtbo)) \
-c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config-1") \
-A $(LINUX_KARCH) -v $(LINUX_VERSION), gen-cpio$(if $(TARGET_PER_DEVICE_ROOTFS),.$(ROOTFS_ID/$(DEVICE_NAME))))
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage $(if $(findstring external,$(word 3,$(1))),\
-E -B 0x1000 $(if $(findstring static,$(word 3,$(1))),-p 0x1000)) -f $@.its $@.new
$(call locked,PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage $(if $(findstring external,$(word 3,$(1))),\
-E -B 0x1000 $(if $(findstring static,$(word 3,$(1))),-p 0x1000)) -f $@.its $@.new, \
gen-cpio$(if $(TARGET_PER_DEVICE_ROOTFS),.$(ROOTFS_ID/$(DEVICE_NAME))))
@mv $@.new $@
endef
@@ -732,6 +733,10 @@ define Build/zip
rm -rf $@.tmp
endef
define Build/zyimage
$(STAGING_DIR_HOST)/bin/zyimage $(1) $@
endef
define Build/zyxel-ras-image
let \
newsize="$(call exp_units,$(RAS_ROOTFS_SIZE))"; \

View File

@@ -569,6 +569,15 @@ endef
define Device/Check/Common
_PROFILE_SET = $$(strip $$(foreach profile,$$(PROFILES) DEVICE_$(1),$$(call DEVICE_CHECK_PROFILE,$$(profile))))
# Check if device is disabled and if so do not mark to be installed when ImageBuilder is used
ifeq ($(IB),1)
ifeq ($$(DEFAULT),n)
_PROFILE_SET :=
endif
ifeq ($$(BROKEN),y)
_PROFILE_SET :=
endif
endif
DEVICE_PACKAGES += $$(call extra_packages,$$(DEVICE_PACKAGES))
ifdef TARGET_PER_DEVICE_ROOTFS
$$(eval $$(call merge_packages,_PACKAGES,$$(DEVICE_PACKAGES) $$(call DEVICE_EXTRA_PACKAGES,$(1))))

View File

@@ -1,2 +1,2 @@
LINUX_VERSION-6.6 = .73
LINUX_KERNEL_HASH-6.6.73 = d2028db190c201650898be8db1c705e9fe73ab44fc04290b4f7af63514122490
LINUX_VERSION-6.6 = .122
LINUX_KERNEL_HASH-6.6.122 = d48e0d9de04bef2fb9740bdb0124548bcab8867cdca00ff9712c110282b299d6

View File

@@ -85,7 +85,7 @@ endef
define Build/Compile/Optee-os
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
PATH=$(LINUX_DIR)/scripts/dtc/:$(PATH) \
PATH=$(LINUX_DIR)/scripts/dtc/:$(STAGING_DIR_HOST)/bin:$(PATH) \
CROSS_COMPILE=$(TARGET_CROSS) \
CROSS_COMPILE_core="$(TARGET_CROSS)" \
CROSS_COMPILE_ta_arm64="$(TARGET_CROSS)" \

View File

@@ -248,7 +248,7 @@ endif
)
endif
$(INSTALL_DIR) $$(PDIR_$(1))/tmp
$(INSTALL_DIR) $$(PDIR_$(1))
ifeq ($(CONFIG_USE_APK),)
mkdir -p $$(IDIR_$(1))/CONTROL

View File

@@ -201,7 +201,7 @@ else
DOWNLOAD_DIRS = package/download
endif
download: .config FORCE $(if $(wildcard $(STAGING_DIR_HOST)/bin/flock),,tools/flock/compile)
download: .config FORCE $(if $(wildcard $(STAGING_DIR_HOST)/bin/flock),,tools/flock/compile) $(if $(wildcard $(STAGING_DIR_HOST)/bin/zstd),,tools/zstd/compile)
@+$(foreach dir,$(DOWNLOAD_DIRS),$(SUBMAKE) $(dir);)
clean dirclean: .config

View File

@@ -1,12 +1,20 @@
PKG_NAME ?= trusted-firmware-a
PKG_CPE_ID ?= cpe:/a:arm:trusted_firmware-a
ifndef PKG_SOURCE_PROTO
PKG_SOURCE = trusted-firmware-a-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/TrustedFirmware-A/trusted-firmware-a/tar.gz/v$(PKG_VERSION)?
PKG_LTS ?=
ifneq ($(PKG_LTS),)
PKG_VERSION_PREFIX:=lts-v
PKG_BUILD_DIR = $(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION_PREFIX)$(PKG_VERSION)
else
PKG_VERSION_PREFIX:=v
PKG_BUILD_DIR = $(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
endif
PKG_BUILD_DIR = $(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
ifndef PKG_SOURCE_PROTO
PKG_SOURCE = trusted-firmware-a-$(PKG_VERSION_PREFIX)$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/TrustedFirmware-A/trusted-firmware-a/tar.gz/$(PKG_VERSION_PREFIX)$(PKG_VERSION)?
endif
PKG_TARGETS := bin
PKG_FLAGS:=nonshared
@@ -82,7 +90,7 @@ define Build/Compile/Trusted-Firmware-A
OPENSSL_DIR=$(STAGING_DIR_HOST) \
$(if $(DTC),DTC="$(DTC)") \
PLAT=$(PLAT) \
BUILD_STRING="OpenWrt v$(PKG_VERSION)-$(PKG_RELEASE) ($(VARIANT))" \
BUILD_STRING="OpenWrt $(PKG_VERSION_PREFIX)$(PKG_VERSION)-$(PKG_RELEASE) ($(VARIANT))" \
$(if $(CONFIG_BINUTILS_VERSION_2_37)$(CONFIG_BINUTILS_VERSION_2_38),,LDFLAGS="-no-warn-rwx-segments") \
$(TFA_MAKE_FLAGS)
endef

View File

@@ -23,13 +23,13 @@ PKG_CONFIG_DEPENDS += \
sanitize = $(call tolower,$(subst _,-,$(subst $(space),-,$(1))))
VERSION_NUMBER:=$(call qstrip,$(CONFIG_VERSION_NUMBER))
VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),24.10.0)
VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),24.10-SNAPSHOT)
VERSION_CODE:=$(call qstrip,$(CONFIG_VERSION_CODE))
VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),r28427-6df0e3d02a)
VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),$(REVISION))
VERSION_REPO:=$(call qstrip,$(CONFIG_VERSION_REPO))
VERSION_REPO:=$(if $(VERSION_REPO),$(VERSION_REPO),https://downloads.openwrt.org/releases/24.10.0)
VERSION_REPO:=$(if $(VERSION_REPO),$(VERSION_REPO),https://downloads.openwrt.org/releases/24.10-SNAPSHOT)
VERSION_DIST:=$(call qstrip,$(CONFIG_VERSION_DIST))
VERSION_DIST:=$(if $(VERSION_DIST),$(VERSION_DIST),OpenWrt)

View File

@@ -142,10 +142,7 @@ else
$(call ERROR_MESSAGE,WARNING: Applying padding in $$d/Packages to workaround usign SHA-512 bug!); \
{ echo ""; echo ""; } >> Packages;; \
esac; \
echo -n '{"architecture": "$(ARCH_PACKAGES)", "packages":{' > index.json; \
sed -n -e 's/^Package: \(.*\)$$/"\1":/p' -e 's/^Version: \(.*\)$$/"\1",/p' Packages | tr '\n' ' ' >> index.json; \
echo '}}' >> index.json; \
sed -i 's/, }}/}}/' index.json; \
$(SCRIPT_DIR)/make-index-json.py -f opkg -a "$(ARCH_PACKAGES)" Packages > index.json; \
gzip -9nc Packages > Packages.gz; \
); done
ifdef CONFIG_SIGNED_PACKAGES

View File

@@ -125,8 +125,8 @@ caldata_valid() {
caldata_patch_data() {
local data=$1
local data_count=$((${#1} / 2))
local data_offset=$(($2))
local chksum_offset=$(($3))
[ -n "$2" ] && local data_offset=$(($2))
[ -n "$3" ] && local chksum_offset=$(($3))
local target=$4
local fw_data
local fw_chksum

View File

@@ -315,3 +315,10 @@ macaddr_canonicalize() {
dt_is_enabled() {
grep -q okay "/proc/device-tree/$1/status"
}
get_linux_version() {
local ver=$(uname -r)
local minor=${ver%\.*}
printf "%d%02d%03d" ${ver%%\.*} ${minor#*\.} ${ver##*\.} 2>/dev/null
}

View File

@@ -20,6 +20,7 @@ CONF_IMAGE=
CONF_BACKUP_LIST=0
CONF_BACKUP=
CONF_RESTORE=
USE_CURR_PART=0
NEED_IMAGE=
HELP=0
TEST=0
@@ -50,6 +51,7 @@ while [ -n "$1" ]; do
-r|--restore-backup) CONF_RESTORE="$2" NEED_IMAGE=1; shift;;
-l|--list-backup) CONF_BACKUP_LIST=1;;
-f) CONF_IMAGE="$2"; shift;;
-s) USE_CURR_PART=1;;
-F|--force) export FORCE=1;;
-T|--test) TEST=1;;
-h|--help) HELP=1; break;;
@@ -79,6 +81,7 @@ upgrade-option:
-p do not attempt to restore the partition table after flash.
-k include in backup a list of current installed packages at
$INSTALLED_PACKAGES
-s stay on current partition (for dual firmware devices)
-T | --test
Verify image and config .tar.gz but do not actually flash.
-F | --force
@@ -416,6 +419,7 @@ else
json_add_string command "$COMMAND"
json_add_object options
json_add_int save_partitions "$SAVE_PARTITIONS"
[ $USE_CURR_PART -eq 1 ] && json_add_boolean use_curr_part 1
json_close_object
ubus call system sysupgrade "$(json_dump)"

View File

@@ -190,7 +190,7 @@ if VERSIONOPT
config VERSION_REPO
string
prompt "Release repository"
default "https://downloads.openwrt.org/releases/24.10.0"
default "https://downloads.openwrt.org/releases/24.10-SNAPSHOT"
help
This is the repository address embedded in the image, it defaults
to the trunk snapshot repo; the url may contain the following placeholders:
@@ -266,7 +266,7 @@ if VERSIONOPT
config VERSION_CODE_FILENAMES
bool
prompt "Revision code in filenames"
default n
default y
help
Enable this to include the revision identifier or the configured
version code into the firmware image, SDK- and Image Builder archive

View File

@@ -35,6 +35,8 @@ define Trusted-Firmware-A/Default
DRAM_USE_COMB:=
RAM_BOOT_UART_DL:=
USE_UBI:=
FIP_OFFSET:=
FIP_SIZE:=
endef
define Trusted-Firmware-A/mt7622-nor-1ddr
@@ -221,6 +223,16 @@ define Trusted-Firmware-A/mt7981-spim-nand-ddr3
DDR_TYPE:=ddr3
endef
define Trusted-Firmware-A/mt7981-cudy-tr3000-v1
NAME:=Cudy TR3000 v1 (SPI-NAND via SPIM, DDR3)
BOOT_DEVICE:=spim-nand
BUILD_SUBTARGET:=filogic
PLAT:=mt7981
DDR_TYPE:=ddr3
FIP_OFFSET:=0x3c0000
FIP_SIZE:=0x200000
endef
define Trusted-Firmware-A/mt7986-ram-ddr4
NAME:=MediaTek MT7986 (RAM, DDR4)
BOOT_DEVICE:=ram
@@ -534,6 +546,7 @@ TFA_TARGETS:= \
mt7981-ram-ddr4 \
mt7981-emmc-ddr4 \
mt7981-spim-nand-ddr4 \
mt7981-cudy-tr3000-v1 \
mt7986-ram-ddr3 \
mt7986-emmc-ddr3 \
mt7986-nor-ddr3 \
@@ -581,6 +594,8 @@ TFA_MAKE_FLAGS += \
$(if $(USE_UBI),UBI=1 $(if $(findstring mt7622,$(PLAT)),OVERRIDE_UBI_START_ADDR=0x80000)) \
$(if $(USE_UBI),UBI=1 $(if $(findstring mt7981,$(PLAT)),OVERRIDE_UBI_START_ADDR=0x100000)) \
$(if $(USE_UBI),UBI=1 $(if $(findstring mt7986,$(PLAT)),OVERRIDE_UBI_START_ADDR=0x200000)) \
$(if $(FIP_OFFSET),OVERRIDE_FIP_BASE=$(FIP_OFFSET)) \
$(if $(FIP_SIZE),OVERRIDE_FIP_SIZE=$(FIP_SIZE)) \
$(if $(RAM_BOOT_UART_DL),bl2,all)
define Package/trusted-firmware-a-ram/install

View File

@@ -7,10 +7,11 @@
include $(TOPDIR)/rules.mk
PKG_VERSION:=2.10
PKG_VERSION:=2.10.17
PKG_RELEASE:=1
PKG_LTS:=1
PKG_HASH:=88215a62291b9ba87da8e50b077741103cdc08fb6c9e1ebd34dfaace746d3201
PKG_HASH:=2558b2579dd1c45db6de89c49e647c109022d45da03eb74e0f6123c294295099
PKG_MAINTAINER:=Thomas Richard <thomas.richard@bootlin.com>
include $(INCLUDE_DIR)/kernel.mk

View File

@@ -201,4 +201,9 @@ define Build/Compile
CROSS_COMPILE=$(TARGET_CROSS)
endef
define Build/InstallDev
$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
$(INSTALL_DATA) $(PKG_BUILD_DIR)/$(BINARIES_DIR)/at91bootstrap.bin $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-at91bootstrap.bin
endef
$(eval $(call BuildPackage/AT91Bootstrap))

View File

@@ -43,6 +43,7 @@ endef
define Trusted-Firmware-A/Default
BUILD_TARGET:=layerscape
BUILD_SUBTARGET:=armv8_64b
BUILD_DEVICES:=fsl_$(1)
DEPENDS:=+layerscape-rcw +u-boot-fsl_$(1)
endef

View File

@@ -179,4 +179,9 @@ define Build/Compile
$(UBOOT_MAKE_FLAGS)
endef
define Build/InstallDev
$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
$(INSTALL_DATA) $(PKG_BUILD_DIR)/$(UBOOT_IMAGE) $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-$(UBOOT_IMAGE)
endef
$(eval $(call BuildPackage/U-Boot))

View File

@@ -0,0 +1,57 @@
From a63456b9191fae2fe49f4b121e025792022e3950 Mon Sep 17 00:00:00 2001
From: Markus Volk <f_l_k@t-online.de>
Date: Wed, 30 Oct 2024 06:07:16 +0100
Subject: [PATCH] scripts/dtc/pylibfdt/libfdt.i_shipped: Use SWIG_AppendOutput
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Swig has changed language specific AppendOutput functions. The helper
macro SWIG_AppendOutput remains unchanged. Use that instead
of SWIG_Python_AppendOutput, which would require an extra parameter
since swig 4.3.0.
/home/flk/poky/build-test/tmp/work/qemux86_64-poky-linux/u-boot/2024.10/git/arch/x86/cpu/u-boot-64.lds
| scripts/dtc/pylibfdt/libfdt_wrap.c: In function _wrap_fdt_next_node:
| scripts/dtc/pylibfdt/libfdt_wrap.c:5581:17: error: too few arguments to function SWIG_Python_AppendOutput
| 5581 | resultobj = SWIG_Python_AppendOutput(resultobj, val);
| | ^~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Reported-by: Rudi Heitbaum <rudi@heitbaum.com>
Link: https://github.com/dgibson/dtc/pull/154
---
scripts/dtc/pylibfdt/libfdt.i_shipped | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/scripts/dtc/pylibfdt/libfdt.i_shipped b/scripts/dtc/pylibfdt/libfdt.i_shipped
index 56cc5d48f4f9..e4659489a96a 100644
--- a/scripts/dtc/pylibfdt/libfdt.i_shipped
+++ b/scripts/dtc/pylibfdt/libfdt.i_shipped
@@ -1037,7 +1037,7 @@ typedef uint32_t fdt32_t;
fdt_string(fdt1, fdt32_to_cpu($1->nameoff)));
buff = PyByteArray_FromStringAndSize(
(const char *)($1 + 1), fdt32_to_cpu($1->len));
- resultobj = SWIG_Python_AppendOutput(resultobj, buff);
+ resultobj = SWIG_AppendOutput(resultobj, buff);
}
}
@@ -1076,7 +1076,7 @@ typedef uint32_t fdt32_t;
%typemap(argout) int *depth {
PyObject *val = Py_BuildValue("i", *arg$argnum);
- resultobj = SWIG_Python_AppendOutput(resultobj, val);
+ resultobj = SWIG_AppendOutput(resultobj, val);
}
%apply int *depth { int *depth };
@@ -1092,7 +1092,7 @@ typedef uint32_t fdt32_t;
if (PyTuple_GET_SIZE(resultobj) == 0)
resultobj = val;
else
- resultobj = SWIG_Python_AppendOutput(resultobj, val);
+ resultobj = SWIG_AppendOutput(resultobj, val);
}
}

View File

@@ -0,0 +1,21 @@
[ -e /etc/config/ubootenv ] && exit 0
touch /etc/config/ubootenv
. /lib/uboot-envtools.sh
. /lib/functions.sh
board=$(board_name)
case "$board" in
gw,imx8m*|\
gateworks,imx8m*)
# board boots from emmc boot0 hardware partition
ubootenv_add_uci_config /dev/mmcblk2boot0 0x3f0000 0x8000
ubootenv_add_uci_config /dev/mmcblk2boot0 0x3f8000 0x8000
esac
config_load ubootenv
config_foreach ubootenv_add_app_config ubootenv
exit 0

View File

@@ -34,10 +34,14 @@ ubootenv_add_ubi_default() {
case "$board" in
abt,asr3000|\
cmcc,a10-ubootmod|\
cudy,tr3000-v1-ubootmod|\
h3c,magic-nx30-pro|\
jcg,q30-pro|\
konka,komi-a31|\
mercusys,mr90x-v1-ubi|\
netcore,n60|\
netis,nx31|\
nokia,ea0326gmp|\
qihoo,360t7|\
routerich,ax3000-ubootmod|\
@@ -57,7 +61,8 @@ acer,vero-w6m|\
glinet,gl-mt2500|\
glinet,gl-mt6000|\
glinet,gl-x3000|\
glinet,gl-xe3000)
glinet,gl-xe3000|\
huasifei,wh3000)
local envdev=$(find_mmc_part "u-boot-env")
ubootenv_add_uci_config "$envdev" "0x0" "0x80000"
;;
@@ -105,8 +110,10 @@ gatonetworks,gdsp)
glinet,gl-mt3000)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x80000" "0x20000"
;;
mercusys,mr80x-v3|\
mercusys,mr90x-v1|\
routerich,ax3000|\
routerich,ax3000-v1|\
tplink,re6000xd)
local envdev=/dev/mtd$(find_mtd_index "u-boot-env")
ubootenv_add_uci_config "$envdev" "0x0" "0x20000" "0x20000" "1"
@@ -124,6 +131,9 @@ smartrg,sdg-8734)
local envdev=$(find_mmc_part "u-boot-env" "mmcblk0")
ubootenv_add_uci_config "$envdev" "0x0" "0x8000" "0x8000"
;;
tplink,archer-ax80-v1)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000" "8"
;;
ubnt,unifi-6-plus)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x80000" "0x10000"
;;

View File

@@ -29,6 +29,11 @@ edimax,cax1800)
[ -n "$idx" ] && \
ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x10000" "0x20000"
;;
linksys,homewrk)
idx="$(find_mtd_index 0:appsblenv)"
[ -n "$idx" ] && \
ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x40000" "0x40000"
;;
linksys,mx4200v1|\
linksys,mx4200v2|\
linksys,mx5300|\
@@ -37,6 +42,11 @@ linksys,mx8500)
[ -n "$idx" ] && \
ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x40000" "0x20000" "2"
;;
linksys,mx4300)
idx="$(find_mtd_index u_env)"
[ -n "$idx" ] && \
ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x40000" "0x40000" "1"
;;
netgear,sxr80|\
netgear,sxs80|\
tplink,eap660hd-v1)

View File

@@ -19,8 +19,10 @@ alfa-network,r36m-e4g|\
alfa-network,tube-e4g|\
engenius,epg600|\
engenius,esr600h|\
hongdian,h8922-v30|\
linksys,re7000|\
meig,slt866|\
qding,qc202|\
sitecom,wlr-4100-v1-002|\
zyxel,keenetic-lite-iii-a)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x1000"
@@ -62,6 +64,7 @@ kroks,kndrt31r19|\
mediatek,linkit-smart-7688|\
samknows,whitebox-v8|\
xiaomi,mi-router-4c|\
xiaomi,miwifi-3a|\
xiaomi,miwifi-nano|\
zbtlink,zbt-wg2626|\
zte,mf283plus)
@@ -147,7 +150,8 @@ xiaomi,mi-router-cr6608|\
xiaomi,mi-router-cr6609)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x20000"
;;
dna,valokuitu-plus-ex400)
dna,valokuitu-plus-ex400|\
genexis,pulse-ex400)
ubootenv_add_uci_config "/dev/ubi0_0" "0x0" "0x1f000" "0x1f000" "1"
ubootenv_add_uci_config "/dev/ubi0_1" "0x0" "0x1f000" "0x1f000" "1"
;;

View File

@@ -28,6 +28,7 @@ zyxel,gs1900-10hp|\
zyxel,gs1900-16|\
zyxel,gs1900-24-v1|\
zyxel,gs1900-24e|\
zyxel,gs1900-24ep|\
zyxel,gs1900-24hp-v1|\
zyxel,gs1900-24hp-v2)
idx="$(find_mtd_index u-boot-env)"

View File

@@ -231,6 +231,18 @@ define U-Boot/mt7981_abt_asr3000
DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr3
endef
define U-Boot/mt7981_cmcc_a10
NAME:=CMCC A10
BUILD_SUBTARGET:=filogic
BUILD_DEVICES:=cmcc_a10-ubootmod
UBOOT_CONFIG:=mt7981_cmcc_a10
UBOOT_IMAGE:=u-boot.fip
BL2_BOOTDEV:=spim-nand
BL2_SOC:=mt7981
BL2_DDRTYPE:=ddr3
DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr3
endef
define U-Boot/mt7981_cmcc_rax3000m-emmc
NAME:=CMCC RAX3000M
BUILD_SUBTARGET:=filogic
@@ -255,6 +267,17 @@ define U-Boot/mt7981_cmcc_rax3000m-nand
DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr4
endef
define U-Boot/mt7981_cudy_tr3000-v1
NAME:=Cudy TR3000 v1
BUILD_SUBTARGET:=filogic
BUILD_DEVICES:=cudy_tr3000-v1-ubootmod
UBOOT_CONFIG:=mt7981_cudy_tr3000-v1
UBOOT_IMAGE:=u-boot.fip
BL2_BOOTDEV:=cudy-tr3000-v1
BL2_SOC:=mt7981
DEPENDS:=+trusted-firmware-a-mt7981-cudy-tr3000-v1
endef
define U-Boot/mt7981_glinet_gl-x3000
NAME:=GL.iNet GL-X3000
BUILD_SUBTARGET:=filogic
@@ -303,6 +326,30 @@ define U-Boot/mt7981_jcg_q30-pro
DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr3
endef
define U-Boot/mt7981_konka_komi-a31
NAME:=Konka KOMI A31
BUILD_SUBTARGET:=filogic
BUILD_DEVICES:=konka_komi-a31
UBOOT_CONFIG:=mt7981_konka_komi-a31
UBOOT_IMAGE:=u-boot.fip
BL2_BOOTDEV:=spim-nand
BL2_SOC:=mt7981
BL2_DDRTYPE:=ddr3
DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr3
endef
define U-Boot/mt7981_netis_nx31
NAME:=netis NX31
BUILD_SUBTARGET:=filogic
BUILD_DEVICES:=netis_nx31
UBOOT_CONFIG:=mt7981_netis_nx31
UBOOT_IMAGE:=u-boot.fip
BL2_BOOTDEV:=spim-nand
BL2_SOC:=mt7981
BL2_DDRTYPE:=ddr3
DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr3
endef
define U-Boot/mt7981_nokia_ea0326gmp
NAME:=Nokia EA0326GMP
BUILD_SUBTARGET:=filogic
@@ -832,13 +879,17 @@ UBOOT_TARGETS := \
mt7628_ravpower_rp-wd009 \
mt7629_rfb \
mt7981_abt_asr3000 \
mt7981_cmcc_a10 \
mt7981_cmcc_rax3000m-emmc \
mt7981_cmcc_rax3000m-nand \
mt7981_cudy_tr3000-v1 \
mt7981_gatonetworks_gdsp \
mt7981_glinet_gl-x3000 \
mt7981_glinet_gl-xe3000 \
mt7981_h3c_magic-nx30-pro \
mt7981_jcg_q30-pro \
mt7981_konka_komi-a31 \
mt7981_netis_nx31 \
mt7981_nokia_ea0326gmp \
mt7981_openwrt_one-snand \
mt7981_openwrt_one-nor \

View File

@@ -0,0 +1,55 @@
From a63456b9191fae2fe49f4b121e025792022e3950 Mon Sep 17 00:00:00 2001
From: Markus Volk <f_l_k@t-online.de>
Date: Wed, 30 Oct 2024 06:07:16 +0100
Subject: [PATCH] scripts/dtc/pylibfdt/libfdt.i_shipped: Use SWIG_AppendOutput
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Swig has changed language specific AppendOutput functions. The helper
macro SWIG_AppendOutput remains unchanged. Use that instead
of SWIG_Python_AppendOutput, which would require an extra parameter
since swig 4.3.0.
/home/flk/poky/build-test/tmp/work/qemux86_64-poky-linux/u-boot/2024.10/git/arch/x86/cpu/u-boot-64.lds
| scripts/dtc/pylibfdt/libfdt_wrap.c: In function _wrap_fdt_next_node:
| scripts/dtc/pylibfdt/libfdt_wrap.c:5581:17: error: too few arguments to function SWIG_Python_AppendOutput
| 5581 | resultobj = SWIG_Python_AppendOutput(resultobj, val);
| | ^~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Reported-by: Rudi Heitbaum <rudi@heitbaum.com>
Link: https://github.com/dgibson/dtc/pull/154
---
scripts/dtc/pylibfdt/libfdt.i_shipped | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/scripts/dtc/pylibfdt/libfdt.i_shipped
+++ b/scripts/dtc/pylibfdt/libfdt.i_shipped
@@ -1037,7 +1037,7 @@ typedef uint32_t fdt32_t;
fdt_string(fdt1, fdt32_to_cpu($1->nameoff)));
buff = PyByteArray_FromStringAndSize(
(const char *)($1 + 1), fdt32_to_cpu($1->len));
- resultobj = SWIG_Python_AppendOutput(resultobj, buff);
+ resultobj = SWIG_AppendOutput(resultobj, buff);
}
}
@@ -1076,7 +1076,7 @@ typedef uint32_t fdt32_t;
%typemap(argout) int *depth {
PyObject *val = Py_BuildValue("i", *arg$argnum);
- resultobj = SWIG_Python_AppendOutput(resultobj, val);
+ resultobj = SWIG_AppendOutput(resultobj, val);
}
%apply int *depth { int *depth };
@@ -1092,7 +1092,7 @@ typedef uint32_t fdt32_t;
if (PyTuple_GET_SIZE(resultobj) == 0)
resultobj = val;
else
- resultobj = SWIG_Python_AppendOutput(resultobj, val);
+ resultobj = SWIG_AppendOutput(resultobj, val);
}
}

View File

@@ -0,0 +1,68 @@
Subject: [PATCH] mtd: spinand: esmt: add support for F50L1G41LC
This adds support for ESMT F50L1G41LC, which appears to be an updated
version of the already supported F50L1G41LB.
Add esmt_8c SPI_NAND manufacturer to account for the newly used vendor
ID with support for the ESMT F50L1G41LC chip.
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -834,6 +834,7 @@ static const struct spinand_manufacturer
&toshiba_spinand_manufacturer,
&winbond_spinand_manufacturer,
&esmt_c8_spinand_manufacturer,
+ &esmt_8c_spinand_manufacturer,
&xtx_spinand_manufacturer,
};
--- a/drivers/mtd/nand/spi/esmt.c
+++ b/drivers/mtd/nand/spi/esmt.c
@@ -13,6 +13,7 @@
/* ESMT uses GigaDevice 0xc8 JECDEC ID on some SPI NANDs */
#define SPINAND_MFR_ESMT_C8 0xc8
+#define SPINAND_MFR_ESMT_8C 0x8c
static SPINAND_OP_VARIANTS(read_cache_variants,
SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
@@ -104,6 +105,18 @@ static const struct mtd_ooblayout_ops f5
.rfree = f50l1g41lb_ooblayout_free,
};
+static const struct spinand_info esmt_8c_spinand_table[] = {
+ SPINAND_INFO("F50L1G41LC",
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0x2C),
+ NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
+ NAND_ECCREQ(1, 512),
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
+ &write_cache_variants,
+ &update_cache_variants),
+ 0,
+ SPINAND_ECCINFO(&f50l1g41lb_ooblayout, NULL)),
+};
+
static const struct spinand_info esmt_c8_spinand_table[] = {
SPINAND_INFO("F50L1G41LB",
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0x01),
@@ -135,3 +148,11 @@ const struct spinand_manufacturer esmt_c
.nchips = ARRAY_SIZE(esmt_c8_spinand_table),
.ops = &esmt_spinand_manuf_ops,
};
+
+const struct spinand_manufacturer esmt_8c_spinand_manufacturer = {
+ .id = SPINAND_MFR_ESMT_8C,
+ .name = "ESMT",
+ .chips = esmt_8c_spinand_table,
+ .nchips = ARRAY_SIZE(esmt_8c_spinand_table),
+ .ops = &esmt_spinand_manuf_ops,
+};
--- a/include/linux/mtd/spinand.h
+++ b/include/linux/mtd/spinand.h
@@ -252,6 +252,7 @@ extern const struct spinand_manufacturer
extern const struct spinand_manufacturer toshiba_spinand_manufacturer;
extern const struct spinand_manufacturer winbond_spinand_manufacturer;
extern const struct spinand_manufacturer esmt_c8_spinand_manufacturer;
+extern const struct spinand_manufacturer esmt_8c_spinand_manufacturer;
extern const struct spinand_manufacturer xtx_spinand_manufacturer;
/**

View File

@@ -187,13 +187,12 @@
leds {
compatible = "gpio-leds";
@@ -109,6 +122,19 @@
@@ -109,6 +122,18 @@
};
};
+ key_pins_a: keys-alt {
+ mux {
+ function = "gpio";
+ groups = "msdc3";
+ };
+

View File

@@ -503,7 +503,7 @@
+ compatible = "ethernet-phy-id03a2.a411";
+ reg = <14>;
+
+ airoha,rx-pol-reverse;
+ airoha,pnswap-rx;
+
+ reset-gpios = <&gpio 49 GPIO_ACTIVE_LOW>;
+ reset-assert-us = <10000>;

View File

@@ -0,0 +1,330 @@
--- /dev/null
+++ b/configs/mt7981_cudy_tr3000-v1_defconfig
@@ -0,0 +1,107 @@
+CONFIG_ARM=y
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
+CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y
+CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_DEFAULT_DEVICE_TREE="mt7981-cudy-tr3000-v1"
+CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_TARGET_MT7981=y
+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00
+CONFIG_DEBUG_UART_BASE=0x11002000
+CONFIG_DEBUG_UART_CLOCK=40000000
+CONFIG_SYS_LOAD_ADDR=0x46000000
+CONFIG_DEBUG_UART=y
+CONFIG_FIT=y
+CONFIG_BOOTDELAY=30
+CONFIG_AUTOBOOT_KEYED=y
+CONFIG_AUTOBOOT_MENU_SHOW=y
+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981-cudy-tr3000-v1.dtb"
+CONFIG_LOGLEVEL=7
+CONFIG_PRE_CONSOLE_BUFFER=y
+CONFIG_LOG=y
+CONFIG_BOARD_LATE_INIT=y
+CONFIG_HUSH_PARSER=y
+CONFIG_SYS_PROMPT="MT7981> "
+CONFIG_CMD_CPU=y
+CONFIG_CMD_LICENSE=y
+CONFIG_CMD_BOOTMENU=y
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_ERASEENV=y
+CONFIG_CMD_ENV_FLAGS=y
+CONFIG_CMD_STRINGS=y
+CONFIG_CMD_DM=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_MTD=y
+CONFIG_CMD_PART=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_TFTPSRV=y
+CONFIG_CMD_RARP=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_CDP=y
+CONFIG_CMD_SNTP=y
+CONFIG_CMD_DNS=y
+CONFIG_CMD_LINK_LOCAL=y
+CONFIG_CMD_PXE=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_PSTORE=y
+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
+CONFIG_CMD_UUID=y
+CONFIG_CMD_HASH=y
+CONFIG_CMD_SMC=y
+CONFIG_CMD_UBI=y
+CONFIG_CMD_UBI_RENAME=y
+CONFIG_OF_EMBED=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_IN_UBI=y
+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
+CONFIG_ENV_UBI_PART="ubi"
+CONFIG_ENV_UBI_VOLUME="ubootenv"
+CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2"
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_USE_DEFAULT_ENV_FILE=y
+CONFIG_DEFAULT_ENV_FILE="cudy_tr3000-v1_env"
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_VERSION_VARIABLE=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_NETCONSOLE=y
+CONFIG_USE_IPADDR=y
+CONFIG_IPADDR="192.168.1.1"
+CONFIG_USE_SERVERIP=y
+CONFIG_SERVERIP="192.168.1.254"
+CONFIG_REGMAP=y
+CONFIG_SYSCON=y
+CONFIG_BUTTON=y
+CONFIG_BUTTON_GPIO=y
+CONFIG_CLK=y
+CONFIG_GPIO_HOG=y
+CONFIG_LED=y
+CONFIG_LED_BLINK=y
+CONFIG_LED_GPIO=y
+# CONFIG_MMC is not set
+CONFIG_MTD=y
+CONFIG_DM_MTD=y
+CONFIG_MTD_SPI_NAND=y
+CONFIG_MTD_UBI_FASTMAP=y
+CONFIG_PHY_FIXED=y
+CONFIG_MEDIATEK_ETH=y
+CONFIG_PHY=y
+CONFIG_PINCTRL=y
+CONFIG_PINCONF=y
+CONFIG_PINCTRL_MT7981=y
+CONFIG_POWER_DOMAIN=y
+CONFIG_MTK_POWER_DOMAIN=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_RAM=y
+CONFIG_DM_SERIAL=y
+CONFIG_MTK_SERIAL=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_MTK_SPIM=y
+CONFIG_ZSTD=y
+CONFIG_HEXDUMP=y
+CONFIG_LMB_MAX_REGIONS=64
--- /dev/null
+++ b/arch/arm/dts/mt7981-cudy-tr3000-v1.dts
@@ -0,0 +1,160 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+/dts-v1/;
+#include "mt7981.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ model = "Cudy TR3000 v1";
+ compatible = "mediatek,mt7981", "mediatek,mt7981-rfb";
+
+ chosen {
+ stdout-path = &uart0;
+ tick-timer = &timer0;
+ };
+
+ memory@40000000 {
+ device_type = "memory";
+ reg = <0x40000000 0x20000000>;
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ button-reset {
+ label = "reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ };
+
+ button-mode {
+ label = "mode";
+ linux,code = <EV_SW>;
+ linux,input-type = <BTN_0>;
+ gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
+ debounce-interval = <60>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ led_status: led-0 {
+ label = "red:power";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+
+ led-1 {
+ label = "white:status";
+ gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
+ default-state = "off";
+ };
+ };
+};
+
+&eth {
+ status = "okay";
+ mediatek,gmac-id = <1>;
+ phy-mode = "gmii";
+ phy-handle = <&phy0>;
+
+ mdio {
+ phy0: ethernet-phy@0 {
+ compatible = "ethernet-phy-id03a2.9461";
+ reg = <0x0>;
+ phy-mode = "gmii";
+ };
+ };
+};
+
+&pinctrl {
+ spi_flash_pins: spi0-pins-func-1 {
+ mux {
+ function = "flash";
+ groups = "spi0", "spi0_wp_hold";
+ };
+
+ conf-pu {
+ pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
+ drive-strength = <MTK_DRIVE_8mA>;
+ bias-pull-up = <MTK_PUPD_SET_R1R0_00>;
+ };
+
+ conf-pd {
+ pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
+ drive-strength = <MTK_DRIVE_8mA>;
+ bias-pull-down = <MTK_PUPD_SET_R1R0_00>;
+ };
+ };
+};
+
+&spi0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_flash_pins>;
+ status = "okay";
+ must_tx;
+ enhance_timing;
+ dma_ext;
+ ipm_design;
+ support_quad;
+ tick_dly = <2>;
+ sample_sel = <0>;
+
+ spi_nand@0 {
+ compatible = "spi-nand";
+ reg = <0>;
+ spi-max-frequency = <52000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "bl2";
+ reg = <0x0 0x100000>;
+ };
+
+ partition@100000 {
+ label = "u-boot-env";
+ reg = <0x100000 0x80000>;
+ };
+
+ partition@180000 {
+ label = "factory";
+ reg = <0x180000 0x200000>;
+ };
+
+ partition@380000 {
+ label = "bdinfo";
+ reg = <0x380000 0x40000>;
+ };
+
+ partition@3c0000 {
+ label = "fip";
+ reg = <0x3c0000 0x200000>;
+ };
+
+ partition@5c0000 {
+ label = "ubi";
+ reg = <0x5c0000 0x7a40000>;
+ compatible = "linux,ubi";
+ };
+ };
+ };
+};
+
+&uart0 {
+ mediatek,force-highspeed;
+ status = "okay";
+};
+
+&watchdog {
+ status = "disabled";
+};
--- /dev/null
+++ b/cudy_tr3000-v1_env
@@ -0,0 +1,54 @@
+ipaddr=192.168.1.1
+serverip=192.168.1.254
+loadaddr=0x46000000
+console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0
+bootcmd=if pstore check ; then run boot_recovery ; else run boot_ubi ; fi
+bootconf=config-1
+bootdelay=0
+bootfile=openwrt-mediatek-filogic-cudy_tr3000-v1-ubootmod-initramfs-recovery.itb
+bootfile_bl2=openwrt-mediatek-filogic-cudy_tr3000-v1-ubootmod-preloader.bin
+bootfile_fip=openwrt-mediatek-filogic-cudy_tr3000-v1-ubootmod-bl31-uboot.fip
+bootfile_upg=openwrt-mediatek-filogic-cudy_tr3000-v1-ubootmod-squashfs-sysupgrade.itb
+bootled_pwr=red:power
+bootled_rec=white:status
+bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
+bootmenu_default=0
+bootmenu_delay=0
+bootmenu_title= ( ( ( OpenWrt ) ) )
+bootmenu_0=Initialize environment.=run _firstboot
+bootmenu_0d=Run default boot command.=run boot_default
+bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
+bootmenu_2=Boot production system from NAND.=run boot_production ; run bootmenu_confirm_return
+bootmenu_3=Boot recovery system from NAND.=run boot_recovery ; run bootmenu_confirm_return
+bootmenu_4=Load production system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
+bootmenu_5=Load recovery system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
+bootmenu_6=Load BL31+U-Boot FIP via TFTP then write to NAND.=run boot_tftp_write_fip ; run bootmenu_confirm_return
+bootmenu_7=Load BL2 preloader via TFTP then write to NAND.=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
+bootmenu_8=Reboot.=reset
+bootmenu_9=Reset all settings to factory defaults.=run reset_factory ; reset
+boot_first=if button reset ; then led $bootled_rec on ; run boot_tftp_recovery ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu
+boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
+boot_production=led $bootled_pwr on ; run ubi_read_production && bootm $loadaddr#$bootconf ; led $bootled_pwr off
+boot_recovery=led $bootled_rec on ; run ubi_read_recovery && bootm $loadaddr#$bootconf ; led $bootled_rec off
+boot_ubi=run boot_production ; run boot_recovery ; run boot_tftp_forever
+boot_tftp_forever=led $bootled_rec on ; while true ; do run boot_tftp_recovery ; sleep 1 ; done
+boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run ubi_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
+boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run ubi_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
+boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
+boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run mtd_write_fip && run reset_factory
+boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run mtd_write_bl2
+reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800
+mtd_write_fip=mtd erase fip && mtd write fip $loadaddr
+mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr
+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format
+ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset
+ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi
+ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs
+ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery
+ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data
+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize
+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize
+_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv
+_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first
+_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
+_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title $ver"

View File

@@ -0,0 +1,334 @@
--- /dev/null
+++ b/configs/mt7981_netis_nx31_defconfig
@@ -0,0 +1,106 @@
+CONFIG_ARM=y
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
+CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y
+CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_DEFAULT_DEVICE_TREE="mt7981-netis_nx31"
+CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_TARGET_MT7981=y
+CONFIG_SYS_LOAD_ADDR=0x46000000
+CONFIG_PRE_CON_BUF_ADDR=0x4007ef00
+CONFIG_DEBUG_UART_BASE=0x11002000
+CONFIG_DEBUG_UART_CLOCK=40000000
+CONFIG_DEBUG_UART=y
+CONFIG_FIT=y
+CONFIG_BOOTDELAY=30
+CONFIG_AUTOBOOT_KEYED=y
+CONFIG_AUTOBOOT_MENU_SHOW=y
+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981-netis_nx31.dtb"
+CONFIG_LOGLEVEL=7
+CONFIG_PRE_CONSOLE_BUFFER=y
+CONFIG_LOG=y
+CONFIG_BOARD_LATE_INIT=y
+CONFIG_HUSH_PARSER=y
+CONFIG_SYS_PROMPT="MT7981> "
+CONFIG_CMD_CPU=y
+CONFIG_CMD_LICENSE=y
+CONFIG_CMD_BOOTMENU=y
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_ERASEENV=y
+CONFIG_CMD_ENV_FLAGS=y
+CONFIG_CMD_STRINGS=y
+CONFIG_CMD_DM=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_MTD=y
+CONFIG_CMD_PART=y
+CONFIG_CMD_TFTPSRV=y
+CONFIG_CMD_RARP=y
+CONFIG_CMD_CDP=y
+CONFIG_CMD_SNTP=y
+CONFIG_CMD_LINK_LOCAL=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_DNS=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_PXE=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_PSTORE=y
+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
+CONFIG_CMD_UUID=y
+CONFIG_CMD_HASH=y
+CONFIG_CMD_SMC=y
+CONFIG_CMD_UBI=y
+CONFIG_CMD_UBI_RENAME=y
+CONFIG_OF_EMBED=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_IN_UBI=y
+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
+CONFIG_ENV_UBI_PART="ubi"
+CONFIG_ENV_UBI_VOLUME="ubootenv"
+CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2"
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_USE_DEFAULT_ENV_FILE=y
+CONFIG_DEFAULT_ENV_FILE="defenvs/netis_nx31_env"
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_VERSION_VARIABLE=y
+CONFIG_NETCONSOLE=y
+CONFIG_USE_IPADDR=y
+CONFIG_IPADDR="192.168.1.1"
+CONFIG_USE_SERVERIP=y
+CONFIG_SERVERIP="192.168.1.254"
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_BUTTON=y
+CONFIG_BUTTON_GPIO=y
+CONFIG_CLK=y
+CONFIG_GPIO_HOG=y
+CONFIG_LED=y
+CONFIG_LED_BLINK=y
+CONFIG_LED_GPIO=y
+# CONFIG_MMC is not set
+CONFIG_MTD=y
+CONFIG_DM_MTD=y
+CONFIG_MTD_SPI_NAND=y
+CONFIG_MTD_UBI_FASTMAP=y
+CONFIG_PHY_FIXED=y
+CONFIG_MEDIATEK_ETH=y
+CONFIG_PHY=y
+CONFIG_PHY_MTK_TPHY=y
+CONFIG_PINCTRL=y
+CONFIG_PINCONF=y
+CONFIG_PINCTRL_MT7981=y
+CONFIG_POWER_DOMAIN=y
+CONFIG_MTK_POWER_DOMAIN=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_RAM=y
+CONFIG_DM_SERIAL=y
+CONFIG_SERIAL_RX_BUFFER=y
+CONFIG_MTK_SERIAL=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_MTK_SPIM=y
+CONFIG_ZSTD=y
+CONFIG_HEXDUMP=y
--- /dev/null
+++ b/arch/arm/dts/mt7981-netis_nx31.dts
@@ -0,0 +1,162 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2025
+ * Author: Mikhail Zhilkin <csharper2005@gmail.com>
+ */
+
+/dts-v1/;
+#include "mt7981.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ model = "netis NX31";
+ compatible = "netis,nx31", "mediatek,mt7981";
+
+ chosen {
+ stdout-path = &uart0;
+ tick-timer = &timer0;
+ };
+
+ memory@40000000 {
+ device_type = "memory";
+ reg = <0x40000000 0x10000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ button-0 {
+ label = "mesh";
+ linux,code = <BTN_0>;
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ };
+
+ button-1 {
+ label = "reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led-0 {
+ label = "blue:wlan2g";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+
+ led-1 {
+ label = "blue:status";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+
+ led-2 {
+ label = "blue:wan";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+
+ led-3 {
+ label = "blue:wlan5g";
+ gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&uart0 {
+ mediatek,force-highspeed;
+ status = "okay";
+};
+
+&eth {
+ status = "okay";
+ mediatek,gmac-id = <0>;
+ phy-mode = "2500base-x";
+ mediatek,switch = "mt7531";
+ reset-gpios = <&gpio 39 GPIO_ACTIVE_HIGH>;
+
+ fixed-link {
+ speed = <2500>;
+ full-duplex;
+ };
+};
+
+&pinctrl {
+ spi_flash_pins: spi0-pins-func-1 {
+ mux {
+ function = "flash";
+ groups = "spi0", "spi0_wp_hold";
+ };
+
+ conf-pu {
+ pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
+ drive-strength = <MTK_DRIVE_8mA>;
+ bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
+ };
+
+ conf-pd {
+ pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
+ drive-strength = <MTK_DRIVE_8mA>;
+ bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
+ };
+ };
+};
+
+&spi0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_flash_pins>;
+ status = "okay";
+ must_tx;
+ enhance_timing;
+ dma_ext;
+ ipm_design;
+ support_quad;
+ tick_dly = <2>;
+ sample_sel = <0>;
+
+ spi_nand@0 {
+ compatible = "spi-nand";
+ reg = <0>;
+ spi-max-frequency = <52000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "BL2";
+ reg = <0x0 0x100000>;
+ };
+
+ partition@100000 {
+ label = "u-boot-env (unused)";
+ reg = <0x100000 0x80000>;
+ };
+
+ partition@160000 {
+ label = "Factory";
+ reg = <0x180000 0x200000>;
+ };
+
+ partition@380000 {
+ label = "FIP";
+ reg = <0x380000 0x200000>;
+ };
+
+ partition@580000 {
+ label = "ubi";
+ reg = <0x580000 0x7a80000>;
+ };
+ };
+ };
+};
+
+&watchdog {
+ status = "disabled";
+};
--- /dev/null
+++ b/defenvs/netis_nx31_env
@@ -0,0 +1,57 @@
+ipaddr=192.168.1.1
+serverip=192.168.1.254
+loadaddr=0x46000000
+console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0
+bootcmd=run check_buttons ; if pstore check ; then run boot_recovery ; else run boot_ubi ; fi
+bootconf=config-1
+bootdelay=0
+bootfile=openwrt-mediatek-filogic-netis_nx31-initramfs-recovery.itb
+bootfile_bl2=openwrt-mediatek-filogic-netis_nx31-preloader.bin
+bootfile_fip=openwrt-mediatek-filogic-netis_nx31-bl31-uboot.fip
+bootfile_upg=openwrt-mediatek-filogic-netis_nx31-squashfs-sysupgrade.itb
+bootled_status=blue:status
+bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
+bootmenu_default=0
+bootmenu_delay=0
+bootmenu_title= ( ( ( OpenWrt ) ) )
+bootmenu_0=Initialize environment.=run _firstboot
+bootmenu_0d=Run default boot command.=run boot_default
+bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
+bootmenu_2=Boot production system from NAND.=run boot_production ; run bootmenu_confirm_return
+bootmenu_3=Boot recovery system from NAND.=run boot_recovery ; run bootmenu_confirm_return
+bootmenu_4=Load production system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
+bootmenu_5=Load recovery system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
+bootmenu_6=Load BL31+U-Boot FIP via TFTP then write to NAND.=run boot_tftp_write_fip ; run bootmenu_confirm_return
+bootmenu_7=Load BL2 preloader via TFTP then write to NAND.=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
+bootmenu_8=Reboot.=reset
+bootmenu_9=Reset all settings to factory defaults.=run reset_factory ; reset
+boot_first=if button reset ; then led $bootled_status on ; run boot_default ; fi ; bootmenu
+boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
+boot_production=led $bootled_status on ; run ubi_read_production && bootm $loadaddr#$bootconf ; led bootled_status off
+boot_recovery=led $bootled_status on ; run ubi_read_recovery && bootm $loadaddr#$bootconf ; led bootled_status off
+boot_ubi=run boot_production ; run boot_recovery ; run boot_tftp_forever
+boot_tftp_forever=led $bootled_status on ; while true ; do run boot_tftp ; sleep 1 ; done
+boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run ubi_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
+boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run ubi_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
+boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
+boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run mtd_write_fip && run reset_factory
+boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run mtd_write_bl2
+check_buttons=if button reset ; then run boot_tftp ; fi
+ethaddr_factory=mtd read Factory 0x40080000 0x1e0000 0x20000 && env readmem -b ethaddr 0x4009ef20 0x6 ; setenv ethaddr_factory
+part_default=production
+part_recovery=recovery
+reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800
+mtd_write_fip=mtd erase FIP && mtd write FIP $loadaddr
+mtd_write_bl2=mtd erase BL2 && mtd write BL2 $loadaddr
+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format
+ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset
+ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi
+ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs
+ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery
+ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data
+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize
+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize
+_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv
+_firstboot=setenv _firstboot ; run ethaddr_factory ; run _switch_to_menu ; run _init_env ; run boot_first
+_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
+_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title $ver"

View File

@@ -0,0 +1,327 @@
--- /dev/null
+++ b/configs/mt7981_cmcc_a10_defconfig
@@ -0,0 +1,107 @@
+CONFIG_ARM=y
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
+CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y
+CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_DEFAULT_DEVICE_TREE="mt7981-cmcc-a10"
+CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_TARGET_MT7981=y
+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00
+CONFIG_DEBUG_UART_BASE=0x11002000
+CONFIG_DEBUG_UART_CLOCK=40000000
+CONFIG_SYS_LOAD_ADDR=0x46000000
+CONFIG_DEBUG_UART=y
+CONFIG_FIT=y
+CONFIG_BOOTDELAY=30
+CONFIG_AUTOBOOT_KEYED=y
+CONFIG_AUTOBOOT_MENU_SHOW=y
+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981-cmcc-a10.dtb"
+CONFIG_LOGLEVEL=7
+CONFIG_PRE_CONSOLE_BUFFER=y
+CONFIG_LOG=y
+CONFIG_BOARD_LATE_INIT=y
+CONFIG_HUSH_PARSER=y
+CONFIG_SYS_PROMPT="MT7981> "
+CONFIG_CMD_CPU=y
+CONFIG_CMD_LICENSE=y
+CONFIG_CMD_BOOTMENU=y
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_ERASEENV=y
+CONFIG_CMD_ENV_FLAGS=y
+CONFIG_CMD_STRINGS=y
+CONFIG_CMD_DM=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_MTD=y
+CONFIG_CMD_PART=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_TFTPSRV=y
+CONFIG_CMD_RARP=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_CDP=y
+CONFIG_CMD_SNTP=y
+CONFIG_CMD_DNS=y
+CONFIG_CMD_LINK_LOCAL=y
+CONFIG_CMD_PXE=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_PSTORE=y
+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
+CONFIG_CMD_UUID=y
+CONFIG_CMD_HASH=y
+CONFIG_CMD_SMC=y
+CONFIG_CMD_UBI=y
+CONFIG_CMD_UBI_RENAME=y
+CONFIG_OF_EMBED=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_IN_UBI=y
+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
+CONFIG_ENV_UBI_PART="ubi"
+CONFIG_ENV_UBI_VOLUME="ubootenv"
+CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2"
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_USE_DEFAULT_ENV_FILE=y
+CONFIG_DEFAULT_ENV_FILE="cmcc_a10_env"
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_VERSION_VARIABLE=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_NETCONSOLE=y
+CONFIG_USE_IPADDR=y
+CONFIG_IPADDR="192.168.1.1"
+CONFIG_USE_SERVERIP=y
+CONFIG_SERVERIP="192.168.1.254"
+CONFIG_REGMAP=y
+CONFIG_SYSCON=y
+CONFIG_BUTTON=y
+CONFIG_BUTTON_GPIO=y
+CONFIG_CLK=y
+CONFIG_GPIO_HOG=y
+CONFIG_LED=y
+CONFIG_LED_BLINK=y
+CONFIG_LED_GPIO=y
+# CONFIG_MMC is not set
+CONFIG_MTD=y
+CONFIG_DM_MTD=y
+CONFIG_MTD_SPI_NAND=y
+CONFIG_MTD_UBI_FASTMAP=y
+CONFIG_PHY_FIXED=y
+CONFIG_MEDIATEK_ETH=y
+CONFIG_PHY=y
+CONFIG_PINCTRL=y
+CONFIG_PINCONF=y
+CONFIG_PINCTRL_MT7981=y
+CONFIG_POWER_DOMAIN=y
+CONFIG_MTK_POWER_DOMAIN=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_RAM=y
+CONFIG_DM_SERIAL=y
+CONFIG_MTK_SERIAL=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_MTK_SPIM=y
+CONFIG_ZSTD=y
+CONFIG_HEXDUMP=y
+CONFIG_LMB_MAX_REGIONS=64
--- /dev/null
+++ b/arch/arm/dts/mt7981-cmcc-a10.dts
@@ -0,0 +1,157 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+/dts-v1/;
+#include "mt7981.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ model = "CMCC A10";
+ compatible = "mediatek,mt7981", "mediatek,mt7981-rfb";
+
+ chosen {
+ stdout-path = &uart0;
+ tick-timer = &timer0;
+ };
+
+ memory@40000000 {
+ device_type = "memory";
+ reg = <0x40000000 0x10000000>;
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ button-reset {
+ label = "reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ };
+
+ button-wps {
+ label = "wps";
+ linux,code = <KEY_WPS_BUTTON>;
+ gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ led-0 {
+ label = "blue:status";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ default-state = "off";
+ };
+
+ running_led: led-1 {
+ label = "green:status";
+ gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
+ default-state = "off";
+ };
+
+ boot_led: led-2 {
+ label = "red:status";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+ };
+};
+
+&eth {
+ status = "okay";
+ mediatek,gmac-id = <0>;
+ phy-mode = "2500base-x";
+ mediatek,switch = "mt7531";
+ reset-gpios = <&gpio 39 GPIO_ACTIVE_HIGH>;
+
+ fixed-link {
+ speed = <2500>;
+ full-duplex;
+ };
+};
+
+&pinctrl {
+ spi_flash_pins: spi0-pins-func-1 {
+ mux {
+ function = "flash";
+ groups = "spi0", "spi0_wp_hold";
+ };
+
+ conf-pu {
+ pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
+ drive-strength = <MTK_DRIVE_8mA>;
+ bias-pull-up = <MTK_PUPD_SET_R1R0_00>;
+ };
+
+ conf-pd {
+ pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
+ drive-strength = <MTK_DRIVE_8mA>;
+ bias-pull-down = <MTK_PUPD_SET_R1R0_00>;
+ };
+ };
+};
+
+&spi0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_flash_pins>;
+ status = "okay";
+ must_tx;
+ enhance_timing;
+ dma_ext;
+ ipm_design;
+ support_quad;
+ tick_dly = <2>;
+ sample_sel = <0>;
+
+ spi_nand@0 {
+ compatible = "spi-nand";
+ reg = <0>;
+ spi-max-frequency = <52000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "bl2";
+ reg = <0x0 0x100000>;
+ };
+
+ partition@100000 {
+ label = "u-boot-env";
+ reg = <0x100000 0x80000>;
+ };
+
+ partition@180000 {
+ label = "factory";
+ reg = <0x180000 0x200000>;
+ };
+
+ partition@380000 {
+ label = "fip";
+ reg = <0x380000 0x200000>;
+ };
+
+ partition@580000 {
+ label = "ubi";
+ reg = <0x580000 0x7a80000>;
+ compatible = "linux,ubi";
+ };
+ };
+ };
+};
+
+&uart0 {
+ mediatek,force-highspeed;
+ status = "okay";
+};
+
+&watchdog {
+ status = "disabled";
+};
--- /dev/null
+++ b/cmcc_a10_env
@@ -0,0 +1,54 @@
+ipaddr=192.168.1.1
+serverip=192.168.1.254
+loadaddr=0x46000000
+console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0
+bootcmd=if pstore check ; then run boot_recovery ; else run boot_ubi ; fi
+bootconf=config-1
+bootdelay=0
+bootfile=openwrt-mediatek-filogic-cmcc_a10-ubootmod-initramfs-recovery.itb
+bootfile_bl2=openwrt-mediatek-filogic-cmcc_a10-ubootmod-preloader.bin
+bootfile_fip=openwrt-mediatek-filogic-cmcc_a10-ubootmod-bl31-uboot.fip
+bootfile_upg=openwrt-mediatek-filogic-cmcc_a10-ubootmod-squashfs-sysupgrade.itb
+bootled_pwr=red:status
+bootled_rec=blue:status
+bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
+bootmenu_default=0
+bootmenu_delay=0
+bootmenu_title= ( ( ( OpenWrt ) ) )
+bootmenu_0=Initialize environment.=run _firstboot
+bootmenu_0d=Run default boot command.=run boot_default
+bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
+bootmenu_2=Boot production system from NAND.=run boot_production ; run bootmenu_confirm_return
+bootmenu_3=Boot recovery system from NAND.=run boot_recovery ; run bootmenu_confirm_return
+bootmenu_4=Load production system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
+bootmenu_5=Load recovery system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
+bootmenu_6=Load BL31+U-Boot FIP via TFTP then write to NAND.=run boot_tftp_write_fip ; run bootmenu_confirm_return
+bootmenu_7=Load BL2 preloader via TFTP then write to NAND.=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
+bootmenu_8=Reboot.=reset
+bootmenu_9=Reset all settings to factory defaults.=run reset_factory ; reset
+boot_first=if button reset ; then led $bootled_rec on ; run boot_tftp_recovery ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu
+boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
+boot_production=led $bootled_pwr on ; run ubi_read_production && bootm $loadaddr#$bootconf ; led $bootled_pwr off
+boot_recovery=led $bootled_rec on ; run ubi_read_recovery && bootm $loadaddr#$bootconf ; led $bootled_rec off
+boot_ubi=run boot_production ; run boot_recovery ; run boot_tftp_forever
+boot_tftp_forever=led $bootled_rec on ; while true ; do run boot_tftp_recovery ; sleep 1 ; done
+boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run ubi_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
+boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run ubi_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
+boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
+boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run mtd_write_fip && run reset_factory
+boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run mtd_write_bl2
+reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800
+mtd_write_fip=mtd erase fip && mtd write fip $loadaddr
+mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr
+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format
+ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset
+ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi
+ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs
+ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery
+ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data
+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize
+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize
+_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv
+_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first
+_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
+_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title $ver"

View File

@@ -0,0 +1,328 @@
--- /dev/null
+++ b/configs/mt7981_konka_komi-a31_defconfig
@@ -0,0 +1,107 @@
+CONFIG_ARM=y
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
+CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y
+CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_DEFAULT_DEVICE_TREE="mt7981-konka-komi-a31"
+CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_TARGET_MT7981=y
+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00
+CONFIG_DEBUG_UART_BASE=0x11002000
+CONFIG_DEBUG_UART_CLOCK=40000000
+CONFIG_SYS_LOAD_ADDR=0x46000000
+CONFIG_DEBUG_UART=y
+CONFIG_FIT=y
+CONFIG_BOOTDELAY=30
+CONFIG_AUTOBOOT_KEYED=y
+CONFIG_AUTOBOOT_MENU_SHOW=y
+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981-konka-komi-a31.dtb"
+CONFIG_LOGLEVEL=7
+CONFIG_PRE_CONSOLE_BUFFER=y
+CONFIG_LOG=y
+CONFIG_BOARD_LATE_INIT=y
+CONFIG_HUSH_PARSER=y
+CONFIG_SYS_PROMPT="MT7981> "
+CONFIG_CMD_CPU=y
+CONFIG_CMD_LICENSE=y
+CONFIG_CMD_BOOTMENU=y
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_ERASEENV=y
+CONFIG_CMD_ENV_FLAGS=y
+CONFIG_CMD_STRINGS=y
+CONFIG_CMD_DM=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_MTD=y
+CONFIG_CMD_PART=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_TFTPSRV=y
+CONFIG_CMD_RARP=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_CDP=y
+CONFIG_CMD_SNTP=y
+CONFIG_CMD_DNS=y
+CONFIG_CMD_LINK_LOCAL=y
+CONFIG_CMD_PXE=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_PSTORE=y
+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
+CONFIG_CMD_UUID=y
+CONFIG_CMD_HASH=y
+CONFIG_CMD_SMC=y
+CONFIG_CMD_UBI=y
+CONFIG_CMD_UBI_RENAME=y
+CONFIG_OF_EMBED=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_IN_UBI=y
+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
+CONFIG_ENV_UBI_PART="ubi"
+CONFIG_ENV_UBI_VOLUME="ubootenv"
+CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2"
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_USE_DEFAULT_ENV_FILE=y
+CONFIG_DEFAULT_ENV_FILE="konka_komi-a31_env"
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_VERSION_VARIABLE=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_NETCONSOLE=y
+CONFIG_USE_IPADDR=y
+CONFIG_IPADDR="192.168.1.1"
+CONFIG_USE_SERVERIP=y
+CONFIG_SERVERIP="192.168.1.254"
+CONFIG_REGMAP=y
+CONFIG_SYSCON=y
+CONFIG_BUTTON=y
+CONFIG_BUTTON_GPIO=y
+CONFIG_CLK=y
+CONFIG_GPIO_HOG=y
+CONFIG_LED=y
+CONFIG_LED_BLINK=y
+CONFIG_LED_GPIO=y
+# CONFIG_MMC is not set
+CONFIG_MTD=y
+CONFIG_DM_MTD=y
+CONFIG_MTD_SPI_NAND=y
+CONFIG_MTD_UBI_FASTMAP=y
+CONFIG_PHY_FIXED=y
+CONFIG_MEDIATEK_ETH=y
+CONFIG_PHY=y
+CONFIG_PINCTRL=y
+CONFIG_PINCONF=y
+CONFIG_PINCTRL_MT7981=y
+CONFIG_POWER_DOMAIN=y
+CONFIG_MTK_POWER_DOMAIN=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_RAM=y
+CONFIG_DM_SERIAL=y
+CONFIG_MTK_SERIAL=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_MTK_SPIM=y
+CONFIG_ZSTD=y
+CONFIG_HEXDUMP=y
+CONFIG_LMB_MAX_REGIONS=64
--- /dev/null
+++ b/arch/arm/dts/mt7981-konka-komi-a31.dts
@@ -0,0 +1,158 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+/dts-v1/;
+#include "mt7981.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ model = "Konka KOMI A31";
+ compatible = "mediatek,mt7981", "mediatek,mt7981-rfb";
+
+ chosen {
+ stdout-path = &uart0;
+ tick-timer = &timer0;
+ };
+
+ memory@40000000 {
+ device_type = "memory";
+ reg = <0x40000000 0x10000000>;
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ button-mesh {
+ label = "mesh";
+ linux,code = <BTN_9>;
+ linux,input-type = <EV_SW>;
+ gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+ };
+
+ button-reset {
+ label = "reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ green_led: led-0 {
+ label = "green:status";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ default-state = "off";
+ };
+
+ led-1 {
+ label = "blue:status";
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ default-state = "off";
+ };
+
+ red_led: led-2 {
+ label = "red:status";
+ gpios = <&gpio 34 GPIO_ACTIVE_HIGH>;
+ default-state = "on";
+ };
+ };
+};
+
+&eth {
+ status = "okay";
+ mediatek,gmac-id = <0>;
+ phy-mode = "2500base-x";
+ mediatek,switch = "mt7531";
+ reset-gpios = <&gpio 39 GPIO_ACTIVE_HIGH>;
+
+ fixed-link {
+ speed = <2500>;
+ full-duplex;
+ };
+};
+
+&pinctrl {
+ spi_flash_pins: spi0-pins-func-1 {
+ mux {
+ function = "flash";
+ groups = "spi0", "spi0_wp_hold";
+ };
+
+ conf-pu {
+ pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
+ drive-strength = <MTK_DRIVE_8mA>;
+ bias-pull-up = <MTK_PUPD_SET_R1R0_00>;
+ };
+
+ conf-pd {
+ pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
+ drive-strength = <MTK_DRIVE_8mA>;
+ bias-pull-down = <MTK_PUPD_SET_R1R0_00>;
+ };
+ };
+};
+
+&spi0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_flash_pins>;
+ status = "okay";
+ must_tx;
+ enhance_timing;
+ dma_ext;
+ ipm_design;
+ support_quad;
+ tick_dly = <2>;
+ sample_sel = <0>;
+
+ spi_nand@0 {
+ compatible = "spi-nand";
+ reg = <0>;
+ spi-max-frequency = <52000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "bl2";
+ reg = <0x0 0x100000>;
+ };
+
+ partition@100000 {
+ label = "u-boot-env";
+ reg = <0x100000 0x80000>;
+ };
+
+ partition@180000 {
+ label = "factory";
+ reg = <0x180000 0x200000>;
+ };
+
+ partition@380000 {
+ label = "fip";
+ reg = <0x380000 0x200000>;
+ };
+
+ partition@580000 {
+ label = "ubi";
+ reg = <0x580000 0x7a80000>;
+ compatible = "linux,ubi";
+ };
+ };
+ };
+};
+
+&uart0 {
+ mediatek,force-highspeed;
+ status = "okay";
+};
+
+&watchdog {
+ status = "disabled";
+};
--- /dev/null
+++ b/konka_komi-a31_env
@@ -0,0 +1,54 @@
+ipaddr=192.168.1.1
+serverip=192.168.1.254
+loadaddr=0x46000000
+console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0
+bootcmd=if pstore check ; then run boot_recovery ; else run boot_ubi ; fi
+bootconf=config-1
+bootdelay=0
+bootfile=openwrt-mediatek-filogic-konka_komi-a31-initramfs-recovery.itb
+bootfile_bl2=openwrt-mediatek-filogic-konka_komi-a31-preloader.bin
+bootfile_fip=openwrt-mediatek-filogic-konka_komi-a31-bl31-uboot.fip
+bootfile_upg=openwrt-mediatek-filogic-konka_komi-a31-squashfs-sysupgrade.itb
+bootled_pwr=red:status
+bootled_rec=blue:status
+bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
+bootmenu_default=0
+bootmenu_delay=0
+bootmenu_title= ( ( ( OpenWrt ) ) )
+bootmenu_0=Initialize environment.=run _firstboot
+bootmenu_0d=Run default boot command.=run boot_default
+bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
+bootmenu_2=Boot production system from NAND.=run boot_production ; run bootmenu_confirm_return
+bootmenu_3=Boot recovery system from NAND.=run boot_recovery ; run bootmenu_confirm_return
+bootmenu_4=Load production system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
+bootmenu_5=Load recovery system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
+bootmenu_6=Load BL31+U-Boot FIP via TFTP then write to NAND.=run boot_tftp_write_fip ; run bootmenu_confirm_return
+bootmenu_7=Load BL2 preloader via TFTP then write to NAND.=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
+bootmenu_8=Reboot.=reset
+bootmenu_9=Reset all settings to factory defaults.=run reset_factory ; reset
+boot_first=if button reset ; then led $bootled_rec on ; run boot_tftp_recovery ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu
+boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
+boot_production=led $bootled_pwr on ; run ubi_read_production && bootm $loadaddr#$bootconf ; led $bootled_pwr off
+boot_recovery=led $bootled_rec on ; run ubi_read_recovery && bootm $loadaddr#$bootconf ; led $bootled_rec off
+boot_ubi=run boot_production ; run boot_recovery ; run boot_tftp_forever
+boot_tftp_forever=led $bootled_rec on ; while true ; do run boot_tftp_recovery ; sleep 1 ; done
+boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run ubi_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
+boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run ubi_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
+boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
+boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run mtd_write_fip && run reset_factory
+boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run mtd_write_bl2
+reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800
+mtd_write_fip=mtd erase fip && mtd write fip $loadaddr
+mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr
+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format
+ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset
+ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi
+ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs
+ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery
+ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data
+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize
+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize
+_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv
+_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first
+_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
+_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title $ver"

View File

@@ -13,7 +13,7 @@ Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -663,19 +663,13 @@ static init_fnc_t init_sequence_r[] = {
@@ -651,19 +651,13 @@ static init_fnc_t init_sequence_r[] = {
serial_initialize,
initr_announce,
dm_announce,
@@ -33,7 +33,7 @@ Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
#if defined(CONFIG_PCI_INIT_R) && defined(CONFIG_SYS_EARLY_PCI_INIT)
/*
* Do early PCI configuration _before_ the flash gets initialised,
@@ -690,7 +684,6 @@ static init_fnc_t init_sequence_r[] = {
@@ -678,7 +672,6 @@ static init_fnc_t init_sequence_r[] = {
#ifdef CONFIG_MTD_NOR_FLASH
initr_flash,
#endif
@@ -41,7 +41,7 @@ Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
#if defined(CONFIG_PPC) || defined(CONFIG_M68K) || defined(CONFIG_X86)
/* initialize higher level parts of CPU like time base and timers */
cpu_init_r,
@@ -719,6 +712,10 @@ static init_fnc_t init_sequence_r[] = {
@@ -707,6 +700,10 @@ static init_fnc_t init_sequence_r[] = {
#ifdef CONFIG_PVBLOCK
initr_pvblock,
#endif

View File

@@ -136,6 +136,20 @@ define U-Boot/nanopi-r4s-rk3399
friendlyarm_nanopi-r4s-enterprise
endef
define U-Boot/rock-4c-plus-rk3399
$(U-Boot/rk3399/Default)
NAME:=ROCK 4C+
BUILD_DEVICES:= \
radxa_rock-4c-plus
endef
define U-Boot/rock-4se-rk3399
$(U-Boot/rk3399/Default)
NAME:=ROCK 4SE
BUILD_DEVICES:= \
radxa_rock-4se
endef
define U-Boot/rock-pi-4-rk3399
$(U-Boot/rk3399/Default)
NAME:=Rock Pi 4
@@ -205,6 +219,20 @@ define U-Boot/bpi-r2-pro-rk3568
sinovoip_bpi-r2-pro
endef
define U-Boot/easepi-r1-rk3568
$(U-Boot/rk3568/Default)
NAME:=LinkEase EasePi R1
BUILD_DEVICES:= \
linkease_easepi-r1
endef
define U-Boot/fastrhino-r66s-rk3568
$(U-Boot/rk3568/Default)
NAME:=FastRhino R66S
BUILD_DEVICES:= \
lunzn_fastrhino-r66s
endef
define U-Boot/nanopi-r5c-rk3568
$(U-Boot/rk3568/Default)
NAME:=NanoPi R5C
@@ -300,6 +328,8 @@ endef
UBOOT_TARGETS := \
nanopc-t4-rk3399 \
nanopi-r4s-rk3399 \
rock-4c-plus-rk3399 \
rock-4se-rk3399 \
rock-pi-4-rk3399 \
rockpro64-rk3399 \
rock-pi-s-rk3308 \
@@ -317,6 +347,8 @@ UBOOT_TARGETS := \
radxa-zero-3-rk3566 \
rock-3c-rk3566 \
bpi-r2-pro-rk3568 \
easepi-r1-rk3568 \
fastrhino-r66s-rk3568 \
nanopi-r5c-rk3568 \
nanopi-r5s-rk3568 \
radxa-e25-rk3568 \

View File

@@ -0,0 +1,132 @@
From 37a5383059d0c3d8a72394cbffef775042a40acd Mon Sep 17 00:00:00 2001
From: Tianling Shen <cnsztl@gmail.com>
Date: Mon, 8 Sep 2025 19:32:18 +0800
Subject: [PATCH] board: rockchip: add Lunzn FastRhino R66S
Lunzn Fastrhino R66S is a high-performance mini router.
Specification:
- Rockchip RK3568
- 1/2GB LPDDR4 RAM
- SD card slot
- 2x USB 3.0 Port
- 2x 2500 Base-T (PCIe, r8125b)
- 12v DC Jack
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
---
.../arm/dts/rk3568-fastrhino-r66s-u-boot.dtsi | 3 +
board/rockchip/evb_rk3568/MAINTAINERS | 7 ++
configs/fastrhino-r66s-rk3568_defconfig | 64 +++++++++++++++++++
doc/board/rockchip/rockchip.rst | 1 +
4 files changed, 75 insertions(+)
create mode 100644 arch/arm/dts/rk3568-fastrhino-r66s-u-boot.dtsi
create mode 100644 configs/fastrhino-r66s-rk3568_defconfig
--- /dev/null
+++ b/arch/arm/dts/rk3568-fastrhino-r66s-u-boot.dtsi
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "rk356x-u-boot.dtsi"
+
+/ {
+ chosen {
+ stdout-path = &uart2;
+ };
+};
--- a/board/rockchip/evb_rk3568/MAINTAINERS
+++ b/board/rockchip/evb_rk3568/MAINTAINERS
@@ -14,6 +14,13 @@ F: configs/evb-rk3568_defconfig
F: arch/arm/dts/rk3568-evb-u-boot.dtsi
F: arch/arm/dts/rk3568-evb.dts
+FASTRHINO-R66S-RK3568
+M: Tianling Shen <cnsztl@gmail.com>
+R: Jonas Karlman <jonas@kwiboo.se>
+S: Maintained
+F: configs/fastrhino-r66s-rk3568_defconfig
+F: arch/arm/dts/rk3568-fastrhino-r66s-u-boot.dtsi
+
GENERIC-RK3568
M: Jonas Karlman <jonas@kwiboo.se>
S: Maintained
--- /dev/null
+++ b/configs/fastrhino-r66s-rk3568_defconfig
@@ -0,0 +1,65 @@
+CONFIG_ARM=y
+CONFIG_SKIP_LOWLEVEL_INIT=y
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
+CONFIG_COUNTER_FREQUENCY=24000000
+CONFIG_ARCH_ROCKCHIP=y
+CONFIG_DEFAULT_DEVICE_TREE="rockchip/rk3568-fastrhino-r66s"
+CONFIG_ROCKCHIP_RK3568=y
+CONFIG_SPL_SERIAL=y
+CONFIG_DEBUG_UART_BASE=0xFE660000
+CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_SYS_LOAD_ADDR=0xc00800
+CONFIG_PCI=y
+CONFIG_DEBUG_UART=y
+CONFIG_FIT=y
+CONFIG_FIT_VERBOSE=y
+CONFIG_SPL_FIT_SIGNATURE=y
+CONFIG_SPL_LOAD_FIT=y
+CONFIG_LEGACY_IMAGE_FORMAT=y
+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-fastrhino-r66s.dtb"
+# CONFIG_DISPLAY_CPUINFO is not set
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_SPL_MAX_SIZE=0x40000
+CONFIG_SPL_PAD_TO=0x7f8000
+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
+CONFIG_SPL_ATF=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_PCI=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_PMIC=y
+CONFIG_CMD_REGULATOR=y
+# CONFIG_SPL_DOS_PARTITION is not set
+CONFIG_SPL_OF_CONTROL=y
+CONFIG_OF_LIVE=y
+CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
+CONFIG_SPL_DM_SEQ_ALIAS=y
+CONFIG_SPL_REGMAP=y
+CONFIG_SPL_SYSCON=y
+CONFIG_SPL_CLK=y
+CONFIG_ROCKCHIP_GPIO=y
+CONFIG_SYS_I2C_ROCKCHIP=y
+CONFIG_MISC=y
+CONFIG_MMC_DW=y
+CONFIG_MMC_DW_ROCKCHIP=y
+CONFIG_RTL8169=y
+CONFIG_PCIE_DW_ROCKCHIP=y
+CONFIG_PHY_ROCKCHIP_INNO_USB2=y
+CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
+CONFIG_SPL_PINCTRL=y
+CONFIG_DM_PMIC=y
+CONFIG_PMIC_RK8XX=y
+CONFIG_REGULATOR_RK8XX=y
+CONFIG_PWM_ROCKCHIP=y
+CONFIG_SPL_RAM=y
+CONFIG_BAUDRATE=1500000
+CONFIG_DEBUG_UART_SHIFT=2
+CONFIG_SYS_NS16550_MEM32=y
+CONFIG_SYSRESET=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC3_GENERIC=y
+CONFIG_ERRNO_STR=y
--- a/doc/board/rockchip/rockchip.rst
+++ b/doc/board/rockchip/rockchip.rst
@@ -118,6 +118,7 @@ List of mainline supported Rockchip boar
- FriendlyElec NanoPi R5S (nanopi-r5s-rk3568)
- Generic RK3566/RK3568 (generic-rk3568)
- Hardkernel ODROID-M1 (odroid-m1-rk3568)
+ - Lunzn FastRhino R66S (fastrhino-r66s-rk3568)
- Radxa E25 Carrier Board (radxa-e25-rk3568)
- Radxa ROCK 3A (rock-3a-rk3568)
- Radxa ROCK 3B (rock-3b-rk3568)

View File

@@ -0,0 +1,662 @@
From 63d60b21fd4933080ff22bdc21652f7c2a14bc52 Mon Sep 17 00:00:00 2001
From: Liangbin Lian <jjm2473@gmail.com>
Date: Tue, 14 Oct 2025 13:12:26 +0800
Subject: [PATCH 1/2] arm64: dts: rockchip: add LinkEase EasePi R1
LinkEase EasePi R1 [1] is a high-performance mini router.
Specification:
- Rockchip RK3568
- 2GB/4GB LPDDR4 RAM
- 16GB on-board eMMC
- 1x M.2 key for 2280 NVMe (PCIe 3.0)
- 1x USB 3.0 Type-A
- 1x USB 2.0 Type-C (for USB flashing)
- 2x 1000 Base-T (native, RTL8211F)
- 2x 2500 Base-T (PCIe, RTL8125B)
- 1x HDMI 2.0 Output
- 12v DC Jack
- 1x Power key connected to PMIC
- 2x LEDs (one static power supplied, one GPIO controlled)
[1] https://doc.linkease.com/zh/guide/easepi-r1/hardware.html
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
Link: https://patch.msgid.link/20251014051226.64255-4-jjm2473@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
[ upstream commit: deaefeaf3df433d50935b9a85076041040f06d74 ]
Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
---
.../src/arm64/rockchip/rk3568-easepi-r1.dts | 623 ++++++++++++++++++
1 file changed, 623 insertions(+)
create mode 100644 dts/upstream/src/arm64/rockchip/rk3568-easepi-r1.dts
--- /dev/null
+++ b/dts/upstream/src/arm64/rockchip/rk3568-easepi-r1.dts
@@ -0,0 +1,623 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3568.dtsi"
+
+/ {
+ model = "LinkEase EasePi R1";
+ compatible = "linkease,easepi-r1", "rockchip,rk3568";
+
+ aliases {
+ ethernet0 = &gmac0;
+ ethernet1 = &gmac1;
+ mmc0 = &sdhci;
+ };
+
+ chosen: chosen {
+ stdout-path = "serial2:1500000n8";
+ };
+
+ adc-keys {
+ compatible = "adc-keys";
+ io-channels = <&saradc 0>;
+ io-channel-names = "buttons";
+ keyup-threshold-microvolt = <1800000>;
+
+ button-recovery {
+ label = "Recovery";
+ linux,code = <KEY_VENDOR>;
+ press-threshold-microvolt = <1750>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&status_led_pin>;
+
+ status_led: led-status {
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_STATUS;
+ gpios = <&gpio2 RK_PD7 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "heartbeat";
+ };
+ };
+
+ hdmi-con {
+ compatible = "hdmi-connector";
+ type = "a";
+
+ port {
+ hdmi_con_in: endpoint {
+ remote-endpoint = <&hdmi_out_con>;
+ };
+ };
+ };
+
+ dc_12v: regulator-dc-12v {
+ compatible = "regulator-fixed";
+ regulator-name = "dc_12v";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ };
+
+ vcc5v0_sys: regulator-vcc5v0-sys {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc5v0_sys";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <&dc_12v>;
+ };
+
+ vcc3v3_sys: regulator-vcc3v3-sys {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc3v3_sys";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ vin-supply = <&dc_12v>;
+ };
+
+ pcie30_avdd0v9: regulator-pcie30-avdd0v9 {
+ compatible = "regulator-fixed";
+ regulator-name = "pcie30_avdd0v9";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <900000>;
+ vin-supply = <&vcc3v3_sys>;
+ };
+
+ pcie30_avdd1v8: regulator-pcie30-avdd1v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "pcie30_avdd1v8";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ vin-supply = <&vcc3v3_sys>;
+ };
+
+ regulator-vdd0v95-25glan {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpio = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vdd0v95_25glan_en>;
+ regulator-name = "vdd0v95_25glan";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <950000>;
+ regulator-max-microvolt = <950000>;
+ vin-supply = <&vcc3v3_sys>;
+ };
+
+ vcc3v3_nvme: regulator-vcc3v3-nvme {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vcc3v3_nvme_en>;
+ regulator-name = "vcc3v3_nvme";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ vin-supply = <&dc_12v>;
+ };
+
+};
+
+&combphy1 {
+ status = "okay";
+};
+
+&combphy2 {
+ status = "okay";
+};
+
+&cpu0 {
+ cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+ cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+ cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+ cpu-supply = <&vdd_cpu>;
+};
+
+&gmac0 {
+ assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
+ assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>;
+ assigned-clock-rates = <0>, <125000000>;
+ phy-handle = <&rgmii_phy0>;
+ phy-mode = "rgmii-id";
+ pinctrl-names = "default";
+ pinctrl-0 = <&gmac0_miim
+ &gmac0_tx_bus2
+ &gmac0_rx_bus2
+ &gmac0_rgmii_clk
+ &gmac0_rgmii_bus>;
+ status = "okay";
+};
+
+&gmac1 {
+ assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
+ assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>;
+ assigned-clock-rates = <0>, <125000000>;
+ phy-handle = <&rgmii_phy1>;
+ phy-mode = "rgmii-id";
+ pinctrl-names = "default";
+ pinctrl-0 = <&gmac1m1_miim
+ &gmac1m1_tx_bus2
+ &gmac1m1_rx_bus2
+ &gmac1m1_rgmii_clk
+ &gmac1m1_rgmii_bus>;
+ status = "okay";
+};
+
+&gpu {
+ mali-supply = <&vdd_gpu>;
+ status = "okay";
+};
+
+&hdmi {
+ avdd-0v9-supply = <&vdda0v9_image>;
+ avdd-1v8-supply = <&vcca1v8_image>;
+ status = "okay";
+};
+
+&hdmi_in {
+ hdmi_in_vp0: endpoint {
+ remote-endpoint = <&vp0_out_hdmi>;
+ };
+};
+
+&hdmi_out {
+ hdmi_out_con: endpoint {
+ remote-endpoint = <&hdmi_con_in>;
+ };
+};
+
+&hdmi_sound {
+ status = "okay";
+};
+
+&i2c0 {
+ status = "okay";
+
+ vdd_cpu: regulator@1c {
+ compatible = "tcs,tcs4525";
+ reg = <0x1c>;
+ fcs,suspend-voltage-selector = <1>;
+ regulator-name = "vdd_cpu";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <1150000>;
+ regulator-ramp-delay = <2300>;
+ vin-supply = <&vcc5v0_sys>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ rk809: pmic@20 {
+ compatible = "rockchip,rk809";
+ reg = <0x20>;
+ interrupt-parent = <&gpio0>;
+ interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
+ #clock-cells = <1>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pmic_int>;
+ system-power-controller;
+ vcc1-supply = <&vcc3v3_sys>;
+ vcc2-supply = <&vcc3v3_sys>;
+ vcc3-supply = <&vcc3v3_sys>;
+ vcc4-supply = <&vcc3v3_sys>;
+ vcc5-supply = <&vcc3v3_sys>;
+ vcc6-supply = <&vcc3v3_sys>;
+ vcc7-supply = <&vcc3v3_sys>;
+ vcc8-supply = <&vcc3v3_sys>;
+ vcc9-supply = <&vcc3v3_sys>;
+ wakeup-source;
+
+ regulators {
+ vdd_logic: DCDC_REG1 {
+ regulator-name = "vdd_logic";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-initial-mode = <0x2>;
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-ramp-delay = <6001>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdd_gpu: DCDC_REG2 {
+ regulator-name = "vdd_gpu";
+ regulator-always-on;
+ regulator-initial-mode = <0x2>;
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-ramp-delay = <6001>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_ddr: DCDC_REG3 {
+ regulator-name = "vcc_ddr";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-initial-mode = <0x2>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
+ };
+
+ vdd_npu: DCDC_REG4 {
+ regulator-name = "vdd_npu";
+ regulator-initial-mode = <0x2>;
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-ramp-delay = <6001>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_1v8: DCDC_REG5 {
+ regulator-name = "vcc_1v8";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdda0v9_image: LDO_REG1 {
+ regulator-name = "vdda0v9_image";
+ regulator-min-microvolt = <950000>;
+ regulator-max-microvolt = <950000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdda_0v9: LDO_REG2 {
+ regulator-name = "vdda_0v9";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <900000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdda0v9_pmu: LDO_REG3 {
+ regulator-name = "vdda0v9_pmu";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <900000>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <900000>;
+ };
+ };
+
+ vccio_acodec: LDO_REG4 {
+ regulator-name = "vccio_acodec";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vccio_sd: LDO_REG5 {
+ regulator-name = "vccio_sd";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc3v3_pmu: LDO_REG6 {
+ regulator-name = "vcc3v3_pmu";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <3300000>;
+ };
+ };
+
+ vcca_1v8: LDO_REG7 {
+ regulator-name = "vcca_1v8";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcca1v8_pmu: LDO_REG8 {
+ regulator-name = "vcca1v8_pmu";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <1800000>;
+ };
+ };
+
+ vcca1v8_image: LDO_REG9 {
+ regulator-name = "vcca1v8_image";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_3v3: SWITCH_REG1 {
+ regulator-name = "vcc_3v3";
+ regulator-always-on;
+ regulator-boot-on;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc3v3_sd: SWITCH_REG2 {
+ regulator-name = "vcc3v3_sd";
+ regulator-always-on;
+ regulator-boot-on;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+ };
+ };
+};
+
+&i2s0_8ch {
+ status = "okay";
+};
+
+&mdio0 {
+ rgmii_phy0: ethernet-phy@1 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <0x1>;
+ pinctrl-0 = <&eth_phy0_reset_pin>;
+ pinctrl-names = "default";
+ reset-assert-us = <20000>;
+ reset-deassert-us = <100000>;
+ reset-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&mdio1 {
+ rgmii_phy1: ethernet-phy@1 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <0x1>;
+ pinctrl-0 = <&eth_phy1_reset_pin>;
+ pinctrl-names = "default";
+ reset-assert-us = <20000>;
+ reset-deassert-us = <100000>;
+ reset-gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_LOW>;
+ };
+};
+
+/* ETH3 */
+&pcie2x1 {
+ reset-gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>;
+ vpcie3v3-supply = <&vcc3v3_sys>;
+ status = "okay";
+};
+
+&pcie30phy {
+ data-lanes = <1 2>;
+ status = "okay";
+};
+
+/* ETH2 */
+&pcie3x1 {
+ num-lanes = <1>;
+ reset-gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_HIGH>;
+ vpcie3v3-supply = <&vcc3v3_sys>;
+ status = "okay";
+};
+
+/* M.2 Key for 2280 NVMe */
+&pcie3x2 {
+ num-lanes = <1>;
+ reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
+ vpcie3v3-supply = <&vcc3v3_nvme>;
+ status = "okay";
+};
+
+&pinctrl {
+ gmac0 {
+ eth_phy0_reset_pin: eth-phy0-reset-pin {
+ rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+ };
+
+ gmac1 {
+ eth_phy1_reset_pin: eth-phy1-reset-pin {
+ rockchip,pins = <2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+ };
+
+ gpio-leds {
+ status_led_pin: status-led-pin {
+ rockchip,pins = <2 RK_PD7 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ nvme {
+ vcc3v3_nvme_en: vcc3v3-nvme-en {
+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ pcie-nic {
+ vdd0v95_25glan_en: vdd0v95-25glan-en {
+ rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ pmic {
+ pmic_int: pmic-int {
+ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+ };
+
+};
+
+&pmu_io_domains {
+ pmuio1-supply = <&vcc3v3_pmu>;
+ pmuio2-supply = <&vcc3v3_pmu>;
+ vccio1-supply = <&vccio_acodec>;
+ vccio3-supply = <&vccio_sd>;
+ vccio4-supply = <&vcc_1v8>;
+ vccio5-supply = <&vcc_3v3>;
+ vccio6-supply = <&vcc_1v8>;
+ vccio7-supply = <&vcc_3v3>;
+ status = "okay";
+};
+
+&saradc {
+ vref-supply = <&vcca_1v8>;
+ status = "okay";
+};
+
+&sdhci {
+ bus-width = <8>;
+ max-frequency = <200000000>;
+ non-removable;
+ pinctrl-names = "default";
+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
+ status = "okay";
+};
+
+&tsadc {
+ rockchip,hw-tshut-mode = <1>;
+ rockchip,hw-tshut-polarity = <0>;
+ status = "okay";
+};
+
+&uart2 {
+ status = "okay";
+};
+
+/* OTG Only USB2.0, Only device mode */
+&usb_host0_xhci {
+ dr_mode = "peripheral";
+ extcon = <&usb2phy0>;
+ maximum-speed = "high-speed";
+ phys = <&usb2phy0_otg>;
+ phy-names = "usb2-phy";
+ status = "okay";
+};
+
+&usb_host1_xhci {
+ status = "okay";
+};
+
+&usb2phy0 {
+ status = "okay";
+};
+
+&usb2phy0_host {
+ phy-supply = <&vcc5v0_sys>;
+ status = "okay";
+};
+
+&usb2phy0_otg {
+ status = "okay";
+};
+
+&vop {
+ assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
+ assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
+ status = "okay";
+};
+
+&vop_mmu {
+ status = "okay";
+};
+
+&vp0 {
+ vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
+ reg = <ROCKCHIP_VOP2_EP_HDMI0>;
+ remote-endpoint = <&hdmi_in_vp0>;
+ };
+};

View File

@@ -0,0 +1,124 @@
From bb1996b423b81b94b1468fffe5eb9949434b941e Mon Sep 17 00:00:00 2001
From: Liangbin Lian <jjm2473@gmail.com>
Date: Thu, 13 Nov 2025 14:51:21 +0800
Subject: [PATCH 2/2] board: rockchip: add LinkEase EasePi R1
LinkEase EasePi R1 [1] is a high-performance mini router.
Specification:
- Rockchip RK3568
- 2GB/4GB LPDDR4 RAM
- 16GB on-board eMMC
- 1x M.2 key for 2280 NVMe (PCIe 3.0)
- 1x USB 3.0 Type-A
- 1x USB 2.0 Type-C (for USB flashing)
- 2x 1000 Base-T (native, RTL8211F)
- 2x 2500 Base-T (PCIe, RTL8125B)
- 1x HDMI 2.0 Output
- 12v DC Jack
- 1x Power key connected to PMIC
- 2x LEDs (one static power supplied, one GPIO controlled)
[1] https://doc.linkease.com/zh/guide/easepi-r1/hardware.html
Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
---
arch/arm/dts/rk3568-easepi-r1-u-boot.dtsi | 3 +
configs/easepi-r1-rk3568_defconfig | 84 +++++++++++++++++++++++
2 files changed, 87 insertions(+)
create mode 100644 arch/arm/dts/rk3568-easepi-r1-u-boot.dtsi
create mode 100644 configs/easepi-r1-rk3568_defconfig
--- /dev/null
+++ b/arch/arm/dts/rk3568-easepi-r1-u-boot.dtsi
@@ -0,0 +1,3 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "rk356x-u-boot.dtsi"
--- /dev/null
+++ b/configs/easepi-r1-rk3568_defconfig
@@ -0,0 +1,84 @@
+CONFIG_ARM=y
+CONFIG_SKIP_LOWLEVEL_INIT=y
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
+CONFIG_COUNTER_FREQUENCY=24000000
+CONFIG_ARCH_ROCKCHIP=y
+CONFIG_DEFAULT_DEVICE_TREE="rockchip/rk3568-easepi-r1"
+CONFIG_ROCKCHIP_RK3568=y
+CONFIG_SPL_SERIAL=y
+CONFIG_SYS_LOAD_ADDR=0xc00800
+CONFIG_DEBUG_UART_BASE=0xFE660000
+CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_PCI=y
+CONFIG_DEBUG_UART=y
+CONFIG_FIT=y
+CONFIG_FIT_VERBOSE=y
+CONFIG_SPL_FIT_SIGNATURE=y
+CONFIG_SPL_LOAD_FIT=y
+CONFIG_LEGACY_IMAGE_FORMAT=y
+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-easepi-r1.dtb"
+# CONFIG_DISPLAY_CPUINFO is not set
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_SPL_MAX_SIZE=0x40000
+CONFIG_SPL_PAD_TO=0x7f8000
+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
+CONFIG_SPL_ATF=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_PCI=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_ROCKUSB=y
+CONFIG_CMD_USB_MASS_STORAGE=y
+CONFIG_CMD_PMIC=y
+CONFIG_CMD_REGULATOR=y
+# CONFIG_SPL_DOS_PARTITION is not set
+CONFIG_SPL_OF_CONTROL=y
+CONFIG_OF_LIVE=y
+CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
+CONFIG_SPL_DM_SEQ_ALIAS=y
+CONFIG_SPL_REGMAP=y
+CONFIG_SPL_SYSCON=y
+CONFIG_SPL_CLK=y
+# CONFIG_USB_FUNCTION_FASTBOOT is not set
+CONFIG_ROCKCHIP_GPIO=y
+CONFIG_SYS_I2C_ROCKCHIP=y
+CONFIG_MISC=y
+CONFIG_SUPPORT_EMMC_RPMB=y
+CONFIG_MMC_DW=y
+CONFIG_MMC_DW_ROCKCHIP=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_ROCKCHIP=y
+CONFIG_PHY_REALTEK=y
+CONFIG_DWC_ETH_QOS=y
+CONFIG_DWC_ETH_QOS_ROCKCHIP=y
+CONFIG_RTL8169=y
+CONFIG_NVME_PCI=y
+CONFIG_PCIE_DW_ROCKCHIP=y
+CONFIG_PHY_ROCKCHIP_INNO_USB2=y
+CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
+CONFIG_SPL_PINCTRL=y
+CONFIG_DM_PMIC=y
+CONFIG_PMIC_RK8XX=y
+CONFIG_REGULATOR_RK8XX=y
+CONFIG_PWM_ROCKCHIP=y
+CONFIG_SPL_RAM=y
+CONFIG_BAUDRATE=1500000
+CONFIG_DEBUG_UART_SHIFT=2
+CONFIG_SYS_NS16550_MEM32=y
+CONFIG_SYSRESET=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_GENERIC=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_GENERIC=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC3_GENERIC=y
+CONFIG_SPL_USB_DWC3_GENERIC=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_DOWNLOAD=y
+CONFIG_USB_FUNCTION_ROCKUSB=y
+CONFIG_ERRNO_STR=y

View File

@@ -0,0 +1,55 @@
From a63456b9191fae2fe49f4b121e025792022e3950 Mon Sep 17 00:00:00 2001
From: Markus Volk <f_l_k@t-online.de>
Date: Wed, 30 Oct 2024 06:07:16 +0100
Subject: [PATCH] scripts/dtc/pylibfdt/libfdt.i_shipped: Use SWIG_AppendOutput
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Swig has changed language specific AppendOutput functions. The helper
macro SWIG_AppendOutput remains unchanged. Use that instead
of SWIG_Python_AppendOutput, which would require an extra parameter
since swig 4.3.0.
/home/flk/poky/build-test/tmp/work/qemux86_64-poky-linux/u-boot/2024.10/git/arch/x86/cpu/u-boot-64.lds
| scripts/dtc/pylibfdt/libfdt_wrap.c: In function _wrap_fdt_next_node:
| scripts/dtc/pylibfdt/libfdt_wrap.c:5581:17: error: too few arguments to function SWIG_Python_AppendOutput
| 5581 | resultobj = SWIG_Python_AppendOutput(resultobj, val);
| | ^~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Reported-by: Rudi Heitbaum <rudi@heitbaum.com>
Link: https://github.com/dgibson/dtc/pull/154
---
scripts/dtc/pylibfdt/libfdt.i_shipped | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/scripts/dtc/pylibfdt/libfdt.i_shipped
+++ b/scripts/dtc/pylibfdt/libfdt.i_shipped
@@ -1037,7 +1037,7 @@ typedef uint32_t fdt32_t;
fdt_string(fdt1, fdt32_to_cpu($1->nameoff)));
buff = PyByteArray_FromStringAndSize(
(const char *)($1 + 1), fdt32_to_cpu($1->len));
- resultobj = SWIG_Python_AppendOutput(resultobj, buff);
+ resultobj = SWIG_AppendOutput(resultobj, buff);
}
}
@@ -1076,7 +1076,7 @@ typedef uint32_t fdt32_t;
%typemap(argout) int *depth {
PyObject *val = Py_BuildValue("i", *arg$argnum);
- resultobj = SWIG_Python_AppendOutput(resultobj, val);
+ resultobj = SWIG_AppendOutput(resultobj, val);
}
%apply int *depth { int *depth };
@@ -1092,7 +1092,7 @@ typedef uint32_t fdt32_t;
if (PyTuple_GET_SIZE(resultobj) == 0)
resultobj = val;
else
- resultobj = SWIG_Python_AppendOutput(resultobj, val);
+ resultobj = SWIG_AppendOutput(resultobj, val);
}
}

View File

@@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=perf
PKG_VERSION:=$(LINUX_VERSION)
PKG_RELEASE:=5
PKG_RELEASE:=6
PKG_BUILD_FLAGS:=no-mips16 no-lto
PKG_BUILD_PARALLEL:=1
@@ -50,6 +50,7 @@ MAKE_FLAGS = \
NO_LZMA=1 \
NO_BACKTRACE=1 \
NO_LIBNUMA=1 \
NO_SLANG=1 \
NO_GTK2=1 \
NO_LIBAUDIT=1 \
NO_LIBCRYPTO=1 \

View File

@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=strace
PKG_VERSION:=6.11
PKG_VERSION:=6.12
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://strace.io/files/$(PKG_VERSION)
PKG_HASH:=83262583a3529f02c3501aa8b8ac772b4cbc03dc934e98bab6e4883626e283a5
PKG_HASH:=c47da93be45b6055f4dc741d7f20efaf50ca10160a5b100c109b294fd9c0bdfe
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=LGPL-2.1-or-later

View File

@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=intel-microcode
PKG_VERSION:=20240531
PKG_VERSION:=20250211
PKG_RELEASE:=1
PKG_SOURCE:=intel-microcode_3.$(PKG_VERSION).1.tar.xz
PKG_SOURCE_URL:=@DEBIAN/pool/non-free-firmware/i/intel-microcode/
PKG_HASH:=808cbb57a790dab7060b59b31e70e54ac47d3798d75e9784ed57a65b9f951fc4
PKG_HASH:=06b7aca49790d673623cb42f7a62a517d82555ce96371d2967b568d6e30fd787
PKG_BUILD_DIR:=$(BUILD_DIR)/intel-microcode-3.$(PKG_VERSION).1
PKG_CPE_ID:=cpe:/a:intel:microcode

View File

@@ -6,9 +6,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware/qca-wireless.git
PKG_SOURCE_DATE:=2024-10-08
PKG_SOURCE_VERSION:=dcbab62272bf5cab2ed857bc655d240970e14f2a
PKG_MIRROR_HASH:=e53a3872abf5e35db6baaceb56e6ffa289f8dd9b6226cf8a4d5b87b541179175
PKG_SOURCE_DATE:=2025-10-22
PKG_SOURCE_VERSION:=ec6831a43ff066c9873e7c41fd6f68354bb67b4a
PKG_MIRROR_HASH:=33a26f90fd450e9dc2b2d5ae9c137ffcd57ef62dac277d63c5d5f6f5a1262a2f
PKG_FLAGS:=nonshared
include $(INCLUDE_DIR)/package.mk
@@ -37,6 +37,7 @@ ALLWIFIBOARDS:= \
dynalink_dl-wrx36 \
edgecore_eap102 \
edimax_cax1800 \
linksys_homewrk \
linksys_mx4200 \
linksys_mx5300 \
linksys_mx8500 \
@@ -54,7 +55,12 @@ ALLWIFIBOARDS:= \
skspruce_wia3300-20 \
spectrum_sax1v1k \
tplink_eap660hd-v1 \
tplink_archer-c59-v1 \
tplink_archer-c6-v2 \
tplink_archer-c60-v1 \
tplink_archer-c60-v2 \
wallys_dr40x9 \
xiaomi_aiot-ac2350 \
xiaomi_ax3600 \
xiaomi_ax9000 \
yyets_le1 \
@@ -72,7 +78,7 @@ define Package/ipq-wifi-default
SUBMENU:=ath10k Board-Specific Overrides
SECTION:=firmware
CATEGORY:=Firmware
DEPENDS:=@(TARGET_ipq40xx||TARGET_ipq806x||TARGET_qualcommax)
DEPENDS:=@(TARGET_ath79||TARGET_ipq40xx||TARGET_ipq806x||TARGET_qualcommax)
TITLE:=Custom Board
endef
@@ -95,6 +101,8 @@ define ipq-wifi-install-one
$(call ipq-wifi-install-one-to,$(1),$(2),QCA9887/hw1.0),\
$(if $(filter $(suffix $(1)),.QCA9984 .qca9984),\
$(call ipq-wifi-install-one-to,$(1),$(2),QCA9984/hw1.0),\
$(if $(filter $(suffix $(1)),.QCA9988 .qca9988),\
$(call ipq-wifi-install-one-to,$(1),$(2),QCA9984/hw1.0),\
$(if $(filter $(suffix $(1)),.QCA99X0 .qca99x0),\
$(call ipq-wifi-install-one-to,$(1),$(2),QCA99X0/hw2.0),\
$(if $(filter $(suffix $(1)),.IPQ6018 .ipq6018),\
@@ -104,7 +112,7 @@ define ipq-wifi-install-one
$(if $(filter $(suffix $(1)),.QCN9074 .qcn9074),\
$(call ipq-wifi-install-ath11-one-to,$(1),$(2),QCN9074/hw1.0),\
$(error Unrecognized board-file suffix '$(suffix $(1))' for '$(1)')\
))))))))
)))))))))
endef
# Blank line required at end of above define due to foreach context
@@ -164,6 +172,7 @@ $(eval $(call generate-ipq-wifi-package,compex_wpq873,Compex WPQ-873))
$(eval $(call generate-ipq-wifi-package,dynalink_dl-wrx36,Dynalink DL-WRX36))
$(eval $(call generate-ipq-wifi-package,edgecore_eap102,Edgecore EAP102))
$(eval $(call generate-ipq-wifi-package,edimax_cax1800,Edimax CAX1800))
$(eval $(call generate-ipq-wifi-package,linksys_homewrk,Linksys HomeWRK))
$(eval $(call generate-ipq-wifi-package,linksys_mx4200,Linksys MX4200))
$(eval $(call generate-ipq-wifi-package,linksys_mx5300,Linksys MX5300))
$(eval $(call generate-ipq-wifi-package,linksys_mx8500,Linksys MX8500))
@@ -181,7 +190,12 @@ $(eval $(call generate-ipq-wifi-package,redmi_ax6,Redmi AX6))
$(eval $(call generate-ipq-wifi-package,skspruce_wia3300-20,SKSpruce WIA3300-20))
$(eval $(call generate-ipq-wifi-package,spectrum_sax1v1k,Spectrum SAX1V1K))
$(eval $(call generate-ipq-wifi-package,tplink_eap660hd-v1,TP-Link EAP660 HD v1))
$(eval $(call generate-ipq-wifi-package,tplink_archer-c59-v1,TP-Link Archer C59 V1))
$(eval $(call generate-ipq-wifi-package,tplink_archer-c6-v2,TP-Link Archer C6 V2))
$(eval $(call generate-ipq-wifi-package,tplink_archer-c60-v1,TP-Link Archer C60 V1))
$(eval $(call generate-ipq-wifi-package,tplink_archer-c60-v2,TP-Link Archer C60 V2))
$(eval $(call generate-ipq-wifi-package,wallys_dr40x9,Wallys DR40X9))
$(eval $(call generate-ipq-wifi-package,xiaomi_aiot-ac2350,Xiaomi AIoT AC2350))
$(eval $(call generate-ipq-wifi-package,xiaomi_ax3600,Xiaomi AX3600))
$(eval $(call generate-ipq-wifi-package,xiaomi_ax9000,Xiaomi AX9000))
$(eval $(call generate-ipq-wifi-package,yyets_le1,YYeTs LE1))

View File

@@ -25,6 +25,8 @@ define Package/layerscape-fman
CATEGORY:=Firmware
TITLE:=NXP FMan ucode
DEPENDS:=@TARGET_layerscape
DEFAULT:=y if TARGET_layerscape_armv8_64b
HIDDEN:=1
endef
define Build/Compile

View File

@@ -27,6 +27,8 @@ define Package/layerscape-ddr-phy
CATEGORY:=Firmware
TITLE:=NXP Layerscape DDR PHY firmware
DEPENDS:=@TARGET_layerscape
DEFAULT:=y if TARGET_layerscape_armv8_64b
HIDDEN:=1
endef
define Build/Compile

View File

@@ -26,6 +26,8 @@ define Package/layerscape-dpl
CATEGORY:=Firmware
TITLE:=NXP DPL firmware
DEPENDS:=@TARGET_layerscape
DEFAULT:=y if TARGET_layerscape_armv8_64b
HIDDEN:=1
endef
MAKE_PATH:=config

View File

@@ -25,6 +25,8 @@ define Package/layerscape-mc
CATEGORY:=Firmware
TITLE:=NXP MC firmware
DEPENDS:=@TARGET_layerscape
DEFAULT:=y if TARGET_layerscape_armv8_64b
HIDDEN:=1
endef
define Build/Compile

View File

@@ -25,6 +25,8 @@ define Package/layerscape-rcw
CATEGORY:=Firmware
TITLE:=NXP Layerscape RCW binaries
DEPENDS:=@TARGET_layerscape
DEFAULT:=y if TARGET_layerscape_armv7
HIDDEN:=1
endef
BOARDS := \

View File

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=linux-firmware
PKG_VERSION:=20241110
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_SOURCE_URL:=@KERNEL/linux/kernel/firmware
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz

View File

@@ -128,12 +128,18 @@ define Package/brcmfmac-nvram-43455-sdio/install
$(LN) \
brcmfmac43455-sdio.raspberrypi,4-model-b.txt \
$(1)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.txt
$(LN) \
brcmfmac43455-sdio.raspberrypi,4-model-b.txt \
$(1)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,5-compute-module.txt
$(LN) \
brcmfmac43455-sdio.raspberrypi,4-model-b.txt \
$(1)/lib/firmware/brcm/brcmfmac43455-sdio.Raspberry\ Pi\ Foundation-Raspberry\ Pi\ Compute\ Module\ 4.txt
$(LN) \
brcmfmac43455-sdio.raspberrypi,4-model-b.txt \
$(1)/lib/firmware/brcm/brcmfmac43455-sdio.Raspberry\ Pi\ Foundation-Raspberry\ Pi\ 5\ Model\ B.txt
$(LN) \
brcmfmac43455-sdio.raspberrypi,4-model-b.txt \
$(1)/lib/firmware/brcm/brcmfmac43455-sdio.Raspberry\ Pi\ Foundation-Raspberry\ Pi\ Compute\ Module\ 5.txt
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/brcm/brcmfmac43455-sdio.MINIX-NEO\ Z83-4.txt \
$(1)/lib/firmware/brcm/

View File

@@ -1,14 +1,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=wireless-regdb
PKG_VERSION:=2024.10.07
PKG_VERSION:=2025.10.07
PKG_RELEASE:=1
PKG_LICENSE:=ISC
PKG_LICENSE_FILES:=LICENSE
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/software/network/wireless-regdb/
PKG_HASH:=f76f2bd79a653e9f9dd50548d99d03a4a4eb157da056dfd5892f403ec28fb3d5
PKG_HASH:=d4c872a44154604c869f5851f7d21d818d492835d370af7f58de8847973801c3
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>

View File

@@ -1,60 +0,0 @@
From 630df9786fdaeb78c21f1e28c9b70ac83a1b482c Mon Sep 17 00:00:00 2001
From: Vincent Tremblay <vincent@vtremblay.dev>
Date: Sat, 31 Dec 2022 09:24:00 -0500
Subject: [PATCH] ath10k: read qcom,coexist-support as a u32
Read qcom,coexist-support as a u32 instead of a u8
When we set the property to <1> in the DT (as specified in the doc),
"of_property_read_u8" read 0 instead of 1. This is because of the data format.
By default <1> is written with 32 bits.
The problem is that the driver is trying to read a u8.
The difference can be visualized using hexdump in a running device:
Default 32 bits output:
=======================
0000000 0000 0100
0000004
8 bits output:
==============
0000000 0001
0000001
By changing "of_property_read_u8" by "of_property_read_u32", the driver
is aligned with the documentation and is able to read the value without
modifying the DT.
The other solution would be to force the value in the DT to be saved as
an 8 bits value (qcom,coexist-support = /bits/ 8 <1>),
which is against the doc and less intuitive.
Validation:
===========
The patch was tested on a real device and we can see in the debug logs
that the feature is properly initialized:
[ 109.102097] ath10k_ahb a000000.wifi: boot coex_support 1 coex_gpio_pin 52
Signed-off-by: Vincent Tremblay <vincent@vtremblay.dev>
--- a/ath10k-6.10/core.c
+++ b/ath10k-6.10/core.c
@@ -2871,14 +2871,14 @@ done:
static void ath10k_core_fetch_btcoex_dt(struct ath10k *ar)
{
struct device_node *node;
- u8 coex_support = 0;
+ u32 coex_support = 0;
int ret;
node = ar->dev->of_node;
if (!node)
goto out;
- ret = of_property_read_u8(node, "qcom,coexist-support", &coex_support);
+ ret = of_property_read_u32(node, "qcom,coexist-support", &coex_support);
if (ret) {
ar->coex_support = true;
goto out;

View File

@@ -0,0 +1,34 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Fri, 28 Mar 2025 20:26:04 +0800
Subject: [PATCH] ath10k-ct: silence warning caused by unsupported retry_limit
value
Some retry_limit values are not supported by ath10k wave2 chips.
We can just skip config it for these chips. And it's safe to
return 0 in this case because the hardware is still working.
Suggested-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
ath10k-6.14/mac.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/ath10k-6.10/mac.c
+++ b/ath10k-6.10/mac.c
@@ -5395,7 +5395,7 @@ static int ath10k_config_retry_limit(str
*/
ath10k_warn(ar, "Firmware lacks feature flag indicating a retry limit of > 2 is OK, requested limit: %d\n",
limit);
- return -EINVAL;
+ goto skip_retry_limit;
}
list_for_each_entry(arvif, &ar->arvifs, list) {
@@ -5406,6 +5406,7 @@ static int ath10k_config_retry_limit(str
}
}
+skip_retry_limit:
return ret;
}

View File

@@ -0,0 +1,31 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Fri, 28 Mar 2025 21:02:27 +0800
Subject: [PATCH] ath10k-ct: silence noisy log caused by flushing queue
.flush() is a regular mac80211 operation aims to clear all pending
frames from the hardware queue. Only developers need to care about it.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
ath10k-6.14/mac.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
--- a/ath10k-6.10/mac.c
+++ b/ath10k-6.10/mac.c
@@ -9061,12 +9061,12 @@ static void ath10k_flush(struct ieee8021
if (vif) {
arvif = (void *)vif->drv_priv;
vid = arvif->vdev_id;
- ath10k_info(ar, "mac flush vdev %d drop %d queues 0x%x ar->paused: 0x%lx arvif->paused: 0x%lx\n",
- arvif->vdev_id, drop, queues, ar->tx_paused, arvif->tx_paused);
+ ath10k_dbg(ar, ATH10K_DBG_MAC, "mac flush vdev %d drop %d queues 0x%x ar->paused: 0x%lx arvif->paused: 0x%lx\n",
+ arvif->vdev_id, drop, queues, ar->tx_paused, arvif->tx_paused);
}
else {
- ath10k_info(ar, "mac flush null vif, drop %d queues 0x%x\n",
- drop, queues);
+ ath10k_dbg(ar, ATH10K_DBG_MAC, "mac flush null vif, drop %d queues 0x%x\n",
+ drop, queues);
}

View File

@@ -18,7 +18,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
--- a/ath10k-6.10/mac.c
+++ b/ath10k-6.10/mac.c
@@ -11316,7 +11316,6 @@ int ath10k_mac_register(struct ath10k *a
@@ -11317,7 +11317,6 @@ int ath10k_mac_register(struct ath10k *a
ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA);
ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG);

View File

@@ -2,13 +2,13 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=bcm27xx-gpu-fw
PKG_VERSION:=2024.11.26
PKG_VERSION:=2025.04.30
PKG_VERSION_REAL:=1.$(subst .,,$(PKG_VERSION))
PKG_RELEASE:=1
PKG_SOURCE:=raspi-firmware_$(PKG_VERSION_REAL).orig.tar.xz
PKG_SOURCE_URL:=https://github.com/raspberrypi/firmware/releases/download/$(PKG_VERSION_REAL)
PKG_HASH:=020dbcdbb30af5942a62fc3eb355449aba45276b67e864dee2522ff53fd936e6
PKG_HASH:=25bcff5992c6d7057de4a5c6834b7f90b7136fe12aa63fa32793329bf74a95bf
PKG_FLAGS:=nonshared

View File

@@ -6,9 +6,9 @@ PKG_RELEASE:=1
PKG_SOURCE_URL:=https://github.com/openwrt/bcm63xx-cfe.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2024-06-25
PKG_SOURCE_VERSION:=6519bd2dde3535cafeea43157755f4dbef2f90c5
PKG_MIRROR_HASH:=db4da580b7a611a2b4ddd4ff812e5f8ddfd9694b6f5fd8246a341e61967c00ef
PKG_SOURCE_DATE:=2025-04-02
PKG_SOURCE_VERSION:=b8128fa4bdcdaf97549138965b00d5d7ceb7bb0f
PKG_MIRROR_HASH:=d33fad4fb5f4419bb287f3c3df6cceabab01fc7852c24cf29a15befa38cc0d45
PKG_FLAGS:=nonshared
@@ -35,9 +35,9 @@ define Package/bcm63xx-cfe/install
endef
define Build/InstallDev
rm -rf $(KERNEL_BUILD_DIR)/$(PKG_NAME)
mkdir -p $(KERNEL_BUILD_DIR)/$(PKG_NAME)
$(CP) -r $(PKG_BUILD_DIR)/* $(KERNEL_BUILD_DIR)/$(PKG_NAME)
rm -rf $(STAGING_DIR_IMAGE)/$(PKG_NAME)
mkdir -p $(STAGING_DIR_IMAGE)/$(PKG_NAME)
$(CP) -r $(PKG_BUILD_DIR)/* $(STAGING_DIR_IMAGE)/$(PKG_NAME)
endef
$(eval $(call BuildPackage,bcm63xx-cfe))

View File

@@ -185,7 +185,7 @@ static void *g_xdata_addr = NULL;
static u32 *mei_arc_swap_buff = NULL; // holding swap pages
extern void ltq_mask_and_ack_irq(struct irq_data *d);
static void inline MEI_MASK_AND_ACK_IRQ(int x)
static inline void MEI_MASK_AND_ACK_IRQ(int x)
{
struct irq_data d;
d.hwirq = x;
@@ -1178,7 +1178,7 @@ DSL_BSP_AdslLedSet (DSL_DEV_Device_t * dev, DSL_DEV_LedId_t led_number, DSL_DEV_
* \param CMVMSG The pointer to message buffer.
* \ingroup Internal
*/
void
static void
makeCMV (u8 opcode, u8 group, u16 address, u16 index, int size, u16 * data, u16 *CMVMSG)
{
memset (CMVMSG, 0, MSG_LENGTH * 2);
@@ -1787,6 +1787,7 @@ extern void ifx_usb_enable_afe_oc(void);
*/
static irqreturn_t IFX_MEI_IrqHandle (int int1, void *void0)
{
u32 stat;
u32 scratch;
DSL_DEV_Device_t *pDev = (DSL_DEV_Device_t *) void0;
#if defined(CONFIG_LTQ_MEI_FW_LOOPBACK) && defined(DFE_PING_TEST)
@@ -1820,6 +1821,12 @@ static irqreturn_t IFX_MEI_IrqHandle (int int1, void *void0)
if (dsl_bsp_event_callback[event].function)
(*dsl_bsp_event_callback[event].function)(pDev, event, dsl_bsp_event_callback[event].pData);
} else { // normal message
IFX_MEI_LongWordReadOffset (pDev, (u32) ME_ARC2ME_STAT, &stat);
if (!(stat & ARC_TO_MEI_MSGAV)) {
// status register indicates there is no message
return IRQ_NONE;
}
IFX_MEI_MailboxRead (pDev, DSL_DEV_PRIVATE(pDev)->CMV_RxMsg, MSG_LENGTH);
if (DSL_DEV_PRIVATE(pDev)-> cmv_waiting == 1) {
DSL_DEV_PRIVATE(pDev)-> arcmsgav = 1;
@@ -2444,7 +2451,7 @@ IFX_MEI_IoctlCopyTo (int from_kernel, char *dest, char *from, int size)
return ret;
}
int
static int
IFX_MEI_Ioctls (DSL_DEV_Device_t * pDev, int from_kernel, unsigned int command, unsigned long lon)
{
int i = 0;

View File

@@ -618,6 +618,9 @@ extern DSL_DEV_MeiError_t DSL_BSP_Showtime(DSL_DEV_Device_t *, DSL_uint32_t, DSL
extern int DSL_BSP_ATMLedCBRegister( int (*ifx_adsl_ledcallback)(void));
extern DSL_DEV_MeiError_t DSL_BSP_MemoryDebugAccess(DSL_DEV_Device_t *, DSL_BSP_MemoryAccessType_t, DSL_uint32_t, DSL_uint32_t *, DSL_uint32_t);
extern volatile DSL_DEV_Device_t *adsl_dev;
extern int DSL_BSP_ATMLedCBUnregister (int (*ifx_adsl_ledcallback) (void));
extern int ifx_mei_atm_led_blink(void);
extern int ifx_mei_atm_showtime_check(int *is_showtime, struct port_cell_info *port_cell, void **xdata_addr);
/**
* Dummy structure by now to show mechanism of extended data that will be

View File

@@ -0,0 +1,25 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Fri, 9 May 2025 20:01:14 +0800
Subject: [PATCH] add missing header platform_device.h
Fix compilation error:
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-dsl-danube/drv_dsl_cpe_api-3.24.4.4/src/common/drv_dsl_cpe_os_linux.c:1155:15: error: variable 'ltq_adsl_driver' has initializer but incomplete type
1155 | static struct platform_driver ltq_adsl_driver = {
| ^~~~~~~~~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
src/common/drv_dsl_cpe_os_linux.c | 1 +
1 file changed, 1 insertion(+)
--- a/src/common/drv_dsl_cpe_os_linux.c
+++ b/src/common/drv_dsl_cpe_os_linux.c
@@ -13,6 +13,7 @@
#define DSL_INTERN
#include <linux/kthread.h>
#include <linux/of_platform.h>
+#include <linux/platform_device.h>
#include "drv_dsl_cpe_api.h"
#include "drv_dsl_cpe_api_ioctl.h"

View File

@@ -0,0 +1,32 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Fri, 9 May 2025 20:58:09 +0800
Subject: [PATCH] silence missing-prototypes warnings
This patch silences various missing-prototypes build warnings on
6.12 kernel.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
src/Makefile.am | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -299,6 +299,8 @@ if KERNEL_2_6
drv_dsl_cpe_api_OBJS = "$(subst .c,.o,$(filter %.c,$(drv_dsl_cpe_api_SOURCES)))"
+PKGFIX_CFLAGS = -Wno-error=missing-prototypes
+
drv_dsl_cpe_api.ko: $(drv_dsl_cpe_api_SOURCES)
@echo "drv_dsl_cpe_api: Making Linux 2.6.x kernel object"
if test ! -e common/drv_dsl_cpe_api.c ; then \
@@ -311,7 +313,7 @@ drv_dsl_cpe_api.ko: $(drv_dsl_cpe_api_SO
@echo "# drv_dsl_cpe_api: Generated to build Linux 2.6.x kernel object" > $(PWD)/Kbuild
@echo "obj-m := $(subst .ko,.o,$@)" >> $(PWD)/Kbuild
@echo "$(subst .ko,,$@)-y := $(drv_dsl_cpe_api_OBJS)" >> $(PWD)/Kbuild
- @echo "EXTRA_CFLAGS := -DHAVE_CONFIG_H $(drv_dsl_cpe_api_CFLAGS) $(DSL_DRIVER_INCL_PATH) $(IFXOS_INCLUDE_PATH) -I@abs_srcdir@/include -I$(PWD)/include" >> $(PWD)/Kbuild
+ @echo "EXTRA_CFLAGS := -DHAVE_CONFIG_H $(drv_dsl_cpe_api_CFLAGS) $(PKGFIX_CFLAGS) $(DSL_DRIVER_INCL_PATH) $(IFXOS_INCLUDE_PATH) -I@abs_srcdir@/include -I$(PWD)/include" >> $(PWD)/Kbuild
$(MAKE) ARCH=@KERNEL_ARCH@ -C @KERNEL_BUILD_PATH@ O=@KERNEL_BUILD_PATH@ M=$(PWD) modules
clean-generic:

View File

@@ -1,12 +0,0 @@
--- a/ltq_atm.c
+++ b/ltq_atm.c
@@ -338,7 +338,8 @@ static int ppe_ioctl(struct atm_dev *dev
break;
case PPE_ATM_MIB_VCC: /* VCC related MIB */
- copy_from_user(&mib_vcc, arg, sizeof(mib_vcc));
+ if (copy_from_user(&mib_vcc, arg, sizeof(mib_vcc)))
+ return -EFAULT;
conn = find_vpivci(mib_vcc.vpi, mib_vcc.vci);
if (conn >= 0) {
mib_vcc.mib_vcc.aal5VccCrcErrors = g_atm_priv_data.conn[conn].aal5_vcc_crc_err;

View File

@@ -254,7 +254,7 @@ static inline int pp32_download_code(u32 *code_src, unsigned int code_dword_len,
* ####################################
*/
extern void ase_fw_ver(unsigned int *major, unsigned int *minor)
static void ase_fw_ver(unsigned int *major, unsigned int *minor)
{
ASSERT(major != NULL, "pointer is NULL");
ASSERT(minor != NULL, "pointer is NULL");
@@ -263,7 +263,7 @@ extern void ase_fw_ver(unsigned int *major, unsigned int *minor)
*minor = FW_VER_ID->minor;
}
int ase_init(struct platform_device *pdev)
static int ase_init(struct platform_device *pdev)
{
init_pmu();
@@ -280,7 +280,7 @@ int ase_init(struct platform_device *pdev)
return 0;
}
void ase_shutdown(void)
static void ase_shutdown(void)
{
uninit_pmu();
}
@@ -294,7 +294,7 @@ void ase_shutdown(void)
* int --- 0: Success
* else: Error Code
*/
int ase_start(int pp32)
static int ase_start(int pp32)
{
int ret;
@@ -320,7 +320,7 @@ int ase_start(int pp32)
* Output:
* none
*/
void ase_stop(int pp32)
static void ase_stop(int pp32)
{
/* halt PP32 */
IFX_REG_W32(DBG_CTRL_STOP, PP32_DBG_CTRL);

View File

@@ -185,7 +185,7 @@ static inline int pp32_download_code(u32 *code_src, unsigned int code_dword_len,
return 0;
}
void ar9_fw_ver(unsigned int *major, unsigned int *minor)
static void ar9_fw_ver(unsigned int *major, unsigned int *minor)
{
ASSERT(major != NULL, "pointer is NULL");
ASSERT(minor != NULL, "pointer is NULL");
@@ -194,7 +194,7 @@ void ar9_fw_ver(unsigned int *major, unsigned int *minor)
*minor = FW_VER_ID->minor;
}
int ar9_init(struct platform_device *pdev)
static int ar9_init(struct platform_device *pdev)
{
init_pmu();
reset_ppe(pdev);
@@ -205,7 +205,7 @@ int ar9_init(struct platform_device *pdev)
return 0;
}
void ar9_shutdown(void)
static void ar9_shutdown(void)
{
ltq_pmu_disable(IFX_PMU_MODULE_PPE_SLL01 |
IFX_PMU_MODULE_PPE_TC |
@@ -215,7 +215,7 @@ void ar9_shutdown(void)
IFX_PMU_MODULE_DSL_DFE);
}
int ar9_start(int pp32)
static int ar9_start(int pp32)
{
int ret;
@@ -231,7 +231,7 @@ int ar9_start(int pp32)
return 0;
}
void ar9_stop(int pp32)
static void ar9_stop(int pp32)
{
IFX_REG_W32(DBG_CTRL_STOP, PP32_DBG_CTRL(0));
}

View File

@@ -198,7 +198,7 @@ static void danube_shutdown(void)
{
}
int danube_start(int pp32)
static int danube_start(int pp32)
{
int ret;
@@ -218,7 +218,7 @@ int danube_start(int pp32)
return 0;
}
void danube_stop(int pp32)
static void danube_stop(int pp32)
{
IFX_REG_W32(DBG_CTRL_STOP_SET(1), PP32_DBG_CTRL);
}

View File

@@ -36,6 +36,7 @@
#include <linux/init.h>
#include <linux/ioctl.h>
#include <linux/atmdev.h>
#include <linux/mod_devicetable.h>
#include <linux/platform_device.h>
#include <linux/of_device.h>
#include <linux/atm.h>
@@ -338,7 +339,8 @@ static int ppe_ioctl(struct atm_dev *dev, unsigned int cmd, void *arg)
break;
case PPE_ATM_MIB_VCC: /* VCC related MIB */
copy_from_user(&mib_vcc, arg, sizeof(mib_vcc));
if (copy_from_user(&mib_vcc, arg, sizeof(mib_vcc)))
return -EFAULT;
conn = find_vpivci(mib_vcc.vpi, mib_vcc.vci);
if (conn >= 0) {
mib_vcc.mib_vcc.aal5VccCrcErrors = g_atm_priv_data.conn[conn].aal5_vcc_crc_err;

View File

@@ -148,7 +148,7 @@ extern int disable_multiblock;
* \param key_len key lengths of 16, 24 and 32 bytes supported
* \return -EINVAL - bad key length, 0 - SUCCESS
*/
int aes_set_key (struct crypto_tfm *tfm, const u8 *in_key, unsigned int key_len)
static int aes_set_key (struct crypto_tfm *tfm, const u8 *in_key, unsigned int key_len)
{
struct aes_ctx *ctx = crypto_tfm_ctx(tfm);
@@ -177,7 +177,7 @@ int aes_set_key (struct crypto_tfm *tfm, const u8 *in_key, unsigned int key_len)
* \param key_len key lengths of 16, 24 and 32 bytes supported
* \return -EINVAL - bad key length, 0 - SUCCESS
*/
int aes_set_key_skcipher (struct crypto_skcipher *tfm, const u8 *in_key, unsigned int key_len)
static int aes_set_key_skcipher (struct crypto_skcipher *tfm, const u8 *in_key, unsigned int key_len)
{
return aes_set_key(crypto_skcipher_tfm(tfm), in_key, key_len);
}
@@ -189,7 +189,7 @@ int aes_set_key_skcipher (struct crypto_skcipher *tfm, const u8 *in_key, unsigne
* \param ctx_arg crypto algo context
* \return
*/
void aes_set_key_hw (void *ctx_arg)
static void aes_set_key_hw (void *ctx_arg)
{
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
volatile struct aes_t *aes = (volatile struct aes_t *) AES_START;
@@ -343,7 +343,7 @@ void ifx_deu_aes (void *ctx_arg, u8 *out_arg, const u8 *in_arg,
* \return 0 - SUCCESS
* -EINVAL - bad key length
*/
int ctr_rfc3686_aes_set_key (struct crypto_tfm *tfm, const uint8_t *in_key, unsigned int key_len)
static int ctr_rfc3686_aes_set_key (struct crypto_tfm *tfm, const uint8_t *in_key, unsigned int key_len)
{
struct aes_ctx *ctx = crypto_tfm_ctx(tfm);
@@ -376,7 +376,7 @@ int ctr_rfc3686_aes_set_key (struct crypto_tfm *tfm, const uint8_t *in_key, unsi
* \return 0 - SUCCESS
* -EINVAL - bad key length
*/
int ctr_rfc3686_aes_set_key_skcipher (struct crypto_skcipher *tfm, const uint8_t *in_key, unsigned int key_len)
static int ctr_rfc3686_aes_set_key_skcipher (struct crypto_skcipher *tfm, const uint8_t *in_key, unsigned int key_len)
{
return ctr_rfc3686_aes_set_key(crypto_skcipher_tfm(tfm), in_key, key_len);
}
@@ -413,7 +413,7 @@ int ctr_rfc3686_aes_set_key_skcipher (struct crypto_skcipher *tfm, const uint8_t
* \param encdec 1 for encrypt; 0 for decrypt
* \param inplace not used
*/
void ifx_deu_aes_ecb (void *ctx, uint8_t *dst, const uint8_t *src,
static void ifx_deu_aes_ecb (void *ctx, uint8_t *dst, const uint8_t *src,
uint8_t *iv, size_t nbytes, int encdec, int inplace)
{
ifx_deu_aes (ctx, dst, src, NULL, nbytes, encdec, 0);
@@ -430,7 +430,7 @@ void ifx_deu_aes_ecb (void *ctx, uint8_t *dst, const uint8_t *src,
* \param encdec 1 for encrypt; 0 for decrypt
* \param inplace not used
*/
void ifx_deu_aes_cbc (void *ctx, uint8_t *dst, const uint8_t *src,
static void ifx_deu_aes_cbc (void *ctx, uint8_t *dst, const uint8_t *src,
uint8_t *iv, size_t nbytes, int encdec, int inplace)
{
ifx_deu_aes (ctx, dst, src, iv, nbytes, encdec, 1);
@@ -447,7 +447,7 @@ void ifx_deu_aes_cbc (void *ctx, uint8_t *dst, const uint8_t *src,
* \param encdec 1 for encrypt; 0 for decrypt
* \param inplace not used
*/
void ifx_deu_aes_ofb (void *ctx, uint8_t *dst, const uint8_t *src,
static void ifx_deu_aes_ofb (void *ctx, uint8_t *dst, const uint8_t *src,
uint8_t *iv, size_t nbytes, int encdec, int inplace)
{
ifx_deu_aes (ctx, dst, src, iv, nbytes, encdec, 2);
@@ -464,7 +464,7 @@ void ifx_deu_aes_ofb (void *ctx, uint8_t *dst, const uint8_t *src,
* \param encdec 1 for encrypt; 0 for decrypt
* \param inplace not used
*/
void ifx_deu_aes_cfb (void *ctx, uint8_t *dst, const uint8_t *src,
static void ifx_deu_aes_cfb (void *ctx, uint8_t *dst, const uint8_t *src,
uint8_t *iv, size_t nbytes, int encdec, int inplace)
{
ifx_deu_aes (ctx, dst, src, iv, nbytes, encdec, 3);
@@ -481,7 +481,7 @@ void ifx_deu_aes_cfb (void *ctx, uint8_t *dst, const uint8_t *src,
* \param encdec 1 for encrypt; 0 for decrypt
* \param inplace not used
*/
void ifx_deu_aes_ctr (void *ctx, uint8_t *dst, const uint8_t *src,
static void ifx_deu_aes_ctr (void *ctx, uint8_t *dst, const uint8_t *src,
uint8_t *iv, size_t nbytes, int encdec, int inplace)
{
ifx_deu_aes (ctx, dst, src, iv, nbytes, encdec, 4);
@@ -494,7 +494,7 @@ void ifx_deu_aes_ctr (void *ctx, uint8_t *dst, const uint8_t *src,
* \param out output bytestream
* \param in input bytestream
*/
void ifx_deu_aes_encrypt (struct crypto_tfm *tfm, uint8_t *out, const uint8_t *in)
static void ifx_deu_aes_encrypt (struct crypto_tfm *tfm, uint8_t *out, const uint8_t *in)
{
struct aes_ctx *ctx = crypto_tfm_ctx(tfm);
ifx_deu_aes (ctx, out, in, NULL, AES_BLOCK_SIZE,
@@ -508,7 +508,7 @@ void ifx_deu_aes_encrypt (struct crypto_tfm *tfm, uint8_t *out, const uint8_t *i
* \param out output bytestream
* \param in input bytestream
*/
void ifx_deu_aes_decrypt (struct crypto_tfm *tfm, uint8_t *out, const uint8_t *in)
static void ifx_deu_aes_decrypt (struct crypto_tfm *tfm, uint8_t *out, const uint8_t *in)
{
struct aes_ctx *ctx = crypto_tfm_ctx(tfm);
ifx_deu_aes (ctx, out, in, NULL, AES_BLOCK_SIZE,
@@ -544,7 +544,7 @@ struct crypto_alg ifxdeu_aes_alg = {
* \param req skcipher request
* \return err
*/
int ecb_aes_encrypt(struct skcipher_request *req)
static int ecb_aes_encrypt(struct skcipher_request *req)
{
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -570,7 +570,7 @@ int ecb_aes_encrypt(struct skcipher_request *req)
* \param req skcipher request
* \return err
*/
int ecb_aes_decrypt(struct skcipher_request *req)
static int ecb_aes_decrypt(struct skcipher_request *req)
{
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -615,7 +615,7 @@ struct skcipher_alg ifxdeu_ecb_aes_alg = {
* \param req skcipher request
* \return err
*/
int cbc_aes_encrypt(struct skcipher_request *req)
static int cbc_aes_encrypt(struct skcipher_request *req)
{
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -642,7 +642,7 @@ int cbc_aes_encrypt(struct skcipher_request *req)
* \param req skcipher request
* \return err
*/
int cbc_aes_decrypt(struct skcipher_request *req)
static int cbc_aes_decrypt(struct skcipher_request *req)
{
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -694,7 +694,7 @@ struct skcipher_alg ifxdeu_cbc_aes_alg = {
* \param encdec 1 for encrypt; 0 for decrypt
*
*/
void ifx_deu_aes_xts (void *ctx_arg, u8 *out_arg, const u8 *in_arg,
static void ifx_deu_aes_xts (void *ctx_arg, u8 *out_arg, const u8 *in_arg,
u8 *iv_arg, size_t nbytes, int encdec)
{
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
@@ -797,7 +797,7 @@ void ifx_deu_aes_xts (void *ctx_arg, u8 *out_arg, const u8 *in_arg,
* \param req skcipher request
* \return err
*/
int xts_aes_encrypt(struct skcipher_request *req)
static int xts_aes_encrypt(struct skcipher_request *req)
{
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -853,7 +853,7 @@ int xts_aes_encrypt(struct skcipher_request *req)
* \param req skcipher request
* \return err
*/
int xts_aes_decrypt(struct skcipher_request *req)
static int xts_aes_decrypt(struct skcipher_request *req)
{
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -911,7 +911,7 @@ int xts_aes_decrypt(struct skcipher_request *req)
* \param key_len key lengths of 16, 24 and 32 bytes supported
* \return -EINVAL - bad key length, 0 - SUCCESS
*/
int xts_aes_set_key_skcipher (struct crypto_skcipher *tfm, const u8 *in_key, unsigned int key_len)
static int xts_aes_set_key_skcipher (struct crypto_skcipher *tfm, const u8 *in_key, unsigned int key_len)
{
struct aes_ctx *ctx = crypto_tfm_ctx(crypto_skcipher_tfm(tfm));
unsigned int keylen = (key_len / 2);
@@ -958,7 +958,7 @@ struct skcipher_alg ifxdeu_xts_aes_alg = {
* \param req skcipher request
* \return err
*/
int ofb_aes_encrypt(struct skcipher_request *req)
static int ofb_aes_encrypt(struct skcipher_request *req)
{
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -991,7 +991,7 @@ int ofb_aes_encrypt(struct skcipher_request *req)
* \param req skcipher request
* \return err
*/
int ofb_aes_decrypt(struct skcipher_request *req)
static int ofb_aes_decrypt(struct skcipher_request *req)
{
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -1046,7 +1046,7 @@ struct skcipher_alg ifxdeu_ofb_aes_alg = {
* \param req skcipher request
* \return err
*/
int cfb_aes_encrypt(struct skcipher_request *req)
static int cfb_aes_encrypt(struct skcipher_request *req)
{
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -1079,7 +1079,7 @@ int cfb_aes_encrypt(struct skcipher_request *req)
* \param req skcipher request
* \return err
*/
int cfb_aes_decrypt(struct skcipher_request *req)
static int cfb_aes_decrypt(struct skcipher_request *req)
{
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -1134,7 +1134,7 @@ struct skcipher_alg ifxdeu_cfb_aes_alg = {
* \param req skcipher request
* \return err
*/
int ctr_basic_aes_encrypt(struct skcipher_request *req)
static int ctr_basic_aes_encrypt(struct skcipher_request *req)
{
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -1167,7 +1167,7 @@ int ctr_basic_aes_encrypt(struct skcipher_request *req)
* \param req skcipher request
* \return err
*/
int ctr_basic_aes_decrypt(struct skcipher_request *req)
static int ctr_basic_aes_decrypt(struct skcipher_request *req)
{
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -1221,7 +1221,7 @@ struct skcipher_alg ifxdeu_ctr_basic_aes_alg = {
* \param req skcipher request
* \return err
*/
int ctr_rfc3686_aes_encrypt(struct skcipher_request *req)
static int ctr_rfc3686_aes_encrypt(struct skcipher_request *req)
{
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -1264,7 +1264,7 @@ int ctr_rfc3686_aes_encrypt(struct skcipher_request *req)
* \param req skcipher request
* \return err
*/
int ctr_rfc3686_aes_decrypt(struct skcipher_request *req)
static int ctr_rfc3686_aes_decrypt(struct skcipher_request *req)
{
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -1576,7 +1576,7 @@ static struct shash_alg ifxdeu_cbcmac_aes_alg = {
* \param key_len key lengths of 16, 24 and 32 bytes supported
* \return -EINVAL - bad key length, 0 - SUCCESS
*/
int aes_set_key_aead (struct crypto_aead *aead, const u8 *in_key, unsigned int key_len)
static int aes_set_key_aead (struct crypto_aead *aead, const u8 *in_key, unsigned int key_len)
{
struct aes_ctx *ctx = crypto_aead_ctx(aead);
int err;
@@ -1601,7 +1601,7 @@ int aes_set_key_aead (struct crypto_aead *aead, const u8 *in_key, unsigned int k
* \param in_key input authsize
* \return -EINVAL - bad authsize length, 0 - SUCCESS
*/
int gcm_aes_setauthsize (struct crypto_aead *aead, unsigned int authsize)
static int gcm_aes_setauthsize (struct crypto_aead *aead, unsigned int authsize)
{
return crypto_gcm_check_authsize(authsize);
}
@@ -1612,7 +1612,7 @@ int gcm_aes_setauthsize (struct crypto_aead *aead, unsigned int authsize)
* \param req aead request
* \return err
*/
int gcm_aes_encrypt(struct aead_request *req)
static int gcm_aes_encrypt(struct aead_request *req)
{
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -1726,7 +1726,7 @@ int gcm_aes_encrypt(struct aead_request *req)
* \param req aead request
* \return err
*/
int gcm_aes_decrypt(struct aead_request *req)
static int gcm_aes_decrypt(struct aead_request *req)
{
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;

View File

@@ -126,7 +126,7 @@ extern int disable_deudma;
* \param key input key
* \param keylen key length
*/
int des_setkey(struct crypto_tfm *tfm, const u8 *key,
static int des_setkey(struct crypto_tfm *tfm, const u8 *key,
unsigned int keylen)
{
struct ifx_deu_des_ctx *dctx = crypto_tfm_ctx(tfm);
@@ -161,7 +161,7 @@ int des_setkey(struct crypto_tfm *tfm, const u8 *key,
* \param key_len key lengths of 16, 24 and 32 bytes supported
* \return -EINVAL - bad key length, 0 - SUCCESS
*/
int des_setkey_skcipher (struct crypto_skcipher *tfm, const u8 *in_key, unsigned int key_len)
static int des_setkey_skcipher (struct crypto_skcipher *tfm, const u8 *in_key, unsigned int key_len)
{
return des_setkey(crypto_skcipher_tfm(tfm), in_key, key_len);
}
@@ -296,7 +296,7 @@ void ifx_deu_des (void *ctx_arg, u8 *out_arg, const u8 *in_arg,
* \param encdec 1 for encrypt; 0 for decrypt
* \param inplace not used
*/
void ifx_deu_des_ecb (void *ctx, uint8_t *dst, const uint8_t *src,
static void ifx_deu_des_ecb (void *ctx, uint8_t *dst, const uint8_t *src,
uint8_t *iv, size_t nbytes, int encdec, int inplace)
{
ifx_deu_des (ctx, dst, src, NULL, nbytes, encdec, 0);
@@ -313,7 +313,7 @@ void ifx_deu_des_ecb (void *ctx, uint8_t *dst, const uint8_t *src,
* \param encdec 1 for encrypt; 0 for decrypt
* \param inplace not used
*/
void ifx_deu_des_cbc (void *ctx, uint8_t *dst, const uint8_t *src,
static void ifx_deu_des_cbc (void *ctx, uint8_t *dst, const uint8_t *src,
uint8_t *iv, size_t nbytes, int encdec, int inplace)
{
ifx_deu_des (ctx, dst, src, iv, nbytes, encdec, 1);
@@ -330,11 +330,13 @@ void ifx_deu_des_cbc (void *ctx, uint8_t *dst, const uint8_t *src,
* \param encdec 1 for encrypt; 0 for decrypt
* \param inplace not used
*/
void ifx_deu_des_ofb (void *ctx, uint8_t *dst, const uint8_t *src,
/*
static void ifx_deu_des_ofb (void *ctx, uint8_t *dst, const uint8_t *src,
uint8_t *iv, size_t nbytes, int encdec, int inplace)
{
ifx_deu_des (ctx, dst, src, iv, nbytes, encdec, 2);
}
*/
/*! \fn void ifx_deu_des_cfb (void *ctx, uint8_t *dst, const uint8_t *src, uint8_t *iv, size_t nbytes, int encdec, int inplace)
\ingroup IFX_DES_FUNCTIONS
@@ -347,11 +349,13 @@ void ifx_deu_des_ofb (void *ctx, uint8_t *dst, const uint8_t *src,
\param encdec 1 for encrypt; 0 for decrypt
\param inplace not used
*/
void ifx_deu_des_cfb (void *ctx, uint8_t *dst, const uint8_t *src,
/*
static void ifx_deu_des_cfb (void *ctx, uint8_t *dst, const uint8_t *src,
uint8_t *iv, size_t nbytes, int encdec, int inplace)
{
ifx_deu_des (ctx, dst, src, iv, nbytes, encdec, 3);
}
*/
/*! \fn void ifx_deu_des_ctr (void *ctx, uint8_t *dst, const uint8_t *src, uint8_t *iv, size_t nbytes, int encdec, int inplace)
* \ingroup IFX_DES_FUNCTIONS
@@ -364,11 +368,13 @@ void ifx_deu_des_cfb (void *ctx, uint8_t *dst, const uint8_t *src,
* \param encdec 1 for encrypt; 0 for decrypt
* \param inplace not used
*/
/*
void ifx_deu_des_ctr (void *ctx, uint8_t *dst, const uint8_t *src,
uint8_t *iv, size_t nbytes, int encdec, int inplace)
{
ifx_deu_des (ctx, dst, src, iv, nbytes, encdec, 4);
}
*/
/*! \fn void ifx_deu_des_encrypt (struct crypto_tfm *tfm, uint8_t *out, const uint8_t *in)
* \ingroup IFX_DES_FUNCTIONS
@@ -377,7 +383,7 @@ void ifx_deu_des_ctr (void *ctx, uint8_t *dst, const uint8_t *src,
* \param out output bytestream
* \param in input bytestream
*/
void ifx_deu_des_encrypt (struct crypto_tfm *tfm, uint8_t * out, const uint8_t * in)
static void ifx_deu_des_encrypt (struct crypto_tfm *tfm, uint8_t * out, const uint8_t * in)
{
struct ifx_deu_des_ctx *ctx = crypto_tfm_ctx(tfm);
ifx_deu_des (ctx, out, in, NULL, DES_BLOCK_SIZE,
@@ -392,7 +398,7 @@ void ifx_deu_des_encrypt (struct crypto_tfm *tfm, uint8_t * out, const uint8_t *
* \param out output bytestream
* \param in input bytestream
*/
void ifx_deu_des_decrypt (struct crypto_tfm *tfm, uint8_t * out, const uint8_t * in)
static void ifx_deu_des_decrypt (struct crypto_tfm *tfm, uint8_t * out, const uint8_t * in)
{
struct ifx_deu_des_ctx *ctx = crypto_tfm_ctx(tfm);
ifx_deu_des (ctx, out, in, NULL, DES_BLOCK_SIZE,
@@ -420,7 +426,7 @@ void ifx_deu_des_decrypt (struct crypto_tfm *tfm, uint8_t * out, const uint8_t *
* \param key input key
* \param keylen key length
*/
int des3_ede_setkey(struct crypto_tfm *tfm, const u8 *key,
static int des3_ede_setkey(struct crypto_tfm *tfm, const u8 *key,
unsigned int keylen)
{
struct ifx_deu_des_ctx *dctx = crypto_tfm_ctx(tfm);
@@ -454,7 +460,7 @@ int des3_ede_setkey(struct crypto_tfm *tfm, const u8 *key,
* \param key input key
* \param keylen key length
*/
int des3_ede_setkey_skcipher(struct crypto_skcipher *tfm, const u8 *key,
static int des3_ede_setkey_skcipher(struct crypto_skcipher *tfm, const u8 *key,
unsigned int keylen)
{
return des3_ede_setkey(crypto_skcipher_tfm(tfm), key, keylen);
@@ -508,7 +514,7 @@ struct crypto_alg ifxdeu_des3_ede_alg = {
* \param req skcipher request
* \return err
*/
int ecb_des_encrypt(struct skcipher_request *req)
static int ecb_des_encrypt(struct skcipher_request *req)
{
struct ifx_deu_des_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -534,7 +540,7 @@ int ecb_des_encrypt(struct skcipher_request *req)
* \param req skcipher request
* \return err
*/
int ecb_des_decrypt(struct skcipher_request *req)
static int ecb_des_decrypt(struct skcipher_request *req)
{
struct ifx_deu_des_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -599,7 +605,7 @@ struct skcipher_alg ifxdeu_ecb_des3_ede_alg = {
* \param req skcipher request
* \return err
*/
int cbc_des_encrypt(struct skcipher_request *req)
static int cbc_des_encrypt(struct skcipher_request *req)
{
struct ifx_deu_des_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;
@@ -627,7 +633,7 @@ int cbc_des_encrypt(struct skcipher_request *req)
* \param req skcipher request
* \return err
*/
int cbc_des_decrypt(struct skcipher_request *req)
static int cbc_des_decrypt(struct skcipher_request *req)
{
struct ifx_deu_des_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
struct skcipher_walk walk;

View File

@@ -304,4 +304,7 @@ struct deu_dma_t {
} controlr;
};
u32 input_swap(u32 input);
void chip_version(void);
#endif /* IFXMIPS_DEU_AR9_H */

View File

@@ -255,4 +255,6 @@ struct deu_dma_t {
} controlr;
};
u32 input_swap(u32 input);
#endif /* IFXMIPS_DEU_DANUBE_H */

View File

@@ -321,4 +321,7 @@ struct deu_dma_t {
} controlr;
};
u32 input_swap(u32 input);
void chip_version(void);
#endif /* IFXMIPS_DEU_VR9_H */

View File

@@ -0,0 +1,26 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Wed, 7 May 2025 20:24:34 +0800
Subject: [PATCH] add missing prototype for IFX_Var_Fifo_getRoom()
Fix build warning on 6.12 kernel:
/home/db/owrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/ifxos-ugw_8.5.2.10/src/common/ifx_fifo.c:532:14: error: no previous prototype for 'IFX_Var_Fifo_getRoom' [-Werror=missing-prototypes]
532 | IFX_uint32_t IFX_Var_Fifo_getRoom (IFX_VFIFO *pFifo)
| ^~~~~~~~~~~~~~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
src/include/ifx_fifo.h | 2 ++
1 file changed, 2 insertions(+)
--- a/src/include/ifx_fifo.h
+++ b/src/include/ifx_fifo.h
@@ -104,6 +104,8 @@ extern IFX_int8_t IFX_Var_Fifo_isFull
IFX_VFIFO *pFifo);
extern IFX_uint32_t IFX_Var_Fifo_getCount(
IFX_VFIFO *pFifo);
+extern IFX_uint32_t IFX_Var_Fifo_getRoom(
+ IFX_VFIFO *pFifo);
#ifdef __cplusplus
}

View File

@@ -1,6 +1,6 @@
--- a/ifxmips_ptm_adsl.c
+++ b/ifxmips_ptm_adsl.c
@@ -175,9 +175,11 @@ static INLINE void mailbox_signal(unsign
@@ -177,9 +177,11 @@ static INLINE void mailbox_signal(unsign
*/
static INLINE void proc_file_create(void);
static INLINE void proc_file_delete(void);
@@ -12,7 +12,7 @@
#if defined(ENABLE_FW_PROC) && ENABLE_FW_PROC
static int proc_read_genconf(char *, char **, off_t, int, int *, void *);
#endif
@@ -896,6 +898,7 @@ static INLINE void proc_file_delete(void
@@ -927,6 +929,7 @@ static INLINE void proc_file_delete(void
remove_proc_entry("driver/ifx_ptm", NULL);
}
@@ -20,7 +20,7 @@
static int proc_read_version(char *buf, char **start, off_t offset, int count, int *eof, void *data)
{
int len = 0;
@@ -970,8 +973,9 @@ static int proc_write_wanmib(struct file
@@ -1001,8 +1004,9 @@ static int proc_write_wanmib(struct file
return count;
}

View File

@@ -1,6 +1,6 @@
--- a/ifxmips_ptm_adsl.c
+++ b/ifxmips_ptm_adsl.c
@@ -180,7 +180,7 @@ static int proc_read_version(char *, cha
@@ -182,7 +182,7 @@ static int proc_read_version(char *, cha
static int proc_read_wanmib(char *, char **, off_t, int, int *, void *);
static int proc_write_wanmib(struct file *, const char *, unsigned long, void *);
#endif
@@ -9,7 +9,7 @@
static int proc_read_genconf(char *, char **, off_t, int, int *, void *);
#endif
#if defined(ENABLE_DBG_PROC) && ENABLE_DBG_PROC
@@ -191,8 +191,8 @@ static int proc_write_wanmib(struct file
@@ -193,8 +193,8 @@ static int proc_write_wanmib(struct file
/*
* Proc Help Functions
*/
@@ -19,7 +19,7 @@
static INLINE int strincmp(const char *, const char *, int);
#endif
static INLINE int ifx_ptm_version(char *);
@@ -1166,8 +1166,6 @@ static int proc_write_dbg(struct file *f
@@ -1197,8 +1197,6 @@ static int proc_write_dbg(struct file *f
return count;
}
@@ -28,7 +28,7 @@
static INLINE int stricmp(const char *p1, const char *p2)
{
int c1, c2;
@@ -1185,7 +1183,6 @@ static INLINE int stricmp(const char *p1
@@ -1216,7 +1214,6 @@ static INLINE int stricmp(const char *p1
return *p1 - *p2;
}

View File

@@ -0,0 +1,26 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Fri, 9 May 2025 02:34:14 +0800
Subject: [PATCH] fix missing-prototypes warning
Fix the build warning on 6.12 kernel:
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/ltq-ptm-vr9/ltq-ptm/ifxmips_ptm_vdsl.c:64:15: error: no previous prototype for 'cgu_get_pp32_clock' [-Werror=missing-prototypes]
64 | unsigned long cgu_get_pp32_clock(void)
| ^~~~~~~~~~~~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
ifxmips_ptm_vdsl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/ifxmips_ptm_vdsl.c
+++ b/ifxmips_ptm_vdsl.c
@@ -61,7 +61,7 @@ static void *g_xdata_addr = NULL;
#define ENABLE_TMP_DBG 0
-unsigned long cgu_get_pp32_clock(void)
+static unsigned long cgu_get_pp32_clock(void)
{
struct clk *c = clk_get_ppe();
unsigned long rate = clk_get_rate(c);

View File

@@ -0,0 +1,26 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Fri, 9 May 2025 02:36:31 +0800
Subject: [PATCH] add missing header mod_devicetable.h
Fix compilation error:
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/ltq-ptm-vr9/ltq-ptm/ifxmips_ptm_vdsl.c:969:34: error: array type has incomplete element type 'struct of_device_id'
969 | static const struct of_device_id ltq_ptm_match[] = {
| ^~~~~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/ltq-ptm-vr9/ltq-ptm/ifxmips_ptm_vdsl.c:969:34: error: 'ltq_ptm_match' defined but not used [-Werror=unused-variable]
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
ifxmips_ptm_vdsl.c | 1 +
1 file changed, 1 insertion(+)
--- a/ifxmips_ptm_vdsl.c
+++ b/ifxmips_ptm_vdsl.c
@@ -34,6 +34,7 @@
#include <linux/interrupt.h>
#include <linux/netdevice.h>
#include <linux/platform_device.h>
+#include <linux/mod_devicetable.h>
#include <linux/of_device.h>
#include "ifxmips_ptm_vdsl.h"

View File

@@ -0,0 +1,25 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Fri, 9 May 2025 21:16:08 +0800
Subject: [PATCH] add missing header "mod_devicetable.h"
Fix compilation error:
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-ptm-danube/ltq-ptm/ifxmips_ptm_adsl.c:1433:34: error: array type has incomplete element type 'struct of_device_id'
1433 | static const struct of_device_id ltq_ptm_match[] = {
| ^~~~~~~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
ifxmips_ptm_adsl.c | 1 +
1 file changed, 1 insertion(+)
--- a/ifxmips_ptm_adsl.c
+++ b/ifxmips_ptm_adsl.c
@@ -43,6 +43,7 @@
#include <linux/ioctl.h>
#include <linux/etherdevice.h>
#include <linux/interrupt.h>
+#include <linux/mod_devicetable.h>
#include <linux/netdevice.h>
#include <linux/platform_device.h>
#include <linux/of_device.h>

View File

@@ -46,6 +46,8 @@
#include <linux/netdevice.h>
#include <linux/platform_device.h>
#include <linux/of_device.h>
#include <linux/uaccess.h>
#include <linux/capability.h>
#include <asm/io.h>
/*
@@ -463,56 +465,85 @@ static int ptm_ioctl(struct net_device *dev, struct ifreq *ifr, void __user *dat
{
int ndev;
if (!capable(CAP_NET_ADMIN))
return -EPERM;
for ( ndev = 0; ndev < ARRAY_SIZE(g_net_dev) && g_net_dev[ndev] != dev; ndev++ );
ASSERT(ndev >= 0 && ndev < ARRAY_SIZE(g_net_dev), "ndev = %d (wrong value)", ndev);
switch ( cmd )
{
case IFX_PTM_MIB_CW_GET:
((PTM_CW_IF_ENTRY_T *)data)->ifRxNoIdleCodewords = WAN_MIB_TABLE[ndev].wrx_nonidle_cw;
((PTM_CW_IF_ENTRY_T *)data)->ifRxIdleCodewords = WAN_MIB_TABLE[ndev].wrx_idle_cw;
((PTM_CW_IF_ENTRY_T *)data)->ifRxCodingViolation = WAN_MIB_TABLE[ndev].wrx_err_cw;
((PTM_CW_IF_ENTRY_T *)data)->ifTxNoIdleCodewords = 0;
((PTM_CW_IF_ENTRY_T *)data)->ifTxIdleCodewords = 0;
{
PTM_CW_IF_ENTRY_T tmp = {0};
tmp.ifRxNoIdleCodewords = WAN_MIB_TABLE[ndev].wrx_nonidle_cw;
tmp.ifRxIdleCodewords = WAN_MIB_TABLE[ndev].wrx_idle_cw;
tmp.ifRxCodingViolation = WAN_MIB_TABLE[ndev].wrx_err_cw;
tmp.ifTxNoIdleCodewords = 0;
tmp.ifTxIdleCodewords = 0;
if (copy_to_user(data, &tmp, sizeof(tmp)))
return -EFAULT;
}
break;
case IFX_PTM_MIB_FRAME_GET:
((PTM_FRAME_MIB_T *)data)->RxCorrect = WAN_MIB_TABLE[ndev].wrx_correct_pdu;
((PTM_FRAME_MIB_T *)data)->TC_CrcError = WAN_MIB_TABLE[ndev].wrx_tccrc_err_pdu;
((PTM_FRAME_MIB_T *)data)->RxDropped = WAN_MIB_TABLE[ndev].wrx_nodesc_drop_pdu + WAN_MIB_TABLE[ndev].wrx_len_violation_drop_pdu;
((PTM_FRAME_MIB_T *)data)->TxSend = WAN_MIB_TABLE[ndev].wtx_total_pdu;
{
PTM_FRAME_MIB_T tmp = {0};
tmp.RxCorrect = WAN_MIB_TABLE[ndev].wrx_correct_pdu;
tmp.TC_CrcError = WAN_MIB_TABLE[ndev].wrx_tccrc_err_pdu;
tmp.RxDropped = WAN_MIB_TABLE[ndev].wrx_nodesc_drop_pdu + WAN_MIB_TABLE[ndev].wrx_len_violation_drop_pdu;
tmp.TxSend = WAN_MIB_TABLE[ndev].wtx_total_pdu;
if (copy_to_user(data, &tmp, sizeof(tmp)))
return -EFAULT;
}
break;
case IFX_PTM_CFG_GET:
((IFX_PTM_CFG_T *)data)->RxEthCrcPresent = CFG_ETH_EFMTC_CRC->rx_eth_crc_present;
((IFX_PTM_CFG_T *)data)->RxEthCrcCheck = CFG_ETH_EFMTC_CRC->rx_eth_crc_check;
((IFX_PTM_CFG_T *)data)->RxTcCrcCheck = CFG_ETH_EFMTC_CRC->rx_tc_crc_check;
((IFX_PTM_CFG_T *)data)->RxTcCrcLen = CFG_ETH_EFMTC_CRC->rx_tc_crc_len;
((IFX_PTM_CFG_T *)data)->TxEthCrcGen = CFG_ETH_EFMTC_CRC->tx_eth_crc_gen;
((IFX_PTM_CFG_T *)data)->TxTcCrcGen = CFG_ETH_EFMTC_CRC->tx_tc_crc_gen;
((IFX_PTM_CFG_T *)data)->TxTcCrcLen = CFG_ETH_EFMTC_CRC->tx_tc_crc_len;
{
IFX_PTM_CFG_T tmp = {0};
tmp.RxEthCrcPresent = CFG_ETH_EFMTC_CRC->rx_eth_crc_present;
tmp.RxEthCrcCheck = CFG_ETH_EFMTC_CRC->rx_eth_crc_check;
tmp.RxTcCrcCheck = CFG_ETH_EFMTC_CRC->rx_tc_crc_check;
tmp.RxTcCrcLen = CFG_ETH_EFMTC_CRC->rx_tc_crc_len;
tmp.TxEthCrcGen = CFG_ETH_EFMTC_CRC->tx_eth_crc_gen;
tmp.TxTcCrcGen = CFG_ETH_EFMTC_CRC->tx_tc_crc_gen;
tmp.TxTcCrcLen = CFG_ETH_EFMTC_CRC->tx_tc_crc_len;
if (copy_to_user(data, &tmp, sizeof(tmp)))
return -EFAULT;
}
break;
case IFX_PTM_CFG_SET:
CFG_ETH_EFMTC_CRC->rx_eth_crc_present = ((IFX_PTM_CFG_T *)data)->RxEthCrcPresent ? 1 : 0;
CFG_ETH_EFMTC_CRC->rx_eth_crc_check = ((IFX_PTM_CFG_T *)data)->RxEthCrcCheck ? 1 : 0;
if ( ((IFX_PTM_CFG_T *)data)->RxTcCrcCheck && (((IFX_PTM_CFG_T *)data)->RxTcCrcLen == 16 || ((IFX_PTM_CFG_T *)data)->RxTcCrcLen == 32) )
{
CFG_ETH_EFMTC_CRC->rx_tc_crc_check = 1;
CFG_ETH_EFMTC_CRC->rx_tc_crc_len = ((IFX_PTM_CFG_T *)data)->RxTcCrcLen;
}
else
{
CFG_ETH_EFMTC_CRC->rx_tc_crc_check = 0;
CFG_ETH_EFMTC_CRC->rx_tc_crc_len = 0;
}
CFG_ETH_EFMTC_CRC->tx_eth_crc_gen = ((IFX_PTM_CFG_T *)data)->TxEthCrcGen ? 1 : 0;
if ( ((IFX_PTM_CFG_T *)data)->TxTcCrcGen && (((IFX_PTM_CFG_T *)data)->TxTcCrcLen == 16 || ((IFX_PTM_CFG_T *)data)->TxTcCrcLen == 32) )
{
CFG_ETH_EFMTC_CRC->tx_tc_crc_gen = 1;
CFG_ETH_EFMTC_CRC->tx_tc_crc_len = ((IFX_PTM_CFG_T *)data)->TxTcCrcLen;
}
else
{
CFG_ETH_EFMTC_CRC->tx_tc_crc_gen = 0;
CFG_ETH_EFMTC_CRC->tx_tc_crc_len = 0;
IFX_PTM_CFG_T cfg = {0};
if (copy_from_user(&cfg, data, sizeof(cfg)))
return -EFAULT;
CFG_ETH_EFMTC_CRC->rx_eth_crc_present = cfg.RxEthCrcPresent ? 1 : 0;
CFG_ETH_EFMTC_CRC->rx_eth_crc_check = cfg.RxEthCrcCheck ? 1 : 0;
if ( cfg.RxTcCrcCheck && (cfg.RxTcCrcLen == 16 || cfg.RxTcCrcLen == 32) )
{
CFG_ETH_EFMTC_CRC->rx_tc_crc_check = 1;
CFG_ETH_EFMTC_CRC->rx_tc_crc_len = cfg.RxTcCrcLen;
}
else
{
CFG_ETH_EFMTC_CRC->rx_tc_crc_check = 0;
CFG_ETH_EFMTC_CRC->rx_tc_crc_len = 0;
}
CFG_ETH_EFMTC_CRC->tx_eth_crc_gen = cfg.TxEthCrcGen ? 1 : 0;
if ( cfg.TxTcCrcGen && (cfg.TxTcCrcLen == 16 || cfg.TxTcCrcLen == 32) )
{
CFG_ETH_EFMTC_CRC->tx_tc_crc_gen = 1;
CFG_ETH_EFMTC_CRC->tx_tc_crc_len = cfg.TxTcCrcLen;
}
else
{
CFG_ETH_EFMTC_CRC->tx_tc_crc_gen = 0;
CFG_ETH_EFMTC_CRC->tx_tc_crc_len = 0;
}
}
break;
default:

View File

@@ -381,14 +381,24 @@ static int ptm_ioctl(struct net_device *dev, struct ifreq *ifr, void __user *dat
{
ASSERT(dev == g_net_dev[0], "incorrect device");
if (!capable(CAP_NET_ADMIN))
return -EPERM;
switch ( cmd )
{
case IFX_PTM_MIB_CW_GET:
((PTM_CW_IF_ENTRY_T *)data)->ifRxNoIdleCodewords = IFX_REG_R32(DREG_AR_CELL0) + IFX_REG_R32(DREG_AR_CELL1);
((PTM_CW_IF_ENTRY_T *)data)->ifRxIdleCodewords = IFX_REG_R32(DREG_AR_IDLE_CNT0) + IFX_REG_R32(DREG_AR_IDLE_CNT1);
((PTM_CW_IF_ENTRY_T *)data)->ifRxCodingViolation = IFX_REG_R32(DREG_AR_CVN_CNT0) + IFX_REG_R32(DREG_AR_CVN_CNT1) + IFX_REG_R32(DREG_AR_CVNP_CNT0) + IFX_REG_R32(DREG_AR_CVNP_CNT1);
((PTM_CW_IF_ENTRY_T *)data)->ifTxNoIdleCodewords = IFX_REG_R32(DREG_AT_CELL0) + IFX_REG_R32(DREG_AT_CELL1);
((PTM_CW_IF_ENTRY_T *)data)->ifTxIdleCodewords = IFX_REG_R32(DREG_AT_IDLE_CNT0) + IFX_REG_R32(DREG_AT_IDLE_CNT1);
{
PTM_CW_IF_ENTRY_T tmp = {0};
tmp.ifRxNoIdleCodewords = IFX_REG_R32(DREG_AR_CELL0) + IFX_REG_R32(DREG_AR_CELL1);
tmp.ifRxIdleCodewords = IFX_REG_R32(DREG_AR_IDLE_CNT0) + IFX_REG_R32(DREG_AR_IDLE_CNT1);
tmp.ifRxCodingViolation = IFX_REG_R32(DREG_AR_CVN_CNT0) + IFX_REG_R32(DREG_AR_CVN_CNT1) + IFX_REG_R32(DREG_AR_CVNP_CNT0) + IFX_REG_R32(DREG_AR_CVNP_CNT1);
tmp.ifTxNoIdleCodewords = IFX_REG_R32(DREG_AT_CELL0) + IFX_REG_R32(DREG_AT_CELL1);
tmp.ifTxIdleCodewords = IFX_REG_R32(DREG_AT_IDLE_CNT0) + IFX_REG_R32(DREG_AT_IDLE_CNT1);
if (copy_to_user(data, &tmp, sizeof(tmp)))
return -EFAULT;
}
break;
case IFX_PTM_MIB_FRAME_GET:
{
@@ -401,38 +411,50 @@ static int ptm_ioctl(struct net_device *dev, struct ifreq *ifr, void __user *dat
for ( i = 0; i < 8; i++ )
tmp.TxSend += WAN_TX_MIB_TABLE(i)->wtx_total_pdu;
*((PTM_FRAME_MIB_T *)data) = tmp;
if (copy_to_user(data, &tmp, sizeof(tmp)))
return -EFAULT;
}
break;
case IFX_PTM_CFG_GET:
// use bear channel 0 preemption gamma interface settings
((IFX_PTM_CFG_T *)data)->RxEthCrcPresent = 1;
((IFX_PTM_CFG_T *)data)->RxEthCrcCheck = RX_GAMMA_ITF_CFG(0)->rx_eth_fcs_ver_dis == 0 ? 1 : 0;
((IFX_PTM_CFG_T *)data)->RxTcCrcCheck = RX_GAMMA_ITF_CFG(0)->rx_tc_crc_ver_dis == 0 ? 1 : 0;;
((IFX_PTM_CFG_T *)data)->RxTcCrcLen = RX_GAMMA_ITF_CFG(0)->rx_tc_crc_size == 0 ? 0 : (RX_GAMMA_ITF_CFG(0)->rx_tc_crc_size * 16);
((IFX_PTM_CFG_T *)data)->TxEthCrcGen = TX_GAMMA_ITF_CFG(0)->tx_eth_fcs_gen_dis == 0 ? 1 : 0;
((IFX_PTM_CFG_T *)data)->TxTcCrcGen = TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size == 0 ? 0 : 1;
((IFX_PTM_CFG_T *)data)->TxTcCrcLen = TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size == 0 ? 0 : (TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size * 16);
{
IFX_PTM_CFG_T tmp = {0};
// use bear channel 0 preemption gamma interface settings
tmp.RxEthCrcPresent = 1;
tmp.RxEthCrcCheck = RX_GAMMA_ITF_CFG(0)->rx_eth_fcs_ver_dis == 0 ? 1 : 0;
tmp.RxTcCrcCheck = RX_GAMMA_ITF_CFG(0)->rx_tc_crc_ver_dis == 0 ? 1 : 0;
tmp.RxTcCrcLen = RX_GAMMA_ITF_CFG(0)->rx_tc_crc_size == 0 ? 0 : (RX_GAMMA_ITF_CFG(0)->rx_tc_crc_size * 16);
tmp.TxEthCrcGen = TX_GAMMA_ITF_CFG(0)->tx_eth_fcs_gen_dis == 0 ? 1 : 0;
tmp.TxTcCrcGen = TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size == 0 ? 0 : 1;
tmp.TxTcCrcLen = TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size == 0 ? 0 : (TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size * 16);
if (copy_to_user(data, &tmp, sizeof(tmp)))
return -EFAULT;
}
break;
case IFX_PTM_CFG_SET:
{
IFX_PTM_CFG_T cfg;
int i;
if (copy_from_user(&cfg, data, sizeof(cfg)))
return -EFAULT;
for ( i = 0; i < 4; i++ ) {
RX_GAMMA_ITF_CFG(i)->rx_eth_fcs_ver_dis = ((IFX_PTM_CFG_T *)data)->RxEthCrcCheck ? 0 : 1;
RX_GAMMA_ITF_CFG(i)->rx_eth_fcs_ver_dis = cfg.RxEthCrcCheck ? 0 : 1;
RX_GAMMA_ITF_CFG(0)->rx_tc_crc_ver_dis = ((IFX_PTM_CFG_T *)data)->RxTcCrcCheck ? 0 : 1;
RX_GAMMA_ITF_CFG(0)->rx_tc_crc_ver_dis = cfg.RxTcCrcCheck ? 0 : 1;
switch ( ((IFX_PTM_CFG_T *)data)->RxTcCrcLen ) {
switch ( cfg.RxTcCrcLen ) {
case 16: RX_GAMMA_ITF_CFG(0)->rx_tc_crc_size = 1; break;
case 32: RX_GAMMA_ITF_CFG(0)->rx_tc_crc_size = 2; break;
default: RX_GAMMA_ITF_CFG(0)->rx_tc_crc_size = 0;
}
TX_GAMMA_ITF_CFG(0)->tx_eth_fcs_gen_dis = ((IFX_PTM_CFG_T *)data)->TxEthCrcGen ? 0 : 1;
TX_GAMMA_ITF_CFG(0)->tx_eth_fcs_gen_dis = cfg.TxEthCrcGen ? 0 : 1;
if ( ((IFX_PTM_CFG_T *)data)->TxTcCrcGen ) {
switch ( ((IFX_PTM_CFG_T *)data)->TxTcCrcLen ) {
if ( cfg.TxTcCrcGen ) {
switch ( cfg.TxTcCrcLen ) {
case 16: TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size = 1; break;
case 32: TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size = 2; break;
default: TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size = 0;

View File

@@ -0,0 +1,56 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Thu, 8 May 2025 23:30:39 +0800
Subject: [PATCH] fix missing prototypes warnings
This patch fixes various missing-prototypes build warnings on
6.12 kernel:
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_tapi-3.13.0/src/drv_tapi_event.c:2815:13: error: no previous prototype for 'IFX_TAPI_EventWrpBufferPool_ElementCountGet' [-Werror=missing-prototypes]
2815 | IFX_int32_t IFX_TAPI_EventWrpBufferPool_ElementCountGet(IFX_void_t)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_tapi-3.13.0/src/drv_tapi_event.c:2844:13: error: no previous prototype for 'IFX_TAPI_EventWrpBufferPool_ElementAvailCountGet' [-Werror=missing-prototypes]
2844 | IFX_int32_t IFX_TAPI_EventWrpBufferPool_ElementAvailCountGet(IFX_void_t)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_tapi-3.13.0/src/drv_tapi_fxo.c:145:13: error: no previous prototype for 'TAPI_FXO_DAA_Ioctl' [-Werror=missing-prototypes]
145 | IFX_int32_t TAPI_FXO_DAA_Ioctl (TAPI_CHANNEL *pChannel,
| ^~~~~~~~~~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_tapi-3.13.0/src/drv_tapi_fxo.c:291:13: error: no previous prototype for 'TAPI_FXO_SmartSlic_Ioctl' [-Werror=missing-prototypes]
291 | IFX_int32_t TAPI_FXO_SmartSlic_Ioctl(TAPI_CHANNEL *pChannel,
| ^~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
src/drv_tapi_event.h | 3 +++
src/drv_tapi_fxo.c | 4 ++--
2 files changed, 5 insertions(+), 2 deletions(-)
--- a/src/drv_tapi_event.h
+++ b/src/drv_tapi_event.h
@@ -24,4 +24,7 @@
#define IFX_EVENT_DISABLE 1
#define IFX_EVENT_ENABLE 0
+IFX_int32_t IFX_TAPI_EventWrpBufferPool_ElementCountGet(IFX_void_t);
+IFX_int32_t IFX_TAPI_EventWrpBufferPool_ElementAvailCountGet(IFX_void_t);
+
#endif /* _DRV_TAPIEVENT_H */
--- a/src/drv_tapi_fxo.c
+++ b/src/drv_tapi_fxo.c
@@ -142,7 +142,7 @@ IFX_return_t IFX_TAPI_FXO_Event_Dispatch
\remarks
This function is called if DAA TAPI plugin is used for FXO handling.
*/
-IFX_int32_t TAPI_FXO_DAA_Ioctl (TAPI_CHANNEL *pChannel,
+static IFX_int32_t TAPI_FXO_DAA_Ioctl (TAPI_CHANNEL *pChannel,
IFX_uint32_t cmd,
IFX_ulong_t arg)
{
@@ -288,7 +288,7 @@ IFX_int32_t TAPI_FXO_DAA_Ioctl (TAPI_CHA
This function is called if LL driver is used for FXO ioctl handling.
Used on systems which have SmartSLIC with fused FXO line(s).
*/
-IFX_int32_t TAPI_FXO_SmartSlic_Ioctl(TAPI_CHANNEL *pChannel,
+static IFX_int32_t TAPI_FXO_SmartSlic_Ioctl(TAPI_CHANNEL *pChannel,
IFX_uint32_t cmd,
IFX_ulong_t arg)
{

View File

@@ -0,0 +1,24 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Wed, 7 May 2025 21:57:39 +0800
Subject: [PATCH] add missing prototype for ifx_mei_atm_led_blink()
Fix build warning on 6.12 kernel:
/home/db/owrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/dsl_cpe_mei-ugw_8.5.2.10/src/drv_mei_cpe_api_atm_ptm_intern.c:658:5: error: no previous prototype for 'ifx_mei_atm_led_blink' [-Werror=missing-prototypes]
658 | int ifx_mei_atm_led_blink(void)
| ^~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
src/drv_mei_cpe_api_atm_ptm_intern.h | 1 +
1 file changed, 1 insertion(+)
--- a/src/drv_mei_cpe_api_atm_ptm_intern.h
+++ b/src/drv_mei_cpe_api_atm_ptm_intern.h
@@ -91,6 +91,7 @@ extern IFX_int32_t MEI_InternalLineTCMod
IFX_int8_t nInstance,
IFX_boolean_t bPowerUp,
IFX_boolean_t bKillMEIControlThread);
+int ifx_mei_atm_led_blink(void);
#ifdef PPA_SUPPORTS_CALLBACKS
extern int ppa_callback_set(e_ltq_mei_cb_type type, void *func);

View File

@@ -0,0 +1,43 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Wed, 7 May 2025 22:07:16 +0800
Subject: [PATCH] convert platform driver .remove to .remove_new
Fix build error on 6.12 kernel:
/home/db/owrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/dsl_cpe_mei-ugw_8.5.2.10/src/drv_mei_cpe_linux.c:2270:14: error: initialization of 'void (*)(struct platform_device *)' from incompatible pointer type 'int (*)(struct platform_device *)' [-Wincompatible-pointer-types]
2270 | .remove = ltq_dsl_cpe_mei_remove,
| ^~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
src/drv_mei_cpe_linux.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
--- a/src/drv_mei_cpe_linux.c
+++ b/src/drv_mei_cpe_linux.c
@@ -2234,7 +2234,7 @@ static int dev_found = 0;
/* containt the number of devices registered in module_init */
static int dev_registered = 0;
-static int ltq_dsl_cpe_mei_remove(struct platform_device *pdev)
+static void ltq_dsl_cpe_mei_remove(struct platform_device *pdev)
{
/* clear platform */
MEI_DEVICE_CFG_VALUE_SET(platform, e_MEI_DEV_PLATFORM_CONFIG_UNKNOWN);
@@ -2244,7 +2244,6 @@ static int ltq_dsl_cpe_mei_remove(struct
dev_registered--;
}
#endif
- return 0;
}
static const struct of_device_id ltq_dsl_cpe_mei_match[] = {
@@ -2267,7 +2266,7 @@ static struct platform_driver ltq_dsl_cp
.owner = THIS_MODULE,
.of_match_table = ltq_dsl_cpe_mei_match,
},
- .remove = ltq_dsl_cpe_mei_remove,
+ .remove_new = ltq_dsl_cpe_mei_remove,
};
static int ltq_dsl_cpe_mei_reboot_notifier(struct notifier_block *nb,

View File

@@ -0,0 +1,50 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Wed, 7 May 2025 22:53:48 +0800
Subject: [PATCH] fix ignored-qualifiers build warnings
This patch fixes the following build warnings:
/home/db/owrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/dsl_cpe_mei-ugw_8.5.2.10/src/drv_mei_cpe_mei_access_vrx.c:41:15: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
41 | static inline volatile IFX_uint32_t MEI_RCU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
| ^~~~~~~~
/home/db/owrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/dsl_cpe_mei-ugw_8.5.2.10/src/drv_mei_cpe_mei_access_vrx.c:55:15: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
55 | static inline volatile IFX_uint32_t MEI_CGU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
| ^~~~~~~~
/home/db/owrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/dsl_cpe_mei-ugw_8.5.2.10/src/drv_mei_cpe_mei_access_vrx.c:63:15: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
63 | static inline volatile IFX_uint32_t MEI_RCU_Slave_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
| ^~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
src/drv_mei_cpe_mei_access_vrx.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/src/drv_mei_cpe_mei_access_vrx.c
+++ b/src/drv_mei_cpe_mei_access_vrx.c
@@ -38,7 +38,7 @@
Local macro definition
========================================================================= */
-static inline volatile IFX_uint32_t MEI_RCU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
+static inline IFX_uint32_t MEI_RCU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
{
IFX_uint32_t ret = 0;
if (MEI_DEVICE_CFG_IS_PLATFORM(e_MEI_DEV_PLATFORM_CONFIG_VR9))
@@ -52,7 +52,7 @@ static inline volatile IFX_uint32_t MEI_
return ret;
}
#if (MEI_SUPPORT_DEVICE_VR11 == 1)
-static inline volatile IFX_uint32_t MEI_CGU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
+static inline IFX_uint32_t MEI_CGU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
{
IFX_uint32_t ret = 0;
ret = (MEI_DRV_PCIE_VIRT_MEMBASE_GET(pMeiDrvCntrl) | MEI_CGU_OFFSET);
@@ -60,7 +60,7 @@ static inline volatile IFX_uint32_t MEI_
}
#endif
-static inline volatile IFX_uint32_t MEI_RCU_Slave_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
+static inline IFX_uint32_t MEI_RCU_Slave_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
{
IFX_uint32_t ret = 0;
if (MEI_DEVICE_CFG_IS_PLATFORM(e_MEI_DEV_PLATFORM_CONFIG_VR9))

View File

@@ -0,0 +1,172 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Wed, 7 May 2025 23:22:11 +0800
Subject: [PATCH] fix missing prototypes warnings
This patch fixes various missing-prototypes build warnings on
6.12 kernel.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
src/bnd/drv_dsl_cpe_api_bnd_vrx.c | 2 +-
src/common/drv_dsl_cpe_api.c | 16 ++++++++--------
src/common/drv_dsl_cpe_os_linux.c | 4 ++--
src/device/drv_dsl_cpe_device_vrx.c | 2 +-
src/g997/drv_dsl_cpe_api_g997_vrx.c | 1 +
src/include/drv_dsl_cpe_intern.h | 6 +++---
6 files changed, 16 insertions(+), 15 deletions(-)
--- a/src/bnd/drv_dsl_cpe_api_bnd_vrx.c
+++ b/src/bnd/drv_dsl_cpe_api_bnd_vrx.c
@@ -75,7 +75,7 @@ static DSL_Error_t DSL_DRV_BND_VRX_HsCon
- DSL_SUCCESS in case of success
- DSL_ERROR if operation failed
*/
-DSL_Error_t DSL_DRV_BND_VRX_PafHsStatusGet(
+static DSL_Error_t DSL_DRV_BND_VRX_PafHsStatusGet(
DSL_Context_t *pContext,
DSL_BND_VRX_PafHsStatus_t *pData)
{
--- a/src/common/drv_dsl_cpe_api.c
+++ b/src/common/drv_dsl_cpe_api.c
@@ -3873,7 +3873,7 @@ DSL_Error_t DSL_DRV_LoopLengthStatusGet(
return nErrCode;
}
-DSL_Error_t DSL_DRV_RetxStatisticsGet(
+static DSL_Error_t DSL_DRV_RetxStatisticsGet(
DSL_IN DSL_Context_t *pContext,
DSL_IN_OUT DSL_ReTxStatistics_t *pData)
{
@@ -4053,7 +4053,7 @@ DSL_Error_t DSL_DRV_SystemInterfaceConfi
\ref DSL_FIO_SYSTEM_INTERFACE_STATUS_GET
*/
#ifdef INCLUDE_DSL_SYSTEM_INTERFACE
-DSL_Error_t DSL_DRV_SystemInterfaceStatusGet(
+static DSL_Error_t DSL_DRV_SystemInterfaceStatusGet(
DSL_Context_t *pContext,
DSL_SystemInterfaceStatus_t *pData)
{
@@ -5593,7 +5593,7 @@ DSL_Error_t DSL_DRV_DBG_DebugFeatureConf
#endif /* DSL_DEBUG_DISABLE*/
#ifdef INCLUDE_DSL_FILTER_DETECTION
-DSL_Error_t DSL_DRV_FilterDetectionDataGet(
+static DSL_Error_t DSL_DRV_FilterDetectionDataGet(
DSL_IN DSL_Context_t *pContext,
DSL_OUT DSL_FilterDetection_t *pData)
{
@@ -5742,7 +5742,7 @@ DSL_Error_t DSL_DRV_FilterDetectionBasic
}
#endif /* INCLUDE_DSL_FILTER_DETECTION */
-DSL_Error_t DSL_DRV_HybridSelectionDataGet(
+static DSL_Error_t DSL_DRV_HybridSelectionDataGet(
DSL_IN DSL_Context_t *pContext,
DSL_OUT DSL_HybridSelection_t *pData)
{
@@ -5804,7 +5804,7 @@ DSL_Error_t DSL_DRV_HybridSelectionDataG
return nErrCode;
}
-DSL_Error_t DSL_DRV_OlrStatisticsGet(
+static DSL_Error_t DSL_DRV_OlrStatisticsGet(
DSL_IN DSL_Context_t *pContext,
DSL_OUT DSL_OlrStatistics_t *pData)
{
@@ -5932,7 +5932,7 @@ DSL_void_t DSL_DRV_InitDataFree(
#endif /* INCLUDE_DSL_INIT_DATA_PREPARE*/
}
-DSL_Error_t DSL_DRV_IoctlHandleHelperCall(
+static DSL_Error_t DSL_DRV_IoctlHandleHelperCall(
DSL_OpenContext_t *pOpenCtx,
DSL_Context_t *pContext,
DSL_boolean_t bIsInKernel,
@@ -6573,7 +6573,7 @@ DSL_Error_t DSL_DRV_T1413_XTUR_VendorRev
return nErrCode;
}
-DSL_Error_t DSL_DRV_PSDCalibrationConfigGet(
+static DSL_Error_t DSL_DRV_PSDCalibrationConfigGet(
DSL_IN DSL_Context_t *pContext,
DSL_IN_OUT DSL_PSDCalibration_t *pData)
{
@@ -6608,7 +6608,7 @@ DSL_Error_t DSL_DRV_PSDCalibrationConfig
return nErrCode;
}
-DSL_Error_t DSL_DRV_PSDCalibrationConfigSet(
+static DSL_Error_t DSL_DRV_PSDCalibrationConfigSet(
DSL_IN DSL_Context_t *pContext,
DSL_IN_OUT DSL_PSDCalibration_t *pData)
{
--- a/src/common/drv_dsl_cpe_os_linux.c
+++ b/src/common/drv_dsl_cpe_os_linux.c
@@ -1341,7 +1341,7 @@ static void DSL_DRV_NlSendMsg(DSL_char_t
#endif
/* Entry point of driver */
-int __init DSL_ModuleInit(void)
+static int __init DSL_ModuleInit(void)
{
DSL_int_t i;
@@ -1457,7 +1457,7 @@ void DSL_ModuleCleanup(void)
return;
}
-void __exit DSL_ModuleExit(void)
+static void __exit DSL_ModuleExit(void)
{
printk("DSL: Unloading module" DSL_DRV_CRLF);
--- a/src/device/drv_dsl_cpe_device_vrx.c
+++ b/src/device/drv_dsl_cpe_device_vrx.c
@@ -6914,7 +6914,7 @@ DSL_Error_t DSL_DRV_VRX_ShowtimeMeasurem
return nErrCode;
}
-DSL_Error_t DSL_DRV_VRX_ShowtimeBasicMFDMeasurementUpdate(DSL_Context_t *pContext)
+static DSL_Error_t DSL_DRV_VRX_ShowtimeBasicMFDMeasurementUpdate(DSL_Context_t *pContext)
{
DSL_Error_t nErrCode = DSL_SUCCESS;
ACK_MFD_InitResultsGet_t sInitResultAck = { 0 };
--- a/src/g997/drv_dsl_cpe_api_g997_vrx.c
+++ b/src/g997/drv_dsl_cpe_api_g997_vrx.c
@@ -11,6 +11,7 @@
#define DSL_INTERN
#include "drv_dsl_cpe_api.h"
+#include "drv_dsl_cpe_device_g997.h"
#ifdef INCLUDE_DSL_CPE_API_VRX
--- a/src/include/drv_dsl_cpe_intern.h
+++ b/src/include/drv_dsl_cpe_intern.h
@@ -1151,7 +1151,7 @@ DSL_Error_t DSL_DRV_InteropFeatureConfig
For a detailed description please refer to the equivalent ioctl
\ref DSL_FIO_RETX_STATISTICS_GET
*/
-#ifdef INCLUDE_DSL_CPE_API_DANUBE
+#if defined(INCLUDE_DSL_CPE_API_DANUBE) && 0
#ifndef SWIG_TMP
DSL_Error_t DSL_DRV_RetxStatisticsGet(
DSL_IN DSL_Context_t *pContext,
@@ -1436,7 +1436,7 @@ DSL_Error_t DSL_DRV_SystemInterfaceConfi
For a detailed description please refer to the equivalent ioctl
\ref DSL_FIO_FILTER_DETECTION_DATA_GET
*/
-#if defined(INCLUDE_DSL_CPE_API_DANUBE) && defined(INCLUDE_DSL_FILTER_DETECTION)
+#if defined(INCLUDE_DSL_CPE_API_DANUBE) && defined(INCLUDE_DSL_FILTER_DETECTION) && 0
#ifndef SWIG_TMP
DSL_Error_t DSL_DRV_FilterDetectionDataGet(
DSL_IN DSL_Context_t *pContext,
@@ -1462,7 +1462,7 @@ DSL_Error_t DSL_DRV_FilterDetectionBasic
For a detailed description please refer to the equivalent ioctl
\ref DSL_FIO_HYBRID_SELECTION_DATA_GET
*/
-#ifdef INCLUDE_DSL_CPE_API_DANUBE
+#if defined(INCLUDE_DSL_CPE_API_DANUBE) && 0
#ifndef SWIG_TMP
DSL_Error_t DSL_DRV_HybridSelectionDataGet(
DSL_IN DSL_Context_t *pContext,

View File

@@ -313,17 +313,22 @@
#if (MEI_EXPORT_INTERNAL_API == 1) && (MEI_DRV_ATM_PTM_INTERFACE_ENABLE == 1)
@@ -59,8 +58,21 @@ extern IFX_int32_t MEI_InternalTcReset(
@@ -58,9 +57,26 @@ extern IFX_int32_t MEI_InternalTcRequest
extern IFX_int32_t MEI_InternalTcReset(
MEI_DYN_CNTRL_T *pMeiDynCntrl,
MEI_TC_Reset_t *pArgTcReset);
+struct port_cell_info;
+extern int ifx_mei_atm_showtime_check(int *is_showtime,
+ struct port_cell_info *port_cell,
+ void **xdata_addr);
+
+#if 1
+#include <lantiq_atm.h>
+typedef enum {
+ LTQ_MEI_SHOWTIME_ENTER,
+ LTQ_MEI_SHOWTIME_EXIT
+} e_ltq_mei_cb_type;
+
+typedef void (*ltq_mei_atm_showtime_enter_t)(IFX_uint8_t, struct port_cell_info *, void *);
+typedef void (*ltq_mei_atm_showtime_exit_t)(IFX_uint8_t);
+

View File

@@ -0,0 +1,41 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Fri, 9 May 2025 00:54:48 +0800
Subject: [PATCH] convert platform driver .remove to .remove_new
Fix compilation error on 6.12 kernel:
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_mei_cpe-1.5.17.6/src/drv_mei_cpe_linux.c:2073:23: error: initialization of 'void (*)(struct platform_device *)' from incompatible pointer type 'int (*)(struct platform_device *)' [-Wincompatible-pointer-types]
2073 | .remove = __exit_p(ltq_dsl_cpe_mei_remove),
| ^~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
src/drv_mei_cpe_linux.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
--- a/src/drv_mei_cpe_linux.c
+++ b/src/drv_mei_cpe_linux.c
@@ -2048,13 +2048,12 @@ static int MEI_InstallProcEntry(unsigned
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0))
-static int __exit ltq_dsl_cpe_mei_remove(struct platform_device *pdev)
+static void __exit ltq_dsl_cpe_mei_remove(struct platform_device *pdev)
{
MEI_module_exit();
/* clear platform */
MEI_DEVICE_CFG_VALUE_SET(platform, e_MEI_DEV_PLATFORM_CONFIG_UNKNOWN);
- return 0;
}
static const struct of_device_id ltq_dsl_cpe_mei_match[] = {
@@ -2070,7 +2069,7 @@ static struct platform_driver ltq_dsl_cp
.owner = THIS_MODULE,
.of_match_table = ltq_dsl_cpe_mei_match,
},
- .remove = __exit_p(ltq_dsl_cpe_mei_remove),
+ .remove_new = __exit_p(ltq_dsl_cpe_mei_remove),
};
static int __init ltq_dsl_cpe_mei_probe(struct platform_device *pdev)

View File

@@ -0,0 +1,38 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Fri, 9 May 2025 00:58:00 +0800
Subject: [PATCH] fix ignored-qualifiers build warnings
This patch fixes the following build warnings:
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_mei_cpe-1.5.17.6/src/drv_mei_cpe_mei_access_vrx.c:41:15: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
41 | static inline volatile IFX_uint32_t MEI_RCU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
| ^~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_mei_cpe-1.5.17.6/src/drv_mei_cpe_mei_access_vrx.c:56:15: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
56 | static inline volatile IFX_uint32_t MEI_RCU_Slave_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
| ^~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
src/drv_mei_cpe_mei_access_vrx.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/src/drv_mei_cpe_mei_access_vrx.c
+++ b/src/drv_mei_cpe_mei_access_vrx.c
@@ -38,7 +38,7 @@
Local macro definition
========================================================================= */
-static inline volatile IFX_uint32_t MEI_RCU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
+static inline IFX_uint32_t MEI_RCU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
{
IFX_uint32_t ret = 0;
if (MEI_DEVICE_CFG_IS_PLATFORM(e_MEI_DEV_PLATFORM_CONFIG_VR9))
@@ -53,7 +53,7 @@ static inline volatile IFX_uint32_t MEI_
return ret;
}
-static inline volatile IFX_uint32_t MEI_RCU_Slave_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
+static inline IFX_uint32_t MEI_RCU_Slave_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
{
IFX_uint32_t ret = 0;
if (MEI_DEVICE_CFG_IS_PLATFORM(e_MEI_DEV_PLATFORM_CONFIG_VR9))

View File

@@ -0,0 +1,53 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Fri, 9 May 2025 01:10:32 +0800
Subject: [PATCH] fix missing prototypes warnings
This patch fixes various missing-prototypes build warnings on
6.12 kernel.
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_mei_cpe-1.5.17.6/src/drv_mei_cpe_api_atm_ptm_intern.c:314:5: error: no previous prototype for 'ifx_mei_atm_led_blink' [-Werror=missing-prototypes]
314 | int ifx_mei_atm_led_blink(void)
| ^~~~~~~~~~~~~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_mei_cpe-1.5.17.6/src/drv_mei_cpe_api_atm_ptm_intern.c:325:5: error: no previous prototype for 'ltq_ifx_mei_atm_showtime_enter_compat' [-Werror=missing-prototypes]
325 | int ltq_ifx_mei_atm_showtime_enter_compat(IFX_uint8_t dslLineNum,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_mei_cpe-1.5.17.6/src/drv_mei_cpe_api_atm_ptm_intern.c:334:5: error: no previous prototype for 'ltq_ifx_mei_atm_showtime_exit_compat' [-Werror=missing-prototypes]
334 | int ltq_ifx_mei_atm_showtime_exit_compat(IFX_uint8_t dslLineNum) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
src/drv_mei_cpe_api_atm_ptm_intern.c | 4 ++--
src/drv_mei_cpe_api_atm_ptm_intern.h | 1 +
2 files changed, 3 insertions(+), 2 deletions(-)
--- a/src/drv_mei_cpe_api_atm_ptm_intern.c
+++ b/src/drv_mei_cpe_api_atm_ptm_intern.c
@@ -322,7 +322,7 @@ int ifx_mei_atm_led_blink(void)
int (*ifx_mei_atm_showtime_enter)(struct port_cell_info *, void *) = NULL;
int (*ifx_mei_atm_showtime_exit)(void) = NULL;
-int ltq_ifx_mei_atm_showtime_enter_compat(IFX_uint8_t dslLineNum,
+static int ltq_ifx_mei_atm_showtime_enter_compat(IFX_uint8_t dslLineNum,
struct port_cell_info *cellInfo,
void *xdata) {
if (ifx_mei_atm_showtime_enter)
@@ -331,7 +331,7 @@ int ltq_ifx_mei_atm_showtime_enter_compa
return -e_MEI_ERR_OP_FAILED;
}
-int ltq_ifx_mei_atm_showtime_exit_compat(IFX_uint8_t dslLineNum) {
+static int ltq_ifx_mei_atm_showtime_exit_compat(IFX_uint8_t dslLineNum) {
if (ifx_mei_atm_showtime_exit)
return ifx_mei_atm_showtime_exit();
--- a/src/drv_mei_cpe_api_atm_ptm_intern.h
+++ b/src/drv_mei_cpe_api_atm_ptm_intern.h
@@ -61,6 +61,7 @@ struct port_cell_info;
extern int ifx_mei_atm_showtime_check(int *is_showtime,
struct port_cell_info *port_cell,
void **xdata_addr);
+extern int ifx_mei_atm_led_blink(void);
#if 1
#include <lantiq_atm.h>

View File

@@ -0,0 +1,100 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Fri, 9 May 2025 02:48:52 +0800
Subject: [PATCH] fix missing-prototypes warning
This patch fixes various missing-prototypes build warnings on
6.12 kernel.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
src/common/drv_dsl_cpe_api.c | 12 ++++++------
src/common/drv_dsl_cpe_os_linux.c | 4 ++--
src/g997/drv_dsl_cpe_api_g997_vrx.c | 1 +
3 files changed, 9 insertions(+), 8 deletions(-)
--- a/src/common/drv_dsl_cpe_api.c
+++ b/src/common/drv_dsl_cpe_api.c
@@ -2871,7 +2871,7 @@ DSL_Error_t DSL_DRV_LoopLengthStatusGet(
return nErrCode;
}
-DSL_Error_t DSL_DRV_RetxStatisticsGet(
+static DSL_Error_t DSL_DRV_RetxStatisticsGet(
DSL_IN DSL_Context_t *pContext,
DSL_IN_OUT DSL_ReTxStatistics_t *pData)
{
@@ -3044,7 +3044,7 @@ DSL_Error_t DSL_DRV_SystemInterfaceConfi
\ref DSL_FIO_SYSTEM_INTERFACE_STATUS_GET
*/
#ifdef INCLUDE_DSL_SYSTEM_INTERFACE
-DSL_Error_t DSL_DRV_SystemInterfaceStatusGet(
+static DSL_Error_t DSL_DRV_SystemInterfaceStatusGet(
DSL_Context_t *pContext,
DSL_SystemInterfaceStatus_t *pData)
{
@@ -4372,7 +4372,7 @@ DSL_Error_t DSL_DRV_DBG_DebugFeatureConf
#endif /* DSL_DEBUG_DISABLE*/
#ifdef INCLUDE_DSL_FILTER_DETECTION
-DSL_Error_t DSL_DRV_FilterDetectionDataGet(
+static DSL_Error_t DSL_DRV_FilterDetectionDataGet(
DSL_IN DSL_Context_t *pContext,
DSL_OUT DSL_FilterDetection_t *pData)
{
@@ -4422,7 +4422,7 @@ DSL_Error_t DSL_DRV_FilterDetectionDataG
}
#endif /* INCLUDE_DSL_FILTER_DETECTION */
-DSL_Error_t DSL_DRV_HybridSelectionDataGet(
+static DSL_Error_t DSL_DRV_HybridSelectionDataGet(
DSL_IN DSL_Context_t *pContext,
DSL_OUT DSL_HybridSelection_t *pData)
{
@@ -4476,7 +4476,7 @@ DSL_Error_t DSL_DRV_HybridSelectionDataG
return nErrCode;
}
-DSL_Error_t DSL_DRV_OlrStatisticsGet(
+static DSL_Error_t DSL_DRV_OlrStatisticsGet(
DSL_IN DSL_Context_t *pContext,
DSL_OUT DSL_OlrStatistics_t *pData)
{
@@ -4596,7 +4596,7 @@ DSL_void_t DSL_DRV_InitDataFree(
#endif /* INCLUDE_DSL_INIT_DATA_PREPARE*/
}
-DSL_Error_t DSL_DRV_IoctlHandleHelperCall(
+static DSL_Error_t DSL_DRV_IoctlHandleHelperCall(
DSL_OpenContext_t *pOpenCtx,
DSL_Context_t *pContext,
DSL_boolean_t bIsInKernel,
--- a/src/common/drv_dsl_cpe_os_linux.c
+++ b/src/common/drv_dsl_cpe_os_linux.c
@@ -1214,7 +1214,7 @@ static struct class *dsl_class;
static dev_t dsl_devt;
/* Entry point of driver */
-int __init DSL_ModuleInit(void)
+static int __init DSL_ModuleInit(void)
{
DSL_int_t i;
@@ -1262,7 +1262,7 @@ int __init DSL_ModuleInit(void)
return 0;
}
-void __exit DSL_ModuleCleanup(void)
+static void __exit DSL_ModuleCleanup(void)
{
printk("Module will be unloaded"DSL_DRV_CRLF);
--- a/src/g997/drv_dsl_cpe_api_g997_vrx.c
+++ b/src/g997/drv_dsl_cpe_api_g997_vrx.c
@@ -11,6 +11,7 @@
#define DSL_INTERN
#include "drv_dsl_cpe_api.h"
+#include "drv_dsl_cpe_device_g997.h"
#ifdef INCLUDE_DSL_CPE_API_VRX

View File

@@ -0,0 +1,29 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Fri, 9 May 2025 08:22:25 +0800
Subject: [PATCH] ignore missing-prototypes warning
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
src/Makefile.am | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -226,6 +226,8 @@ install-exec-hook: $(bin_PROGRAMS)
if KERNEL_2_6
drv_vmmc_OBJS = "$(subst .c,.o, $(drv_vmmc_SOURCES) $(nodist_drv_vmmc_SOURCES))"
+PKGFIX_CFLAGS = -Wno-error=missing-prototypes
+
drv_vmmc.ko: $(drv_vmmc_SOURCES) $(EXTRA_DIST)
@echo "Making Linux 2.6.x kernel object"
@for f in $(drv_vmmc_SOURCES) $(nodist_drv_vmmc_SOURCES) ; do \
@@ -238,7 +240,7 @@ drv_vmmc.ko: $(drv_vmmc_SOURCES) $(EXTRA
@echo "# drv_vmmc: Generated to build Linux 2.6.x kernel object" > $(PWD)/Kbuild
@echo "obj-m := $(subst .ko,.o,$@)" >> $(PWD)/Kbuild
@echo "$(subst .ko,,$@)-y := $(drv_vmmc_OBJS)" >> $(PWD)/Kbuild
- @echo "EXTRA_CFLAGS := -DHAVE_CONFIG_H $(drv_vmmc_CFLAGS) $(INCLUDES)" >> $(PWD)/Kbuild
+ @echo "EXTRA_CFLAGS := -DHAVE_CONFIG_H $(drv_vmmc_CFLAGS) $(PKGFIX_CFLAGS) $(INCLUDES)" >> $(PWD)/Kbuild
$(MAKE) ARCH=@KERNEL_ARCH@ -C @KERNEL_BUILD_PATH@ O=@KERNEL_BUILD_PATH@ M=$(PWD) modules
clean-generic:

View File

@@ -18,7 +18,7 @@
#include "drv_mps_vmmc_dbg.h"
#include "drv_mps_vmmc_device.h"
+const void (*ifx_bsp_basic_mps_decrypt)(unsigned int addr, int n) = NULL;
+void (*ifx_bsp_basic_mps_decrypt)(unsigned int addr, int n) = NULL;
+
+#define IFX_MPS_SRAM IFXMIPS_MPS_SRAM
+
@@ -106,13 +106,13 @@
pFWDwnld->length -= sizeof(IFX_uint32_t);
+ switch(ltq_soc_type()) {
+ case SOC_TYPE_AR9:
+ ifx_bsp_basic_mps_decrypt = (const void (*)(unsigned int, int))0xbf0017c4;
+ ifx_bsp_basic_mps_decrypt = (void (*)(unsigned int, int))0xbf0017c4;
+ break;
+ case SOC_TYPE_VR9:
+ ifx_bsp_basic_mps_decrypt = (const void (*)(unsigned int, int))0xbf001ea4;
+ ifx_bsp_basic_mps_decrypt = (void (*)(unsigned int, int))0xbf001ea4;
+ break;
+ case SOC_TYPE_VR9_2:
+ ifx_bsp_basic_mps_decrypt = (const void (*)(unsigned int, int))0xbf001f38;
+ ifx_bsp_basic_mps_decrypt = (void (*)(unsigned int, int))0xbf001f38;
+ break;
+ }
+ if (ifx_bsp_basic_mps_decrypt)

View File

@@ -0,0 +1,143 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Thu, 8 May 2025 23:53:01 +0800
Subject: [PATCH] fix version macro definition conflicts on 6.12 kernel
Add LANTIQ prefix before MIN/MAX to fix:
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/drv_vmmc_init.c:91:9: error: "MAX" redefined [-Werror]
91 | #define MAX(x,y) ((x) > (y) ? (x) : (y))
| ^~~
./include/linux/minmax.h:330:9: note: this is the location of the previous definition
330 | #define MAX(a,b) __cmp(max,a,b)
| ^~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/drv_vmmc_init_cap.c:42:9: error: "MIN" redefined [-Werror]
42 | #define MIN(x,y) ({ (x) < (y) ? (x) : (y); })
| ^~~
./include/linux/minmax.h:329:9: note: this is the location of the previous definition
329 | #define MIN(a,b) __cmp(min,a,b)
| ^~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/drv_vmmc_sig_cptd.c:41:9: error: "MAX" redefined [-Werror]
41 | #define MAX(x,y) ((x) > (y) ? (x) : (y))
| ^~~
./include/linux/minmax.h:330:9: note: this is the location of the previous definition
330 | #define MAX(a,b) __cmp(max,a,b)
| ^~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
src/drv_vmmc_init.c | 12 ++++++------
src/drv_vmmc_init_cap.c | 4 ++--
src/drv_vmmc_sig_cptd.c | 4 ++--
3 files changed, 10 insertions(+), 10 deletions(-)
--- a/src/drv_vmmc_init.c
+++ b/src/drv_vmmc_init.c
@@ -88,7 +88,7 @@ CREATE_TRACE_GROUP(VMMC);
/** what compatible driver version */
#define DRV_VMMC_WHAT_STR "@(#)Lantiq VMMC device driver, version " DRV_VMMC_VER_STR
-#define MAX(x,y) ((x) > (y) ? (x) : (y))
+#define LANTIQ_MAX(x,y) ((x) > (y) ? (x) : (y))
#define MPS_CH_VALID(mpsCh) ((mpsCh >= 1 && mpsCh <= 7) ? 1 : 0)
@@ -927,17 +927,17 @@ static IFX_int32_t VMMC_TAPI_LL_FW_Init(
/* Maximum number of resources, is the maximum of:
nALI, nPCM, nCOD, nSIG, nDECT, nLIN and nAudioCnt. */
- tmp1 = MAX (pDev->caps.nALI, pDev->caps.nPCM);
- tmp2 = MAX (pDev->caps.nCOD, pDev->caps.nSIG);
- pDev->caps.nMaxRes = MAX(tmp1, tmp2);
+ tmp1 = LANTIQ_MAX(pDev->caps.nALI, pDev->caps.nPCM);
+ tmp2 = LANTIQ_MAX(pDev->caps.nCOD, pDev->caps.nSIG);
+ pDev->caps.nMaxRes = LANTIQ_MAX(tmp1, tmp2);
#ifdef DECT_SUPPORT
- pDev->caps.nMaxRes = MAX(pDev->caps.nMaxRes, pDev->caps.nDECT);
+ pDev->caps.nMaxRes = LANTIQ_MAX(pDev->caps.nMaxRes, pDev->caps.nDECT);
#endif /* LIN_SUPPORT */
#ifdef LIN_SUPPORT
- pDev->caps.nMaxRes = MAX(pDev->caps.nMaxRes, pDev->caps.nLIN);
+ pDev->caps.nMaxRes = LANTIQ_MAX(pDev->caps.nMaxRes, pDev->caps.nLIN);
#endif /* LIN_SUPPORT */
#if (VMMC_CFG_FEATURES & VMMC_FEAT_AUDIO)
- pDev->caps.nMaxRes = MAX(pDev->caps.nMaxRes, pDev->caps.nAudioCnt);
+ pDev->caps.nMaxRes = LANTIQ_MAX(pDev->caps.nMaxRes, pDev->caps.nAudioCnt);
#endif /* (VMMC_CFG_FEATURES & VMMC_FEAT_AUDIO) */
if (pDev->caps.nMaxRes > VMMC_MAX_CH_NR)
@@ -977,7 +977,7 @@ static IFX_int32_t VMMC_TAPI_LL_FW_Init(
nResource.DTMFRCount = pDev->caps.nDTMFD;
nResource.FSKGCount = pDev->caps.nCIDS;
nResource.FSKRCount = pDev->caps.nCIDR;
- nResource.ToneCount = MAX(pDev->caps.nSIG, pDev->caps.nDECT);
+ nResource.ToneCount = LANTIQ_MAX(pDev->caps.nSIG, pDev->caps.nDECT);
nResource.HdlcCount = pDev->caps.nHDLC;
IFX_TAPI_ReportResources (pDev->pTapiDev,&nResource);
--- a/src/drv_vmmc_init_cap.c
+++ b/src/drv_vmmc_init_cap.c
@@ -39,7 +39,7 @@
/* ============================= */
/* Local Macros & Definitions */
/* ============================= */
-#define MIN(x,y) ({ (x) < (y) ? (x) : (y); })
+#define LANTIQ_MIN(x,y) ({ (x) < (y) ? (x) : (y); })
/* ============================= */
/* Local function declaration */
@@ -392,7 +392,7 @@ IFX_return_t VMMC_Get_FwCap(VMMC_DEVICE
/* Read the maximum length of the message that we can interpret but
not more than the firmware can provide. */
/* BLEN is the length including the header that the fw reports. */
- capCmd.LENGTH = MIN (capCmd.BLEN, sizeof(SYS_CAP_t));
+ capCmd.LENGTH = LANTIQ_MIN(capCmd.BLEN, sizeof(SYS_CAP_t));
/* Subtract the length of the header. */
capCmd.LENGTH -= CMD_HDR_CNT;
/* Read capability once more - this time with maximum length. */
@@ -479,7 +479,7 @@ IFX_return_t VMMC_Get_FwCap(VMMC_DEVICE
pDev->caps.FEAT = capCmd.FEAT;
/* Number of UTG resources per channel (== SIG module), either 1 or 2 */
pDev->caps.nUtgPerCh = (capCmd.FEAT & EDSP_CAP_FEAT_UTGUD) ? 2 : 1;
- pDev->caps.nUtgPerCh = MIN(pDev->caps.nUtgPerCh, LL_TAPI_TONE_MAXRES);
+ pDev->caps.nUtgPerCh = LANTIQ_MIN(pDev->caps.nUtgPerCh, LL_TAPI_TONE_MAXRES);
/* Number of AudioChannels */
pDev->caps.nAudioCnt = (pDev->caps.FEAT & EDSP_CAP_FEAT_CHAUD) ? 1 : 0;
/* Overlays */
--- a/src/drv_vmmc_sig_cptd.c
+++ b/src/drv_vmmc_sig_cptd.c
@@ -38,7 +38,7 @@
/** define which constant is taken for cpt level calculation */
#define CONST_CPT CONST_CPT_BLACKMAN
/* return the maximum of two scalar values */
-#define MAX(x,y) ((x) > (y) ? (x) : (y))
+#define LANTIQ_MAX(x,y) ((x) > (y) ? (x) : (y))
/* ============================= */
/* Local function declaration */
@@ -511,7 +511,7 @@ static IFX_int32_t vmmc_sig_CPTD_SetCoef
if (nTenPercentTimeTolerance > nMaxTenPercentTimeTolerance)
nMaxTenPercentTimeTolerance = nTenPercentTimeTolerance;
- val = (IFX_uint16_t) (pTone->cadence[i] - MAX(nAbsoluteTimeTolerance,
+ val = (IFX_uint16_t) (pTone->cadence[i] - LANTIQ_MAX(nAbsoluteTimeTolerance,
nTenPercentTimeTolerance));
switch (i)
{
@@ -578,7 +578,7 @@ static IFX_int32_t vmmc_sig_CPTD_SetCoef
{
/* set tolerance +TIM_TOL */
pCmd->TIM_TOL =
- (2 * MAX (nAbsoluteTimeTolerance, nMaxTenPercentTimeTolerance));
+ (2 * LANTIQ_MAX(nAbsoluteTimeTolerance, nMaxTenPercentTimeTolerance));
/* return because nothing more to do */
return IFX_SUCCESS;
}
@@ -605,7 +605,7 @@ static IFX_int32_t vmmc_sig_CPTD_SetCoef
/* set tolerance +TIM_TOL and NR of successfully fulfilled timing
requirement steps required to pass */
pCmd->TIM_TOL =
- (2 * MAX (nAbsoluteTimeTolerance, nMaxTenPercentTimeTolerance));
+ (2 * LANTIQ_MAX(nAbsoluteTimeTolerance, nMaxTenPercentTimeTolerance));
pCmd->NR = nr;
return IFX_SUCCESS;

View File

@@ -0,0 +1,28 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Fri, 9 May 2025 01:31:44 +0800
Subject: [PATCH] fix unknown type name errors
Fix compilation errors:
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/drv_vmmc_sig.h:41:45: error: unknown type name 'IFX_TAPI_DRV_CTX_SIG_t'
41 | extern IFX_void_t VMMC_SIG_Func_Register (IFX_TAPI_DRV_CTX_SIG_t *pSig);
| ^~~~~~~~~~~~~~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/drv_vmmc_sig.h:43:54: error: unknown type name 'VMMC_CHANNEL'
43 | extern IFX_int32_t VMMC_SIG_Allocate_Ch_Structures (VMMC_CHANNEL *pCh);
| ^~~~~~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
src/drv_vmmc_sig.h | 1 +
1 file changed, 1 insertion(+)
--- a/src/drv_vmmc_sig.h
+++ b/src/drv_vmmc_sig.h
@@ -20,6 +20,7 @@
/* ============================= */
/* Includes */
/* ============================= */
+#include "drv_vmmc_api.h"
#include "ifx_types.h"
/* ============================= */

View File

@@ -0,0 +1,26 @@
From: Shiji Yang <yangshiji66@outlook.com>
Date: Fri, 9 May 2025 01:43:41 +0800
Subject: [PATCH] fix 'inline' is not at beginning of declaration
Fix build warning on 6.12 kernel:
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/mps/drv_mps_vmmc_common.c:58:1: error: 'inline' is not at beginning of declaration [-Werror=old-style-declaration]
58 | static void inline bsp_mask_and_ack_irq(int x)
| ^~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
src/mps/drv_mps_vmmc_common.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/src/mps/drv_mps_vmmc_common.c
+++ b/src/mps/drv_mps_vmmc_common.c
@@ -55,7 +55,7 @@
# define bsp_mask_and_ack_irq ltq_mask_and_ack_irq
#else
extern void ltq_mask_and_ack_irq(struct irq_data *d);
-static void inline bsp_mask_and_ack_irq(int x)
+static inline void bsp_mask_and_ack_irq(int x)
{
struct irq_data d;
d.hwirq = x;

Some files were not shown because too many files have changed in this diff Show More