Commit graph

69816 commits

Author SHA1 Message Date
Jonas Jelonek
8d2bd202c4
realtek: pcs: rtl93xx: rename media to attachment
"media" doesn't fit well once PHY sits alongside FIBER/DAC_SHORT/
DAC_LONG as a value: a PHY isn't a transmission medium, whereas what
actually matters here is what electrically terminates the SerDes lane
on the other end. Rename the enum, struct field, ops vtable member,
and both variants' config functions accordingly. Calling it 'attachment'
better fits what it actually is, doesn't confuse with the variants and
also fits to the PMA (Physical Medium Attachment) sublayer that lives
below PCS.

Link: https://github.com/openwrt/openwrt/pull/24232
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-15 19:37:00 +02:00
Jonas Jelonek
5f6896209d
realtek: pcs: rtl93xx: rename MEDIA_PCB to MEDIA_PHY
Every SerDes lane runs over some PCB trace before reaching the port,
even fiber/DAC ones, so PCB doesn't describe what actually
distinguishes this case: the SerDes terminates directly into a PHY
chip rather than a fiber module or DAC cable.

Link: https://github.com/openwrt/openwrt/pull/24232
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-15 19:37:00 +02:00
Jonas Jelonek
4212598948
realtek: pcs: rtl930x: classify SGMII as PHY-attached media
SGMII always terminates in a PHY, whether on-board or embedded in an
SFP copper module, so it belongs with QSGMII/XSGMII/USXGMII rather
than the direct fiber/DAC modes. The PHY equalizes on its own far-end
receiver in either case, so no media-dependent TX tuning is needed.

Link: https://github.com/openwrt/openwrt/pull/24232
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-15 19:36:59 +02:00
Jonas Jelonek
bf2c9a5d8b
realtek: pcs: rtl930x: only apply TX config for 10G SerDes
So far, there was only a misleading and confusing gate to avoid applying
the TX config to SerDes which do not need it or where it even breaks
some modes. This is achieved by not applying any configuration for
QSGMII mode. While this fits the real-world cases we know so far where
QSGMII is only used on SerDes 0/1 but never on others, it implicates
that this is true too for QSGMII on 10G SerDes. Looking at the SDK, this
assumption doesn't hold.

To fix this, drop out of config_media in case a non-10G SerDes is
delivered. The SDK does the same in various ways, ending up with the
config just being applied for SerDes 2 - 9.

Link: https://github.com/openwrt/openwrt/pull/24232
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-15 19:36:59 +02:00
Jonas Jelonek
8eaa84d2e9
realtek: pcs: rtl930x: use cmu_page getter for tx_config
Derive the CMU page from rtpcs_93xx_sds_get_cmu_page() instead of
hardcoding it per hw_mode case. Also change the function to return
int and propagate errors instead of silently doing nothing.

Link: https://github.com/openwrt/openwrt/pull/24232
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-15 19:36:59 +02:00
Jonas Jelonek
146d0fb6e0
realtek: pcs: rtl93xx: make cmu_page getter generic
Rename rtpcs_931x_sds_cmu_page_get() to rtpcs_93xx_sds_get_cmu_page()
and move it next to the other 93xx-shared helpers, so RTL930X can
reuse it instead of duplicating the same hw_mode-to-CMU-page switch.
Also fix the wrong -ENOTSUPP return to -EOPNOTSUPP.

Link: https://github.com/openwrt/openwrt/pull/24232
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-15 19:36:58 +02:00
George Moussalem
ad1de384bf qualcommax: ipq50xx: backport upstreamed patches for IPQ5018 PHY clocks
Backport upstreamed patches for IPQ5018 PHY RX and TX clocks support.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/24238
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-15 13:26:25 +02:00
George Moussalem
5ddbbe7670 qualcommax: backport upstreamed patches for IPQ CMN PLL support
Backport upstreamed patched for IPQ CMN PLL support.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/24238
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-15 13:26:24 +02:00
George Moussalem
0368dc896a qualcommax: backport upstreamed patches for IPQ PWM support
Backport upstreamed patches for IPQ PWM support and refresh following
patches.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/24238
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-15 13:26:24 +02:00
Jonas Jelonek
e9aa5bea9f
realtek: add PoE support for XS1930-12HP
Add support for PoE functionality using the realtek-pse-mcu driver
(kmod-pse-realtek-mcu-i2c) interfacing the on-board PoE MCU and RTL8239
PSE chips.

This doesn't include any support for PoE-related LEDs.

Link: https://github.com/openwrt/openwrt/pull/23222
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-14 23:45:30 +02:00
Jonas Jelonek
f57de02350
realtek: use realtek-pse-mcu kernel driver for PoE on XMG1915-10EP
Instead of relying on the userspace implementation, make this device the
first user of the new realtek-pse kernel driver (kmod-pse-realtek-mcu-uart)
based on the PSE-PD framework to interface PoE functionality of that
switch. Control of PoE functionality happens via ethtool / netifd now.
Drop selecting realtek-poe for this device.

This doesn't include any support for PoE-related LEDs.

Link: https://github.com/openwrt/openwrt/pull/23222
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-14 23:45:30 +02:00
Jonas Jelonek
184f70a44d
realtek: pse: add patch for sysfs detection control
Add a patch which modifies the Realtek PSE MCU driver backport to add a
sysfs control to control detection mode per port. Some older,
bad-designed devices aren't detected properly in standard mode on some
switches, though vendor firmware powers them properly. Testing shows
that enabling the detection of legacy PDs by allowing wider resistance,
more input capacitance and using a wider detection window, solves this
issue.

The legacy detection can be activated by writing 1 to
portN/detection_legacy in the device's sysfs, e.g.

  echo 1 > /sys/bus/i2c/devices/3-0020/port0/detection_legacy

This patch is kept downstream for now, upstreaming will be attempted
though it is likely that upstream prefers a generic pse-pd approach.

Link: https://github.com/openwrt/openwrt/pull/23222
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-14 23:45:29 +02:00
Jonas Jelonek
301d98f81f
realtek: add Realtek PSE MCU driver
Add pending patches which add a PSE driver for the PSE setup found on
most of Realtek-based switches. An MCU with a Realtek-defined firmware
and protocol fronts one or more PSE chips (from Realtek or Broadcom) as
a management controller.

The driver provides both I2C/SMBus and UART communication, which varies
among our supported switches. There is no need for complicated userspace
handling anymore, the PSE setup is defined in the device tree and
interfaced in userspace via ethtool, netlink and netifd support.

Those patches have progressed far enough upstream, the bindings are
reviewed. Thus, we can keep this intermediate version downstream to open
it up earlier for usage. Only little changes are expected til the final
version lands.

Link: https://github.com/openwrt/openwrt/pull/23222
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-14 23:45:29 +02:00
Jonas Jelonek
96ecf8dd24
generic: pse-pd: add patches for module-based PSE drivers
Add a backport patch and pending patches needed by upcoming PSE drivers
which are built as modules and probed after the MAC/PHY.

The net effect for module-built PSE controllers: attachment to PHYs
happens via the lifecycle notifier rather than via probe-time
-EPROBE_DEFER coupling, so the MDIO/DSA probe no longer sees any
PSE-originated -EPROBE_DEFER and the probe-retry storm is gone.

Link: https://github.com/openwrt/openwrt/pull/23222
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-14 23:45:29 +02:00
Konstantin Demin
49096a9c48
dropbear: bump to 2026.92
- update dropbear to latest stable 2026.92;
  for the changes see https://matt.ucc.asn.au/dropbear/CHANGES
- remove previously cherry-picked patches
- cherry-pick upstream patches:
  - avoid out-of-bounds read matching ecdsa curve identifier
- automatically refresh patches

Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24113
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-14 23:37:42 +02:00
Rosen Penev
c8839a94d7
lantiq: move pcie driver from patch to files
This driver is quite huge and local only. Never seems to have been
submitted upstream.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24190
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-14 23:23:32 +02:00
Shiji Yang
0745de60f4
mbedtls: fix arm32 build errors with GCC 15.3
It seems that GCC 15.3 has added additional OOB checks for ARCH arm32.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23774
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-14 22:50:47 +02:00
Christian Marangi
4fa33a0724
airoha: configure PCIe 2-lanes mode for eMMC EAGLE RFB board
The EAGLE PCIe WiFi card require PCIe0 to be in 2-lanes mode to correctly
work. Add the missing property to enable this mode and restore correctly
functionality of the WiFi card.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-07-14 14:44:13 +02:00
Christian Marangi
665cfa98de
airoha: add missing SCU phandle for PCIe 2-lanes mode
The SCU phandle is mandatory to configure PCIe MUX when PCIe 2-lanes mode
is enabled.

Add the missing property where needed.

Fixes: 7d56183d90 ("airoha: replace PCIe x2-mode patch with new pending version")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-07-14 14:41:49 +02:00
Christian Marangi
7d56183d90
airoha: replace PCIe x2-mode patch with new pending version
The current x2-mode patch is mostly an hack ported from Airoha SDK. Replace
with in favor of a new version posted upstream that better implement
handling of reset and configuring x2-mode. This now use the standard
num-lanes property and dedicated PERSTOUT resets exported by the clk
driver.

All the DTS that used x2-mode are updated.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-07-14 14:27:46 +02:00
Shiji Yang
b496e07d0f uboot-mediatek: update to v2026.07
Remove upstreamed patches:
- 002-pinctrl-mediatek-set-MT798x-rev-as-MTK_PINCTRL_V1.patch[1]
- 005-scripts-dtc-drop-yaml-in-DT-validation.patch[2]
- 006-mips-mtmips-align-MT7621-image-blobs-to-8-byte-bound.patch[3]
- 110-pinctrl-mediatek-MT7981-some-register-map-fixes.patch[4]

[1] b681f2be8c
[2] 8ef8dee4f3
[3] de79075f0f
[4] 5576522219
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2026-07-13 18:51:18 +01:00
Robert Marko
305c7599e5 qualcommax: pin EDMA processing to dedicated CPUs
IPQ60xx and IPQ807x use threaded NAPI for EDMA. The NAPI threads
inherit CPU0 affinity, and running both there can eventually starve the
RX fill ring under sustained traffic.

Add an IPQ60xx smp_affinity service and extend the existing IPQ807x
service to discover the EDMA IRQs and NAPI IDs at runtime. Place RX on
CPU1 and TX on CPU2. Retry EDMA setup asynchronously because its NAPI
threads may appear after the init service runs.

Provide the same UCI enable and logging controls on both subtargets.
IPQ50xx uses a different Ethernet driver and is left unchanged.

Link: https://github.com/openwrt/openwrt/pull/24203
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-13 12:34:33 +02:00
Robert Marko
98108710b6 qualcommax: qca-edma: enable threaded NAPI by default
Run the EDMA RX and TX NAPI poll loops in dedicated kernel threads by
default. This allows the threads and their interrupts to be placed on
separate CPUs and avoids overloading a single softirq context.

If thread creation fails, dev_set_threaded() leaves NAPI in softirq mode
and the driver reports the failure.

Link: https://github.com/openwrt/openwrt/pull/24203
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-13 12:34:33 +02:00
Robert Marko
d2d1107057 qualcommax: qca-edma: rate-limit malformed RX warnings
A malformed RX preheader can occur repeatedly after the descriptor ring
overruns. Rate-limit the warning to prevent excessive console output
from making the receive stall worse.

Decode the little-endian preheader metadata before printing it and use
consistent hexadecimal formatting.

Link: https://github.com/openwrt/openwrt/pull/24203
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-13 12:34:33 +02:00
Robert Marko
bf70dd5fb5 qualcommax: qca-edma: make RX descriptor endianness explicit
RX descriptor fields use little-endian byte order. Decode the DMA
address and status with the matching helpers before consuming them.

This makes the byte order explicit and keeps the code portable. The
conversions remain no-ops on little-endian IPQ60xx.

Link: https://github.com/openwrt/openwrt/pull/24203
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-13 12:34:33 +02:00
Jackie264
e8c74e8f1e qualcommax: ipq8072: assign NVMEM MAC addresses for Linksys MX5300
While the base NVMEM cell (hw_mac_addr) is already defined in the device tree, it was not being utilized by the actual interfaces.

This patch completes the kernel-level MAC assignment by:

1. Correcting the label-mac-device alias to point to the WAN port (&swport5), ensuring the system reports the sticker MAC address correctly.
2. Assigning the base MAC address (offset 0) to the WAN port (&swport5).
3. Assigning the base MAC address (offset 1) to the LAN ports (&swport1 - &swport4).
4. Configuring the proper NVMEM cell references for the PCIe-attached QCA9984 radio (offset 2) and the built-in ATH11K radio (offset 3).

This eliminates the need for post-boot MAC address manipulation and ensures robust, predictable interface initialization.

Signed-off-by: Jackie264 <jackie.han@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24193
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-13 11:45:11 +02:00
George Moussalem
5f467dc7dd qualcommax: ipq50xx: enable in-band-status for MXL GPY115C PHY on Linksys MX6200
The MXL GPY115C PHY requires in-band-status to be set properly detect
link status and communicate phy capabilities. So enable in-band-status
in the Linksys MX6200 device tree.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/24206
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-13 10:26:16 +02:00
Mieczyslaw Nalewaj
e5c7612b16 ramips: ethernet: ralink: refine DSA tag offload handling
DSA copies the driver features to slave device, including offload
capabilities. Once a packet is sent through a DSA slave interface,
according to its features, the kernel does not calculate checksums,
expecting that the HW will fill the gaps. DSA adds the defined DSA
tag and sends the tagged packet through the master device.

Ethertype DSA tags expect the driver to calculate checksum based on the
csum_start/csum_offset. However, mtk_soc_eth does not use that info.
It checks the network header and decides if the HW can manage that
packet, unaware that mac layer now contains an extra DSA tag. When
that tag is the Mediatek CPU tag, offload will work as expected.
When it is an incompatible DSA tag or if DSA is stacking two incompatible
DSA tags, the driver will still count on the HW offload. In this case,
packets go to the network with an incorrect checksum.

Before this change, tag_ops->proto == DSA_TAG_PROTO_MTK was used,
which disabled offload for every non-Mediatek tag, including the
RTL8367S switch's RTL8_4 tag that this fix specifically targets.

Replace the hardcoded whitelist with a blacklist scoped to the
RTL8367S: only disable offload for DSA_TAG_PROTO_RTL8_4. The RTL8_4T
(the trailing-tag variant) is left untouched because its rtl8_4t tagger
already checksums the frame in software before appending the tag.

Tags for other DSA-capable switches are left untouched by this fix
and are not claimed to be offload-safe.

Fixes: 3c0a73b4d2 ("ramips: ethernet: ralink: fix offload with diff dsa tag")
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/24064
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-12 22:08:37 +02:00
Mieczyslaw Nalewaj
7b9483b992 mediatek: ethernet: fix offload with incompatible dsa tag
DSA copies the driver features to slave device, including offload
capabilities. Once a packet is sent through a DSA slave interface,
according to its features, the kernel does not calculate checksums,
expecting that the HW will fill the gaps. DSA adds the defined DSA
tag and sends the tagged packet through the master device.

Ethertype DSA tags expect the driver to calculate checksum based on the
csum_start/csum_offset. However, mtk_eth_soc does not use that info.
mtk_eth_soc checks the network header and decides if the HW can manage
that packet, unaware that MAC layer now contains an extra DSA tag. When
that tag is the Mediatek CPU tag, offload will work as expected.
When it is an incompatible DSA tag or if DSA is stacking two incompatible
DSA tags, the driver will still count on the HW offload. In this case,
packets are sent to the network with an incorrect checksum.

This patch adds an extra check that disables offloading only for the
RTL8367S switch's RTL8_4 tag, which is known to break MTK checksum
offload. The RTL8_4T (the trailing-tag variant) is not affected because
its rtl8_4t tagger already checksums the frame in software before appending
the tag, so ip_summed is no longer CHECKSUM_PARTIAL by the time this driver
sees it.

This approach avoids an overly conservative whitelist which would
disable offload for every non-Mediatek tag, regardless of whether
that tag is actually incompatible with MTK checksum offload.

Tags for other DSA-capable switches are left untouched by this fix
and are not claimed to be offload-safe.

Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Signed-off-by: Schneider Azima <Schneider-Azima12@protonmail.com>
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/23996
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-12 21:29:45 +02:00
Michael Pratt
a54eb7297f tools: gnulib: rename macro file for cond module
It was reported that cond.m4 in gnulib is a name clash with
cond.m4 provided by Automake, where they are for completely
different purposes instead of different versions of the same macros.

A quick survey of all the macro files in the build directory reveals that
this is the only case where the gnulib copy is signficantly smaller
than the rest of the copies of the same macro name
distributed in the rest of the build system,
and the only one that name clashes with Automake.

A previous fix added a prefix to all macros from gnulib,
but the name must match how it is described in the respective modules files
as a functional requirement to build certain tools for certain (older) hosts,
so patch the problematic module instead of renaming all macros from gnulib.

Ref: c820f097e0 ("tools: gnulib: install .m4 file with gl_ prefix")
Ref: 78a8cfb577 ("tools: gnulib: fix broken install of .m4 files")
Reported-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Link: https://github.com/openwrt/openwrt/pull/24136
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-12 11:26:53 +02:00
Michael Pratt
cda598a595 Revert "tools: gnulib: install .m4 file with gl_ prefix"
A more proper fix follows this revert.

This reverts commit c820f097e0.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
Link: https://github.com/openwrt/openwrt/pull/24136
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-12 11:26:53 +02:00
Michael Pratt
773a46cc7e Revert "tools: gnulib: fix broken install of .m4 files"
A more proper fix follows these reverts.

This reverts commit 78a8cfb577.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
Link: https://github.com/openwrt/openwrt/pull/24136
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-12 11:26:52 +02:00
Shiji Yang
7ff96bf05c
lantiq: use gpiod API for PCIe GPIO reset
This is the recommended way for the OF based platform. According to
the original patch, set GPIO to low level to assert the reset, set
GPIO to high level to deassert. Hence, adjust the dts GPIO polarity
to active-low.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18948
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-12 00:12:30 +02:00
Shiji Yang
8b5702e328
tools/fakeroot: update to 2.1.3
Changelog:
https://salsa.debian.org/clint/fakeroot/-/blob/debian/2.1.3-1/debian/changelog?ref_type=tags

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/24140
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-11 23:44:48 +02:00
Rosen Penev
594b4aef09
gpio-button-hotplug: don't include of_irq.h
Not used. Add the proper headers.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24177
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-11 23:43:29 +02:00
Rosen Penev
5de5bb79fd
gpio-button-hotplug: remove pointless void cast
void pointer casting like this is unnecessary.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24177
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-11 23:43:28 +02:00
Rosen Penev
a88866c5c4
treewide: remove weird double void casting
This must be some older compiler and kernel warning.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24177
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-11 23:43:28 +02:00
Goetz Goerisch
80c8eceeda
ipq40xx: drop support for kernel 6.12
Drops support for kernel version 6.12 and corresponding patches

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24128
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-11 23:42:10 +02:00
Goetz Goerisch
fa71de86ce
ipq40xx: switch to kernel 6.18
Switch default kernel verison to 6.18

build-tested: ipq40xx/chromium
run-tested: ipq40xx/chromium

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24128
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-11 23:42:10 +02:00
Robert Marko
412526f0fe Revert "generic: permit support of standalone PCS for external kernel module"
This reverts commit 14beb3408d.

It turned out not to be required.

Link: https://github.com/openwrt/openwrt/pull/22381
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-11 22:26:44 +02:00
Robert Marko
d0d71dcc09 kernel: drop qca-nss-dp and qca-ssdk
Now that all targets using NSS-DP and SSDK have been converted, we can
finally drop these.

Signed-off-by: Robert Marko <robimarko@gmail.com>Link: https://github.com/openwrt/openwrt/pull/22381
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-11 22:26:44 +02:00
George Moussalem
af17ab0a3f qualcommax: ipq50xx: convert to UNIPHY PCS and DWMAC stack
Convert to UNIPHY PCS and DWMAC ethernet stack from qca-ssdk.

Since we are not using SSDK anymore, we dont need to patch in the UNIPHY
clock names anymore so drop the patch.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22381
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-11 22:26:44 +02:00
Robert Marko
79443bf6c9 qualcommax: ipq50xx: support interface renaming
Import the interface renaming script from filogic so we can use DTS
label or openwrt,netdev-name to name interfaces from DTS on non DSA
ports.

Link: https://github.com/openwrt/openwrt/pull/22381
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-11 22:26:44 +02:00
Robert Marko
f50435627d qualcommax: ipq60xx/ipq807x: convert to PPE networking stack
Convert IPQ60xx and IPQ807x devices from the old NSS dataplane to the new
PPE stack.

IPQ50xx is not yet supported.

Link: https://github.com/openwrt/openwrt/pull/22381
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-11 22:26:43 +02:00
John Crispin
16d110aee3 qualcommax: replace NSS-DP DTSI with PPE DTSI
Add DTSI files defining EDMA, PPE, and UNIPHY nodes for the new PPE
driver bindings on IPQ5018, IPQ6018 and IPQ8074 platforms.

IPQ5018 requires a patch for UNIPHY node as its cmn PLL node is upstream.

These replace the existing NSS-DP ones.

Signed-off-by: John Crispin <john@phrozen.org>
[IPQ5018]
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
[IPQ6018 and IPQ8074]
Link: https://github.com/openwrt/openwrt/pull/22381
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-11 22:26:43 +02:00
George Moussalem
e80dfc0639 qualcommax: ipq50xx: Enable RX and TX clocks for IPQ5018 GEPHY
Clocks are disabled by default for IPQ5018 GEPHY, but they are required
for the PHY to function properly. So let's enable the RX and TX clocks.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22381
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-11 22:26:43 +02:00
Robert Marko
b6fac1dd4d qualcommax: set USXGMII MAC autoneg bit on Aquantia PHY-s
Now that we are not using SSDK anymore, we must set the USXGMII MAC autoneg
bit manually, as otherwise MAC autonegotiation does not work.

Link: https://github.com/openwrt/openwrt/pull/22381
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-11 22:26:43 +02:00
George Moussalem
b910cbfc0c qualcommax: ipq50xx: add Qualcomm IPQ5018 DWMAC driver
Add IPQ5018 DWMAC driver. IP version of this Synopsys DWMAC is 3.7.

This Qualcomm IPQ5018 specific MAC implementation supports link speeds
of 10HD/FD, 100HD/FD, 1,000HD/FD, and 2500FD and SGMII and 2500BASEX
interface modes.

The driver supports the MAC be attached directly to a PHY or via an
optional PCS to a switch or PHY.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22381
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-11 22:26:43 +02:00
John Crispin
bdb0b722b7 qualcommax: add EDMA driver
EDMA dataplane ethernet driver for Qualcomm IPQ platforms.

Signed-off-by: John Crispin <john@phrozen.org>
[ rework Makefile for external repository, dependency ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
[ rework for in-tree ]
Link: https://github.com/openwrt/openwrt/pull/22381
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-11 22:26:43 +02:00
John Crispin
142104bb90 qualcommax: add PPE driver
PPE switch driver for Qualcomm IPQ platforms, depends on EDMA and
UNIPHY PCS.

Signed-off-by: John Crispin <john@phrozen.org>
[ rework Makefile for external repository, dependency ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
[ bring PPE in-tree ]
Link: https://github.com/openwrt/openwrt/pull/22381
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-11 22:26:43 +02:00