Commit Graph

227 Commits

Author SHA1 Message Date
Shiji Yang
8f638f9366 kernel: bump 6.12 to 6.12.91
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.91

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

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

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

All other patches are automatically refreshed.

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

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23444
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 21:02:13 +02:00
Lorenzo Bianconi
e1915674ab
airoha: Introduce support multi-serdes on the same GDM port
EN7581 or AN7583 SoCs support connecting multiple external SerDes (e.g.
Ethernet or USB SerDes) to GDM3 or GDM4 ports via a hw arbiter that
manages the traffic in a TDM manner. As a result multiple net_devices can
connect to the same GDM{3,4} port and there is a theoretical "1:n"
relation between GDM ports and net_devices.

           ┌─────────────────────────────────┐
           │                                 │    ┌──────┐
           │                         P1 GDM1 ├────►MT7530│
           │                                 │    └──────┘
           │                                 │      ETH0 (DSA conduit)
           │                                 │
           │              PSE/FE             │
           │                                 │
           │                                 │
           │                                 │    ┌─────┐
           │                         P0 CDM1 ├────►QDMA0│
           │  P4                     P9 GDM4 │    └─────┘
           └──┬─────────────────────────┬────┘
              │                         │
           ┌──▼──┐                 ┌────▼────┐
           │ PPE │                 │   ARB   │
           └─────┘                 └─┬─────┬─┘
                                     │     │
                                  ┌──▼──┐┌─▼───┐
                                  │ ETH ││ USB │
                                  └─────┘└─────┘
                                   ETH1   ETH2

This series introduces support for multiple net_devices connected to the
same Frame Engine (FE) GDM port (GDM3 or GDM4) via an external hw
arbiter. Please note GDM1 or GDM2 does not support the connection with
the external arbiter.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://github.com/openwrt/openwrt/pull/23481
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-05-25 12:41:35 +02:00
Lorenzo Bianconi
86ac8c2910
airoha: dts: Enable in-band status for PHY as21xxx
PHY as21xxx used on Airoha EN7581 GDM4 requires in-band status control.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://github.com/openwrt/openwrt/pull/23481
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-05-25 12:41:34 +02:00
Christian Marangi
5b25d4235d
airoha: backport GDM2 loopback fixup for Ethernet driver
Backport GDM2 loopback fixup for Ethernet driver. This should be the last
patch before introduction of Multi-Serdes support series.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-05-22 12:43:00 +02:00
Lorenzo Bianconi
9e512f7f0b
airoha: Do not allow to disable LRO if the QDMA is shared
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://github.com/openwrt/openwrt/pull/23439
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-05-20 19:45:11 +02:00
Lorenzo Bianconi
8bd9f4fca1
net: airoha: Introduce LRO TCP support for RX queues 19-12
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://github.com/openwrt/openwrt/pull/23431
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-05-19 16:07:08 +02:00
Christian Marangi
627cd79e1c
generic: update pending PCS patch with .fill_available_pcs OP
While implementing standalone PCS support for DSA, it was found that making
the MAC driver passing the available_pcs array is limiting and problematic
for memory handling and allocation. To better handle this, change the logic
and make phylink allocate the struct and make the MAC driver implement a
function in phylink_config .fill_available_pcs to fill the PCS array.

Update the Airoha and Mediatek driver to reflect this new implementation.

Link: https://github.com/openwrt/openwrt/pull/23413
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-05-18 23:32:34 +02:00
Lorenzo Bianconi
a7b5bb233f
airoha: Add the capability to offload dscp field via netfilter flowtable
Introduce the capability to hw offload via netfilter flowtable APIs the
IP TOS info. Implement the sw offloading for DSCP field via the
netfilter flowtable APIs.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://github.com/openwrt/openwrt/pull/23423
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-05-18 15:51:29 +02:00
Christian Marangi
dda777dd44
airoha: backport upstream fix for Airoha reported bug for ethernet
Airoha reported some additional bug and fixes were pushed for the ethernet
driver. Backport the additional patch merged upstream and refresh all
affected patch.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-05-16 12:11:52 +02:00
Daniel Pawlik
3cc55ea28c
airoha: use in-band phylink for RTL8261N USXGMII ports in W1700k
After the standalone Airoha PCS driver and pcs-handle binding, wan (gdm2)
and lan2 (gdm4) netdevs probe but do not pass traffic.

Similar to the Aeonsemi PHY it seems also the RTL PHY needs in-band to the
PCS for USXGMII to work correctly. This still needs to be better
investigated but in the meantime lets apply this workaround to restore
traffic.

Signed-off-by: Daniel Pawlik <pawlik.dan@gmail.com>
[ improve commit description ]
Link: https://github.com/openwrt/openwrt/pull/23383
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-05-15 19:32:47 +02:00
Christian Marangi
89d8dc13d0
airoha: an7581: move internal PHY interrupt to specific device DTS
It was discovered that the internal PHY interrupt are not always connected
and PHY link up/down is not correctly detected.

This is the case of the Nokia Valyrian board that suffer from this problem.

To handle this, drop the internal PHY interrupt property from DTSI and add
it only to the Gemtek W1700K DTS where it was reported to work correctly.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-05-14 22:02:00 +02:00
Daniel Pawlik
07f140f633 airoha: w1700k: drop RTL8261N phy interrupt
The AN7531N SoC has currently problems communicating using `phy_mmd_...`
when irqbalance is active. But when there is a communication error in the
interrupt handler, the interrupt will be disabled. This can usually be seen
in the logs as:

    irq 53: nobody cared (try booting with the "irqpoll" option)
    CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Tainted: G       O   6.12.77 #0
    Tainted: [O]=OOT_MODULE
    Hardware name: Gemtek W1700K (OpenWrt U-Boot layout) (DT)
    Call trace:
     dump_backtrace.part.0+0xbc/0xcc
     show_stack+0x14/0x20
     dump_stack_lvl+0x58/0x74
     dump_stack+0x14/0x1c
     __report_bad_irq+0x48/0xf8
     note_interrupt+0x2f4/0x340
     handle_irq_event+0xac/0xe0
     handle_simple_irq+0xa8/0xfc
     handle_irq_desc+0x30/0x54
     generic_handle_irq+0x1c/0x24
     airoha_irq_handler+0x90/0xe0
     __handle_irq_event_percpu+0x44/0x11c
     handle_irq_event+0x40/0xe0
     handle_fasteoi_irq+0xb4/0x240
     handle_irq_desc+0x30/0x54
     generic_handle_domain_irq+0x18/0x20
     gic_handle_irq+0x60/0xec
     do_interrupt_handler+0x4c/0x84
     el1_interrupt+0x30/0x4c
     el1h_64_irq_handler+0x14/0x1c
     el1h_64_irq+0x68/0x6c
     handle_softirqs+0x98/0x210
     __do_softirq+0x10/0x18
     ____do_softirq+0xc/0x20
     call_on_irq_stack+0x30/0x50
     do_softirq_own_stack+0x18/0x20
     irq_exit_rcu+0x80/0xb8
     el1_interrupt+0x34/0x4c
     el1h_64_irq_handler+0x14/0x1c
     el1h_64_irq+0x68/0x6c
     default_idle_call+0x24/0x34
     do_idle+0x98/0xf0
     cpu_startup_entry+0x30/0x38
     kernel_init+0x0/0x130
     console_on_rootfs+0x0/0x64
     __primary_switched+0x80/0x88
    handlers:
    [<000000002b75be58>] irq_default_primary_handler threaded
                            [<000000006d87ada6>] phy_interrupt
    Disabling IRQ #53

This is not a problem with the rtl8261n driver because it is not
registering an interrupt handler. But with the kernel realtek PHY driver, a
interrupt handler is registered which can trigger this problem on bootup.

To avoid is, disable the interrupt and use the PHY polling mode also wit
the upcoming realtek PHY driver support for RTL8261.

Co-authored-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Co-authored-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Daniel Pawlik <pawlik.dan@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23078
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-14 19:30:56 +02:00
Ryan Chen
7be78e718e airoha: an7581: w1700k: fix RTL8261N PHY boot failure with increased reset timing
Some W1700K and XR1701G boards with Realtek RTL8261N/RTL8261BE 10G PHYs
fail to bring up the USXGMII link on cold boot. The PHY enters a bad
state during initialization and the link stays down permanently until
power cycle.

Root cause: the GPIO reset assert/deassert timing (40ms/150ms) is too
short for the RTL8261N to complete its internal firmware load. The OEM
firmware uses 200ms/200ms.

Increase both PHY reset timings to 200ms/200ms to match OEM values.
Confirmed to fix intermittent boot failures on both W1700K (Gemtek)
and XR1701G boards.

Signed-off-by: Ryan Chen <rchen14b@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22564
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-14 19:23:54 +02:00
Christian Marangi
953f1aaa93
airoha: update ethernet node for new PCS implementation
With new PCS implementation, the pcs property needs to be updated to the
new name of 'pcs-handle' to correctly work with PCS fwnode
consumer/provider.

Fixes: 4d5f579a81 ("airoha: update PCS node in DTSI for new PCS implementation")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-05-13 13:38:46 +02:00
Christian Marangi
4d5f579a81
airoha: update PCS node in DTSI for new PCS implementation
Update the PCS node in AN7581/AN7583 .dtsi for new PCS implementation.

The #pcs-cell is now needed for the produced/consumer implementation.
Also add entry for USB and PCIe PCS for AN7581 but keep them disabled
by default. USB and PCIe PCS for AN7583 node will be added later once PHY
code will stabilize.

Link: https://github.com/openwrt/openwrt/pull/23271
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-05-13 00:19:31 +02:00
Christian Marangi
c5427d4cbe
airoha: migrate to PCS standalone implementation
Migrate Airoha PCS/Ethernet pending patch to PCS standalone implementation.
This new implementation drop the hack of reading and accessing the dev from
a different device and drop the legacy pcs_create/drop implementation in
favor of fwnode one with a provider/consumer approach.

This is also to sync with the proposed series posted upstream for revision.
The new PCS patch for AN7581 implement full support for USB and PCIe PCS.

Link: https://github.com/openwrt/openwrt/pull/23271
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-05-13 00:19:30 +02:00
Christian Marangi
e90f3f1f5a
generic: 6.12: backport PCS standalone feature
Backport pending PCS standalone feature for kernel 6.12 and all the
required dependency patch.

All affected patch automatically refreshed.

Link: https://github.com/openwrt/openwrt/pull/23271
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-05-13 00:19:29 +02:00
Russell Senior
ee771d3dd0 airoha: increase the size of reserved_bmt partition
The vendor firmware checks for a bmt header in the last 528 erase blocks
of flash. The OpenWrt partition table did not respect that requirement,
and therefore the vendor and openwrt chainloader fight over those blocks
on every boot, potentially corrupting data stored in UBI blocks there.
This commit increases the size of the reserved_bmt partition to avoid
that fight.

Although the vendor bootloader only seems to touch the final 250 erase
blocks[1], the original vendor firmware system partition ended at
0x1be00000[2], so to be conservative, the consensus is to use that as
the end of mtd2 (ubi) partition and leave the last 528 blocks for mtd3
(reserved_bmt).

From https://openwrt.org/toh/gemtek/mxf-w1700k:
[1] OEM bootlog: [    5.324337] bmt pool size: 250
[2] OEM bootlog: [    5.478927] 0x000008600000-0x00001be00000 : "system"

Adds a compat_version to warn users to re-install to accomodate the
shrunken mtd2 ubi partition.

Fixed two nits suggested by Claude, zero padding a hex value and removed
an extra space.

Removed the wildcard setting of compat_version for other boards, as
suggested by Robert Marko, set compat_version only for the w1700k.

Reported-by: Loïc Yhuel <loic.yhuel@gmail.com>
Signed-off-by: Russell Senior <russell@personaltelco.net>
Link: https://github.com/openwrt/openwrt/pull/23061
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-05-11 14:43:01 +02:00
Aleksander Jan Bajkowski
6594cbabc5 airoha: disable IPSEC
Disable IPSEC by default. If needed, install required packages.

Reduce compressed image size by 80 kB.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/23269
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-10 23:17:47 +02:00
John Audia
8d827ccc93 kernel: bump 6.12 to 6.12.81
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.81

Removed upstreamed:
  ramips/patches-6.12/100-mips-ralink-update-CPU-clock-index.patch[1]
  airoha/patches-6.12/135-v7.1-net-airoha-Add-missing-cleanup-bits-in-airoha_qdma_c.patch[2]

Manually rebased:
  airoha/patches-6.12/048-01-v6.15-net-airoha-Move-airoha_eth-driver-in-a-dedicated-fol.patch

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.81&id=e8fd60338545f4bc9c23d3d4686c88324aa76fb8
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.81&id=cce5027f9dc3a333ccbcd59a2c3ab2906bd08d30

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22913
[Modify airoha move patch]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-30 01:31:44 +02:00
Christian Marangi
1b9922d5e8
airoha: backport fixes merged in net upstream tree
Airoha reported some bug in the TX/RX descriptor handling and PPE. Backport
the fix for such bug merged in net staging tree.

It's expected that these patch will be dropped in future minor kernel
version when submitted to stable staging tree.

All affected patch automatically refreshed.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-04-28 20:09:03 +02:00
Chukun Pan
5dbe94d972 airoha: disable afe by default for an7581
The audio should only be enabled when the sound
node is enabled. This fixes the following error:

an7581-audio 1fbe2200.afe: probe with driver an7581-audio failed with error -2

Fixes: 7b55651 ("airoha: enable I2S sound driver and add nodes for eMMC RFB board")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/22660
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-26 10:17:09 +02:00
Christian Marangi
d9f2898ab7
airoha: an7581: fix default package selection for Kite EVB device
The Kite EVB device wrongly select an invalid package for NPU firmware
where the correct one should be the airoha-en7581-npu-firmware one.

Fix the wrong package to restore compilation of the Airoha target.

Fixes: 0cf516751a ("airoha: an7581: generalize eMMC DTS and add Kite variant")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-04-23 17:04:33 +02:00
Christian Marangi
70ad03e0ac
airoha: backport optimization in QDMA rx queue descriptor setup
Backport patch merged upstream that optimize the QDMA rx queue descriptor
setup by configuring the CPU IDX only when needed.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-04-15 14:46:25 +02:00
Christian Marangi
3187113c8a
airoha: fix compilation error from VIP backport patch
It seems that upstream one of the patch had a compilation erro caused by
merging net and net-next and it was fixed silently in a merge commit.

Fix this error in the affected patch.

Fixes: 155c610962 ("airoha: backport additional patch for memory leak and multi-serdes rework")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-04-15 14:39:35 +02:00
Christian Marangi
155c610962
airoha: backport additional patch for memory leak and multi-serdes rework
Backport upstream memory leak patch merged upstream and even more
preliminary patch for multi-serdes rewrk.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-04-15 10:36:44 +02:00
Christian Marangi
418eed6d59
airoha: an7581: update partition table for EVB DTS
The Airoha AN7581 EVB board switched to full UBI support. Update the
partition table to reflect the new implementation.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-04-09 11:51:48 +02:00
Christian Marangi
0cf516751a
airoha: an7581: generalize eMMC DTS and add Kite variant
Generalize the eMMC DTS to common node and add a variant with the Kite WiFi
chip installed. Also rename the eMMC model name and add the Eagle name to
it.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-04-09 11:49:26 +02:00
Christian Marangi
f075c1148d
airoha: an7581: add specific NPU dtsi and update eMMC and W1700K
Add specific DTSI for NPU firmware based on the supported WiFi chip and
update the supported device by including the relevant new DTSI.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-04-09 11:38:40 +02:00
Shiji Yang
c3109a565c kernel: 6.12: move CONFIG_CRYPTO_LIB_SHA1 to generic
This symbol is selected by CONFIG_BPF, which was already enabled
on generic config-6.12.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 01:38:41 +02:00
Shiji Yang
499886de05 kernel: enable CRYPTO_RNG2 and CRYPTO_SIG2 by default
These two symbols are selected by CONFIG_CRYPTO_MANAGER2[1-2], which
was already enabled on generic config-{6.12,6.18}.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=fb28fabfad332a731423ffdd2be122b73ea90f1e
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=6cb8815f41a966b217c0d9826c592254d72dcc31
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 01:38:41 +02:00
Shiji Yang
14e082f16a kernel: reorganize config files
Automatically refreshed by `./scripts/kconfig-reorder.sh`.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 01:38:41 +02:00
Christian Marangi
2f52b8f724
airoha: backport minor fixup for Ethernet driver on Offload Scenario
Backport minor fixup merged upstream for Ethernet driver on Offload
Scenario. This is to continue the effort of keeping the Airoha Ethernet
driver synced with the upstream version.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-04-01 09:08:57 +02:00
John Audia
bb3da35c90 kernel: bump 6.12 to 6.12.78
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.78

Removed upstreamed:
  generic/pending-6.12/620-net-sfp-improve-Huawei-MA5671a-fixup.patch[1]
  generic/pending-6.12/704-net-phy-register-phy-led_triggers-during-probe-to-av.patch[2]
  airoha/patches-6.12/014-01-v6.13-net-airoha-fix-PSE-memory-configuration-in-airoha_fe.patch[3]
  airoha/patches-6.12/014-02-v6.13-net-airoha-read-default-PSE-reserved-pages-value-bef.patch[4]
  airoha/patches-6.12/031-01-v6.13-net-airoha-Read-completion-queue-data-in-airoha_qdma.patch[5]
  airoha/patches-6.12/128-v7.1-net-airoha-Remove-airoha_dev_stop-in-airoha_remove.patch[6]

Manually rebased:
  airoha/patches-6.12/048-01-v6.15-net-airoha-Move-airoha_eth-driver-in-a-dedicated-fol.patch

All patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.78&id=bbdf6d378e1ddbeadc04c57b182aadefcc3aa917
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.78&id=241cd64cf2e32b28ead151b1795cd8fef2b6e482
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.78&id=a04ac7bc97afe313e10ae4c73797c668dee47c5c
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.78&id=a9ed47c3663219e20406d566f02809de05373a42
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.78&id=4cba4373abac7ba27fdb33057a29b92efa8fd15d
6. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.78&id=652ec118d8dc1b088e685d5562995b6665463771

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22607
[Fix 048-01-v6.15-net-airoha-Move-airoha_eth-driver-in-a-dedicated-fol]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-03-30 13:42:44 +02:00
Christian Marangi
0bf1870245
airoha: an7581: drop airoha,x2-mode related property and enable in device
Drop airoha,x2-mode related property from the DTSI and enable them only in
the relevant devices that use a PCIe0 line. x2-mode should be enabled only
for the WiFi card that would use it as it might cause problem for WiFi card
that expect 2 single PCIe x1 line instead of a single PCIe x2 line.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-30 12:17:50 +02:00
Christian Marangi
25de25827e
airoha: backport additional rework in preparation for multi-serdes support
Backport additional upstream patch in preparation for multi-serdes and
proper PCS support.

Automatically refresh all affected patch.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-24 19:35:02 +01:00
John Audia
d0784a69dd kernel: bump 6.12 to 6.12.75
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.75

Removed upstream:
  bcm27xx/patches-6.12/950-0225-media-i2c-ov5647-Correct-pixel-array-offset.patch[1]
  bcm27xx/patches-6.12/950-0226-media-i2c-ov5647-Correct-minimum-VBLANK-value.patch[2]
  bcm27xx/patches-6.12/950-0248-media-i2c-ov5647-Sensor-should-report-RAW-color-spac.patch[3]
  qualcommax/patches-6.12/0074-v6.20-clk-qcom-gcc-ipq5018-flag-sleep-clock-as-critical.patch[4]

Manually rebased:
  bcm27xx/patches-6.12/950-0262-mfd-simple-mfd-i2c-Add-configuration-for-RPi-POE-HAT.patch
  bcm27xx/patches-6.12/950-0071-drivers-mfd-sensehat-Add-Raspberry-Pi-Sense-HAT-to-s.patch
  bcm27xx/patches-6.12/950-0516-media-i2c-ov5647-Add-V4L2_CID_LINK_FREQUENCY-control.patch
  lantiq/patches-6.12/101-find_active_root.patch

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.75&id=58f1767ad5c9eda3dd0befddc1843259d46d64fa
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.75&id=ff65571ffae52b65577121e7696bf22156e1928a
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.75&id=fbf2a108ed5eb1c896d3f354bd05314c2e22e78f
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.75&id=b109dd4970a0fc89d54b1198b163f86125dd2977

Build system: x86/64
Build-tested: flogic/glinet_gl-mt6000
Run-tested: flogic/glinet_gl-mt6000

Co-authored-by: Shiji Yang <yangshiji66@outlook.com>
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22276
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-22 12:00:31 +01:00
Lorenzo Bianconi
c5a8ddd0ac
airoha: backport some missing airoha_eth upstream patches
Backport more upstream patch to include all the fixes pushed upstream and
add all the preliminary patch for multi-serdes support.

While at it also move 2 patch in the 6xx numbering to the 000-1xx backport
numbering to keep things tidy.

All the affected patch manually and automatically refreshed.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
[ add comment, renumber patch, add more patch, fix PCS patch ]
Link: https://github.com/openwrt/openwrt/pull/22479
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-20 13:21:24 +01:00
Christian Marangi
9b21478d96
airoha: renumber ASoC and PCS patch for more backport patch
Renumber ASoC and PCS patch to 2xx and 3xx numbering to leave space for
more backport patch in the 000-1xx numbering.

Link: https://github.com/openwrt/openwrt/pull/22479
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-20 13:21:23 +01:00
Lorenzo Bianconi
1f41e2ce27
airoha: Add PCIe sub-nodes for NPU wifi offloading
Introduce missing PCIe sub-nodes required to enable NPU wifi offloading
on Airoha AN7581 SoC.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://github.com/openwrt/openwrt/pull/22516
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-20 11:08:54 +01:00
Christian Marangi
8364cb4baa
airoha: an7581: fix interface selection script for Nokia Valyrian
While rebasing, a typo was made where the ';;' terminator was omitted in
the 02_network script. Add it to restore script functionality.

Fixes: e210d994fa ("airoha: an7581: add Nokia Valyrian support")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-18 09:29:01 +01:00
Christian Marangi
e210d994fa
airoha: an7581: add Nokia Valyrian support
Add support for Nokia Valyrian based on Airoha AN7581 SoC.

Device specification
--------------------
SoC Type:	Airoha AN7581
RAM:		2x DDR4 Nanya NT5AD256M16E4-JR (1GB)
Flash:		eMMC Macronix MX52LM08A11XVW (1GB)
Ethernet:	3x gigabit via AN7581, 1x 10g via AS21x1x, 1x SFP cage
Wi-Fi:		MT7996 - BE19000
LEDs:		11 LED via 2x 74HC595 shift register
Button:		Reset, WPS, WiFi
USB ports:	1x 2.0
Miscellaneous:  1x Power Monitor via RTQ6059, 2x FXS port

Device is unfused and is originally flashed with Airoha SDK bootloader
that require signed images.

Bootloader is username/password protected and use the leaked auth combo
that can be found online.

From the bootloadet instruction on how to flash custom bootloader are:
1. mmc erase 0 0x800
2. tftpboot 192.168.1.10:airoha/an7581/openwrt-airoha-an7581-nokia_valyrian-preloader.bin
3. mmc write $loadaddr 0x4 0xfc
4. tftpboot 192.168.1.10:airoha/an7581/openwrt-airoha-an7581-nokia_valyrian-bl31-uboot.fip
5. mmc write $loadaddr 0x100 0x700

It's also possible to use the Emergency Recovery procedure:
From powered OFF device:
1. Keep the reset button pressed (middle button)
2. Power on the device
3. Notice the "Press x" prompt
4. Press x
5. Notice the "C" char waiting for XMODEM load
6. Load the preloader binary with XMODEM protocol
7. Notice the "Press x to load BL31 + U-Boot FIP"
8. Press x
9. Notice the "C" char waiting for XMODEM load
10. Load the fip binary with XMODEM protocol
11. You are now in U-Boot loaded from serial
12. Follow normal procedure to flash bootloader

Due to BOOTROM limitation. the device can't have a standard GPT table
implementation. Because of this fixed-partitions are used to handle this.

U-Boot still doesn't have support for this (it's planned) and currently to flash
and load and image it's needed to write and read from static address in eMMC.

The GPT partition table follow Prpl guidelines with dual partition table with
kernel and rootfs split.

The address for kernel is 0xb00000 and the address for rootfs is 0x1b00000.

Link: https://github.com/openwrt/openwrt/pull/21761
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-17 14:44:44 +01:00
Kenneth Kasilag
7d2c244646 airoha: rename kmod-pwm-an7581 to kmod-pwm-airoha
Certain targets for an7581 and an7583 referred to kmod-pwm-airoha;
however in the target modules makefile the module is referred to
as kmod-pwm-an7581, causing buildbot to fail.

Change the name of kmod-pwm-an7581 to kmod-pwm-airoha to resolve this.

Signed-off-by: Kenneth Kasilag <kenneth@kasilag.me>
Link: https://github.com/openwrt/openwrt/pull/22445
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-16 17:42:17 +01:00
Andrew LaMarche
708883c9d2 airoha: an7581: fix w1700k fan script
W1700K fan script is missing the #!/bin/sh /etc/rc.common shebang and
requires execution bits set. Also, set the fallback to hwmon 3 instead
of 5, since the new RTL PHY driver was not merged.

Signed-off-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22391
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-16 09:42:13 +01:00
Kenneth Kasilag
53f477f034 airoha: automatically refresh patches
CI is currently failing due to these four patches.

Automatically refreshed with `make target/linux/refresh`.

Signed-off-by: Kenneth Kasilag <kenneth@kasilag.me>
Link: https://github.com/openwrt/openwrt/pull/22399
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-14 21:35:20 +01:00
Andrew LaMarche
87c2c474f2
airoha: an7581: remove source-only
Remove source-only from an7581.

Signed-off-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17869
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-11 00:42:36 +01:00
Andrew LaMarche
db4c1419db
airoha: add leds-gpio and gpio-button-hotplug to default packages
Most, if not all Airoha devices will have LEDs and buttons. Add them to
default packages.

Signed-off-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17869
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-11 00:42:35 +01:00
Andrew LaMarche
449c8d8dcb
airoha: an7581: add uboot-envtools to default packages
Add uboot-envtools to default packages to facilitate modifying the
u-boot environment.

Signed-off-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17869
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-11 00:42:35 +01:00
Andrew LaMarche
99307582de
airoha: add support for Gemtek W1700K
This commit adds support for Gemtek (Centurylink/Lumen/Quantum Fiber)
W1700K.

Device specification
--------------------
SoC Type:	Airoha AN7581
RAM:		ESMT M16U8G16512A (2GB)
Flash:		Winbond 25N04KVZEIR (512MB)
Ethernet:	2x gigabit via AN7581, 2x 10g via RTL8261N
Wi-Fi:		MT7996 - BE19000
LEDs:		1 LED, power/status
Button:		Reset
USB ports:	None
Bootloader:	U-Boot 2014.04-rc1 (Jun 12 2024 - 08:14:34) AXON 2.0
Fan:		1x controlled by Nuvoton NCT7511Y

This device is pretty useless with the stock firmware as it requires an
account to completely set it up. Additionally, the vendor bootloader is
signed and uses Airoha/Mediatek's BBT/BMT for bad block management on
the flash. It does not support UBI, thus kernel updates are subject to
BMT/BBT which OpenWrt does not support. In turn, if a kernel update
happens and a block is marked bad in the process, the device will fail
to boot and will need to be recovered via serial.

The workaround is to chainload U-Boot in place of the kernel, as it
should not need frequent updates and thus should not cause BBT/BMT to
misbehave and soft-brick the device. Upstream U-Boot supports loading
a FIT image from UBI, so we create a UBI partition for the new u-boot
env, FIT image and factory data. This way, bad blocks are managed by UBI
instead, which will not soft-brick the device should a block be marked
bad during a normal OpenWrt update. Users wishing to update U-Boot can
do so, but should be prepared to recover if a block goes bad.

Because the device is not useful with stock firmware, this is a one-way
ticket for most users and reverting will not be documented.

The following steps can be used to install OpenWrt on the W1700K.

Connect to serial console. There is a Torx T10 screw underneath the QR
code printed onto the label. Then, pry between the gray and white
plastic, starting by the ports on the back. There are clips arount the
entire device. Starting closest to the screw next to the UART header,
TX - GND - VCC - N/A - RX. The bootloader can be interrupted by
pressing any key.

Configuring Vendor Bootloader and Installing U-Boot Chainloader:
The bootloader's default bootcmd will only run a signed image. However,
we can still bootm our own image from flash.

NOTE: The vendor's ethernet drivers are flaky. You may have to reboot
and try the tftpboot part several times for it to work.

- setenv one flash read 0x600000 0x1000000 \$loadaddr
- setenv two "; bootm"
- setenv bootcmd "$one$two"
- setenv one
- setenv two
- saveenv
- setenv serverip 192.168.1.10; setenv ipaddr 192.168.1.1; tftpboot
0x89000000 openwrt-airoha-an7581-gemtek_w1700k-ubi-chainload-uboot.itb
- flash erase 0x600000 0x100000
- flash write 0x600000 0x100000 0x89000000
- reset

The device will now reboot into the U-Boot chainloader.

Loading the W1700K UBI Installer:
The installer can be downloaded at
https://github.com/hurrian/w1700k-ubi-installer/releases

- Boot the installer via the TFTP option in the U-Boot menu. This
  process is automatic, though you may be prompted to answer some
  questions.
- Once it is done, you may upgrade to your preferred build.
- For more information: https://github.com/hurrian/w1700k-ubi-installer

For those wishing to explore the stock firmware:

Rooting Stock FW (for making backups, recommended):
- Boot the router and watch serial console until presented with failsafe
  mode. Enter it (f + enter).
- mount_root
- Change the root password (passwd).
- Open /etc/config/axon_platform_manager and set sshServerEnable,
  localAccessEnable and remoteAccessEnable to 1.
- Search for "SSH". You'll find a long string with 3 matches such as
  Enabled%25252c1%25252cSSH%Drop. Change any instances of "Disabled"
  preceding SSH to "Enabled" and any instances of "Drop" to "Accept"
  that follow SSH. Same for "Local SSH" and "Remote SSH".
- Set /etc/config/dropbear to:

config dropbear
	option PasswordAuth 'on'
	option RootPasswordAuth 'on'
	option Port '22'

- Reboot.
- Connect 10g WAN port to existing network and SSH in with the password
  you set.
- SSH into rooted stock fw.

Signed-off-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17869
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-11 00:42:34 +01:00
Christian Marangi
5f983981db
airoha: add pending patch for additional GPIO pins for PHY LED0
Add a pending patch that permits additional GPIO pins (43-46) for PHY LED0.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-03-10 16:40:04 +01:00