Ethernet #2

Open
opened 2025-11-08 00:44:45 +00:00 by Sirherobrine23 · 186 comments
Owner
https://sirherobrine23.com.br/tplink_xx230v/gpl_tplink-xx230v/src/commit/4d76b590398d1e510a2a893f6fc4c69bfedb5768/sdk/en7529/linux-4.4.115/arch/arm/boot/dts/en7523.dts#L348-L363 https://sirherobrine23.com.br/tplink_xx230v/gpl_tplink-xx230v/src/commit/4d76b590398d1e510a2a893f6fc4c69bfedb5768/sdk/en7529/linux-4.4.115/arch/arm/boot/dts/en7523.dts#L298-L304 --- ## Files - https://sirherobrine23.com.br/tplink_xx230v/gpl_tplink-xx230v/src/commit/4d76b590398d1e510a2a893f6fc4c69bfedb5768/sdk/en7529/linux-4.4.115/arch/arm/mach-econet/ecnt_frame_engine.c - https://sirherobrine23.com.br/tplink_xx230v/gpl_tplink-xx230v/src/commit/4d76b590398d1e510a2a893f6fc4c69bfedb5768/sdk/en7529/linux-4.4.115/arch/arm/mach-econet/ecnt_xsi.c ### qdma_dev consume https://sirherobrine23.com.br/tplink_xx230v/gpl_tplink-xx230v/src/commit/4d76b590398d1e510a2a893f6fc4c69bfedb5768/sdk/en7529/linux-4.4.115/qdma_dev.i#L62496-L65608 ## External comments - https://github.com/openwrt/openwrt/pull/20104#issuecomment-3467331940 - https://github.com/openwrt/openwrt/pull/20104#issuecomment-3467506602 - https://github.com/openwrt/openwrt/pull/20104#issuecomment-3467552634
Sirherobrine23 added a new dependency 2025-11-08 13:21:59 +00:00
Owner

I am getting packet data through to the CPU now. But it is not correctly mapped to the correct interface. I am seeing ARP and stuff.

I am getting packet data through to the CPU now. But it is not correctly mapped to the correct interface. I am seeing ARP and stuff.
Owner

00:02:48.104438 IP 192.168.1.100 > OpenWrt.lan: ICMP echo request, id 139, seq 5, length 64
00:02:48.104561 IP OpenWrt.lan > 192.168.1.100: ICMP echo reply, id 139, seq 5, length 64
00:02:49.128439 IP 192.168.1.100 > OpenWrt.lan: ICMP echo request, id 139, seq 6, length 64
00:02:49.128562 IP OpenWrt.lan > 192.168.1.100: ICMP echo reply, id 139, seq 6, length 64
00:02:50.152444 IP 192.168.1.100 > OpenWrt.lan: ICMP echo request, id 139, seq 7, length 64
00:02:50.152568 IP OpenWrt.lan > 192.168.1.100: ICMP echo reply, id 139, seq 7, length 64

EN7523 CPU can now RX

00:02:48.104438 IP 192.168.1.100 > OpenWrt.lan: ICMP echo request, id 139, seq 5, length 64 00:02:48.104561 IP OpenWrt.lan > 192.168.1.100: ICMP echo reply, id 139, seq 5, length 64 00:02:49.128439 IP 192.168.1.100 > OpenWrt.lan: ICMP echo request, id 139, seq 6, length 64 00:02:49.128562 IP OpenWrt.lan > 192.168.1.100: ICMP echo reply, id 139, seq 6, length 64 00:02:50.152444 IP 192.168.1.100 > OpenWrt.lan: ICMP echo request, id 139, seq 7, length 64 00:02:50.152568 IP OpenWrt.lan > 192.168.1.100: ICMP echo reply, id 139, seq 7, length 64 EN7523 CPU can now RX
Author
Owner

You can send me the patcher so I can test it when I receive the xx230v.

You can send me the patcher so I can test it when I receive the xx230v.
Owner

Yeah, I will. I'll try to sort out tx now.

Yeah, I will. I'll try to sort out tx now.
Sirherobrine23 added the Kind/Testing
Priority
Critical
1
labels 2025-11-09 01:29:56 +00:00
Sirherobrine23 added this to the (deleted) project 2025-11-09 01:32:22 +00:00
Sirherobrine23 moved this to In Progress in EN7523 on 2025-11-09 01:33:06 +00:00
Author
Owner
https://sirherobrine23.com.br/tplink_xx230v/gpl_tplink-xx230v/src/commit/4d76b590398d1e510a2a893f6fc4c69bfedb5768/sdk/en7529/linux-4.4.115/arch/arm/boot/dts/en7523.dts#L295 https://sirherobrine23.com.br/tplink_xx230v/openwrt/src/commit/b8dc284d6687654b58be303c51135a40aa0c5764/target/linux/airoha/dts/en7523.dtsi#L398 Why are the values different?
Owner

I fucked up I think.

I fucked up I think.
Owner
gdump@1fbf9000 {
	compatible = "econet,ecnt-gdump";
	reg = <0x1fbf9000 0x84>;	
};
gdump@1fbf9000 { compatible = "econet,ecnt-gdump"; reg = <0x1fbf9000 0x84>; };
Owner

Lovely, I was getting hangs after 100s of packets. This setting assigns sram over to the fe block. So I guess it get upset because of that.

Lovely, I was getting hangs after 100s of packets. This setting assigns sram over to the fe block. So I guess it get upset because of that.
Sirherobrine23 added reference airoha_en7523_eth 2025-11-09 19:57:48 +00:00
Owner

devmem 0x1fbf9074 that needs to be 3.

devmem 0x1fbf9074 that needs to be 3.
Owner

Ok, still hangs after a while. Probably has to do with the descriptor allocation/queues.

Ok, still hangs after a while. Probably has to do with the descriptor allocation/queues.
Owner

Ok, 74 -> 0x74 is probably needed.

Ok, 74 -> 0x74 is probably needed.
Owner

Ok, much better. Ping seems stable now.

Ok, much better. Ping seems stable now.
Owner

Ok, I'm gonna do some other stuff for the time being. Validate my changes when you get your device.

Ok, I'm gonna do some other stuff for the time being. Validate my changes when you get your device.
Author
Owner

okay

okay
Owner

Ping flood from my computer.

Ping flood from my computer.
Author
Owner

Ok, 74 -> 0x74 is probably needed.

GDMP_DATA_SEL to change yep?

7147d32347/drivers/net/ethernet/airoha/airoha_eth.c (L504-L510)

> Ok, 74 -> 0x74 is probably needed. `GDMP_DATA_SEL` to change yep? https://sirherobrine23.com.br/tplink_xx230v/kernel/src/commit/7147d32347e468fbb000a78314a0371212bafba2/drivers/net/ethernet/airoha/airoha_eth.c#L504-L510
Owner

Yes.

Yes.
Owner

This:

https://econet-linux.pkt.wiki/hardware/EN751221/frame-engine

and the following page 125

https://drive.google.com/file/d/1iZMXhaKoSO1bupRaXUShmNzj9Hj6n9Th/view

describes how things are connected and work.

On the EN7523 it has the WED connected via the GDM3 though and the port indexing has other meanings. But basically there is a PSE with different blocks connected to the PSE ports. And the QDMA is passing packets (descriptors) around.

This: https://econet-linux.pkt.wiki/hardware/EN751221/frame-engine and the following page 125 https://drive.google.com/file/d/1iZMXhaKoSO1bupRaXUShmNzj9Hj6n9Th/view describes how things are connected and work. On the EN7523 it has the WED connected via the GDM3 though and the port indexing has other meanings. But basically there is a PSE with different blocks connected to the PSE ports. And the QDMA is passing packets (descriptors) around.
Author
Owner

so it will be something like this

graph TD
    CPU <--> QDMA1
    CPU --> QDMA2

    subgraph Frame Engine EN7523
        PPE1
        QDMA1
        QDMA2
        NPU
        GDM1
        GDM2
        GDM3
    end

    GDM1 --> MT7530_Switch[MT7530 Switch]
    GDM2 --> WAN_xPON[WAN / xPON]
    GDM3 --> WED["WED/WIFI/HSGMII(USB)/HSGMII(PCIe)"]

    classDef default fill:#D3D3D3,stroke:#333,stroke-width:2px,color:#000;
    classDef highlight fill:#FFE4E1,stroke:#8B0000,stroke-width:2px,color:#000;
    
    class CPU,MT7530_Switch,WAN_xPON,WED highlight
    class Frame_Engine,PPE,QDMA1,GDM1,QDMA2,GDM2 default
graph TD
    subgraph System Bus
        CPU <--> |INT, CFG_REG| PPE
        DRAM <--> QDMA
        TOPS <--> TDMA
        WiFi <--> WED
        CPU <--> ADMA
        DRAM <--> WDMA
        TOPS <--> EIP197
    end

    subgraph "PSE (L3 routing)"
        PPE -- Port #0 <--> PSE
        QDMA -- Port #8,9,13 <--> PSE

        PSE -- p6 <--> L2_Switch_4_port_GPHY
    end

    GMAC_XGMAC2 <--> |2.5G PHY| 2.5G_PHY
    GMAC_XGMAC2 <--> |HSGMII, USXGMII| HSGMII_USXGMII

    GMAC_XGMAC3 <--> |HSGMII, USXGMII| HSGMII_USXGMII

    L2_Switch_4_port_GPHY <--> |p0| RJ45_1
    L2_Switch_4_port_GPHY <--> |p1| RJ45_2
    L2_Switch_4_port_GPHY <--> |p2| RJ45_3
    L2_Switch_4_port_GPHY <--> |p3| RJ45_4

    subgraph Notes
        pse_port_7_drop[PSE port #7 is for packet drop]
        pse_port_6_qdma[PSE port #6 is QDMA HW path]
        pse_port_11_reserved[PSE port #11 is reserved port]
    end

    classDef default fill:#D3D3D3,stroke:#3366cc,stroke-width:2px,color:#000;
    classDef highlight fill:#ADD8E6,stroke:#3366cc,stroke-width:2px,color:#000;
    class CPU,DRAM,TOPS,WiFi,System_Bus,PPE,ADMA,QDMA,WDMA,TDMA,EIP197,WED,PSE,GMAC_XGMAC2,GMAC_XGMAC3,L2_Switch_4_port_GPHY,2.5G_PHY,HSGMII_USXGMII,RJ45_1,RJ45_2,RJ45_3,RJ45_4,note,pse_port_7_drop,pse_port_6_qdma,pse_port_11_reserved default
    class PPE,ADMA,QDMA,WDMA,TDMA,EIP197,WED,GMAC_XGMAC2,GMAC_XGMAC3,L2_Switch_4_port_GPHY highlight
so it will be something like this ```mermaid graph TD CPU <--> QDMA1 CPU --> QDMA2 subgraph Frame Engine EN7523 PPE1 QDMA1 QDMA2 NPU GDM1 GDM2 GDM3 end GDM1 --> MT7530_Switch[MT7530 Switch] GDM2 --> WAN_xPON[WAN / xPON] GDM3 --> WED["WED/WIFI/HSGMII(USB)/HSGMII(PCIe)"] classDef default fill:#D3D3D3,stroke:#333,stroke-width:2px,color:#000; classDef highlight fill:#FFE4E1,stroke:#8B0000,stroke-width:2px,color:#000; class CPU,MT7530_Switch,WAN_xPON,WED highlight class Frame_Engine,PPE,QDMA1,GDM1,QDMA2,GDM2 default ``` ```mermaid graph TD subgraph System Bus CPU <--> |INT, CFG_REG| PPE DRAM <--> QDMA TOPS <--> TDMA WiFi <--> WED CPU <--> ADMA DRAM <--> WDMA TOPS <--> EIP197 end subgraph "PSE (L3 routing)" PPE -- Port #0 <--> PSE QDMA -- Port #8,9,13 <--> PSE PSE -- p6 <--> L2_Switch_4_port_GPHY end GMAC_XGMAC2 <--> |2.5G PHY| 2.5G_PHY GMAC_XGMAC2 <--> |HSGMII, USXGMII| HSGMII_USXGMII GMAC_XGMAC3 <--> |HSGMII, USXGMII| HSGMII_USXGMII L2_Switch_4_port_GPHY <--> |p0| RJ45_1 L2_Switch_4_port_GPHY <--> |p1| RJ45_2 L2_Switch_4_port_GPHY <--> |p2| RJ45_3 L2_Switch_4_port_GPHY <--> |p3| RJ45_4 subgraph Notes pse_port_7_drop[PSE port #7 is for packet drop] pse_port_6_qdma[PSE port #6 is QDMA HW path] pse_port_11_reserved[PSE port #11 is reserved port] end classDef default fill:#D3D3D3,stroke:#3366cc,stroke-width:2px,color:#000; classDef highlight fill:#ADD8E6,stroke:#3366cc,stroke-width:2px,color:#000; class CPU,DRAM,TOPS,WiFi,System_Bus,PPE,ADMA,QDMA,WDMA,TDMA,EIP197,WED,PSE,GMAC_XGMAC2,GMAC_XGMAC3,L2_Switch_4_port_GPHY,2.5G_PHY,HSGMII_USXGMII,RJ45_1,RJ45_2,RJ45_3,RJ45_4,note,pse_port_7_drop,pse_port_6_qdma,pse_port_11_reserved default class PPE,ADMA,QDMA,WDMA,TDMA,EIP197,WED,GMAC_XGMAC2,GMAC_XGMAC3,L2_Switch_4_port_GPHY highlight ```
Owner

This is the list of ports on the PSE and the component first connected to the port. Other things can be connected after it.

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/airoha/airoha_eth.h?h=v6.18-rc4#n114

This is the list of ports on the PSE and the component first connected to the port. Other things can be connected after it. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/airoha/airoha_eth.h?h=v6.18-rc4#n114
Owner
A somewhat interesting gathering of information. https://github.com/RuijieNetworksCommunity/openwrt-en75xx/blob/en7562-24.10/en7562ct.md
Author
Owner

The router just arrived, I'm going to start building OpenWRT with the patchers to test it, but I'll probably only send the results tomorrow morning (Brazilian time)

The router just arrived, I'm going to start building OpenWRT with the patchers to test it, but I'll probably only send the results tomorrow morning (Brazilian time)
Author
Owner
Bootlog file: [boot_openwrt_2025-11-10_22-10.log](/attachments/597b54b5-b2d8-4495-91bb-96d472e5f90a)
Author
Owner

boot_openwrt_2025-11-11_13-16.log

@merbanan i changed this sport map and not get more airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() free frag:

598f0598ee/drivers/net/ethernet/airoha/airoha_eth.c (L624-L651)

log
[   83.150705] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[   83.156976] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   83.159843] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[   83.164301] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   83.177661] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   83.184548] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   83.890459] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   83.897814] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   83.904955] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   83.911848] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   85.938552] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   85.945886] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   85.953043] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   85.959951] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   85.965106] (NULL device *): airoha_dev_xmit
[   85.969435] (NULL device *): fport = 1, tag = 2, qid = 0
[   85.975108] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   85.975117] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[   85.975145] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[   85.982448] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   85.982458] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   86.008832] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   87.026596] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   87.033938] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   87.041094] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   87.047999] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   88.050631] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   88.057976] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   88.065112] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   88.072005] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   89.074624] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   89.081972] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   89.089130] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   89.096008] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   90.098702] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   90.106034] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   90.113190] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   90.120107] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   90.991917] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   90.999264] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   91.006405] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   91.013296] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   91.018510] (NULL device *): airoha_dev_xmit
[   91.022803] (NULL device *): fport = 1, tag = 2, qid = 0
[   91.028355] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   91.028544] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[   91.035675] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   91.041896] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[   91.049017] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   91.062077] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   91.122748] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   91.130096] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   91.137256] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   91.144132] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   92.076782] (NULL device *): airoha_dev_xmit
[   92.081104] (NULL device *): fport = 1, tag = 2, qid = 0
[   92.086602] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   92.086820] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[   92.093935] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   92.100130] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[   92.107244] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   92.120302] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   92.408999] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   92.416328] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   92.423487] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   92.430386] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   92.435748] (NULL device *): airoha_dev_xmit
[   92.440087] (NULL device *): fport = 1, tag = 2, qid = 0
[   92.445454] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[   92.451678] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   92.451720] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[   92.459012] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   92.472338] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   92.479246] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   96.878051] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   96.885382] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   96.892551] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   96.899470] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   96.904448] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   96.911776] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   96.918941] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   96.925823] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   96.930808] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   96.938144] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   96.945285] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   96.952176] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   96.957168] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[   96.964485] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[   96.971639] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[   96.978538] airoha_eth 1fb50000.ethernet: sp_tag = 1
[   96.983969] (NULL device *): airoha_dev_xmit
[   96.988309] (NULL device *): fport = 1, tag = 2, qid = 0
[   96.993959] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[   97.000233] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[   97.000647] (NULL device *): airoha_dev_xmit
[   97.010724] (NULL device *): fport = 1, tag = 2, qid = 0
[   97.016078] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[   97.016513] (NULL device *): airoha_dev_xmit
[   97.022343] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[   97.026577] (NULL device *): fport = 1, tag = 2, qid = 0
[   97.038129] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[   97.038298] (NULL device *): airoha_dev_xmit
[   97.044353] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[   97.048638] (NULL device *): fport = 1, tag = 2, qid = 0
[   97.060200] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[  103.529274] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[  103.536606] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[  103.543787] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[  103.550695] airoha_eth 1fb50000.ethernet: sp_tag = 1
[  103.555672] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[  103.563001] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[  103.570157] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[  103.577054] airoha_eth 1fb50000.ethernet: sp_tag = 1
[  103.582230] (NULL device *): airoha_dev_xmit
[  103.586519] (NULL device *): fport = 1, tag = 2, qid = 0
[  103.592243] (NULL device *): airoha_dev_xmit
[  103.592363] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[  103.596535] (NULL device *): fport = 1, tag = 2, qid = 0
[  103.602800] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[  103.608112] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[  103.614269] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[  103.621553] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[  103.634877] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[  103.641791] airoha_eth 1fb50000.ethernet: sp_tag = 1
[  103.646954] (NULL device *): airoha_dev_xmit
[  103.651241] (NULL device *): fport = 1, tag = 2, qid = 0
[  103.656781] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[  103.663024] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[  103.666770] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[  103.670355] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[  103.683665] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[  103.690557] airoha_eth 1fb50000.ethernet: sp_tag = 1
[  103.852125] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[  103.859466] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[  103.866605] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[  103.873494] airoha_eth 1fb50000.ethernet: sp_tag = 1
[  103.878689] (NULL device *): airoha_dev_xmit
[  103.883011] (NULL device *): fport = 1, tag = 2, qid = 0
[  103.888490] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[  103.888661] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[  103.895806] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[  103.895815] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[  103.895824] airoha_eth 1fb50000.ethernet: sp_tag = 1
[  103.902044] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[  103.974459] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[  103.981811] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[  103.988970] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[  103.995852] airoha_eth 1fb50000.ethernet: sp_tag = 1
[  104.000853] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[  104.008187] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[  104.015330] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[  104.022217] airoha_eth 1fb50000.ethernet: sp_tag = 1
[  104.027596] (NULL device *): airoha_dev_xmit
[  104.031893] (NULL device *): fport = 1, tag = 2, qid = 0
[  104.037695] (NULL device *): airoha_dev_xmit
[  104.041988] (NULL device *): fport = 1, tag = 2, qid = 0
[  104.047400] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[  104.053622] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[  104.053623] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[  104.053635] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[  104.074276] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[  104.081178] airoha_eth 1fb50000.ethernet: sp_tag = 1
[  104.086154] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[  104.093503] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[  104.100677] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[  104.107580] airoha_eth 1fb50000.ethernet: sp_tag = 1
[  104.112727] (NULL device *): airoha_dev_xmit
[  104.117055] (NULL device *): fport = 1, tag = 2, qid = 0
[  104.122722] (NULL device *): airoha_dev_xmit
[  104.122764] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[  104.127050] (NULL device *): fport = 1, tag = 2, qid = 0
[  104.133244] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[  104.144755] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[  104.144782] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll
[  104.152116] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[  104.165431] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[  104.172359] airoha_eth 1fb50000.ethernet: sp_tag = 1
[  104.691199] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[  104.698549] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[  104.705685] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[  104.712574] airoha_eth 1fb50000.ethernet: sp_tag = 1
[  105.715234] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[  105.722583] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[  105.729736] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[  105.736615] airoha_eth 1fb50000.ethernet: sp_tag = 1
[  106.739276] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[  106.746607] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[  106.753764] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[  106.760671] airoha_eth 1fb50000.ethernet: sp_tag = 1
[  107.763303] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[  107.770650] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[  107.777805] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[  107.784688] airoha_eth 1fb50000.ethernet: sp_tag = 1
[  108.787352] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17
[  108.794688] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0
[  108.801851] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0
[  108.808765] airoha_eth 1fb50000.ethernet: sp_tag = 1
[boot_openwrt_2025-11-11_13-16.log](/attachments/5d2d2a31-97b6-4d3a-aeae-0066d0b5fe2c) @merbanan i changed this `sport` map and not get more `airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() free frag`: https://sirherobrine23.com.br/tplink_xx230v/kernel/src/commit/598f0598eec06b6b62ebdcf46d6dce0d0dd661ed/drivers/net/ethernet/airoha/airoha_eth.c#L624-L651 <details> <summary>log</summary> ``` [ 83.150705] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 83.156976] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 83.159843] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 83.164301] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 83.177661] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 83.184548] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 83.890459] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 83.897814] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 83.904955] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 83.911848] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 85.938552] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 85.945886] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 85.953043] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 85.959951] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 85.965106] (NULL device *): airoha_dev_xmit [ 85.969435] (NULL device *): fport = 1, tag = 2, qid = 0 [ 85.975108] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 85.975117] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 85.975145] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 85.982448] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 85.982458] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 86.008832] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 87.026596] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 87.033938] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 87.041094] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 87.047999] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 88.050631] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 88.057976] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 88.065112] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 88.072005] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 89.074624] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 89.081972] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 89.089130] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 89.096008] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 90.098702] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 90.106034] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 90.113190] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 90.120107] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 90.991917] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 90.999264] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 91.006405] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 91.013296] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 91.018510] (NULL device *): airoha_dev_xmit [ 91.022803] (NULL device *): fport = 1, tag = 2, qid = 0 [ 91.028355] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 91.028544] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 91.035675] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 91.041896] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 91.049017] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 91.062077] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 91.122748] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 91.130096] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 91.137256] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 91.144132] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 92.076782] (NULL device *): airoha_dev_xmit [ 92.081104] (NULL device *): fport = 1, tag = 2, qid = 0 [ 92.086602] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 92.086820] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 92.093935] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 92.100130] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 92.107244] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 92.120302] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 92.408999] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 92.416328] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 92.423487] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 92.430386] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 92.435748] (NULL device *): airoha_dev_xmit [ 92.440087] (NULL device *): fport = 1, tag = 2, qid = 0 [ 92.445454] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 92.451678] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 92.451720] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 92.459012] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 92.472338] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 92.479246] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 96.878051] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 96.885382] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 96.892551] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 96.899470] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 96.904448] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 96.911776] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 96.918941] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 96.925823] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 96.930808] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 96.938144] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 96.945285] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 96.952176] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 96.957168] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 96.964485] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 96.971639] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 96.978538] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 96.983969] (NULL device *): airoha_dev_xmit [ 96.988309] (NULL device *): fport = 1, tag = 2, qid = 0 [ 96.993959] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 97.000233] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 97.000647] (NULL device *): airoha_dev_xmit [ 97.010724] (NULL device *): fport = 1, tag = 2, qid = 0 [ 97.016078] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 97.016513] (NULL device *): airoha_dev_xmit [ 97.022343] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 97.026577] (NULL device *): fport = 1, tag = 2, qid = 0 [ 97.038129] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 97.038298] (NULL device *): airoha_dev_xmit [ 97.044353] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 97.048638] (NULL device *): fport = 1, tag = 2, qid = 0 [ 97.060200] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 103.529274] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 103.536606] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 103.543787] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 103.550695] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 103.555672] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 103.563001] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 103.570157] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 103.577054] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 103.582230] (NULL device *): airoha_dev_xmit [ 103.586519] (NULL device *): fport = 1, tag = 2, qid = 0 [ 103.592243] (NULL device *): airoha_dev_xmit [ 103.592363] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 103.596535] (NULL device *): fport = 1, tag = 2, qid = 0 [ 103.602800] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 103.608112] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 103.614269] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 103.621553] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 103.634877] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 103.641791] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 103.646954] (NULL device *): airoha_dev_xmit [ 103.651241] (NULL device *): fport = 1, tag = 2, qid = 0 [ 103.656781] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 103.663024] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 103.666770] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 103.670355] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 103.683665] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 103.690557] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 103.852125] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 103.859466] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 103.866605] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 103.873494] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 103.878689] (NULL device *): airoha_dev_xmit [ 103.883011] (NULL device *): fport = 1, tag = 2, qid = 0 [ 103.888490] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 103.888661] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 103.895806] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 103.895815] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 103.895824] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 103.902044] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 103.974459] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 103.981811] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 103.988970] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 103.995852] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 104.000853] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 104.008187] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 104.015330] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 104.022217] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 104.027596] (NULL device *): airoha_dev_xmit [ 104.031893] (NULL device *): fport = 1, tag = 2, qid = 0 [ 104.037695] (NULL device *): airoha_dev_xmit [ 104.041988] (NULL device *): fport = 1, tag = 2, qid = 0 [ 104.047400] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 104.053622] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 104.053623] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 104.053635] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 104.074276] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 104.081178] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 104.086154] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 104.093503] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 104.100677] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 104.107580] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 104.112727] (NULL device *): airoha_dev_xmit [ 104.117055] (NULL device *): fport = 1, tag = 2, qid = 0 [ 104.122722] (NULL device *): airoha_dev_xmit [ 104.122764] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 104.127050] (NULL device *): fport = 1, tag = 2, qid = 0 [ 104.133244] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 104.144755] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 104.144782] airoha_eth 1fb50000.ethernet: airoha_qdma_tx_napi_poll [ 104.152116] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 104.165431] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 104.172359] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 104.691199] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 104.698549] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 104.705685] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 104.712574] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 105.715234] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 105.722583] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 105.729736] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 105.736615] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 106.739276] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 106.746607] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 106.753764] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 106.760671] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 107.763303] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 107.770650] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 107.777805] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 107.784688] airoha_eth 1fb50000.ethernet: sp_tag = 1 [ 108.787352] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() sport = 17 [ 108.794688] airoha_eth 1fb50000.ethernet: airoha_qdma_get_gdm_port() port = 0 [ 108.801851] airoha_eth 1fb50000.ethernet: airoha_qdma_rx_process() skb = 0 [ 108.808765] airoha_eth 1fb50000.ethernet: sp_tag = 1 ``` </details>
Owner

The port mask is 4 bits. It can never hold 0xFFFF. With different SoC configurations I think we should replace it with a table per SoC instead. Then we can load the correct SoC table during init. With 4 bits we only have 16 elements per SoC and a function call gets translated to a lookup table instead.

The port mask is 4 bits. It can never hold 0xFFFF. With different SoC configurations I think we should replace it with a table per SoC instead. Then we can load the correct SoC table during init. With 4 bits we only have 16 elements per SoC and a function call gets translated to a lookup table instead.
Owner

ping -f 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
.......^C
--- 192.168.1.1 ping statistics ---
1291673775 packets transmitted, 1291673768 received, 5.41932e-07% packet loss, time 176568864ms
rtt min/avg/max/mdev = 0.085/0.118/19.833/0.025 ms, pipe 2, ipg/ewma 0.136/0.127 ms

So I dropped 7 packets during a 2 day ping flood. I think the buffer handling is fine. Just need to route packets in the PSE properly.

No reported drops internally in the PSE either.

ping -f 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. .......^C --- 192.168.1.1 ping statistics --- 1291673775 packets transmitted, 1291673768 received, 5.41932e-07% packet loss, time 176568864ms rtt min/avg/max/mdev = 0.085/0.118/19.833/0.025 ms, pipe 2, ipg/ewma 0.136/0.127 ms So I dropped 7 packets during a 2 day ping flood. I think the buffer handling is fine. Just need to route packets in the PSE properly. No reported drops internally in the PSE either.
Author
Owner

Okay, I'll remove the 0xffff, but after I changed that I was able to receive the packets without drops or significant loss when pinging in both directions

Okay, I'll remove the 0xffff, but after I changed that I was able to receive the packets without drops or significant loss when pinging in both directions
Owner

#define QDMA_ETH_RXMSG_SPORT_MASK GENMASK(24, 20)

5 bits. Still it should be a table.

#define QDMA_ETH_RXMSG_SPORT_MASK GENMASK(24, 20) 5 bits. Still it should be a table.
Owner

0x16,0x17,0x18 are mapped to HSGMII ethernet macs on the EN7523.

0x16,0x17,0x18 are mapped to HSGMII ethernet macs on the EN7523.
Owner

The hsgmii wan port sport value is missing and I cant find it. EN7523 have 4 HSGMII MACS.

The hsgmii wan port sport value is missing and I cant find it. EN7523 have 4 HSGMII MACS.
Owner

Maybe add a specific lookup value that prints out unknown sports.

I found these values:

//SPORT DEFINE
#define SPORT_QDMA_LAN          0
#define SPORT_GDMA1				1
#define SPORT_GDMA2				2//means wan , like SAR/PTM/xPON
#define SPORT_GDMA3				3//means lan, WDMA,xfi
#define SPORT_PPE				4
#define SPORT_QDMA_WAN          5//send to CPU via QDMA
#define SPORT_QDMA_HW			6//send to CPU via QDMA HW
#define SPORT_DISCARD			7
#define SPORT_CPU				DPORT_PDMA
#define SPORT_NPU				6
Maybe add a specific lookup value that prints out unknown sports. I found these values: ``` //SPORT DEFINE #define SPORT_QDMA_LAN 0 #define SPORT_GDMA1 1 #define SPORT_GDMA2 2//means wan , like SAR/PTM/xPON #define SPORT_GDMA3 3//means lan, WDMA,xfi #define SPORT_PPE 4 #define SPORT_QDMA_WAN 5//send to CPU via QDMA #define SPORT_QDMA_HW 6//send to CPU via QDMA HW #define SPORT_DISCARD 7 #define SPORT_CPU DPORT_PDMA #define SPORT_NPU 6 ```
Author
Owner

The hsgmii wan port sport value is missing and I cant find it. EN7523 have 4 HSGMII MACS.

Much of the en7512 code should be compatible. cjd found this GPL, which has several/all of the private code, and I also noticed that it is quite similar to some code I found within the xx230v GPL

It probably has something to do with the hsgmii wan port

aea3a43562/tclinux_phoenix/modules/private/ether/en7512/eth_en7512.h (L460-L480)

> The hsgmii wan port sport value is missing and I cant find it. EN7523 have 4 HSGMII MACS. Much of the en7512 code should be compatible. `cjd` found this GPL, which has several/all of the private code, and I also noticed that it is quite similar to some code I found within the xx230v GPL It probably has something to do with the hsgmii wan port https://sirherobrine23.com.br/Openwrt-EcoNet/TP-Link_XR500v_v2-6/src/commit/aea3a43562e8d3dc0335624202fde08d713a18c2/tclinux_phoenix/modules/private/ether/en7512/eth_en7512.h#L460-L480
Author
Owner
I found this here: https://sirherobrine23.com.br/Openwrt-EcoNet/TP-Link_XR500v_v2-6/src/commit/aea3a43562e8d3dc0335624202fde08d713a18c2/tclinux_phoenix/modules/private/xpon/inc/pwan/gpon_wan.h#L32-L45
Sirherobrine23 added a new dependency 2025-11-13 00:49:12 +00:00
Sirherobrine23 pinned this 2025-11-13 00:52:08 +00:00
Author
Owner

I managed to get a small amount of network traffic, but then it freezes somewhere on airoha_eth

But then it stopped. I've attached the log for you to take a look at if you want

I managed to get a small amount of network traffic, but then it freezes somewhere on airoha_eth But then it stopped. I've attached the log for you to take a look at if you want
Owner

I confirm the issue. ICMP seems to work fine. UDP might also work but TCP has issues.

I confirm the issue. ICMP seems to work fine. UDP might also work but TCP has issues.
Owner

I compared a working iperf3 tcp setup with a non working and it seems the tcp headers work fine but the payload was different.

tcpdump from device

00:16:24.861752 IP OpenWrt.lan.5201 > 192.168.1.100.44538: Flags [P.], seq 1:2, ack 38, win 1018, options [nop,nop,TS val 3081417589 ecr
 1245849791], length 1
        0x0000:  04d9 f5f4 fede 70da 6a88 6eec 0800 4500  ......p.j.n...E.
        0x0010:  0035 0113 4000 4006 b5fa c0a8 0101 c0a8  .5..@.@.........
        0x0020:  0164 1451 adfa 20ef b8c2 478b 7360 8018  .d.Q......G.s`..
        0x0030:  03fa 83dd 0000 0101 080a b7aa b375 4a42  .............uJB
        0x0040:  28bf 09                                  (..

wireshark from computer

0000   04 d9 f5 f4 fe de 70 da 6a 88 6e ec 08 00 45 00
0010   00 35 01 13 40 00 40 06 b5 fa c0 a8 01 01 c0 a8
0020   01 64 14 51 ad fa 20 ef b8 c2 47 8b 73 60 80 18
0030   03 fa b1 f9 00 00 01 01 08 0a b7 aa b3 75 4a 42
0040   28 bf 08

09 != 08

So the tx path has issues with regard to where it collects the tcp packet data.

I compared a working iperf3 tcp setup with a non working and it seems the tcp headers work fine but the payload was different. tcpdump from device ``` 00:16:24.861752 IP OpenWrt.lan.5201 > 192.168.1.100.44538: Flags [P.], seq 1:2, ack 38, win 1018, options [nop,nop,TS val 3081417589 ecr 1245849791], length 1 0x0000: 04d9 f5f4 fede 70da 6a88 6eec 0800 4500 ......p.j.n...E. 0x0010: 0035 0113 4000 4006 b5fa c0a8 0101 c0a8 .5..@.@......... 0x0020: 0164 1451 adfa 20ef b8c2 478b 7360 8018 .d.Q......G.s`.. 0x0030: 03fa 83dd 0000 0101 080a b7aa b375 4a42 .............uJB 0x0040: 28bf 09 (.. ``` wireshark from computer ``` 0000 04 d9 f5 f4 fe de 70 da 6a 88 6e ec 08 00 45 00 0010 00 35 01 13 40 00 40 06 b5 fa c0 a8 01 01 c0 a8 0020 01 64 14 51 ad fa 20 ef b8 c2 47 8b 73 60 80 18 0030 03 fa b1 f9 00 00 01 01 08 0a b7 aa b3 75 4a 42 0040 28 bf 08 ``` 09 != 08 So the tx path has issues with regard to where it collects the tcp packet data.
Author
Owner
Do we need to map the TCP here? https://sirherobrine23.com.br/tplink_xx230v/kernel/src/commit/83d8f2e66e1c84a0fecf1fab0635e091f80484b7/drivers/net/ethernet/airoha/airoha_eth.c#L157-L219
Owner

No VIP and IFC are filters that are active in the HW accelerated data forwarding path.

83d8f2e66e/drivers/net/ethernet/airoha/airoha_eth.c (L2103-L2105)

I have
len = skb_headlen(skb)+4;
in my code here.

This gives me properly sized packets but it is a highly dubious change. And it also seems the data is mapped incorrectly. Most likely we have some buffer alignment issue. Maybe the skb->data pointer needs an +4 offset also.

No VIP and IFC are filters that are active in the HW accelerated data forwarding path. https://sirherobrine23.com.br/tplink_xx230v/kernel/src/commit/83d8f2e66e1c84a0fecf1fab0635e091f80484b7/drivers/net/ethernet/airoha/airoha_eth.c#L2103-L2105 I have `len = skb_headlen(skb)+4;` in my code here. This gives me properly sized packets but it is a highly dubious change. And it also seems the data is mapped incorrectly. Most likely we have some buffer alignment issue. Maybe the skb->data pointer needs an +4 offset also.
Author
Owner

I'll be away from home this weekend, I'll only be able to test it when I get home on Monday

I'll be away from home this weekend, I'll only be able to test it when I get home on Monday
Owner

+4 to the data pointer did not work.

+4 to the data pointer did not work.
Owner

Well the transmit function outputs what's in the data buffer.

hexdump in kernel on DUT:

[ 1777.560989] txd: 097a0b84: 04 d9 f5 f4 fe de 70 da 6a 88 6e ec 08 00 45 00  ......p.j.n...E.
[ 1777.561014] txd: a0c595ad: 00 35 fb 4d 40 00 40 06 bb bf c0 a8 01 01 c0 a8  .5.M@.@.........
[ 1777.561024] txd: 530f0836: 01 64 14 51 a8 ce 3f f3 7a 6f 4c 4c 77 0c 80 18  .d.Q..?.zoLLw...
[ 1777.561033] txd: 4d2f908a: 03 fa 83 dd 00 00 01 01 08 0a c6 f0 bb 96 4a 9d  ..............J.
[ 1777.561043] txd: 58d2f76a: 74 6f 45 56 54 59 50 45 3d 64 69 73 6b 00 44 49  toEVTYPE=disk.DI

and tcpdump on lan2 on same device

00:29:37.485834 IP OpenWrt.lan.5201 > 192.168.1.100.43214: Flags [P.], seq 1:2, ack 38, win 1018, options [nop,nop,TS val 3337665430 ecr
 1251832943], length 1
        0x0000:  04d9 f5f4 fede 70da 6a88 6eec 0800 4500  ......p.j.n...E.
        0x0010:  0035 fb4d 4000 4006 bbbf c0a8 0101 c0a8  .5.M@.@.........
        0x0020:  0164 1451 a8ce 3ff3 7a6f 4c4c 770c 8018  .d.Q..?.zoLLw...
        0x0030:  03fa 83dd 0000 0101 080a c6f0 bb96 4a9d  ..............J.
        0x0040:  746f 09

So tcpdump says that the last byte in the skb data should be 09 but the dump of the buffer before transmit says it is 45.

Well the transmit function outputs what's in the data buffer. hexdump in kernel on DUT: ``` [ 1777.560989] txd: 097a0b84: 04 d9 f5 f4 fe de 70 da 6a 88 6e ec 08 00 45 00 ......p.j.n...E. [ 1777.561014] txd: a0c595ad: 00 35 fb 4d 40 00 40 06 bb bf c0 a8 01 01 c0 a8 .5.M@.@......... [ 1777.561024] txd: 530f0836: 01 64 14 51 a8 ce 3f f3 7a 6f 4c 4c 77 0c 80 18 .d.Q..?.zoLLw... [ 1777.561033] txd: 4d2f908a: 03 fa 83 dd 00 00 01 01 08 0a c6 f0 bb 96 4a 9d ..............J. [ 1777.561043] txd: 58d2f76a: 74 6f 45 56 54 59 50 45 3d 64 69 73 6b 00 44 49 toEVTYPE=disk.DI ``` and tcpdump on lan2 on same device ``` 00:29:37.485834 IP OpenWrt.lan.5201 > 192.168.1.100.43214: Flags [P.], seq 1:2, ack 38, win 1018, options [nop,nop,TS val 3337665430 ecr 1251832943], length 1 0x0000: 04d9 f5f4 fede 70da 6a88 6eec 0800 4500 ......p.j.n...E. 0x0010: 0035 fb4d 4000 4006 bbbf c0a8 0101 c0a8 .5.M@.@......... 0x0020: 0164 1451 a8ce 3ff3 7a6f 4c4c 770c 8018 .d.Q..?.zoLLw... 0x0030: 03fa 83dd 0000 0101 080a c6f0 bb96 4a9d ..............J. 0x0040: 746f 09 ``` So tcpdump says that the last byte in the skb data should be 09 but the dump of the buffer before transmit says it is 45.
Author
Owner

I didn't make much progress today, but the responses on TCP increased, albeit altered

boot_openwrt_2025-11-17_19-16.log

I didn't make much progress today, but the responses on TCP increased, albeit altered [boot_openwrt_2025-11-17_19-16.log](/attachments/9f22bb5c-8aef-44c5-8e95-1f918794748e)
Owner

I have been tracing the buffers and the xmit function in the driver gets the same data as higher level transmit functions. It seems the network data buffer is transmitted before the buffer is ready. The TCP header transmission is fine, it is just that the data seems to be ready much later. Can you try with adding some of the linux kernel configuration options from AN7581?

I have been tracing the buffers and the xmit function in the driver gets the same data as higher level transmit functions. It seems the network data buffer is transmitted before the buffer is ready. The TCP header transmission is fine, it is just that the data seems to be ready much later. Can you try with adding some of the linux kernel configuration options from AN7581?
Author
Owner

What would they be?

What would they be?
Owner

And moving the device out of the bridge makes it work even less.

And moving the device out of the bridge makes it work even less.
Owner

I can ping from the device but not too the device. I think the change brakes ARP.

I can ping from the device but not too the device. I think the change brakes ARP.
Owner

What would they be?

Im not sure. I just make a diff between the different kernel configs in the openwrt tree.

> What would they be? Im not sure. I just make a diff between the different kernel configs in the openwrt tree.
Author
Owner

I don't think this detachment works on the EN7523; I'm tinkering with it to see if that's the problem.

870b0c8bf0/drivers/net/ethernet/airoha/airoha_eth.c (L1987-L1993)

I don't think this detachment works on the EN7523; I'm tinkering with it to see if that's the problem. https://sirherobrine23.com.br/tplink_xx230v/kernel/src/commit/870b0c8bf05e61580e0d97edc79bf39c9bf3ac66/drivers/net/ethernet/airoha/airoha_eth.c#L1987-L1993
Author
Owner

It's strange, but the TCP packets are working, but there's packet retransmission.

It's strange, but the TCP packets are working, but there's packet retransmission. - [eth0_17_10.pcapng](/attachments/c682abef-4f2b-4dee-bdcb-501f5cb79121) - [boot_openwrt_2025-11-18_16-54.log](/attachments/c957f5ee-acb5-4105-9e1d-dd0357a8e890)
Owner

So the dump of the skb data buffer in tcp_transmit_skb(), shows different data compared to the output of tcpdump.

Call trace:
[ 213.875713] unwind_backtrace from show_stack+0x10/0x14
[ 213.875737] show_stack from dump_stack_lvl+0x50/0x64
[ 213.875760] dump_stack_lvl from airoha_dev_xmit+0x70/0x890
[ 213.875785] airoha_dev_xmit from dev_hard_start_xmit+0xa4/0xec
[ 213.875808] dev_hard_start_xmit from sch_direct_xmit+0x8c/0x30c
[ 213.875829] sch_direct_xmit from __dev_queue_xmit+0x7e4/0xd7c
[ 213.875847] __dev_queue_xmit from dsa_user_xmit+0x114/0x1a8
[ 213.875870] dsa_user_xmit from dev_hard_start_xmit+0xa4/0xec
[ 213.875890] dev_hard_start_xmit from __dev_queue_xmit+0x200/0xd7c
[ 213.875910] __dev_queue_xmit from br_dev_queue_push_xmit+0x68/0x190
[ 213.875928] br_dev_queue_push_xmit from br_forward_finish+0x90/0x9c
[ 213.875940] br_forward_finish from br_dev_xmit+0x2c4/0x4cc
[ 213.875958] br_dev_xmit from dev_hard_start_xmit+0xa4/0xec
[ 213.875979] dev_hard_start_xmit from __dev_queue_xmit+0x200/0xd7c
[ 213.875999] __dev_queue_xmit from ip_finish_output2+0x1e0/0x700
[ 213.876020] ip_finish_output2 from ip_output+0x4c/0xa0
[ 213.876037] ip_output from __ip_queue_xmit+0x174/0x47c
[ 213.876054] __ip_queue_xmit from __tcp_transmit_skb+0x538/0xbc0
[ 213.876075] __tcp_transmit_skb from tcp_write_xmit+0x36c/0x1764
[ 213.876096] tcp_write_xmit from __tcp_push_pending_frames+0x30/0x10c
[ 213.876117] __tcp_push_pending_frames from tcp_sendmsg_locked+0xa6c/0xcf0
[ 213.876135] tcp_sendmsg_locked from tcp_sendmsg+0x28/0x40
[ 213.876147] tcp_sendmsg from sock_write_iter+0x94/0xe4
[ 213.876167] sock_write_iter from vfs_write+0x3ac/0x42c
[ 213.876190] vfs_write from ksys_write+0x8c/0xc4
[ 213.876208] ksys_write from ret_fast_syscall+0x0/0x4c

[74276.204083] (NULL device *): tcp_transmit_skb: len 33 ptr c3245dc5 47da06fd
[74276.204114] txd: 47da06fd: 14 51 c7 ac 35 63 67 52 7c fd ba 7b 80 18 03 fa  .Q..5cgR|..{....
[74276.204124] txd: f4f252ef: 83 dd 00 00 01 01 08 0a 4f 2f 71 b7 5b 58 6c 25  ........O/q.[Xl%
[74276.204134] txd: f0ca7b32: 45 56 54 59 50 45 3d 64 69 73 6b 00 44 49 53 4b  EVTYPE=disk.DISK

20:37:56.138901 IP OpenWrt.lan.5201 > 192.168.1.100.51116: Flags [P.], seq 1:2, ack 38, win 1018, options [nop,nop,TS val 1328509367 ecr
 1532521509], length 1
        0x0000:  04d9 f5f4 fede 70da 6a88 6eec 0800 4500  ......p.j.n...E.
        0x0010:  0035 cea9 4000 4006 e863 c0a8 0101 c0a8  .5..@.@..c......
        0x0020:  0164 1451 c7ac 3563 6752 7cfd ba7b 8018  .d.Q..5cgR|..{..
        0x0030:  03fa 83dd 0000 0101 080a 4f2f 71b7 5b58  ..........O/q.[X
        0x0040:  6c25 09       
                        l%.
So the dump of the skb data buffer in tcp_transmit_skb(), shows different data compared to the output of tcpdump. Call trace: [ 213.875713] unwind_backtrace from show_stack+0x10/0x14 [ 213.875737] show_stack from dump_stack_lvl+0x50/0x64 [ 213.875760] dump_stack_lvl from airoha_dev_xmit+0x70/0x890 [ 213.875785] airoha_dev_xmit from dev_hard_start_xmit+0xa4/0xec [ 213.875808] dev_hard_start_xmit from sch_direct_xmit+0x8c/0x30c [ 213.875829] sch_direct_xmit from __dev_queue_xmit+0x7e4/0xd7c [ 213.875847] __dev_queue_xmit from dsa_user_xmit+0x114/0x1a8 [ 213.875870] dsa_user_xmit from dev_hard_start_xmit+0xa4/0xec [ 213.875890] dev_hard_start_xmit from __dev_queue_xmit+0x200/0xd7c [ 213.875910] __dev_queue_xmit from br_dev_queue_push_xmit+0x68/0x190 [ 213.875928] br_dev_queue_push_xmit from br_forward_finish+0x90/0x9c [ 213.875940] br_forward_finish from br_dev_xmit+0x2c4/0x4cc [ 213.875958] br_dev_xmit from dev_hard_start_xmit+0xa4/0xec [ 213.875979] dev_hard_start_xmit from __dev_queue_xmit+0x200/0xd7c [ 213.875999] __dev_queue_xmit from ip_finish_output2+0x1e0/0x700 [ 213.876020] ip_finish_output2 from ip_output+0x4c/0xa0 [ 213.876037] ip_output from __ip_queue_xmit+0x174/0x47c [ 213.876054] __ip_queue_xmit from __tcp_transmit_skb+0x538/0xbc0 [ 213.876075] __tcp_transmit_skb from tcp_write_xmit+0x36c/0x1764 [ 213.876096] tcp_write_xmit from __tcp_push_pending_frames+0x30/0x10c [ 213.876117] __tcp_push_pending_frames from tcp_sendmsg_locked+0xa6c/0xcf0 [ 213.876135] tcp_sendmsg_locked from tcp_sendmsg+0x28/0x40 [ 213.876147] tcp_sendmsg from sock_write_iter+0x94/0xe4 [ 213.876167] sock_write_iter from vfs_write+0x3ac/0x42c [ 213.876190] vfs_write from ksys_write+0x8c/0xc4 [ 213.876208] ksys_write from ret_fast_syscall+0x0/0x4c ``` [74276.204083] (NULL device *): tcp_transmit_skb: len 33 ptr c3245dc5 47da06fd [74276.204114] txd: 47da06fd: 14 51 c7 ac 35 63 67 52 7c fd ba 7b 80 18 03 fa .Q..5cgR|..{.... [74276.204124] txd: f4f252ef: 83 dd 00 00 01 01 08 0a 4f 2f 71 b7 5b 58 6c 25 ........O/q.[Xl% [74276.204134] txd: f0ca7b32: 45 56 54 59 50 45 3d 64 69 73 6b 00 44 49 53 4b EVTYPE=disk.DISK 20:37:56.138901 IP OpenWrt.lan.5201 > 192.168.1.100.51116: Flags [P.], seq 1:2, ack 38, win 1018, options [nop,nop,TS val 1328509367 ecr 1532521509], length 1 0x0000: 04d9 f5f4 fede 70da 6a88 6eec 0800 4500 ......p.j.n...E. 0x0010: 0035 cea9 4000 4006 e863 c0a8 0101 c0a8 .5..@.@..c...... 0x0020: 0164 1451 c7ac 3563 6752 7cfd ba7b 8018 .d.Q..5cgR|..{.. 0x0030: 03fa 83dd 0000 0101 080a 4f2f 71b7 5b58 ..........O/q.[X 0x0040: 6c25 09 l%. ```
Owner

I don't think this detachment works on the EN7523; I'm tinkering with it to see if that's the problem.

870b0c8bf0/drivers/net/ethernet/airoha/airoha_eth.c (L1987-L1993)

I looked at this and while it is not really needed it looks like it does the correct thing.

> I don't think this detachment works on the EN7523; I'm tinkering with it to see if that's the problem. > > https://sirherobrine23.com.br/tplink_xx230v/kernel/src/commit/870b0c8bf05e61580e0d97edc79bf39c9bf3ac66/drivers/net/ethernet/airoha/airoha_eth.c#L1987-L1993 I looked at this and while it is not really needed it looks like it does the correct thing.
Owner

I installed python and transmitted raw packets. If I remove lan2 from the bridge the package buffer looks very different from what I am trying to transmit.

I installed python and transmitted raw packets. If I remove lan2 from the bridge the package buffer looks very different from what I am trying to transmit.
Author
Owner

So the dump of the skb data buffer in tcp_transmit_skb(), shows different data compared to the output of tcpdump.

i noticed that difference too, something I'm experiencing within airoha_dev_xmit -> airoha_get_dsa_tag, the end of the full buffer is completely different.

Computer (wireshark):

d0 bf 9c 26 fa 65 d8 44 89 bd cf d8 08 00 45 48  ...&.e.D......EH
01 ee c7 03 40 00 40 06 ee 08 c0 a8 01 01 c0 a8  ....@.@.........
01 64 00 16 ec 86 a5 cb 40 af c3 44 6c 9e 80 18  .d......@..Dl...
07 f4 64 5e 00 00 01 01 08 0a 9d f1 b4 47 ee e0  ..d^.........G..
f4 48 61 39 32 30 53 53 48 2d 32 2e 30 2d 64 72  .Ha920SSH-2.0-dr
6f 70 62 65 61 72 0d 0a 00 00 01 a4 08 14 31 ac  opbear........1.
01 76 a3 0c 24 8f d6 37 4f d9 fd dd 30 4b 00 00  .v..$..7O...0K..
00 bd 73 6e 74 72 75 70 37 36 31 78 32 35 35 31  ..sntrup761x2551
39 2d 73 68 61 35 31 32 2c 73 6e 74 72 75 70 37  9-sha512,sntrup7
36 31 78 32 35 35 31 39 2d 73 68 61 35 31 32 40  61x25519-sha512@
6f 70 65 6e 73 73 68 2e 63 6f 6d 2c 63 75 72 76  openssh.com,curv
65 32 35 35 31 39 2d 73 68 61 32 35 36 2c 63 75  e25519-sha256,cu
72 76 65 32 35 35 31 39 2d 73 68 61 32 35 36 40  rve25519-sha256@
6c 69 62 73 73 68 2e 6f 72 67 2c 64 69 66 66 69  libssh.org,diffi
65 2d 68 65 6c 6c 6d 61 6e 2d 67 72 6f 75 70 31  e-hellman-group1
34 2d 73 68 61 32 35 36 2c 6b 65 78 67 75 65 73  4-sha256,kexgues
73 32 40 6d 61 74 74 2e 75 63 63 2e 61 73 6e 2e  s2@matt.ucc.asn.
61 75 2c 6b 65 78 2d 73 74 72 69 63 74 2d 73 2d  au,kex-strict-s-
76 30 30 40 6f 70 65 6e 73 73 68 2e 63 6f 6d 00  v00@openssh.com.
00 00 18 73 73 68 2d 65 64 32 35 35 31 39 2c 72  ...ssh-ed25519,r
73 61 2d 73 68 61 32 2d 32 35 36 00 00 00 33 63  sa-sha2-256...3c
68 61 63 68 61 32 30 2d 70 6f 6c 79 31 33 30 35  hacha20-poly1305
40 6f 70 65 6e 73 73 68 2e 63 6f 6d 2c 61 65 73  @openssh.com,aes
32 35 36 2d 63 74 72 2c 61 65 73 31 32 38 2d 63  256-ctr,aes128-c
74 72 00 00 00 33 63 68 61 63 68 61 32 30 2d 70  tr...3chacha20-p
6f 6c 79 31 33 30 35 40 6f 70 65 6e 73 73 68 2e  oly1305@openssh.
63 6f 6d 2c 61 65 73 32 35 36 2d 63 74 72 2c 61  com,aes256-ctr,a
65 73 31 32 38 2d 63 74 72 00 00 00 0d 68 6d 61  es128-ctr....hma
63 2d 73 68 61 32 2d 32 35 36 00 00 00 0d 68 6d  c-sha2-256....hm
61 63 2d 73 68 61 32 2d 32 35 36 00 00 00 04 6e  ac-sha2-256....n
6f 6e 65 00 00 00 04 6e 6f 6e 65 00 00 00 00 00  one....none.....
00 00 00 00 00 00 00 00 19 d2 66 e7              ..........f.

router in 870b0c8bf0/drivers/net/ethernet/airoha/airoha_eth.c (L1987-L1993)

d0 bf 9c 26 fa 65 d8 44 89 bd cf d8 08 00 45 48  ...&.e.D......EH
01 ee 20 d0 40 00 40 06 94 3c c0 a8 01 01 c0 a8  .. .@.@..<......
01 64 00 16 8f 8c bd b5 e0 1a 94 98 62 03 80 18  .d..........b...
07 f4 85 96 00 00 01 01 08 0a 2e bc 84 2d ee be  .............-..
af 86 ff ff fe ff                                ......
53 53 48 2d 32 2e 30 2d 64 72 6f 70 62 65 61 72  SSH-2.0-dropbear
0d 0a 00 00 01 a4 08 14 e3 92 8c d2 65 a5 e4 e2  ............e...
e2 19 d4 c2 b5 4a 5e 1c 00 00 00 bd 73 6e 74 72  .....J^.....sntr
75 70 37 36 31 78 32 35 35 31 39 2d 73 68 61 35  up761x25519-sha5
31 32 2c 73 6e 74 72 75 70 37 36 31 78 32 35 35  12,sntrup761x255
31 39 2d 73 68 61 35 31 32 40 6f 70 65 6e 73 73  19-sha512@openss
68 2e 63 6f 6d 2c 63 75 72 76 65 32 35 35 31 39  h.com,curve25519
2d 73 68 61 32 35 36 2c 63 75 72 76 65 32 35 35  -sha256,curve255
31 39 2d 73 68 61 32 35 36 40 6c 69 62 73 73 68  19-sha256@libssh
2e 6f 72 67 2c 64 69 66 66 69 65 2d 68 65 6c 6c  .org,diffie-hell
6d 61 6e 2d 67 72 6f 75 70 31 34 2d 73 68 61 32  man-group14-sha2
35 36 2c 6b 65 78 67 75 65 73 73 32 40 6d 61 74  56,kexguess2@mat
74 2e 75 63 63 2e 61 73 6e 2e 61 75 2c 6b 65 78  t.ucc.asn.au,kex
2d 73 74 72 69 63 74 2d 73 2d 76 30 30 40 6f 70  -strict-s-v00@op
65 6e 73 73 68 2e 63 6f 6d 00 00 00 18 73 73 68  enssh.com....ssh
2d 65 64 32 35 35 31 39 2c 72 73 61 2d 73 68 61  -ed25519,rsa-sha
32 2d 32 35 36 00 00 00 33 63 68 61 63 68 61 32  2-256...3chacha2
30 2d 70 6f 6c 79 31 33 30 35 40 6f 70 65 6e 73  0-poly1305@opens
73 68 2e 63 6f 6d 2c 61 65 73 32 35 36 2d 63 74  sh.com,aes256-ct
72 2c 61 65 73 31 32 38 2d 63 74 72 00 00 00 33  r,aes128-ctr...3
63 68 61 63 68 61 32 30 2d 70 6f 6c 79 31 33 30  chacha20-poly130
35 40 6f 70 65 6e 73 73 68 2e 63 6f 6d 2c 61 65  5@openssh.com,ae
73 32 35 36 2d 63 74 72 2c 61 65 73 31 32 38 2d  s256-ctr,aes128-
63 74 72 00 00 00 0d 68 6d 61 63 2d 73 68 61 32  ctr....hmac-sha2
2d 32 35 36 00 00 00 0d 68 6d 61 63 2d 73 68 61  -256....hmac-sha
32 2d 32 35 36 00 00 00 04 6e 6f 6e 65 00 00 00  2-256....none...
04 6e 6f 6e 65 00 00 00 00 00 00 00 00 00 00 00  .none...........
00 00 90 8d a6 12 ef f4 a9 af                    ..........
> So the dump of the skb data buffer in tcp_transmit_skb(), shows different data compared to the output of tcpdump. i noticed that difference too, something I'm experiencing within `airoha_dev_xmit` -> `airoha_get_dsa_tag`, the end of the full buffer is completely different. Computer (wireshark): ``` d0 bf 9c 26 fa 65 d8 44 89 bd cf d8 08 00 45 48 ...&.e.D......EH 01 ee c7 03 40 00 40 06 ee 08 c0 a8 01 01 c0 a8 ....@.@......... 01 64 00 16 ec 86 a5 cb 40 af c3 44 6c 9e 80 18 .d......@..Dl... 07 f4 64 5e 00 00 01 01 08 0a 9d f1 b4 47 ee e0 ..d^.........G.. f4 48 61 39 32 30 53 53 48 2d 32 2e 30 2d 64 72 .Ha920SSH-2.0-dr 6f 70 62 65 61 72 0d 0a 00 00 01 a4 08 14 31 ac opbear........1. 01 76 a3 0c 24 8f d6 37 4f d9 fd dd 30 4b 00 00 .v..$..7O...0K.. 00 bd 73 6e 74 72 75 70 37 36 31 78 32 35 35 31 ..sntrup761x2551 39 2d 73 68 61 35 31 32 2c 73 6e 74 72 75 70 37 9-sha512,sntrup7 36 31 78 32 35 35 31 39 2d 73 68 61 35 31 32 40 61x25519-sha512@ 6f 70 65 6e 73 73 68 2e 63 6f 6d 2c 63 75 72 76 openssh.com,curv 65 32 35 35 31 39 2d 73 68 61 32 35 36 2c 63 75 e25519-sha256,cu 72 76 65 32 35 35 31 39 2d 73 68 61 32 35 36 40 rve25519-sha256@ 6c 69 62 73 73 68 2e 6f 72 67 2c 64 69 66 66 69 libssh.org,diffi 65 2d 68 65 6c 6c 6d 61 6e 2d 67 72 6f 75 70 31 e-hellman-group1 34 2d 73 68 61 32 35 36 2c 6b 65 78 67 75 65 73 4-sha256,kexgues 73 32 40 6d 61 74 74 2e 75 63 63 2e 61 73 6e 2e s2@matt.ucc.asn. 61 75 2c 6b 65 78 2d 73 74 72 69 63 74 2d 73 2d au,kex-strict-s- 76 30 30 40 6f 70 65 6e 73 73 68 2e 63 6f 6d 00 v00@openssh.com. 00 00 18 73 73 68 2d 65 64 32 35 35 31 39 2c 72 ...ssh-ed25519,r 73 61 2d 73 68 61 32 2d 32 35 36 00 00 00 33 63 sa-sha2-256...3c 68 61 63 68 61 32 30 2d 70 6f 6c 79 31 33 30 35 hacha20-poly1305 40 6f 70 65 6e 73 73 68 2e 63 6f 6d 2c 61 65 73 @openssh.com,aes 32 35 36 2d 63 74 72 2c 61 65 73 31 32 38 2d 63 256-ctr,aes128-c 74 72 00 00 00 33 63 68 61 63 68 61 32 30 2d 70 tr...3chacha20-p 6f 6c 79 31 33 30 35 40 6f 70 65 6e 73 73 68 2e oly1305@openssh. 63 6f 6d 2c 61 65 73 32 35 36 2d 63 74 72 2c 61 com,aes256-ctr,a 65 73 31 32 38 2d 63 74 72 00 00 00 0d 68 6d 61 es128-ctr....hma 63 2d 73 68 61 32 2d 32 35 36 00 00 00 0d 68 6d c-sha2-256....hm 61 63 2d 73 68 61 32 2d 32 35 36 00 00 00 04 6e ac-sha2-256....n 6f 6e 65 00 00 00 04 6e 6f 6e 65 00 00 00 00 00 one....none..... 00 00 00 00 00 00 00 00 19 d2 66 e7 ..........f. ``` router in https://sirherobrine23.com.br/tplink_xx230v/kernel/src/commit/870b0c8bf05e61580e0d97edc79bf39c9bf3ac66/drivers/net/ethernet/airoha/airoha_eth.c#L1987-L1993 ``` d0 bf 9c 26 fa 65 d8 44 89 bd cf d8 08 00 45 48 ...&.e.D......EH 01 ee 20 d0 40 00 40 06 94 3c c0 a8 01 01 c0 a8 .. .@.@..<...... 01 64 00 16 8f 8c bd b5 e0 1a 94 98 62 03 80 18 .d..........b... 07 f4 85 96 00 00 01 01 08 0a 2e bc 84 2d ee be .............-.. af 86 ff ff fe ff ...... 53 53 48 2d 32 2e 30 2d 64 72 6f 70 62 65 61 72 SSH-2.0-dropbear 0d 0a 00 00 01 a4 08 14 e3 92 8c d2 65 a5 e4 e2 ............e... e2 19 d4 c2 b5 4a 5e 1c 00 00 00 bd 73 6e 74 72 .....J^.....sntr 75 70 37 36 31 78 32 35 35 31 39 2d 73 68 61 35 up761x25519-sha5 31 32 2c 73 6e 74 72 75 70 37 36 31 78 32 35 35 12,sntrup761x255 31 39 2d 73 68 61 35 31 32 40 6f 70 65 6e 73 73 19-sha512@openss 68 2e 63 6f 6d 2c 63 75 72 76 65 32 35 35 31 39 h.com,curve25519 2d 73 68 61 32 35 36 2c 63 75 72 76 65 32 35 35 -sha256,curve255 31 39 2d 73 68 61 32 35 36 40 6c 69 62 73 73 68 19-sha256@libssh 2e 6f 72 67 2c 64 69 66 66 69 65 2d 68 65 6c 6c .org,diffie-hell 6d 61 6e 2d 67 72 6f 75 70 31 34 2d 73 68 61 32 man-group14-sha2 35 36 2c 6b 65 78 67 75 65 73 73 32 40 6d 61 74 56,kexguess2@mat 74 2e 75 63 63 2e 61 73 6e 2e 61 75 2c 6b 65 78 t.ucc.asn.au,kex 2d 73 74 72 69 63 74 2d 73 2d 76 30 30 40 6f 70 -strict-s-v00@op 65 6e 73 73 68 2e 63 6f 6d 00 00 00 18 73 73 68 enssh.com....ssh 2d 65 64 32 35 35 31 39 2c 72 73 61 2d 73 68 61 -ed25519,rsa-sha 32 2d 32 35 36 00 00 00 33 63 68 61 63 68 61 32 2-256...3chacha2 30 2d 70 6f 6c 79 31 33 30 35 40 6f 70 65 6e 73 0-poly1305@opens 73 68 2e 63 6f 6d 2c 61 65 73 32 35 36 2d 63 74 sh.com,aes256-ct 72 2c 61 65 73 31 32 38 2d 63 74 72 00 00 00 33 r,aes128-ctr...3 63 68 61 63 68 61 32 30 2d 70 6f 6c 79 31 33 30 chacha20-poly130 35 40 6f 70 65 6e 73 73 68 2e 63 6f 6d 2c 61 65 5@openssh.com,ae 73 32 35 36 2d 63 74 72 2c 61 65 73 31 32 38 2d s256-ctr,aes128- 63 74 72 00 00 00 0d 68 6d 61 63 2d 73 68 61 32 ctr....hmac-sha2 2d 32 35 36 00 00 00 0d 68 6d 61 63 2d 73 68 61 -256....hmac-sha 32 2d 32 35 36 00 00 00 04 6e 6f 6e 65 00 00 00 2-256....none... 04 6e 6f 6e 65 00 00 00 00 00 00 00 00 00 00 00 .none........... 00 00 90 8d a6 12 ef f4 a9 af .......... ```
Owner

No it looks fine, but it wont transfer.

No it looks fine, but it wont transfer.
Owner

With DSA active the MTK sp-tag is inserted. And then in the outgoing path it is removed again.

With DSA active the MTK sp-tag is inserted. And then in the outgoing path it is removed again.
Author
Owner
[boot_openwrt_2025-11-18_21-03.log](/attachments/d7e65674-8f9e-43c3-bc7e-7550fd0d2e01) [eth0_21_31.pcapng](/attachments/0ec002bc-95da-491c-841d-22e321dba9bc)
Owner

So the data path works like this. The internal switch is connected to the PSE GDM1 port. The MT7530 switch port 6 is connected to the GDM1 and then port 2 is connected to the world.

When I trace the counters with the bridge down it disables the traffic somehow. If I disable the bridge the packet gets through. So if the bridge is active the interface will not work as the switch will block the traffic.

Now synthetic packets sent towards my computer work fine.

But pinging an ip set on lan2 will not work.

So the data path works like this. The internal switch is connected to the PSE GDM1 port. The MT7530 switch port 6 is connected to the GDM1 and then port 2 is connected to the world. When I trace the counters with the bridge down it disables the traffic somehow. If I disable the bridge the packet gets through. So if the bridge is active the interface will not work as the switch will block the traffic. Now synthetic packets sent towards my computer work fine. But pinging an ip set on lan2 will not work.
Owner

The whole linux network stack just seem broken. If I go out of bridge mode and go directly on the interface I get a direct RST as a response from the TCP connection.

The whole linux network stack just seem broken. If I go out of bridge mode and go directly on the interface I get a direct RST as a response from the TCP connection.
Author
Owner

The problem is probably with the DSA working with TCP packets, or something is invalidating the packets in airoha_eth, TCP and UDP packets are being processed irregularly somewhere in the drivers of airoha_eth or mt7530

The problem is probably with the DSA working with TCP packets, or something is invalidating the packets in `airoha_eth`, TCP and UDP packets are being processed irregularly somewhere in the drivers of `airoha_eth` or `mt7530`
Owner

The sk_buff struct has different length parameters. There might be an issue in the rx path of the driver (airoha_qdma_rx_process).

I did have to adjust the tx path with the +4:

	len = skb_headlen(skb)+4;
	data = skb->data;
	index = q->head;

	dev_dbg(NULL, "airoha_dev_xmit mid: headlen %d, len %d skb->data_len %d\n", len, skb->len, skb->data_len);
	print_hex_dump_bytes("txd: ", DUMP_PREFIX_ADDRESS, data, 160);

The rx_process might need to get a length value correction also. If the networking stack gets badly formed sk_buffs from the driver then it sort of makes sense that the rest of the stack gets confused.

The sk_buff struct has different length parameters. There might be an issue in the rx path of the driver (airoha_qdma_rx_process). I did have to adjust the tx path with the +4: ``` len = skb_headlen(skb)+4; data = skb->data; index = q->head; dev_dbg(NULL, "airoha_dev_xmit mid: headlen %d, len %d skb->data_len %d\n", len, skb->len, skb->data_len); print_hex_dump_bytes("txd: ", DUMP_PREFIX_ADDRESS, data, 160); ``` The rx_process might need to get a length value correction also. If the networking stack gets badly formed sk_buffs from the driver then it sort of makes sense that the rest of the stack gets confused.
Owner

skb_linearize_cow(skb);

skb_linearize_cow(skb);
Owner

Add that somewhere in the tx path and the correct data should be present.

Add that somewhere in the tx path and the correct data should be present.
Author
Owner

It worked with SSH, but now we have the problem of processing freezing after the PSE buff runs out.

It worked with SSH, but now we have the problem of processing freezing after the PSE buff runs out.
Author
Owner

UDP

-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 192.168.1.100, port 60322
[  5] local 192.168.1.1 port 5201 connected to 192.168.1.100 port 41443
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-1.00   sec   100 KBytes   822 Kbits/sec  0.021 ms  20/91 (22%)  
[  5]   1.00-2.00   sec   129 KBytes  1.05 Mbits/sec  0.016 ms  0/91 (0%)  
[  5]   2.00-3.00   sec   127 KBytes  1.04 Mbits/sec  0.017 ms  0/90 (0%)  
[  5]   3.00-4.00   sec   129 KBytes  1.05 Mbits/sec  0.015 ms  0/91 (0%)  
[  5]   4.00-5.00   sec   127 KBytes  1.04 Mbits/sec  0.018 ms  0/90 (0%)  
[  5]   5.00-6.00   sec   129 KBytes  1.05 Mbits/sec  0.020 ms  0/91 (0%)  
[  5]   6.00-7.00   sec   127 KBytes  1.04 Mbits/sec  0.014 ms  0/90 (0%)  
[  5]   7.00-8.00   sec   129 KBytes  1.05 Mbits/sec  0.016 ms  0/91 (0%)  
[  5]   8.00-9.00   sec   127 KBytes  1.04 Mbits/sec  0.018 ms  0/90 (0%)  
[  5]   9.00-10.00  sec   129 KBytes  1.05 Mbits/sec  0.017 ms  0/91 (0%)  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00  sec  1.22 MBytes  1.03 Mbits/sec  0.017 ms  20/906 (2.2%)  receiver
-----------------------------------------------------------
Server listening on 5201 (test #2)
-----------------------------------------------------------
[  5] local 192.168.1.100 port 41443 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-1.00   sec   129 KBytes  1.05 Mbits/sec  91  
[  5]   1.00-2.00   sec   129 KBytes  1.05 Mbits/sec  91  
[  5]   2.00-3.00   sec   127 KBytes  1.04 Mbits/sec  90  
[  5]   3.00-4.00   sec   129 KBytes  1.05 Mbits/sec  91  
[  5]   4.00-5.00   sec   127 KBytes  1.04 Mbits/sec  90  
[  5]   5.00-6.00   sec   129 KBytes  1.05 Mbits/sec  91  
[  5]   6.00-7.00   sec   127 KBytes  1.04 Mbits/sec  90  
[  5]   7.00-8.00   sec   129 KBytes  1.05 Mbits/sec  91  
[  5]   8.00-9.00   sec   127 KBytes  1.04 Mbits/sec  90  
[  5]   9.00-10.00  sec   129 KBytes  1.05 Mbits/sec  91  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00  sec  1.25 MBytes  1.05 Mbits/sec  0.000 ms  0/906 (0%)  sender
[  5]   0.00-10.00  sec  1.22 MBytes  1.03 Mbits/sec  0.017 ms  20/906 (2.2%)  receiver

TCP

Accepted connection from 192.168.1.100, port 50224
[  5] local 192.168.1.1 port 5201 connected to 192.168.1.100 port 50228
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   101 MBytes   849 Mbits/sec                  
[  5]   1.00-2.00   sec   102 MBytes   857 Mbits/sec                  
[  5]   2.00-3.00   sec  98.5 MBytes   826 Mbits/sec                  
[  5]   3.00-4.00   sec   102 MBytes   857 Mbits/sec                  
[  5]   4.00-5.00   sec   103 MBytes   862 Mbits/sec                  
[  5]   5.00-6.00   sec   104 MBytes   873 Mbits/sec                  
[  5]   6.00-7.00   sec   102 MBytes   856 Mbits/sec                  
[  5]   7.00-8.00   sec  99.1 MBytes   832 Mbits/sec                  
[  5]   8.00-9.00   sec   104 MBytes   871 Mbits/sec                  
[  5]   9.00-10.00  sec  98.1 MBytes   823 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  1016 MBytes   852 Mbits/sec                  receiver
Connecting to host 192.168.1.1, port 5201
[  5] local 192.168.1.100 port 50228 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   103 MBytes   863 Mbits/sec    0    372 KBytes       
[  5]   1.00-2.00   sec   104 MBytes   869 Mbits/sec    0    372 KBytes       
[  5]   2.00-3.00   sec  98.2 MBytes   825 Mbits/sec    0    372 KBytes       
[  5]   3.00-4.00   sec   102 MBytes   857 Mbits/sec    0    372 KBytes       
[  5]   4.00-5.00   sec   102 MBytes   860 Mbits/sec    0    372 KBytes       
[  5]   5.00-6.00   sec   105 MBytes   879 Mbits/sec    0    372 KBytes       
[  5]   6.00-7.00   sec   102 MBytes   857 Mbits/sec    0    372 KBytes       
[  5]   7.00-8.00   sec  98.8 MBytes   828 Mbits/sec    0    372 KBytes       
[  5]   8.00-9.00   sec   104 MBytes   869 Mbits/sec    0    372 KBytes       
[  5]   9.00-10.00  sec  98.9 MBytes   829 Mbits/sec    0    372 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1018 MBytes   854 Mbits/sec    0            sender
[  5]   0.00-10.00  sec  1016 MBytes   852 Mbits/sec                  receiver
UDP ``` ----------------------------------------------------------- Server listening on 5201 (test #1) ----------------------------------------------------------- Accepted connection from 192.168.1.100, port 60322 [ 5] local 192.168.1.1 port 5201 connected to 192.168.1.100 port 41443 [ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-1.00 sec 100 KBytes 822 Kbits/sec 0.021 ms 20/91 (22%) [ 5] 1.00-2.00 sec 129 KBytes 1.05 Mbits/sec 0.016 ms 0/91 (0%) [ 5] 2.00-3.00 sec 127 KBytes 1.04 Mbits/sec 0.017 ms 0/90 (0%) [ 5] 3.00-4.00 sec 129 KBytes 1.05 Mbits/sec 0.015 ms 0/91 (0%) [ 5] 4.00-5.00 sec 127 KBytes 1.04 Mbits/sec 0.018 ms 0/90 (0%) [ 5] 5.00-6.00 sec 129 KBytes 1.05 Mbits/sec 0.020 ms 0/91 (0%) [ 5] 6.00-7.00 sec 127 KBytes 1.04 Mbits/sec 0.014 ms 0/90 (0%) [ 5] 7.00-8.00 sec 129 KBytes 1.05 Mbits/sec 0.016 ms 0/91 (0%) [ 5] 8.00-9.00 sec 127 KBytes 1.04 Mbits/sec 0.018 ms 0/90 (0%) [ 5] 9.00-10.00 sec 129 KBytes 1.05 Mbits/sec 0.017 ms 0/91 (0%) - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-10.00 sec 1.22 MBytes 1.03 Mbits/sec 0.017 ms 20/906 (2.2%) receiver ----------------------------------------------------------- Server listening on 5201 (test #2) ----------------------------------------------------------- ``` ``` [ 5] local 192.168.1.100 port 41443 connected to 192.168.1.1 port 5201 [ ID] Interval Transfer Bitrate Total Datagrams [ 5] 0.00-1.00 sec 129 KBytes 1.05 Mbits/sec 91 [ 5] 1.00-2.00 sec 129 KBytes 1.05 Mbits/sec 91 [ 5] 2.00-3.00 sec 127 KBytes 1.04 Mbits/sec 90 [ 5] 3.00-4.00 sec 129 KBytes 1.05 Mbits/sec 91 [ 5] 4.00-5.00 sec 127 KBytes 1.04 Mbits/sec 90 [ 5] 5.00-6.00 sec 129 KBytes 1.05 Mbits/sec 91 [ 5] 6.00-7.00 sec 127 KBytes 1.04 Mbits/sec 90 [ 5] 7.00-8.00 sec 129 KBytes 1.05 Mbits/sec 91 [ 5] 8.00-9.00 sec 127 KBytes 1.04 Mbits/sec 90 [ 5] 9.00-10.00 sec 129 KBytes 1.05 Mbits/sec 91 - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-10.00 sec 1.25 MBytes 1.05 Mbits/sec 0.000 ms 0/906 (0%) sender [ 5] 0.00-10.00 sec 1.22 MBytes 1.03 Mbits/sec 0.017 ms 20/906 (2.2%) receiver ``` --- TCP ``` Accepted connection from 192.168.1.100, port 50224 [ 5] local 192.168.1.1 port 5201 connected to 192.168.1.100 port 50228 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 101 MBytes 849 Mbits/sec [ 5] 1.00-2.00 sec 102 MBytes 857 Mbits/sec [ 5] 2.00-3.00 sec 98.5 MBytes 826 Mbits/sec [ 5] 3.00-4.00 sec 102 MBytes 857 Mbits/sec [ 5] 4.00-5.00 sec 103 MBytes 862 Mbits/sec [ 5] 5.00-6.00 sec 104 MBytes 873 Mbits/sec [ 5] 6.00-7.00 sec 102 MBytes 856 Mbits/sec [ 5] 7.00-8.00 sec 99.1 MBytes 832 Mbits/sec [ 5] 8.00-9.00 sec 104 MBytes 871 Mbits/sec [ 5] 9.00-10.00 sec 98.1 MBytes 823 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 1016 MBytes 852 Mbits/sec receiver ``` ``` Connecting to host 192.168.1.1, port 5201 [ 5] local 192.168.1.100 port 50228 connected to 192.168.1.1 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 103 MBytes 863 Mbits/sec 0 372 KBytes [ 5] 1.00-2.00 sec 104 MBytes 869 Mbits/sec 0 372 KBytes [ 5] 2.00-3.00 sec 98.2 MBytes 825 Mbits/sec 0 372 KBytes [ 5] 3.00-4.00 sec 102 MBytes 857 Mbits/sec 0 372 KBytes [ 5] 4.00-5.00 sec 102 MBytes 860 Mbits/sec 0 372 KBytes [ 5] 5.00-6.00 sec 105 MBytes 879 Mbits/sec 0 372 KBytes [ 5] 6.00-7.00 sec 102 MBytes 857 Mbits/sec 0 372 KBytes [ 5] 7.00-8.00 sec 98.8 MBytes 828 Mbits/sec 0 372 KBytes [ 5] 8.00-9.00 sec 104 MBytes 869 Mbits/sec 0 372 KBytes [ 5] 9.00-10.00 sec 98.9 MBytes 829 Mbits/sec 0 372 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 1018 MBytes 854 Mbits/sec 0 sender [ 5] 0.00-10.00 sec 1016 MBytes 852 Mbits/sec receiver ```
Author
Owner

Computer test

    speedtest-go v1.7.10 (git-dev) @showwin

✓ ISP: 187.57.135.250 (Vivo) [-23.695, -46.5616] 
✓ Found 100 Public Servers

✓ Test Server: [50774] 17.42km São Paulo (Brazil) by FHNET
✓ Latency: 165.224634ms Jitter: 56.221895ms Min: 13.510843ms Max: 200.794458ms
✓ Packet Loss Analyzer: Running in background (<= 30 Secs)
✓ Download: 302.59 Mbps (Used: 456.26MB) (Latency: 142ms Jitter: 265ms Min: 3ms Max: 900ms)
✓ Upload: 148.45 Mbps (Used: 190.37MB) (Latency: 99ms Jitter: 140ms Min: 4ms Max: 402ms)
✓ Packet Loss: 23.86% (Sent: 284/Dup: 0/Max: 372)
Computer test ``` speedtest-go v1.7.10 (git-dev) @showwin ✓ ISP: 187.57.135.250 (Vivo) [-23.695, -46.5616] ✓ Found 100 Public Servers ✓ Test Server: [50774] 17.42km São Paulo (Brazil) by FHNET ✓ Latency: 165.224634ms Jitter: 56.221895ms Min: 13.510843ms Max: 200.794458ms ✓ Packet Loss Analyzer: Running in background (<= 30 Secs) ✓ Download: 302.59 Mbps (Used: 456.26MB) (Latency: 142ms Jitter: 265ms Min: 3ms Max: 900ms) ✓ Upload: 148.45 Mbps (Used: 190.37MB) (Latency: 99ms Jitter: 140ms Min: 4ms Max: 402ms) ✓ Packet Loss: 23.86% (Sent: 284/Dup: 0/Max: 372) ```
Author
Owner

Okay, so something I noticed is that I first need to access the router via SSH before I can open any HTTP requests, so something is still not working correctly. However, it is functional; on the local connection, I am getting almost 1 Gbps from the network interface, and my internet speed is almost fully reached (I have 600 Mbps, which is what I get on the main router). Besides that, I haven't had any other problems so far. Another thing is that Flow offloading type as Hardware or Software is very slow for now.

Okay, so something I noticed is that I first need to access the router via SSH before I can open any HTTP requests, so something is still not working correctly. However, it is functional; on the local connection, I am getting almost 1 Gbps from the network interface, and my internet speed is almost fully reached (I have 600 Mbps, which is what I get on the main router). Besides that, I haven't had any other problems so far. Another thing is that Flow offloading type as Hardware or Software is very slow for now.
Author
Owner

Openwrt:

root@OpenWrt:~# speedtest-go 

    speedtest-go v1.7.10 (git-dev) @showwin

✓ ISP: 187.57.135.250 (Vivo) [-23.695, -46.5616] 
✓ Found 100 Public Servers

✓ Test Server: [27078] 6.23km Diadema (Brazil) by Mega Net Telecom Ltda
✓ Latency: 4.336732ms Jitter: 520.543µs Min: 3.706294ms Max: 5.368282ms
✓ Packet Loss Analyzer: Running in background (<= 30 Secs)
✓ Download: 549.04 Mbps (Used: 682.10MB) (Latency: 7ms Jitter: 1ms Min: 5ms Max: 12ms)
✓ Upload: 3.15 Mbps (Used: 3.93MB) (Latency: 4ms Jitter: 0ms Min: 3ms Max: 5ms)
✓ Packet Loss: N/A

Computer

speedtest-go                                      

    speedtest-go v1.7.10 (git-dev) @showwin

✓ ISP: 187.57.135.250 (Vivo) [-23.695, -46.5616] 
✓ Found 100 Public Servers

✓ Test Server: [31133] 6.23km Diadema (Brazil) by FORÇA E AÇÃO TELECOM
✓ Latency: 4.295483ms Jitter: 771.036µs Min: 3.230563ms Max: 6.096355ms
✓ Packet Loss Analyzer: Running in background (<= 30 Secs)
✓ Download: 182.35 Mbps (Used: 231.47MB) (Latency: 9ms Jitter: 3ms Min: 5ms Max: 19ms)
✓ Upload: 197.60 Mbps (Used: 247.39MB) (Latency: 25ms Jitter: 15ms Min: 6ms Max: 56ms)
✓ Packet Loss: 1.49% (Sent: 264/Dup: 0/Max: 267)
Openwrt: ``` root@OpenWrt:~# speedtest-go speedtest-go v1.7.10 (git-dev) @showwin ✓ ISP: 187.57.135.250 (Vivo) [-23.695, -46.5616] ✓ Found 100 Public Servers ✓ Test Server: [27078] 6.23km Diadema (Brazil) by Mega Net Telecom Ltda ✓ Latency: 4.336732ms Jitter: 520.543µs Min: 3.706294ms Max: 5.368282ms ✓ Packet Loss Analyzer: Running in background (<= 30 Secs) ✓ Download: 549.04 Mbps (Used: 682.10MB) (Latency: 7ms Jitter: 1ms Min: 5ms Max: 12ms) ✓ Upload: 3.15 Mbps (Used: 3.93MB) (Latency: 4ms Jitter: 0ms Min: 3ms Max: 5ms) ✓ Packet Loss: N/A ``` --- Computer ``` speedtest-go speedtest-go v1.7.10 (git-dev) @showwin ✓ ISP: 187.57.135.250 (Vivo) [-23.695, -46.5616] ✓ Found 100 Public Servers ✓ Test Server: [31133] 6.23km Diadema (Brazil) by FORÇA E AÇÃO TELECOM ✓ Latency: 4.295483ms Jitter: 771.036µs Min: 3.230563ms Max: 6.096355ms ✓ Packet Loss Analyzer: Running in background (<= 30 Secs) ✓ Download: 182.35 Mbps (Used: 231.47MB) (Latency: 9ms Jitter: 3ms Min: 5ms Max: 19ms) ✓ Upload: 197.60 Mbps (Used: 247.39MB) (Latency: 25ms Jitter: 15ms Min: 6ms Max: 56ms) ✓ Packet Loss: 1.49% (Sent: 264/Dup: 0/Max: 267) ```
Author
Owner
No description provided.
Author
Owner

Is this necessary, i removed/commented it out and had no more problems with the driver or packages?

480d374450/drivers/net/ethernet/airoha/airoha_eth.c (L490-L493)

Is this necessary, i removed/commented it out and had no more problems with the driver or packages? https://sirherobrine23.com.br/tplink_xx230v/kernel/src/commit/480d374450c4f3144d6d55b7eb294d61c37f8f38/drivers/net/ethernet/airoha/airoha_eth.c#L490-L493
Author
Owner

New iperf test


Computer

[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-699.53 sec  67.4 GBytes   827 Mbits/sec   89            sender
[  5]   0.00-699.53 sec  0.00 Bytes  0.00 bits/sec                  receiver
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-59.99  sec  0.00 Bytes  0.00 bits/sec                  sender
[  5]   0.00-59.99  sec  9.00 MBytes  1.26 Mbits/sec                  receiver

Openwrt

[ ID] Interval           Transfer     Bitrate
[  5]   0.00-3.00   sec   362 MBytes  1.01 Gbits/sec                  receiver
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-59.00  sec  9.00 MBytes  1.28 Mbits/sec  1576            sender
New iperf test --- Computer ``` [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-699.53 sec 67.4 GBytes 827 Mbits/sec 89 sender [ 5] 0.00-699.53 sec 0.00 Bytes 0.00 bits/sec receiver ``` ``` [ ID] Interval Transfer Bitrate [ 5] 0.00-59.99 sec 0.00 Bytes 0.00 bits/sec sender [ 5] 0.00-59.99 sec 9.00 MBytes 1.26 Mbits/sec receiver ``` ---- Openwrt ``` [ ID] Interval Transfer Bitrate [ 5] 0.00-3.00 sec 362 MBytes 1.01 Gbits/sec receiver ``` ``` [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-59.00 sec 9.00 MBytes 1.28 Mbits/sec 1576 sender ```
Author
Owner

wan -> Wireless

wan -> Wireless
Owner

TX cant do fragmented skbufs. The dma engine just wont work. So I have to dig into the ref software and setup everything exactly like they do. Then maybe fragmentation starts working.

TX cant do fragmented skbufs. The dma engine just wont work. So I have to dig into the ref software and setup everything exactly like they do. Then maybe fragmentation starts working.
Owner

Is this necessary, i removed/commented it out and had no more problems with the driver or packages?

480d374450/drivers/net/ethernet/airoha/airoha_eth.c (L490-L493)

I dont think it matters until we want to get more speed. I just follow the ref code.

> Is this necessary, i removed/commented it out and had no more problems with the driver or packages? > > https://sirherobrine23.com.br/tplink_xx230v/kernel/src/commit/480d374450c4f3144d6d55b7eb294d61c37f8f38/drivers/net/ethernet/airoha/airoha_eth.c#L490-L493 I dont think it matters until we want to get more speed. I just follow the ref code.
Author
Owner

I reverted some changes you made to airoha_eth and I took a quick test it. Tonight I'll leave iperf running so I can test it, but I find it strange that the upload speed has become so slow

I reverted some changes you made to `airoha_eth` and I took a quick test it. Tonight I'll leave iperf running so I can test it, but I find it strange that the upload speed has become so slow
Owner

 dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_RXCSUM |
       NETIF_F_TSO6 | NETIF_F_IPV6_CSUM |
       NETIF_F_SG | NETIF_F_TSO |
       NETIF_F_HW_TC;
      
If you remove NETIF_F_SG you should get better performance.

It all boils down to a tricky error with the qdma engine. This +4 should not be needed and I am trying to work around that. NETIF_F_SG is a good option to have and it would keep the driver logic mostly the same.

 dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_RXCSUM |        NETIF_F_TSO6 | NETIF_F_IPV6_CSUM |        NETIF_F_SG | NETIF_F_TSO |        NETIF_F_HW_TC;        If you remove NETIF_F_SG you should get better performance. It all boils down to a tricky error with the qdma engine. This +4 should not be needed and I am trying to work around that. NETIF_F_SG is a good option to have and it would keep the driver logic mostly the same.
Owner

Can you run sys memrl 1FB54018 on ref software?

Can you run sys memrl 1FB54018 on ref software?
Author
Owner

Can you run sys memrl 1FB54018 on ref software?

I'm going to change the rootfs to stock so I can log in via SSH and UART

> Can you run sys memrl 1FB54018 on ref software? I'm going to change the rootfs to stock so I can log in via SSH and UART
Author
Owner

Can you run sys memrl 1FB54018 on ref software?

<Address>       <Value>
0x1fb54018      0x30000000
> Can you run sys memrl 1FB54018 on ref software? ``` <Address> <Value> 0x1fb54018 0x30000000 ```
Author
Owner

@merbanan I applied your changes to my code, I don't know why, but when I use gdmp I lose network traffic with an one SSH connection, then I lose all traffic on both TX/RX, but when I remove gdmp my network traffic becomes completely stable, but with limited upload (computer -> Openwrt || Openwrt -> Internet)

@merbanan I applied your changes to my code, I don't know why, but when I use `gdmp` I lose network traffic with an one SSH connection, then I lose all traffic on both TX/RX, but when I remove `gdmp` my network traffic becomes completely stable, but with limited upload (computer -> Openwrt || Openwrt -> Internet)
Owner

I've traced the issue to the switch or phy. The driver is mostly ok.

I've traced the issue to the switch or phy. The driver is mostly ok.
Author
Owner
[  5] local 192.168.2.220 port 56928 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  16.5 MBytes   138 Mbits/sec                  
[  5]   1.00-2.00   sec  17.4 MBytes   146 Mbits/sec                  
[  5]   2.00-3.00   sec  18.1 MBytes   152 Mbits/sec                  
[  5]   3.00-4.00   sec  18.4 MBytes   154 Mbits/sec                  
[  5]   4.00-5.00   sec  18.6 MBytes   156 Mbits/sec                  
[  5]   5.00-6.00   sec  18.1 MBytes   152 Mbits/sec                  
[  5]   6.00-7.00   sec  17.6 MBytes   148 Mbits/sec                  
[  5]   7.00-8.00   sec  17.4 MBytes   146 Mbits/sec                  
[  5]   8.00-9.00   sec  15.6 MBytes   131 Mbits/sec                  
[  5]   9.00-10.00  sec  18.2 MBytes   153 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   176 MBytes   148 Mbits/sec  7068            sender
[  5]   0.00-10.00  sec   176 MBytes   148 Mbits/sec                  receiver

I changed a few things in DSA and got a slight increase in upload speed.

Patch in DSA
diff --git a/drivers/net/dsa/mt7530-mmio.c b/drivers/net/dsa/mt7530-mmio.c
index c53d870383ce..51960a384995 100644
--- a/drivers/net/dsa/mt7530-mmio.c
+++ b/drivers/net/dsa/mt7530-mmio.c
@@ -13,6 +13,7 @@
 static const struct of_device_id mt7988_of_match[] = {
 	{ .compatible = "airoha,an7583-switch", .data = &mt753x_table[ID_AN7583], },
 	{ .compatible = "airoha,en7581-switch", .data = &mt753x_table[ID_EN7581], },
+	{ .compatible = "airoha,en7523-switch", .data = &mt753x_table[ID_EN7523], },
 	{ .compatible = "mediatek,mt7988-switch", .data = &mt753x_table[ID_MT7988], },
 	{ /* sentinel */ },
 };
diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
index d62f576cf8c1..3790a40c116e 100644
--- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c
@@ -1153,7 +1153,8 @@ mt753x_cpu_port_enable(struct dsa_switch *ds, int port)
 	 * is affine to the inbound user port.
 	 */
 	if (priv->id == ID_MT7531 || priv->id == ID_MT7988 ||
-	    priv->id == ID_EN7581 || priv->id == ID_AN7583)
+	    priv->id == ID_EN7581 || priv->id == ID_AN7583 ||
+	    priv->id == ID_EN7523)
 		mt7530_set(priv, MT7531_CFC, MT7531_CPU_PMAP(BIT(port)));
 
 	/* CPU port gets connected to all user ports of
@@ -2589,7 +2590,7 @@ mt7531_setup_common(struct dsa_switch *ds)
 	mt7530_set(priv, MT753X_AGC, LOCAL_EN);
 
 	/* Enable Special Tag for rx frames */
-	if (priv->id == ID_EN7581 || priv->id == ID_AN7583)
+	if (priv->id == ID_EN7581 || priv->id == ID_AN7583 || priv->id == ID_EN7523)
 		mt7530_write(priv, MT753X_CPORT_SPTAG_CFG,
 			     CPORT_SW2FE_STAG_EN | CPORT_FE2SW_STAG_EN);
 
@@ -3157,6 +3158,26 @@ static int mt7988_setup(struct dsa_switch *ds)
 	reset_control_deassert(priv->rstc);
 	usleep_range(20, 50);
 
+	if (priv->id == ID_EN7523) {
+		// Set Driving Strength of the 5 TRGMII data channels to 0xAA (10/10) In closed driver: gswPbusWrite(0x7a54...0x7a74, 0xAA);
+		for (int i = 0; i < NUM_TRGMII_CTRL; i++)
+			mt7530_write(priv, MT7530_TRGMII_TD_ODT(i),
+				     TD_DM_DRVP(10) | TD_DM_DRVN(10));
+
+		// Set the Driving Strength of CLOCK TRGMII to 0x77 (7/7). This register (0x7a7c) is not covered by the loop above and is critical for stability. In the closed driver: gswPbusWrite(0x7a7c, 0x77)
+		mt7530_write(priv, 0x7a7c, TD_DM_DRVP(7) | TD_DM_DRVN(7));
+
+		// TX Reset: Set bit 28 from 0x7a40 (MT7530_TRGMII_TXCTRL), wait, and clear.
+		mt7530_rmw(priv, MT7530_TRGMII_TXCTRL, TX_RST, TX_RST);
+		usleep_range(10, 20);
+		mt7530_rmw(priv, MT7530_TRGMII_TXCTRL, TX_RST, 0);
+
+		// RX Reset: Set bit 31 to 0x7a00 (MT7530_TRGMII_RCK_CTRL), wait and clear
+		mt7530_rmw(priv, MT7530_TRGMII_RCK_CTRL, RX_RST, RX_RST);
+		usleep_range(10, 20);
+		mt7530_rmw(priv, MT7530_TRGMII_RCK_CTRL, RX_RST, 0);
+	}
+	
 	/* AN7583 require additional tweak to CONN_CFG */
 	if (priv->id == ID_AN7583)
 		mt7530_rmw(priv, AN7583_GEPHY_CONN_CFG,
@@ -3278,6 +3299,16 @@ const struct mt753x_info mt753x_table[] = {
 		.phy_write_c45 = mt7531_ind_c45_phy_write,
 		.mac_port_get_caps = en7581_mac_port_get_caps,
 	},
+	[ID_EN7523] = {
+		.id = ID_EN7523,
+		.pcs_ops = &mt7530_pcs_ops,
+		.sw_setup = mt7988_setup,
+		.phy_read_c22 = mt7531_ind_c22_phy_read,
+		.phy_write_c22 = mt7531_ind_c22_phy_write,
+		.phy_read_c45 = mt7531_ind_c45_phy_read,
+		.phy_write_c45 = mt7531_ind_c45_phy_write,
+		.mac_port_get_caps = en7581_mac_port_get_caps,
+	},
 };
 EXPORT_SYMBOL_GPL(mt753x_table);
 
diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
index 39c86e8642d9..517840915628 100644
--- a/drivers/net/dsa/mt7530.h
+++ b/drivers/net/dsa/mt7530.h
@@ -6,6 +6,8 @@
 #ifndef __MT7530_H
 #define __MT7530_H
 
+#include <linux/types.h>
+
 #define MT7530_NUM_PORTS		7
 #define MT7530_NUM_PHYS			5
 #define MT7530_NUM_FDB_RECORDS		2048
@@ -21,6 +23,7 @@ enum mt753x_id {
 	ID_MT7988 = 3,
 	ID_EN7581 = 4,
 	ID_AN7583 = 5,
+	ID_EN7523 = 6,
 };
 
 #define	NUM_TRGMII_CTRL			5
@@ -68,32 +71,37 @@ enum mt753x_id {
 #define MT753X_MIRROR_REG(id)		((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
 					  id == ID_EN7581 || \
-					  id == ID_AN7583) ? \
+					  id == ID_AN7583 || \
+					  id == ID_EN7523) ? \
 					 MT7531_CFC : MT753X_MFC)
 
 #define MT753X_MIRROR_EN(id)		((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
-					  id == ID_EN7581) ? \
+					  id == ID_EN7581 || \
+					  id == ID_EN7523) ? \
 					 MT7531_MIRROR_EN : MT7530_MIRROR_EN)
 
 #define MT753X_MIRROR_PORT_MASK(id)	((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
 					  id == ID_EN7581 || \
-					  id == ID_AN7583) ? \
+					  id == ID_AN7583 || \
+					  id == ID_EN7523) ? \
 					 MT7531_MIRROR_PORT_MASK : \
 					 MT7530_MIRROR_PORT_MASK)
 
 #define MT753X_MIRROR_PORT_GET(id, val)	((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
 					  id == ID_EN7581 || \
-					  id == ID_AN7583) ? \
+					  id == ID_AN7583 || \
+					  id == ID_EN7523) ? \
 					 MT7531_MIRROR_PORT_GET(val) : \
 					 MT7530_MIRROR_PORT_GET(val))
 
 #define MT753X_MIRROR_PORT_SET(id, val)	((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
 					  id == ID_EN7581 || \
-					  id == ID_AN7583) ? \
+					  id == ID_AN7583 || \
+					  id == ID_EN7523) ? \
 					 MT7531_MIRROR_PORT_SET(val) : \
 					 MT7530_MIRROR_PORT_SET(val))
 
``` [ 5] local 192.168.2.220 port 56928 connected to 192.168.2.1 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 16.5 MBytes 138 Mbits/sec [ 5] 1.00-2.00 sec 17.4 MBytes 146 Mbits/sec [ 5] 2.00-3.00 sec 18.1 MBytes 152 Mbits/sec [ 5] 3.00-4.00 sec 18.4 MBytes 154 Mbits/sec [ 5] 4.00-5.00 sec 18.6 MBytes 156 Mbits/sec [ 5] 5.00-6.00 sec 18.1 MBytes 152 Mbits/sec [ 5] 6.00-7.00 sec 17.6 MBytes 148 Mbits/sec [ 5] 7.00-8.00 sec 17.4 MBytes 146 Mbits/sec [ 5] 8.00-9.00 sec 15.6 MBytes 131 Mbits/sec [ 5] 9.00-10.00 sec 18.2 MBytes 153 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 176 MBytes 148 Mbits/sec 7068 sender [ 5] 0.00-10.00 sec 176 MBytes 148 Mbits/sec receiver ``` I changed a few things in DSA and got a slight increase in upload speed. <details> <summary>Patch in DSA</summary> ``` diff --git a/drivers/net/dsa/mt7530-mmio.c b/drivers/net/dsa/mt7530-mmio.c index c53d870383ce..51960a384995 100644 --- a/drivers/net/dsa/mt7530-mmio.c +++ b/drivers/net/dsa/mt7530-mmio.c @@ -13,6 +13,7 @@ static const struct of_device_id mt7988_of_match[] = { { .compatible = "airoha,an7583-switch", .data = &mt753x_table[ID_AN7583], }, { .compatible = "airoha,en7581-switch", .data = &mt753x_table[ID_EN7581], }, + { .compatible = "airoha,en7523-switch", .data = &mt753x_table[ID_EN7523], }, { .compatible = "mediatek,mt7988-switch", .data = &mt753x_table[ID_MT7988], }, { /* sentinel */ }, }; diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index d62f576cf8c1..3790a40c116e 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -1153,7 +1153,8 @@ mt753x_cpu_port_enable(struct dsa_switch *ds, int port) * is affine to the inbound user port. */ if (priv->id == ID_MT7531 || priv->id == ID_MT7988 || - priv->id == ID_EN7581 || priv->id == ID_AN7583) + priv->id == ID_EN7581 || priv->id == ID_AN7583 || + priv->id == ID_EN7523) mt7530_set(priv, MT7531_CFC, MT7531_CPU_PMAP(BIT(port))); /* CPU port gets connected to all user ports of @@ -2589,7 +2590,7 @@ mt7531_setup_common(struct dsa_switch *ds) mt7530_set(priv, MT753X_AGC, LOCAL_EN); /* Enable Special Tag for rx frames */ - if (priv->id == ID_EN7581 || priv->id == ID_AN7583) + if (priv->id == ID_EN7581 || priv->id == ID_AN7583 || priv->id == ID_EN7523) mt7530_write(priv, MT753X_CPORT_SPTAG_CFG, CPORT_SW2FE_STAG_EN | CPORT_FE2SW_STAG_EN); @@ -3157,6 +3158,26 @@ static int mt7988_setup(struct dsa_switch *ds) reset_control_deassert(priv->rstc); usleep_range(20, 50); + if (priv->id == ID_EN7523) { + // Set Driving Strength of the 5 TRGMII data channels to 0xAA (10/10) In closed driver: gswPbusWrite(0x7a54...0x7a74, 0xAA); + for (int i = 0; i < NUM_TRGMII_CTRL; i++) + mt7530_write(priv, MT7530_TRGMII_TD_ODT(i), + TD_DM_DRVP(10) | TD_DM_DRVN(10)); + + // Set the Driving Strength of CLOCK TRGMII to 0x77 (7/7). This register (0x7a7c) is not covered by the loop above and is critical for stability. In the closed driver: gswPbusWrite(0x7a7c, 0x77) + mt7530_write(priv, 0x7a7c, TD_DM_DRVP(7) | TD_DM_DRVN(7)); + + // TX Reset: Set bit 28 from 0x7a40 (MT7530_TRGMII_TXCTRL), wait, and clear. + mt7530_rmw(priv, MT7530_TRGMII_TXCTRL, TX_RST, TX_RST); + usleep_range(10, 20); + mt7530_rmw(priv, MT7530_TRGMII_TXCTRL, TX_RST, 0); + + // RX Reset: Set bit 31 to 0x7a00 (MT7530_TRGMII_RCK_CTRL), wait and clear + mt7530_rmw(priv, MT7530_TRGMII_RCK_CTRL, RX_RST, RX_RST); + usleep_range(10, 20); + mt7530_rmw(priv, MT7530_TRGMII_RCK_CTRL, RX_RST, 0); + } + /* AN7583 require additional tweak to CONN_CFG */ if (priv->id == ID_AN7583) mt7530_rmw(priv, AN7583_GEPHY_CONN_CFG, @@ -3278,6 +3299,16 @@ const struct mt753x_info mt753x_table[] = { .phy_write_c45 = mt7531_ind_c45_phy_write, .mac_port_get_caps = en7581_mac_port_get_caps, }, + [ID_EN7523] = { + .id = ID_EN7523, + .pcs_ops = &mt7530_pcs_ops, + .sw_setup = mt7988_setup, + .phy_read_c22 = mt7531_ind_c22_phy_read, + .phy_write_c22 = mt7531_ind_c22_phy_write, + .phy_read_c45 = mt7531_ind_c45_phy_read, + .phy_write_c45 = mt7531_ind_c45_phy_write, + .mac_port_get_caps = en7581_mac_port_get_caps, + }, }; EXPORT_SYMBOL_GPL(mt753x_table); diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h index 39c86e8642d9..517840915628 100644 --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h @@ -6,6 +6,8 @@ #ifndef __MT7530_H #define __MT7530_H +#include <linux/types.h> + #define MT7530_NUM_PORTS 7 #define MT7530_NUM_PHYS 5 #define MT7530_NUM_FDB_RECORDS 2048 @@ -21,6 +23,7 @@ enum mt753x_id { ID_MT7988 = 3, ID_EN7581 = 4, ID_AN7583 = 5, + ID_EN7523 = 6, }; #define NUM_TRGMII_CTRL 5 @@ -68,32 +71,37 @@ enum mt753x_id { #define MT753X_MIRROR_REG(id) ((id == ID_MT7531 || \ id == ID_MT7988 || \ id == ID_EN7581 || \ - id == ID_AN7583) ? \ + id == ID_AN7583 || \ + id == ID_EN7523) ? \ MT7531_CFC : MT753X_MFC) #define MT753X_MIRROR_EN(id) ((id == ID_MT7531 || \ id == ID_MT7988 || \ - id == ID_EN7581) ? \ + id == ID_EN7581 || \ + id == ID_EN7523) ? \ MT7531_MIRROR_EN : MT7530_MIRROR_EN) #define MT753X_MIRROR_PORT_MASK(id) ((id == ID_MT7531 || \ id == ID_MT7988 || \ id == ID_EN7581 || \ - id == ID_AN7583) ? \ + id == ID_AN7583 || \ + id == ID_EN7523) ? \ MT7531_MIRROR_PORT_MASK : \ MT7530_MIRROR_PORT_MASK) #define MT753X_MIRROR_PORT_GET(id, val) ((id == ID_MT7531 || \ id == ID_MT7988 || \ id == ID_EN7581 || \ - id == ID_AN7583) ? \ + id == ID_AN7583 || \ + id == ID_EN7523) ? \ MT7531_MIRROR_PORT_GET(val) : \ MT7530_MIRROR_PORT_GET(val)) #define MT753X_MIRROR_PORT_SET(id, val) ((id == ID_MT7531 || \ id == ID_MT7988 || \ id == ID_EN7581 || \ - id == ID_AN7583) ? \ + id == ID_AN7583 || \ + id == ID_EN7523) ? \ MT7531_MIRROR_PORT_SET(val) : \ MT7530_MIRROR_PORT_SET(val)) ``` </details>
Owner

if you look at the traffic in wireshark, is it clean or is there lots of errros ?

if you look at the traffic in wireshark, is it clean or is there lots of errros ?
Author
Owner

My last test with iperf3

My last test with iperf3
Owner

Yeah that is the same issue I also have. It looks like it is some kind of switch configuration.

Yeah that is the same issue I also have. It looks like it is some kind of switch configuration.
Author
Owner

With UDP test

iperf3 -c 192.168.2.1 -R --udp -b 1000M
Connecting to host 192.168.2.1, port 5201
Reverse mode, remote host 192.168.2.1 is sending
[  5] local 192.168.2.220 port 59218 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-1.00   sec  40.4 MBytes   339 Mbits/sec  0.022 ms  27/29277 (0.092%)  
[  5]   1.00-2.00   sec  40.0 MBytes   335 Mbits/sec  0.023 ms  8/28966 (0.028%)  
[  5]   2.00-3.00   sec  39.4 MBytes   331 Mbits/sec  0.022 ms  8/28568 (0.028%)  
[  5]   3.00-4.00   sec  40.3 MBytes   338 Mbits/sec  0.023 ms  8/29168 (0.027%)  
[  5]   4.00-5.00   sec  40.1 MBytes   336 Mbits/sec  0.024 ms  128/29158 (0.44%)  
[  5]   5.00-6.00   sec  40.0 MBytes   335 Mbits/sec  0.022 ms  13/28989 (0.045%)  
[  5]   6.00-7.00   sec  39.7 MBytes   333 Mbits/sec  0.024 ms  13/28766 (0.045%)  
[  5]   7.00-8.00   sec  39.9 MBytes   335 Mbits/sec  0.024 ms  8/28931 (0.028%)  
[  5]   8.00-9.00   sec  40.4 MBytes   339 Mbits/sec  0.023 ms  5/29247 (0.017%)  
[  5]   9.00-10.00  sec  39.9 MBytes   335 Mbits/sec  0.023 ms  5/28905 (0.017%)  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00  sec   400 MBytes   336 Mbits/sec  0.000 ms  0/289995 (0%)  sender
[  5]   0.00-10.00  sec   400 MBytes   336 Mbits/sec  0.023 ms  223/289975 (0.077%)  receiver

iperf Done.


iperf3 -c 192.168.2.1 -R --udp -b 2000M 
Connecting to host 192.168.2.1, port 5201
Reverse mode, remote host 192.168.2.1 is sending
[  5] local 192.168.2.220 port 33535 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-1.00   sec  40.3 MBytes   338 Mbits/sec  0.024 ms  152/29308 (0.52%)  
[  5]   1.00-2.00   sec  40.0 MBytes   335 Mbits/sec  0.021 ms  84/29042 (0.29%)  
[  5]   2.00-3.00   sec  40.2 MBytes   337 Mbits/sec  0.021 ms  405/29484 (1.4%)  
[  5]   3.00-4.00   sec  40.0 MBytes   336 Mbits/sec  0.023 ms  424/29424 (1.4%)  
[  5]   4.00-5.00   sec  40.5 MBytes   340 Mbits/sec  0.023 ms  348/29705 (1.2%)  
[  5]   5.00-6.00   sec  40.0 MBytes   336 Mbits/sec  0.020 ms  597/29575 (2%)  
[  5]   6.00-7.00   sec  40.1 MBytes   336 Mbits/sec  0.024 ms  427/29455 (1.4%)  
[  5]   7.00-8.00   sec  40.5 MBytes   339 Mbits/sec  0.022 ms  213/29506 (0.72%)  
[  5]   8.00-9.00   sec  40.2 MBytes   337 Mbits/sec  0.031 ms  545/29641 (1.8%)  
[  5]   9.00-10.00  sec  39.8 MBytes   334 Mbits/sec  0.025 ms  278/29070 (0.96%)  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00  sec   406 MBytes   341 Mbits/sec  0.000 ms  0/294222 (0%)  sender
[  5]   0.00-10.00  sec   401 MBytes   337 Mbits/sec  0.025 ms  3473/294210 (1.2%)  receiver

iperf Done.

With UDP test ``` iperf3 -c 192.168.2.1 -R --udp -b 1000M Connecting to host 192.168.2.1, port 5201 Reverse mode, remote host 192.168.2.1 is sending [ 5] local 192.168.2.220 port 59218 connected to 192.168.2.1 port 5201 [ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-1.00 sec 40.4 MBytes 339 Mbits/sec 0.022 ms 27/29277 (0.092%) [ 5] 1.00-2.00 sec 40.0 MBytes 335 Mbits/sec 0.023 ms 8/28966 (0.028%) [ 5] 2.00-3.00 sec 39.4 MBytes 331 Mbits/sec 0.022 ms 8/28568 (0.028%) [ 5] 3.00-4.00 sec 40.3 MBytes 338 Mbits/sec 0.023 ms 8/29168 (0.027%) [ 5] 4.00-5.00 sec 40.1 MBytes 336 Mbits/sec 0.024 ms 128/29158 (0.44%) [ 5] 5.00-6.00 sec 40.0 MBytes 335 Mbits/sec 0.022 ms 13/28989 (0.045%) [ 5] 6.00-7.00 sec 39.7 MBytes 333 Mbits/sec 0.024 ms 13/28766 (0.045%) [ 5] 7.00-8.00 sec 39.9 MBytes 335 Mbits/sec 0.024 ms 8/28931 (0.028%) [ 5] 8.00-9.00 sec 40.4 MBytes 339 Mbits/sec 0.023 ms 5/29247 (0.017%) [ 5] 9.00-10.00 sec 39.9 MBytes 335 Mbits/sec 0.023 ms 5/28905 (0.017%) - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-10.00 sec 400 MBytes 336 Mbits/sec 0.000 ms 0/289995 (0%) sender [ 5] 0.00-10.00 sec 400 MBytes 336 Mbits/sec 0.023 ms 223/289975 (0.077%) receiver iperf Done. iperf3 -c 192.168.2.1 -R --udp -b 2000M Connecting to host 192.168.2.1, port 5201 Reverse mode, remote host 192.168.2.1 is sending [ 5] local 192.168.2.220 port 33535 connected to 192.168.2.1 port 5201 [ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-1.00 sec 40.3 MBytes 338 Mbits/sec 0.024 ms 152/29308 (0.52%) [ 5] 1.00-2.00 sec 40.0 MBytes 335 Mbits/sec 0.021 ms 84/29042 (0.29%) [ 5] 2.00-3.00 sec 40.2 MBytes 337 Mbits/sec 0.021 ms 405/29484 (1.4%) [ 5] 3.00-4.00 sec 40.0 MBytes 336 Mbits/sec 0.023 ms 424/29424 (1.4%) [ 5] 4.00-5.00 sec 40.5 MBytes 340 Mbits/sec 0.023 ms 348/29705 (1.2%) [ 5] 5.00-6.00 sec 40.0 MBytes 336 Mbits/sec 0.020 ms 597/29575 (2%) [ 5] 6.00-7.00 sec 40.1 MBytes 336 Mbits/sec 0.024 ms 427/29455 (1.4%) [ 5] 7.00-8.00 sec 40.5 MBytes 339 Mbits/sec 0.022 ms 213/29506 (0.72%) [ 5] 8.00-9.00 sec 40.2 MBytes 337 Mbits/sec 0.031 ms 545/29641 (1.8%) [ 5] 9.00-10.00 sec 39.8 MBytes 334 Mbits/sec 0.025 ms 278/29070 (0.96%) - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-10.00 sec 406 MBytes 341 Mbits/sec 0.000 ms 0/294222 (0%) sender [ 5] 0.00-10.00 sec 401 MBytes 337 Mbits/sec 0.025 ms 3473/294210 (1.2%) receiver iperf Done. ```
Author
Owner

I discarded my changes in the DSA, tested it now without the modifications and it's the same thing, we'll have to look at the PHY

I discarded my changes in the DSA, tested it now without the modifications and it's the same thing, we'll have to look at the PHY
Owner

I tried with a 10mbit link and still get bad frames out of the device. I looked at the byte counters and they checked out.

The data path from the cpu is GDM1 tx -> ESW port 6 rx -> ESW port 2 tx.

I tried with a 10mbit link and still get bad frames out of the device. I looked at the byte counters and they checked out. The data path from the cpu is GDM1 tx -> ESW port 6 rx -> ESW port 2 tx.
Author
Owner
[ Port 1 ]
Rx Unicast Pkts        = 0x00000000, Rx Multicast Pkts      = 0x00000000
Rx Broadcast Pkts      = 0x00000000, Rx Align Error         = 0x00000000
Rx CRC Error           = 0x00000000, Rx Under Size Pkts     = 0x00000000
Rx Fragment Error      = 0x00000000, Rx Over Size Pkts      = 0x00000000
Rx Jabber Error        = 0x00000000, Rx Pause Pkts          = 0x00000000
Rx Drop Pkts           = 0x00000000, Rx ING Drop Pkts       = 0x00000000
Rx ARL Drop Pkts       = 0x00000000, Rx FILTER Drop Pkts    = 0x00000000
Rx CTRL Drop Pkts      = 0x00000000, Rx Octet Counter       = 0x00000000
Tx Unicase Pkts        = 0x00000000, Tx Multicast Pkts      = 0x00000000
Tx Broadcast Pkts      = 0x00000000, Tx Collision           = 0x00000000
Tx Single Collision    = 0x00000000, Tx Multiple Collision  = 0x00000000
Tx Defer               = 0x00000000, Tx Late Collision      = 0x00000000
Tx eXcessive Collision = 0x00000000, Tx Pause Pkt           = 0x00000000
Tx Drop Pkts           = 0x00000000, TX Octet Counter       = 0x00000000

[ Port 2 ]
Rx Unicast Pkts        = 0x0002E6CE, Rx Multicast Pkts      = 0x000000A0
Rx Broadcast Pkts      = 0x00000033, Rx Align Error         = 0x00000000
Rx CRC Error           = 0x00000000, Rx Under Size Pkts     = 0x00000000
Rx Fragment Error      = 0x00000000, Rx Over Size Pkts      = 0x00000000
Rx Jabber Error        = 0x00000000, Rx Pause Pkts          = 0x00000000
Rx Drop Pkts           = 0x00000000, Rx ING Drop Pkts       = 0x00000000
Rx ARL Drop Pkts       = 0x00000000, Rx FILTER Drop Pkts    = 0x00000001
Rx CTRL Drop Pkts      = 0x00000000, Rx Octet Counter       = 0x045D648A
Tx Unicase Pkts        = 0x000C0A00, Tx Multicast Pkts      = 0x00000015
Tx Broadcast Pkts      = 0x00000003, Tx Collision           = 0x00000000
Tx Single Collision    = 0x00000000, Tx Multiple Collision  = 0x00000000
Tx Defer               = 0x00000000, Tx Late Collision      = 0x00000000
Tx eXcessive Collision = 0x00000000, Tx Pause Pkt           = 0x00000000
Tx Drop Pkts           = 0x00000000, TX Octet Counter       = 0x443A67EE

[ Port 3 ]
Rx Unicast Pkts        = 0x00000000, Rx Multicast Pkts      = 0x00000000
Rx Broadcast Pkts      = 0x00000000, Rx Align Error         = 0x00000000
Rx CRC Error           = 0x00000000, Rx Under Size Pkts     = 0x00000000
Rx Fragment Error      = 0x00000000, Rx Over Size Pkts      = 0x00000000
Rx Jabber Error        = 0x00000000, Rx Pause Pkts          = 0x00000000
Rx Drop Pkts           = 0x00000000, Rx ING Drop Pkts       = 0x00000000
Rx ARL Drop Pkts       = 0x00000000, Rx FILTER Drop Pkts    = 0x00000000
Rx CTRL Drop Pkts      = 0x00000000, Rx Octet Counter       = 0x00000000
Tx Unicase Pkts        = 0x00000000, Tx Multicast Pkts      = 0x00000000
Tx Broadcast Pkts      = 0x00000000, Tx Collision           = 0x00000000
Tx Single Collision    = 0x00000000, Tx Multiple Collision  = 0x00000000
Tx Defer               = 0x00000000, Tx Late Collision      = 0x00000000
Tx eXcessive Collision = 0x00000000, Tx Pause Pkt           = 0x00000000
Tx Drop Pkts           = 0x00000000, TX Octet Counter       = 0x00000000

[ Port 4 ]
Rx Unicast Pkts        = 0x00067BD3, Rx Multicast Pkts      = 0x0000056C
Rx Broadcast Pkts      = 0x00000372, Rx Align Error         = 0x00000000
Rx CRC Error           = 0x00000000, Rx Under Size Pkts     = 0x00000000
Rx Fragment Error      = 0x00000000, Rx Over Size Pkts      = 0x00000000
Rx Jabber Error        = 0x00000000, Rx Pause Pkts          = 0x00000000
Rx Drop Pkts           = 0x00000000, Rx ING Drop Pkts       = 0x00000000
Rx ARL Drop Pkts       = 0x00000000, Rx FILTER Drop Pkts    = 0x00000027
Rx CTRL Drop Pkts      = 0x00000000, Rx Octet Counter       = 0x23A8CA11
Tx Unicase Pkts        = 0x0001FDB0, Tx Multicast Pkts      = 0x00000011
Tx Broadcast Pkts      = 0x00000003, Tx Collision           = 0x00000000
Tx Single Collision    = 0x00000000, Tx Multiple Collision  = 0x00000000
Tx Defer               = 0x00000000, Tx Late Collision      = 0x00000000
Tx eXcessive Collision = 0xDEADBEEF, Tx Pause Pkt           = 0xDEADBEEF
Tx Drop Pkts           = 0x00000000, TX Octet Counter       = 0x040D7337

[ Port 6 ]
Rx Unicast Pkts        = 0x000EE942, Rx Multicast Pkts      = 0x00000000
Rx Broadcast Pkts      = 0x00000000, Rx Align Error         = 0x00000000
Rx CRC Error           = 0x00000000, Rx Under Size Pkts     = 0x00000000
Rx Fragment Error      = 0x00000000, Rx Over Size Pkts      = 0x00000000
Rx Jabber Error        = 0x00000000, Rx Pause Pkts          = 0x00000000
Rx Drop Pkts           = 0x0000010D, Rx ING Drop Pkts       = 0x00000000
Rx ARL Drop Pkts       = 0x00000000, Rx FILTER Drop Pkts    = 0x00000006
Rx CTRL Drop Pkts      = 0x0000010D, Rx Octet Counter       = 0x4D42F72E
Tx Unicase Pkts        = 0x00096C2A, Tx Multicast Pkts      = 0x00000000
Tx Broadcast Pkts      = 0x00000000, Tx Collision           = 0x00000000
Tx Single Collision    = 0x00000000, Tx Multiple Collision  = 0x00000000
Tx Defer               = 0x00000000, Tx Late Collision      = 0x00000000
Tx eXcessive Collision = 0x00000000, Tx Pause Pkt           = 0x00000000
Tx Drop Pkts           = 0x00000000, TX Octet Counter       = 0x27E073F3

PSE_DROP_CNT:
P0:0x00000000  P1:0x00000000  P2:0x00000000  P3:0x00000000
P4:0x00000000  P5:0x00000000  P6:0x00000000  P7:0x00000000
P8:0xDEADBEEF  P9:0xDEADBEEF
PSE_IQ_CNT:    P0: 0x02 P1: 0x02 P2: 0x02 P3: 0x02 P4: 0x00 P5: 0x02
               P6: 0x02 P7: 0x02 P8: 0xDEAD P9: 0xDEAD
PSE_OQ_CNT:    P0: 0x00 P1: 0x00 P2: 0x00 P3: 0x00 P4: 0x00 P5: 0x00
               P6: 0x00 P7: 0x00 P8: 0xBEEF P9: 0xBEEF
PSE_SHARE_BUF:  SHARED_USED_CNT: 0x0000  SHARED_FREE_CNT: 0x014C

./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 56: ravr: not found
./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 57: ravr: not found
./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 58: ravr: not found
./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 59: ravr: not found
./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 60: ravr: not found
./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 61: ravr: not found
./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 62: ravr: not found
./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 63: ravr: not found
./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 64: ravr: not found
./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 65: ravr: not found
``` [ Port 1 ] Rx Unicast Pkts = 0x00000000, Rx Multicast Pkts = 0x00000000 Rx Broadcast Pkts = 0x00000000, Rx Align Error = 0x00000000 Rx CRC Error = 0x00000000, Rx Under Size Pkts = 0x00000000 Rx Fragment Error = 0x00000000, Rx Over Size Pkts = 0x00000000 Rx Jabber Error = 0x00000000, Rx Pause Pkts = 0x00000000 Rx Drop Pkts = 0x00000000, Rx ING Drop Pkts = 0x00000000 Rx ARL Drop Pkts = 0x00000000, Rx FILTER Drop Pkts = 0x00000000 Rx CTRL Drop Pkts = 0x00000000, Rx Octet Counter = 0x00000000 Tx Unicase Pkts = 0x00000000, Tx Multicast Pkts = 0x00000000 Tx Broadcast Pkts = 0x00000000, Tx Collision = 0x00000000 Tx Single Collision = 0x00000000, Tx Multiple Collision = 0x00000000 Tx Defer = 0x00000000, Tx Late Collision = 0x00000000 Tx eXcessive Collision = 0x00000000, Tx Pause Pkt = 0x00000000 Tx Drop Pkts = 0x00000000, TX Octet Counter = 0x00000000 [ Port 2 ] Rx Unicast Pkts = 0x0002E6CE, Rx Multicast Pkts = 0x000000A0 Rx Broadcast Pkts = 0x00000033, Rx Align Error = 0x00000000 Rx CRC Error = 0x00000000, Rx Under Size Pkts = 0x00000000 Rx Fragment Error = 0x00000000, Rx Over Size Pkts = 0x00000000 Rx Jabber Error = 0x00000000, Rx Pause Pkts = 0x00000000 Rx Drop Pkts = 0x00000000, Rx ING Drop Pkts = 0x00000000 Rx ARL Drop Pkts = 0x00000000, Rx FILTER Drop Pkts = 0x00000001 Rx CTRL Drop Pkts = 0x00000000, Rx Octet Counter = 0x045D648A Tx Unicase Pkts = 0x000C0A00, Tx Multicast Pkts = 0x00000015 Tx Broadcast Pkts = 0x00000003, Tx Collision = 0x00000000 Tx Single Collision = 0x00000000, Tx Multiple Collision = 0x00000000 Tx Defer = 0x00000000, Tx Late Collision = 0x00000000 Tx eXcessive Collision = 0x00000000, Tx Pause Pkt = 0x00000000 Tx Drop Pkts = 0x00000000, TX Octet Counter = 0x443A67EE [ Port 3 ] Rx Unicast Pkts = 0x00000000, Rx Multicast Pkts = 0x00000000 Rx Broadcast Pkts = 0x00000000, Rx Align Error = 0x00000000 Rx CRC Error = 0x00000000, Rx Under Size Pkts = 0x00000000 Rx Fragment Error = 0x00000000, Rx Over Size Pkts = 0x00000000 Rx Jabber Error = 0x00000000, Rx Pause Pkts = 0x00000000 Rx Drop Pkts = 0x00000000, Rx ING Drop Pkts = 0x00000000 Rx ARL Drop Pkts = 0x00000000, Rx FILTER Drop Pkts = 0x00000000 Rx CTRL Drop Pkts = 0x00000000, Rx Octet Counter = 0x00000000 Tx Unicase Pkts = 0x00000000, Tx Multicast Pkts = 0x00000000 Tx Broadcast Pkts = 0x00000000, Tx Collision = 0x00000000 Tx Single Collision = 0x00000000, Tx Multiple Collision = 0x00000000 Tx Defer = 0x00000000, Tx Late Collision = 0x00000000 Tx eXcessive Collision = 0x00000000, Tx Pause Pkt = 0x00000000 Tx Drop Pkts = 0x00000000, TX Octet Counter = 0x00000000 [ Port 4 ] Rx Unicast Pkts = 0x00067BD3, Rx Multicast Pkts = 0x0000056C Rx Broadcast Pkts = 0x00000372, Rx Align Error = 0x00000000 Rx CRC Error = 0x00000000, Rx Under Size Pkts = 0x00000000 Rx Fragment Error = 0x00000000, Rx Over Size Pkts = 0x00000000 Rx Jabber Error = 0x00000000, Rx Pause Pkts = 0x00000000 Rx Drop Pkts = 0x00000000, Rx ING Drop Pkts = 0x00000000 Rx ARL Drop Pkts = 0x00000000, Rx FILTER Drop Pkts = 0x00000027 Rx CTRL Drop Pkts = 0x00000000, Rx Octet Counter = 0x23A8CA11 Tx Unicase Pkts = 0x0001FDB0, Tx Multicast Pkts = 0x00000011 Tx Broadcast Pkts = 0x00000003, Tx Collision = 0x00000000 Tx Single Collision = 0x00000000, Tx Multiple Collision = 0x00000000 Tx Defer = 0x00000000, Tx Late Collision = 0x00000000 Tx eXcessive Collision = 0xDEADBEEF, Tx Pause Pkt = 0xDEADBEEF Tx Drop Pkts = 0x00000000, TX Octet Counter = 0x040D7337 [ Port 6 ] Rx Unicast Pkts = 0x000EE942, Rx Multicast Pkts = 0x00000000 Rx Broadcast Pkts = 0x00000000, Rx Align Error = 0x00000000 Rx CRC Error = 0x00000000, Rx Under Size Pkts = 0x00000000 Rx Fragment Error = 0x00000000, Rx Over Size Pkts = 0x00000000 Rx Jabber Error = 0x00000000, Rx Pause Pkts = 0x00000000 Rx Drop Pkts = 0x0000010D, Rx ING Drop Pkts = 0x00000000 Rx ARL Drop Pkts = 0x00000000, Rx FILTER Drop Pkts = 0x00000006 Rx CTRL Drop Pkts = 0x0000010D, Rx Octet Counter = 0x4D42F72E Tx Unicase Pkts = 0x00096C2A, Tx Multicast Pkts = 0x00000000 Tx Broadcast Pkts = 0x00000000, Tx Collision = 0x00000000 Tx Single Collision = 0x00000000, Tx Multiple Collision = 0x00000000 Tx Defer = 0x00000000, Tx Late Collision = 0x00000000 Tx eXcessive Collision = 0x00000000, Tx Pause Pkt = 0x00000000 Tx Drop Pkts = 0x00000000, TX Octet Counter = 0x27E073F3 PSE_DROP_CNT: P0:0x00000000 P1:0x00000000 P2:0x00000000 P3:0x00000000 P4:0x00000000 P5:0x00000000 P6:0x00000000 P7:0x00000000 P8:0xDEADBEEF P9:0xDEADBEEF PSE_IQ_CNT: P0: 0x02 P1: 0x02 P2: 0x02 P3: 0x02 P4: 0x00 P5: 0x02 P6: 0x02 P7: 0x02 P8: 0xDEAD P9: 0xDEAD PSE_OQ_CNT: P0: 0x00 P1: 0x00 P2: 0x00 P3: 0x00 P4: 0x00 P5: 0x00 P6: 0x00 P7: 0x00 P8: 0xBEEF P9: 0xBEEF PSE_SHARE_BUF: SHARED_USED_CNT: 0x0000 SHARED_FREE_CNT: 0x014C ./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 56: ravr: not found ./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 57: ravr: not found ./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 58: ravr: not found ./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 59: ravr: not found ./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 60: ravr: not found ./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 61: ravr: not found ./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 62: ravr: not found ./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 63: ravr: not found ./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 64: ravr: not found ./e4dbff11-6c9d-4540-be1e-68b6827cdbcc: line 65: ravr: not found ```
Owner

sh /gsw_diff.sh
Ping
PING 192.168.1.100 (192.168.1.100): 56 data bytes
RXDIFF: 0x62 TXDIFF: 0x62

sh /gsw_diff.sh Ping PING 192.168.1.100 (192.168.1.100): 56 data bytes RXDIFF: 0x62 TXDIFF: 0x62
Owner

On working ref I get RXDIFF: 0x62 TXDIFF: 0x66.

On working ref I get RXDIFF: 0x62 TXDIFF: 0x66.
Owner

So I think the switch configuration has something to do with it.

So I think the switch configuration has something to do with it.
Author
Owner

Today I got the GPL for xx530v v2, it's another SOC from the Econet/Airoha family, not same to v1

Today I got the GPL for xx530v v2, it's another SOC from the Econet/Airoha family, not same to v1 - https://sirherobrine23.com.br/tplink_gpl/tplink-xx530v_v2/src/branch/main/sdk/an7551/openwrt-21.02/openwrt-21.02.1_dev/linux-5.4.55
Owner

AN7551 is a stripped down AN7581.

AN7551 is a stripped down AN7581.
Owner

Ok, I was able to get one proper packet through but then things started to crash. I had to dump all the registers of the ref software internal switch and write them to the openwrt port. I have made alot of changes all over so it will take some time to figure out what is needed.

Ok, I was able to get one proper packet through but then things started to crash. I had to dump all the registers of the ref software internal switch and write them to the openwrt port. I have made alot of changes all over so it will take some time to figure out what is needed.
161 KiB
Sirherobrine23 added a new dependency 2025-11-27 02:58:29 +00:00
Owner

devmem 0x1fb5b600 32 0x205e33b

That makes the +4 in the tx path redundant.

There are still issues with the passing traffic though. Iperf3 gives bad results.

devmem 0x1fb5b600 32 0x205e33b That makes the +4 in the tx path redundant. There are still issues with the passing traffic though. Iperf3 gives bad results.
Owner

#define MT753X_PMCR_P(x)
#define MT7530_TXCRC_EN_P6 BIT(26)
#define MT7530_RXCRC_EN_P6 BIT(25)

It is bit 25 that needs to be set somewhere.

#define MT753X_PMCR_P(x) #define MT7530_TXCRC_EN_P6 BIT(26) #define MT7530_RXCRC_EN_P6 BIT(25) It is bit 25 that needs to be set somewhere.
Owner

devmem 0x1fb5b0ec 32 0x2

#define MT7530_DBGGCR 0x30EC
#define TXFC_LPICHK BIT(5)
#define LPDET_RDYFIX BIT(4)
#define PSON_RDYFIX BIT(3)
#define PSOFF_RDYFIX BIT(2)
#define CPORT_RXG_BUSY BIT(1)
#define TX_LKOFF_ENDCHK BIT(0)

CPORT_RXG_BUSY needs to be set.

devmem 0x1fb5b0ec 32 0x2 #define MT7530_DBGGCR 0x30EC #define TXFC_LPICHK BIT(5) #define LPDET_RDYFIX BIT(4) #define PSON_RDYFIX BIT(3) #define PSOFF_RDYFIX BIT(2) #define CPORT_RXG_BUSY BIT(1) #define TX_LKOFF_ENDCHK BIT(0) CPORT_RXG_BUSY needs to be set.
Owner

Now I get a quite clean steady 100mbit transfer.

Now I get a quite clean steady 100mbit transfer.
Owner

And with the revert of some patches i get the following:

iperf3 -c 192.168.1.1 -R -t1000
Connecting to host 192.168.1.1, port 5201
Reverse mode, remote host 192.168.1.1 is sending
[ 5] local 192.168.1.100 port 53064 connected to 192.168.1.1 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 31.0 MBytes 260 Mbits/sec
[ 5] 1.00-2.00 sec 30.4 MBytes 255 Mbits/sec
[ 5] 2.00-3.00 sec 28.0 MBytes 234 Mbits/sec
[ 5] 3.00-4.00 sec 32.2 MBytes 271 Mbits/sec
[ 5] 4.00-5.00 sec 33.3 MBytes 279 Mbits/sec
[ 5] 5.00-6.00 sec 30.8 MBytes 259 Mbits/sec
[ 5] 6.00-7.00 sec 25.3 MBytes 212 Mbits/sec
[ 5] 7.00-8.00 sec 28.0 MBytes 235 Mbits/sec
[ 5] 8.00-9.00 sec 30.9 MBytes 259 Mbits/sec
[ 5] 9.00-10.00 sec 35.6 MBytes 298 Mbits/sec
[ 5] 10.00-11.00 sec 27.6 MBytes 231 Mbits/sec
[ 5] 11.00-12.00 sec 26.6 MBytes 223 Mbits/sec
[ 5] 12.00-13.00 sec 27.6 MBytes 231 Mbits/sec
[ 5] 13.00-14.00 sec 35.1 MBytes 294 Mbits/sec
[ 5] 14.00-15.00 sec 37.8 MBytes 317 Mbits/sec
[ 5] 15.00-16.00 sec 28.6 MBytes 240 Mbits/sec
[ 5] 16.00-17.00 sec 29.7 MBytes 249 Mbits/sec
[ 5] 17.00-18.00 sec 38.7 MBytes 324 Mbits/sec
[ 5] 18.00-19.00 sec 26.1 MBytes 219 Mbits/sec
[ 5] 19.00-20.00 sec 33.7 MBytes 283 Mbits/sec
[ 5] 20.00-21.00 sec 38.5 MBytes 323 Mbits/sec
[ 5] 21.00-22.00 sec 33.0 MBytes 277 Mbits/sec

And with the revert of some patches i get the following: iperf3 -c 192.168.1.1 -R -t1000 Connecting to host 192.168.1.1, port 5201 Reverse mode, remote host 192.168.1.1 is sending [ 5] local 192.168.1.100 port 53064 connected to 192.168.1.1 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 31.0 MBytes 260 Mbits/sec [ 5] 1.00-2.00 sec 30.4 MBytes 255 Mbits/sec [ 5] 2.00-3.00 sec 28.0 MBytes 234 Mbits/sec [ 5] 3.00-4.00 sec 32.2 MBytes 271 Mbits/sec [ 5] 4.00-5.00 sec 33.3 MBytes 279 Mbits/sec [ 5] 5.00-6.00 sec 30.8 MBytes 259 Mbits/sec [ 5] 6.00-7.00 sec 25.3 MBytes 212 Mbits/sec [ 5] 7.00-8.00 sec 28.0 MBytes 235 Mbits/sec [ 5] 8.00-9.00 sec 30.9 MBytes 259 Mbits/sec [ 5] 9.00-10.00 sec 35.6 MBytes 298 Mbits/sec [ 5] 10.00-11.00 sec 27.6 MBytes 231 Mbits/sec [ 5] 11.00-12.00 sec 26.6 MBytes 223 Mbits/sec [ 5] 12.00-13.00 sec 27.6 MBytes 231 Mbits/sec [ 5] 13.00-14.00 sec 35.1 MBytes 294 Mbits/sec [ 5] 14.00-15.00 sec 37.8 MBytes 317 Mbits/sec [ 5] 15.00-16.00 sec 28.6 MBytes 240 Mbits/sec [ 5] 16.00-17.00 sec 29.7 MBytes 249 Mbits/sec [ 5] 17.00-18.00 sec 38.7 MBytes 324 Mbits/sec [ 5] 18.00-19.00 sec 26.1 MBytes 219 Mbits/sec [ 5] 19.00-20.00 sec 33.7 MBytes 283 Mbits/sec [ 5] 20.00-21.00 sec 38.5 MBytes 323 Mbits/sec [ 5] 21.00-22.00 sec 33.0 MBytes 277 Mbits/sec
Owner

devmem 0x1fb5b0F0 32 0xFF00

#define MT7530_CKGCR 0x30F0
#define LPI_TXIDLE_THD GENMASK(15, 8)
#define CKG_TXIDLE BIT(5)
#define CKG_RXLPI BIT(4)
#define CKG_LNKDN_PORT BIT(1)
#define CKG_LNKDN_GLB BIT(0)

MT7530_CKGCR should be set to 0xFF00

This does not seem to affect traffic

devmem 0x1fb5b0F0 32 0xFF00 #define MT7530_CKGCR 0x30F0 #define LPI_TXIDLE_THD GENMASK(15, 8) #define CKG_TXIDLE BIT(5) #define CKG_RXLPI BIT(4) #define CKG_LNKDN_PORT BIT(1) #define CKG_LNKDN_GLB BIT(0) MT7530_CKGCR should be set to 0xFF00 This does not seem to affect traffic
Author
Owner

From what I understand, you did this on the mt7530 driver

diff --git a/drivers/net/dsa/mt7530-mmio.c b/drivers/net/dsa/mt7530-mmio.c
index c53d870383ce..51960a384995 100644
--- a/drivers/net/dsa/mt7530-mmio.c
+++ b/drivers/net/dsa/mt7530-mmio.c
@@ -13,6 +13,7 @@
 static const struct of_device_id mt7988_of_match[] = {
 	{ .compatible = "airoha,an7583-switch", .data = &mt753x_table[ID_AN7583], },
 	{ .compatible = "airoha,en7581-switch", .data = &mt753x_table[ID_EN7581], },
+	{ .compatible = "airoha,en7523-switch", .data = &mt753x_table[ID_EN7523], },
 	{ .compatible = "mediatek,mt7988-switch", .data = &mt753x_table[ID_MT7988], },
 	{ /* sentinel */ },
 };
diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
index d62f576cf8c1..44a6ba3668a4 100644
--- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c
@@ -3170,6 +3170,12 @@ static int mt7988_setup(struct dsa_switch *ds)
 	/* Reset the switch PHYs */
 	mt7530_write(priv, MT7530_SYS_CTRL, SYS_CTRL_PHY_RST);
 
+	if (priv->id == ID_EN7523) {
+		mt7530_set(priv, MT753X_PMCR_P(6), MT7530_RXCRC_EN);
+		mt7530_set(priv, MT7530_DBGGCR, CPORT_RXG_BUSY);
+		mt7530_write(priv, MT7530_CKGCR, LPI_TXIDLE_THD(0xFF));
+	}
+	
 	return mt7531_setup_common(ds);
 }
 
@@ -3278,6 +3284,16 @@ const struct mt753x_info mt753x_table[] = {
 		.phy_write_c45 = mt7531_ind_c45_phy_write,
 		.mac_port_get_caps = en7581_mac_port_get_caps,
 	},
+	[ID_EN7523] = {
+		.id = ID_EN7523,
+		.pcs_ops = &mt7530_pcs_ops,
+		.sw_setup = mt7988_setup,
+		.phy_read_c22 = mt7531_ind_c22_phy_read,
+		.phy_write_c22 = mt7531_ind_c22_phy_write,
+		.phy_read_c45 = mt7531_ind_c45_phy_read,
+		.phy_write_c45 = mt7531_ind_c45_phy_write,
+		.mac_port_get_caps = en7581_mac_port_get_caps,
+	},
 };
 EXPORT_SYMBOL_GPL(mt753x_table);
 
diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
index 39c86e8642d9..cae8c1ca8c3f 100644
--- a/drivers/net/dsa/mt7530.h
+++ b/drivers/net/dsa/mt7530.h
@@ -21,6 +21,7 @@ enum mt753x_id {
 	ID_MT7988 = 3,
 	ID_EN7581 = 4,
 	ID_AN7583 = 5,
+	ID_EN7523 = 6,
 };
 
 #define	NUM_TRGMII_CTRL			5
@@ -68,32 +69,37 @@ enum mt753x_id {
 #define MT753X_MIRROR_REG(id)		((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
 					  id == ID_EN7581 || \
-					  id == ID_AN7583) ? \
+					  id == ID_AN7583 || \
+					  id == ID_EN7523) ? \
 					 MT7531_CFC : MT753X_MFC)
 
 #define MT753X_MIRROR_EN(id)		((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
-					  id == ID_EN7581) ? \
+					  id == ID_EN7581 || \
+					  id == ID_EN7523) ? \
 					 MT7531_MIRROR_EN : MT7530_MIRROR_EN)
 
 #define MT753X_MIRROR_PORT_MASK(id)	((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
 					  id == ID_EN7581 || \
-					  id == ID_AN7583) ? \
+					  id == ID_AN7583 || \
+					  id == ID_EN7523) ? \
 					 MT7531_MIRROR_PORT_MASK : \
 					 MT7530_MIRROR_PORT_MASK)
 
 #define MT753X_MIRROR_PORT_GET(id, val)	((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
 					  id == ID_EN7581 || \
-					  id == ID_AN7583) ? \
+					  id == ID_AN7583 || \
+					  id == ID_EN7523) ? \
 					 MT7531_MIRROR_PORT_GET(val) : \
 					 MT7530_MIRROR_PORT_GET(val))
 
 #define MT753X_MIRROR_PORT_SET(id, val)	((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
 					  id == ID_EN7581 || \
-					  id == ID_AN7583) ? \
+					  id == ID_AN7583 || \
+					  id == ID_EN7523) ? \
 					 MT7531_MIRROR_PORT_SET(val) : \
 					 MT7530_MIRROR_PORT_SET(val))
 
@@ -335,6 +341,8 @@ enum mt7530_vlan_port_acc_frm {
 
 /* Register for port MAC control register */
 #define MT753X_PMCR_P(x)		(0x3000 + ((x) * 0x100))
+#define  MT7530_TXCRC_EN		BIT(26)
+#define  MT7530_RXCRC_EN		BIT(25)
 #define  PMCR_IFG_XMIT_MASK		GENMASK(19, 18)
 #define  PMCR_IFG_XMIT(x)		FIELD_PREP(PMCR_IFG_XMIT_MASK, x)
 #define  PMCR_EXT_PHY			BIT(17)
@@ -414,6 +422,22 @@ enum mt7530_vlan_port_acc_frm {
 #define  MAX_RX_PKT_LEN_1552		0x2
 #define  MAX_RX_PKT_LEN_JUMBO		0x3
 
+#define MT7530_DBGGCR			0x30ec
+#define  TXFC_LPICHK			BIT(5)
+#define  LPDET_RDYFIX			BIT(4)
+#define  PSON_RDYFIX			BIT(3)
+#define  PSOFF_RDYFIX			BIT(2)
+#define  CPORT_RXG_BUSY			BIT(1)
+#define  TX_LKOFF_ENDCHK		BIT(0)
+
+#define MT7530_CKGCR			0x30f0
+#define  LPI_TXIDLE_THD_MASK		GENMASK(15, 8)
+#define  LPI_TXIDLE_THD(x)		FIELD_PREP(LPI_TXIDLE_THD_MASK, x)
+#define  CKG_TXIDLE			BIT(5)
+#define  CKG_RXLPI			BIT(4)
+#define  CKG_LNKDN_PORT			BIT(1)
+#define  CKG_LNKDN_GLB			BIT(0)
+
 /* Register for MIB */
 #define MT7530_PORT_MIB_COUNTER(x)	(0x4000 + (x) * 0x100)
 #define MT7530_MIB_CCR			0x4fe0

From what I understand, you did this on the mt7530 driver ```patch diff --git a/drivers/net/dsa/mt7530-mmio.c b/drivers/net/dsa/mt7530-mmio.c index c53d870383ce..51960a384995 100644 --- a/drivers/net/dsa/mt7530-mmio.c +++ b/drivers/net/dsa/mt7530-mmio.c @@ -13,6 +13,7 @@ static const struct of_device_id mt7988_of_match[] = { { .compatible = "airoha,an7583-switch", .data = &mt753x_table[ID_AN7583], }, { .compatible = "airoha,en7581-switch", .data = &mt753x_table[ID_EN7581], }, + { .compatible = "airoha,en7523-switch", .data = &mt753x_table[ID_EN7523], }, { .compatible = "mediatek,mt7988-switch", .data = &mt753x_table[ID_MT7988], }, { /* sentinel */ }, }; diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index d62f576cf8c1..44a6ba3668a4 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -3170,6 +3170,12 @@ static int mt7988_setup(struct dsa_switch *ds) /* Reset the switch PHYs */ mt7530_write(priv, MT7530_SYS_CTRL, SYS_CTRL_PHY_RST); + if (priv->id == ID_EN7523) { + mt7530_set(priv, MT753X_PMCR_P(6), MT7530_RXCRC_EN); + mt7530_set(priv, MT7530_DBGGCR, CPORT_RXG_BUSY); + mt7530_write(priv, MT7530_CKGCR, LPI_TXIDLE_THD(0xFF)); + } + return mt7531_setup_common(ds); } @@ -3278,6 +3284,16 @@ const struct mt753x_info mt753x_table[] = { .phy_write_c45 = mt7531_ind_c45_phy_write, .mac_port_get_caps = en7581_mac_port_get_caps, }, + [ID_EN7523] = { + .id = ID_EN7523, + .pcs_ops = &mt7530_pcs_ops, + .sw_setup = mt7988_setup, + .phy_read_c22 = mt7531_ind_c22_phy_read, + .phy_write_c22 = mt7531_ind_c22_phy_write, + .phy_read_c45 = mt7531_ind_c45_phy_read, + .phy_write_c45 = mt7531_ind_c45_phy_write, + .mac_port_get_caps = en7581_mac_port_get_caps, + }, }; EXPORT_SYMBOL_GPL(mt753x_table); diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h index 39c86e8642d9..cae8c1ca8c3f 100644 --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h @@ -21,6 +21,7 @@ enum mt753x_id { ID_MT7988 = 3, ID_EN7581 = 4, ID_AN7583 = 5, + ID_EN7523 = 6, }; #define NUM_TRGMII_CTRL 5 @@ -68,32 +69,37 @@ enum mt753x_id { #define MT753X_MIRROR_REG(id) ((id == ID_MT7531 || \ id == ID_MT7988 || \ id == ID_EN7581 || \ - id == ID_AN7583) ? \ + id == ID_AN7583 || \ + id == ID_EN7523) ? \ MT7531_CFC : MT753X_MFC) #define MT753X_MIRROR_EN(id) ((id == ID_MT7531 || \ id == ID_MT7988 || \ - id == ID_EN7581) ? \ + id == ID_EN7581 || \ + id == ID_EN7523) ? \ MT7531_MIRROR_EN : MT7530_MIRROR_EN) #define MT753X_MIRROR_PORT_MASK(id) ((id == ID_MT7531 || \ id == ID_MT7988 || \ id == ID_EN7581 || \ - id == ID_AN7583) ? \ + id == ID_AN7583 || \ + id == ID_EN7523) ? \ MT7531_MIRROR_PORT_MASK : \ MT7530_MIRROR_PORT_MASK) #define MT753X_MIRROR_PORT_GET(id, val) ((id == ID_MT7531 || \ id == ID_MT7988 || \ id == ID_EN7581 || \ - id == ID_AN7583) ? \ + id == ID_AN7583 || \ + id == ID_EN7523) ? \ MT7531_MIRROR_PORT_GET(val) : \ MT7530_MIRROR_PORT_GET(val)) #define MT753X_MIRROR_PORT_SET(id, val) ((id == ID_MT7531 || \ id == ID_MT7988 || \ id == ID_EN7581 || \ - id == ID_AN7583) ? \ + id == ID_AN7583 || \ + id == ID_EN7523) ? \ MT7531_MIRROR_PORT_SET(val) : \ MT7530_MIRROR_PORT_SET(val)) @@ -335,6 +341,8 @@ enum mt7530_vlan_port_acc_frm { /* Register for port MAC control register */ #define MT753X_PMCR_P(x) (0x3000 + ((x) * 0x100)) +#define MT7530_TXCRC_EN BIT(26) +#define MT7530_RXCRC_EN BIT(25) #define PMCR_IFG_XMIT_MASK GENMASK(19, 18) #define PMCR_IFG_XMIT(x) FIELD_PREP(PMCR_IFG_XMIT_MASK, x) #define PMCR_EXT_PHY BIT(17) @@ -414,6 +422,22 @@ enum mt7530_vlan_port_acc_frm { #define MAX_RX_PKT_LEN_1552 0x2 #define MAX_RX_PKT_LEN_JUMBO 0x3 +#define MT7530_DBGGCR 0x30ec +#define TXFC_LPICHK BIT(5) +#define LPDET_RDYFIX BIT(4) +#define PSON_RDYFIX BIT(3) +#define PSOFF_RDYFIX BIT(2) +#define CPORT_RXG_BUSY BIT(1) +#define TX_LKOFF_ENDCHK BIT(0) + +#define MT7530_CKGCR 0x30f0 +#define LPI_TXIDLE_THD_MASK GENMASK(15, 8) +#define LPI_TXIDLE_THD(x) FIELD_PREP(LPI_TXIDLE_THD_MASK, x) +#define CKG_TXIDLE BIT(5) +#define CKG_RXLPI BIT(4) +#define CKG_LNKDN_PORT BIT(1) +#define CKG_LNKDN_GLB BIT(0) + /* Register for MIB */ #define MT7530_PORT_MIB_COUNTER(x) (0x4000 + (x) * 0x100) #define MT7530_MIB_CCR 0x4fe0 ```
Owner

I have a messy work tree. But I think this should be enough for the traffic. IRQ routing seems fishy though.

I have a messy work tree. But I think this should be enough for the traffic. IRQ routing seems fishy though.
Owner

interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;

That is the correct irq for the switch. And I was able to get interrupts when connecting/disconnecting ethernet cables in the ports.

I think it should hook up to the same irq handler logic as the EN7581.

interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; That is the correct irq for the switch. And I was able to get interrupts when connecting/disconnecting ethernet cables in the ports. I think it should hook up to the same irq handler logic as the EN7581.
Author
Owner

From what I understand, you did this on the mt7530 driver

diff --git a/drivers/net/dsa/mt7530-mmio.c b/drivers/net/dsa/mt7530-mmio.c
index c53d870383ce..51960a384995 100644
--- a/drivers/net/dsa/mt7530-mmio.c
+++ b/drivers/net/dsa/mt7530-mmio.c
@@ -13,6 +13,7 @@
 static const struct of_device_id mt7988_of_match[] = {
 	{ .compatible = "airoha,an7583-switch", .data = &mt753x_table[ID_AN7583], },
 	{ .compatible = "airoha,en7581-switch", .data = &mt753x_table[ID_EN7581], },
+	{ .compatible = "airoha,en7523-switch", .data = &mt753x_table[ID_EN7523], },
 	{ .compatible = "mediatek,mt7988-switch", .data = &mt753x_table[ID_MT7988], },
 	{ /* sentinel */ },
 };
diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
index d62f576cf8c1..44a6ba3668a4 100644
--- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c
@@ -3170,6 +3170,12 @@ static int mt7988_setup(struct dsa_switch *ds)
 	/* Reset the switch PHYs */
 	mt7530_write(priv, MT7530_SYS_CTRL, SYS_CTRL_PHY_RST);
 
+	if (priv->id == ID_EN7523) {
+		mt7530_set(priv, MT753X_PMCR_P(6), MT7530_RXCRC_EN);
+		mt7530_set(priv, MT7530_DBGGCR, CPORT_RXG_BUSY);
+		mt7530_write(priv, MT7530_CKGCR, LPI_TXIDLE_THD(0xFF));
+	}
+	
 	return mt7531_setup_common(ds);
 }
 
@@ -3278,6 +3284,16 @@ const struct mt753x_info mt753x_table[] = {
 		.phy_write_c45 = mt7531_ind_c45_phy_write,
 		.mac_port_get_caps = en7581_mac_port_get_caps,
 	},
+	[ID_EN7523] = {
+		.id = ID_EN7523,
+		.pcs_ops = &mt7530_pcs_ops,
+		.sw_setup = mt7988_setup,
+		.phy_read_c22 = mt7531_ind_c22_phy_read,
+		.phy_write_c22 = mt7531_ind_c22_phy_write,
+		.phy_read_c45 = mt7531_ind_c45_phy_read,
+		.phy_write_c45 = mt7531_ind_c45_phy_write,
+		.mac_port_get_caps = en7581_mac_port_get_caps,
+	},
 };
 EXPORT_SYMBOL_GPL(mt753x_table);
 
diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
index 39c86e8642d9..cae8c1ca8c3f 100644
--- a/drivers/net/dsa/mt7530.h
+++ b/drivers/net/dsa/mt7530.h
@@ -21,6 +21,7 @@ enum mt753x_id {
 	ID_MT7988 = 3,
 	ID_EN7581 = 4,
 	ID_AN7583 = 5,
+	ID_EN7523 = 6,
 };
 
 #define	NUM_TRGMII_CTRL			5
@@ -68,32 +69,37 @@ enum mt753x_id {
 #define MT753X_MIRROR_REG(id)		((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
 					  id == ID_EN7581 || \
-					  id == ID_AN7583) ? \
+					  id == ID_AN7583 || \
+					  id == ID_EN7523) ? \
 					 MT7531_CFC : MT753X_MFC)
 
 #define MT753X_MIRROR_EN(id)		((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
-					  id == ID_EN7581) ? \
+					  id == ID_EN7581 || \
+					  id == ID_EN7523) ? \
 					 MT7531_MIRROR_EN : MT7530_MIRROR_EN)
 
 #define MT753X_MIRROR_PORT_MASK(id)	((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
 					  id == ID_EN7581 || \
-					  id == ID_AN7583) ? \
+					  id == ID_AN7583 || \
+					  id == ID_EN7523) ? \
 					 MT7531_MIRROR_PORT_MASK : \
 					 MT7530_MIRROR_PORT_MASK)
 
 #define MT753X_MIRROR_PORT_GET(id, val)	((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
 					  id == ID_EN7581 || \
-					  id == ID_AN7583) ? \
+					  id == ID_AN7583 || \
+					  id == ID_EN7523) ? \
 					 MT7531_MIRROR_PORT_GET(val) : \
 					 MT7530_MIRROR_PORT_GET(val))
 
 #define MT753X_MIRROR_PORT_SET(id, val)	((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
 					  id == ID_EN7581 || \
-					  id == ID_AN7583) ? \
+					  id == ID_AN7583 || \
+					  id == ID_EN7523) ? \
 					 MT7531_MIRROR_PORT_SET(val) : \
 					 MT7530_MIRROR_PORT_SET(val))
 
@@ -335,6 +341,8 @@ enum mt7530_vlan_port_acc_frm {
 
 /* Register for port MAC control register */
 #define MT753X_PMCR_P(x)		(0x3000 + ((x) * 0x100))
+#define  MT7530_TXCRC_EN		BIT(26)
+#define  MT7530_RXCRC_EN		BIT(25)
 #define  PMCR_IFG_XMIT_MASK		GENMASK(19, 18)
 #define  PMCR_IFG_XMIT(x)		FIELD_PREP(PMCR_IFG_XMIT_MASK, x)
 #define  PMCR_EXT_PHY			BIT(17)
@@ -414,6 +422,22 @@ enum mt7530_vlan_port_acc_frm {
 #define  MAX_RX_PKT_LEN_1552		0x2
 #define  MAX_RX_PKT_LEN_JUMBO		0x3
 
+#define MT7530_DBGGCR			0x30ec
+#define  TXFC_LPICHK			BIT(5)
+#define  LPDET_RDYFIX			BIT(4)
+#define  PSON_RDYFIX			BIT(3)
+#define  PSOFF_RDYFIX			BIT(2)
+#define  CPORT_RXG_BUSY			BIT(1)
+#define  TX_LKOFF_ENDCHK		BIT(0)
+
+#define MT7530_CKGCR			0x30f0
+#define  LPI_TXIDLE_THD_MASK		GENMASK(15, 8)
+#define  LPI_TXIDLE_THD(x)		FIELD_PREP(LPI_TXIDLE_THD_MASK, x)
+#define  CKG_TXIDLE			BIT(5)
+#define  CKG_RXLPI			BIT(4)
+#define  CKG_LNKDN_PORT			BIT(1)
+#define  CKG_LNKDN_GLB			BIT(0)
+
 /* Register for MIB */
 #define MT7530_PORT_MIB_COUNTER(x)	(0x4000 + (x) * 0x100)
 #define MT7530_MIB_CCR			0x4fe0

That didn't work. Before I left on Friday, I tested it, and there's still a lot of packet loss, so it didn't work.

> From what I understand, you did this on the mt7530 driver > > ```patch > diff --git a/drivers/net/dsa/mt7530-mmio.c b/drivers/net/dsa/mt7530-mmio.c > index c53d870383ce..51960a384995 100644 > --- a/drivers/net/dsa/mt7530-mmio.c > +++ b/drivers/net/dsa/mt7530-mmio.c > @@ -13,6 +13,7 @@ > static const struct of_device_id mt7988_of_match[] = { > { .compatible = "airoha,an7583-switch", .data = &mt753x_table[ID_AN7583], }, > { .compatible = "airoha,en7581-switch", .data = &mt753x_table[ID_EN7581], }, > + { .compatible = "airoha,en7523-switch", .data = &mt753x_table[ID_EN7523], }, > { .compatible = "mediatek,mt7988-switch", .data = &mt753x_table[ID_MT7988], }, > { /* sentinel */ }, > }; > diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c > index d62f576cf8c1..44a6ba3668a4 100644 > --- a/drivers/net/dsa/mt7530.c > +++ b/drivers/net/dsa/mt7530.c > @@ -3170,6 +3170,12 @@ static int mt7988_setup(struct dsa_switch *ds) > /* Reset the switch PHYs */ > mt7530_write(priv, MT7530_SYS_CTRL, SYS_CTRL_PHY_RST); > > + if (priv->id == ID_EN7523) { > + mt7530_set(priv, MT753X_PMCR_P(6), MT7530_RXCRC_EN); > + mt7530_set(priv, MT7530_DBGGCR, CPORT_RXG_BUSY); > + mt7530_write(priv, MT7530_CKGCR, LPI_TXIDLE_THD(0xFF)); > + } > + > return mt7531_setup_common(ds); > } > > @@ -3278,6 +3284,16 @@ const struct mt753x_info mt753x_table[] = { > .phy_write_c45 = mt7531_ind_c45_phy_write, > .mac_port_get_caps = en7581_mac_port_get_caps, > }, > + [ID_EN7523] = { > + .id = ID_EN7523, > + .pcs_ops = &mt7530_pcs_ops, > + .sw_setup = mt7988_setup, > + .phy_read_c22 = mt7531_ind_c22_phy_read, > + .phy_write_c22 = mt7531_ind_c22_phy_write, > + .phy_read_c45 = mt7531_ind_c45_phy_read, > + .phy_write_c45 = mt7531_ind_c45_phy_write, > + .mac_port_get_caps = en7581_mac_port_get_caps, > + }, > }; > EXPORT_SYMBOL_GPL(mt753x_table); > > diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h > index 39c86e8642d9..cae8c1ca8c3f 100644 > --- a/drivers/net/dsa/mt7530.h > +++ b/drivers/net/dsa/mt7530.h > @@ -21,6 +21,7 @@ enum mt753x_id { > ID_MT7988 = 3, > ID_EN7581 = 4, > ID_AN7583 = 5, > + ID_EN7523 = 6, > }; > > #define NUM_TRGMII_CTRL 5 > @@ -68,32 +69,37 @@ enum mt753x_id { > #define MT753X_MIRROR_REG(id) ((id == ID_MT7531 || \ > id == ID_MT7988 || \ > id == ID_EN7581 || \ > - id == ID_AN7583) ? \ > + id == ID_AN7583 || \ > + id == ID_EN7523) ? \ > MT7531_CFC : MT753X_MFC) > > #define MT753X_MIRROR_EN(id) ((id == ID_MT7531 || \ > id == ID_MT7988 || \ > - id == ID_EN7581) ? \ > + id == ID_EN7581 || \ > + id == ID_EN7523) ? \ > MT7531_MIRROR_EN : MT7530_MIRROR_EN) > > #define MT753X_MIRROR_PORT_MASK(id) ((id == ID_MT7531 || \ > id == ID_MT7988 || \ > id == ID_EN7581 || \ > - id == ID_AN7583) ? \ > + id == ID_AN7583 || \ > + id == ID_EN7523) ? \ > MT7531_MIRROR_PORT_MASK : \ > MT7530_MIRROR_PORT_MASK) > > #define MT753X_MIRROR_PORT_GET(id, val) ((id == ID_MT7531 || \ > id == ID_MT7988 || \ > id == ID_EN7581 || \ > - id == ID_AN7583) ? \ > + id == ID_AN7583 || \ > + id == ID_EN7523) ? \ > MT7531_MIRROR_PORT_GET(val) : \ > MT7530_MIRROR_PORT_GET(val)) > > #define MT753X_MIRROR_PORT_SET(id, val) ((id == ID_MT7531 || \ > id == ID_MT7988 || \ > id == ID_EN7581 || \ > - id == ID_AN7583) ? \ > + id == ID_AN7583 || \ > + id == ID_EN7523) ? \ > MT7531_MIRROR_PORT_SET(val) : \ > MT7530_MIRROR_PORT_SET(val)) > > @@ -335,6 +341,8 @@ enum mt7530_vlan_port_acc_frm { > > /* Register for port MAC control register */ > #define MT753X_PMCR_P(x) (0x3000 + ((x) * 0x100)) > +#define MT7530_TXCRC_EN BIT(26) > +#define MT7530_RXCRC_EN BIT(25) > #define PMCR_IFG_XMIT_MASK GENMASK(19, 18) > #define PMCR_IFG_XMIT(x) FIELD_PREP(PMCR_IFG_XMIT_MASK, x) > #define PMCR_EXT_PHY BIT(17) > @@ -414,6 +422,22 @@ enum mt7530_vlan_port_acc_frm { > #define MAX_RX_PKT_LEN_1552 0x2 > #define MAX_RX_PKT_LEN_JUMBO 0x3 > > +#define MT7530_DBGGCR 0x30ec > +#define TXFC_LPICHK BIT(5) > +#define LPDET_RDYFIX BIT(4) > +#define PSON_RDYFIX BIT(3) > +#define PSOFF_RDYFIX BIT(2) > +#define CPORT_RXG_BUSY BIT(1) > +#define TX_LKOFF_ENDCHK BIT(0) > + > +#define MT7530_CKGCR 0x30f0 > +#define LPI_TXIDLE_THD_MASK GENMASK(15, 8) > +#define LPI_TXIDLE_THD(x) FIELD_PREP(LPI_TXIDLE_THD_MASK, x) > +#define CKG_TXIDLE BIT(5) > +#define CKG_RXLPI BIT(4) > +#define CKG_LNKDN_PORT BIT(1) > +#define CKG_LNKDN_GLB BIT(0) > + > /* Register for MIB */ > #define MT7530_PORT_MIB_COUNTER(x) (0x4000 + (x) * 0x100) > #define MT7530_MIB_CCR 0x4fe0 > > ``` That didn't work. Before I left on Friday, I tested it, and there's still a lot of packet loss, so it didn't work.
Author
Owner

Command: iperf3 -c 192.168.2.1 -R -t1000

  • 100Mbps:
Accepted connection from 192.168.2.220, port 43506
[  5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 43520
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  3.12 MBytes  26.2 Mbits/sec  235   1.41 KBytes       
[  5]   1.00-2.00   sec  4.12 MBytes  34.6 Mbits/sec  309   1.41 KBytes       
[  5]   2.00-3.00   sec  3.88 MBytes  32.5 Mbits/sec  217   5.66 KBytes       
[  5]   3.00-4.00   sec  3.00 MBytes  25.2 Mbits/sec  309   2.83 KBytes       
[  5]   4.00-5.00   sec  3.88 MBytes  32.5 Mbits/sec  253   4.24 KBytes       
[  5]   5.00-6.00   sec  4.12 MBytes  34.6 Mbits/sec  272   2.83 KBytes       
[  5]   6.00-7.00   sec  4.25 MBytes  35.7 Mbits/sec  292   4.24 KBytes       
[  5]   7.00-8.00   sec  4.25 MBytes  35.7 Mbits/sec  224   2.83 KBytes       
[  5]   8.00-9.00   sec  4.25 MBytes  35.6 Mbits/sec  353   1.41 KBytes       
[  5]   9.00-10.00  sec  3.75 MBytes  31.5 Mbits/sec  275   4.24 KBytes       
[  5]  10.00-11.00  sec  3.88 MBytes  32.5 Mbits/sec  311   2.83 KBytes       
[  5]  11.00-12.00  sec  3.88 MBytes  32.5 Mbits/sec  300   4.24 KBytes       
[  5]  12.00-13.00  sec  2.75 MBytes  23.1 Mbits/sec  159   4.24 KBytes       
[  5]  13.00-14.00  sec  4.00 MBytes  33.6 Mbits/sec  375   4.24 KBytes       
[  5]  14.00-15.00  sec  4.38 MBytes  36.7 Mbits/sec  356   2.83 KBytes       
[  5]  15.00-16.00  sec  3.00 MBytes  25.2 Mbits/sec  214   4.24 KBytes       
[  5]  16.00-17.00  sec  4.38 MBytes  36.7 Mbits/sec  327   4.24 KBytes       
[  5]  17.00-18.00  sec  4.00 MBytes  33.6 Mbits/sec  276   2.83 KBytes       
[  5]  18.00-19.00  sec  3.75 MBytes  31.5 Mbits/sec  206   4.24 KBytes       
[  5]  19.00-20.00  sec  3.88 MBytes  32.5 Mbits/sec  231   4.24 KBytes       
[  5]  20.00-21.00  sec  3.62 MBytes  30.4 Mbits/sec  292   4.24 KBytes       
[  5]  21.00-22.00  sec  4.12 MBytes  34.6 Mbits/sec  354   2.83 KBytes       
[  5]  22.00-23.00  sec  3.88 MBytes  32.5 Mbits/sec  239   5.66 KBytes       
[  5]  23.00-24.00  sec  4.12 MBytes  34.6 Mbits/sec  255   1.41 KBytes       
[  5]  24.00-25.00  sec  4.00 MBytes  33.6 Mbits/sec  310   4.24 KBytes       
[  5]  25.00-26.00  sec  4.25 MBytes  35.6 Mbits/sec  136   5.66 KBytes       
[  5]  26.00-27.00  sec  4.00 MBytes  33.6 Mbits/sec  285   5.66 KBytes       
[  5]  27.00-28.00  sec  4.00 MBytes  33.6 Mbits/sec  283   4.24 KBytes       
[  5]  28.00-29.00  sec  3.12 MBytes  26.2 Mbits/sec   99   1.41 KBytes       
[  5]  29.00-30.00  sec  3.88 MBytes  32.5 Mbits/sec  134   2.83 KBytes       
[  5]  30.00-31.00  sec  2.50 MBytes  21.0 Mbits/sec   52   4.24 KBytes       
[  5]  31.00-32.00  sec  4.25 MBytes  35.7 Mbits/sec  304   2.83 KBytes       
[  5]  32.00-33.00  sec  3.50 MBytes  29.4 Mbits/sec  366   4.24 KBytes       
[  5]  32.00-33.00  sec  3.50 MBytes  29.4 Mbits/sec  366   4.24 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-33.00  sec   128 MBytes  32.5 Mbits/sec  8603            sender
iperf3: the client has terminated
  • 1Gbps:
Accepted connection from 192.168.2.220, port 55406
[  5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 55416
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  70.8 MBytes   593 Mbits/sec   37    232 KBytes       
[  5]   1.00-2.00   sec  77.8 MBytes   652 Mbits/sec    0    317 KBytes       
[  5]   2.00-3.00   sec  63.0 MBytes   528 Mbits/sec   25    246 KBytes       
[  5]   3.00-4.00   sec  72.8 MBytes   609 Mbits/sec    5    269 KBytes       
[  5]   4.00-5.00   sec  70.9 MBytes   595 Mbits/sec   15    235 KBytes       
[  5]   5.00-6.00   sec  59.1 MBytes   497 Mbits/sec   13    247 KBytes       
[  5]   6.00-7.00   sec  70.1 MBytes   588 Mbits/sec    0    307 KBytes       
[  5]   7.00-8.00   sec  63.1 MBytes   530 Mbits/sec   32    245 KBytes       
[  5]   8.00-9.00   sec  67.2 MBytes   564 Mbits/sec    9    290 KBytes       
[  5]   9.00-10.00  sec  68.9 MBytes   578 Mbits/sec   10    139 KBytes       
[  5]  10.00-11.00  sec  56.0 MBytes   470 Mbits/sec    8    264 KBytes       
[  5]  11.00-12.00  sec  51.5 MBytes   432 Mbits/sec    8    272 KBytes       
[  5]  12.00-13.00  sec  60.5 MBytes   508 Mbits/sec    4    303 KBytes       
[  5]  13.00-14.00  sec  65.5 MBytes   549 Mbits/sec   15    253 KBytes
[  5]  14.00-15.00  sec  69.5 MBytes   583 Mbits/sec   21    304 KBytes
[  5]  15.00-16.01  sec  76.0 MBytes   635 Mbits/sec   15    303 KBytes
[  5]  16.01-17.00  sec  76.6 MBytes   646 Mbits/sec   14    270 KBytes
[  5]  17.00-18.00  sec  78.9 MBytes   661 Mbits/sec    0    335 KBytes
[  5]  18.00-19.00  sec  73.2 MBytes   615 Mbits/sec   18    226 KBytes
[  5]  19.00-20.00  sec  76.9 MBytes   644 Mbits/sec    0    322 KBytes
[  5]  20.00-21.00  sec  67.0 MBytes   563 Mbits/sec   44    204 KBytes
[  5]  21.00-22.00  sec  58.4 MBytes   490 Mbits/sec    9    198 KBytes
[  5]  22.00-23.00  sec  53.6 MBytes   450 Mbits/sec    0    288 KBytes
[  5]  23.00-24.00  sec  61.0 MBytes   512 Mbits/sec   18    228 KBytes
[  5]  24.00-25.00  sec  69.8 MBytes   584 Mbits/sec   11    270 KBytes
[  5]  25.00-26.00  sec  76.9 MBytes   645 Mbits/sec    1    310 KBytes
[  5]  26.00-27.00  sec  60.4 MBytes   508 Mbits/sec   21    305 KBytes
[  5]  27.00-28.00  sec  64.2 MBytes   537 Mbits/sec   38    277 KBytes
[  5]  28.00-29.00  sec  75.1 MBytes   632 Mbits/sec   14    252 KBytes
[  5]  29.00-30.00  sec  68.2 MBytes   572 Mbits/sec   12    264 KBytes
[  5]  30.00-31.00  sec  75.1 MBytes   630 Mbits/sec   15    311 KBytes
[  5]  31.00-32.00  sec  69.4 MBytes   582 Mbits/sec    6    287 KBytes
[  5]  32.00-33.00  sec  77.1 MBytes   647 Mbits/sec    0    327 KBytes
[  5]  32.00-33.00  sec  77.1 MBytes   647 Mbits/sec    0    327 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-33.00  sec  2.25 GBytes   587 Mbits/sec  438            sender
iperf3: the client has terminated


Patch

diff --git a/drivers/net/dsa/mt7530-mmio.c b/drivers/net/dsa/mt7530-mmio.c
index c53d870383ce..128bfaf4c53a 100644
--- a/drivers/net/dsa/mt7530-mmio.c
+++ b/drivers/net/dsa/mt7530-mmio.c
@@ -11,6 +11,7 @@
 #include "mt7530.h"
 
 static const struct of_device_id mt7988_of_match[] = {
+	{ .compatible = "airoha,en7523-switch", .data = &mt753x_table[ID_EN7523], },
 	{ .compatible = "airoha,an7583-switch", .data = &mt753x_table[ID_AN7583], },
 	{ .compatible = "airoha,en7581-switch", .data = &mt753x_table[ID_EN7581], },
 	{ .compatible = "mediatek,mt7988-switch", .data = &mt753x_table[ID_MT7988], },
diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
index d62f576cf8c1..283143ec8ace 100644
--- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c
@@ -3167,6 +3167,12 @@ static int mt7988_setup(struct dsa_switch *ds)
 			   AN7583_CSR_PHY_CORE_REG_CLK_SEL |
 			   FIELD_PREP(AN7583_CSR_ETHER_AFE_PWD, 0));
 
+	if (priv->id == ID_EN7523) {
+		mt7530_set(priv, MT753X_PMCR_P(6), MT7530_RXCRC_EN);
+		mt7530_set(priv, MT7530_DBGGCR, CPORT_RXG_BUSY);
+		mt7530_write(priv, MT7530_CKGCR, LPI_TXIDLE_THD(0xFF));
+	}
+	
 	/* Reset the switch PHYs */
 	mt7530_write(priv, MT7530_SYS_CTRL, SYS_CTRL_PHY_RST);
 
@@ -3278,6 +3284,16 @@ const struct mt753x_info mt753x_table[] = {
 		.phy_write_c45 = mt7531_ind_c45_phy_write,
 		.mac_port_get_caps = en7581_mac_port_get_caps,
 	},
+	[ID_EN7523] = {
+		.id = ID_EN7523,
+		.pcs_ops = &mt7530_pcs_ops,
+		.sw_setup = mt7988_setup,
+		.phy_read_c22 = mt7531_ind_c22_phy_read,
+		.phy_write_c22 = mt7531_ind_c22_phy_write,
+		.phy_read_c45 = mt7531_ind_c45_phy_read,
+		.phy_write_c45 = mt7531_ind_c45_phy_write,
+		.mac_port_get_caps = en7581_mac_port_get_caps,
+	},
 };
 EXPORT_SYMBOL_GPL(mt753x_table);
 
diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
index 39c86e8642d9..2d3a0388e6e4 100644
--- a/drivers/net/dsa/mt7530.h
+++ b/drivers/net/dsa/mt7530.h
@@ -21,6 +21,7 @@ enum mt753x_id {
 	ID_MT7988 = 3,
 	ID_EN7581 = 4,
 	ID_AN7583 = 5,
+	ID_EN7523 = 6,
 };
 
 #define	NUM_TRGMII_CTRL			5
@@ -68,32 +69,37 @@ enum mt753x_id {
 #define MT753X_MIRROR_REG(id)		((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
 					  id == ID_EN7581 || \
-					  id == ID_AN7583) ? \
+					  id == ID_AN7583 || \
+					  id == ID_EN7523) ? \
 					 MT7531_CFC : MT753X_MFC)
 
 #define MT753X_MIRROR_EN(id)		((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
-					  id == ID_EN7581) ? \
+					  id == ID_EN7581 || \
+					  id == ID_EN7523) ? \
 					 MT7531_MIRROR_EN : MT7530_MIRROR_EN)
 
 #define MT753X_MIRROR_PORT_MASK(id)	((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
 					  id == ID_EN7581 || \
-					  id == ID_AN7583) ? \
+					  id == ID_AN7583 || \
+					  id == ID_EN7523) ? \
 					 MT7531_MIRROR_PORT_MASK : \
 					 MT7530_MIRROR_PORT_MASK)
 
 #define MT753X_MIRROR_PORT_GET(id, val)	((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
 					  id == ID_EN7581 || \
-					  id == ID_AN7583) ? \
+					  id == ID_AN7583 || \
+					  id == ID_EN7523) ? \
 					 MT7531_MIRROR_PORT_GET(val) : \
 					 MT7530_MIRROR_PORT_GET(val))
 
 #define MT753X_MIRROR_PORT_SET(id, val)	((id == ID_MT7531 || \
 					  id == ID_MT7988 || \
 					  id == ID_EN7581 || \
-					  id == ID_AN7583) ? \
+					  id == ID_AN7583 || \
+					  id == ID_EN7523) ? \
 					 MT7531_MIRROR_PORT_SET(val) : \
 					 MT7530_MIRROR_PORT_SET(val))
 
@@ -335,6 +341,8 @@ enum mt7530_vlan_port_acc_frm {
 
 /* Register for port MAC control register */
 #define MT753X_PMCR_P(x)		(0x3000 + ((x) * 0x100))
+#define  MT7530_TXCRC_EN		BIT(26)
+#define  MT7530_RXCRC_EN		BIT(25)
 #define  PMCR_IFG_XMIT_MASK		GENMASK(19, 18)
 #define  PMCR_IFG_XMIT(x)		FIELD_PREP(PMCR_IFG_XMIT_MASK, x)
 #define  PMCR_EXT_PHY			BIT(17)
@@ -405,6 +413,22 @@ enum mt7530_vlan_port_acc_frm {
 #define MT7531_DBG_CNT(x)		(0x3018 + (x) * 0x100)
 #define  MT7531_DIS_CLR			BIT(31)
 
+#define MT7530_DBGGCR			0x30ec
+#define  TXFC_LPICHK			BIT(5)
+#define  LPDET_RDYFIX			BIT(4)
+#define  PSON_RDYFIX			BIT(3)
+#define  PSOFF_RDYFIX			BIT(2)
+#define  CPORT_RXG_BUSY			BIT(1)
+#define  TX_LKOFF_ENDCHK		BIT(0)
+
+#define MT7530_CKGCR			0x30f0
+#define  LPI_TXIDLE_THD_MASK		GENMASK(15, 8)
+#define  LPI_TXIDLE_THD(x)		FIELD_PREP(LPI_TXIDLE_THD_MASK, x)
+#define  CKG_TXIDLE			BIT(5)
+#define  CKG_RXLPI			BIT(4)
+#define  CKG_LNKDN_PORT			BIT(1)
+#define  CKG_LNKDN_GLB			BIT(0)
+
 #define MT7530_GMACCR			0x30e0
 #define  MAX_RX_JUMBO(x)		((x) << 2)
 #define  MAX_RX_JUMBO_MASK		GENMASK(5, 2)

dts

	switch: switch@1fb58000 {
		compatible = "airoha,en7523-switch";
		reg = <0x1fb58000 0x8000>;
		resets = <&scu EN7523_GSW_RST>;

		interrupt-controller;
		#interrupt-cells = <1>;
		interrupt-parent = <&gic>;
		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;

		status = "disabled";

		#address-cells = <1>;
		#size-cells = <1>;

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@1 {
				reg = <1>;
				label = "lan1";
				phy-mode = "internal";
				phy-handle = <&gsw_phy1>;
			};

			port@2 {
				reg = <2>;
				label = "lan2";
				phy-mode = "internal";
				phy-handle = <&gsw_phy2>;
			};

			port@3 {
				reg = <3>;
				label = "lan3";
				phy-mode = "internal";
				phy-handle = <&gsw_phy3>;
			};

			port@4 {
				reg = <4>;
				label = "lan4";
				phy-mode = "internal";
				phy-handle = <&gsw_phy4>;
			};

			port@6 {
				reg = <6>;
				label = "cpu";
				ethernet = <&gdm1>;
				phy-mode = "internal";

				fixed-link {
					speed = <10000>;
					full-duplex;
					pause;
				};
			};
		};

		mdio {
			#address-cells = <1>;
			#size-cells = <0>;

			gsw_phy1: ethernet-phy@1 {
				compatible = "ethernet-phy-ieee802.3-c22";
				reg = <9>;
				phy-mode = "internal";
			};

			gsw_phy2: ethernet-phy@2 {
				compatible = "ethernet-phy-ieee802.3-c22";
				reg = <10>;
				phy-mode = "internal";
			};

			gsw_phy3: ethernet-phy@3 {
				compatible = "ethernet-phy-ieee802.3-c22";
				reg = <11>;
				phy-mode = "internal";
			};

			gsw_phy4: ethernet-phy@4 {
				compatible = "ethernet-phy-ieee802.3-c22";
				reg = <12>;
				phy-mode = "internal";
			};
		};
	};
	```
Command: `iperf3 -c 192.168.2.1 -R -t1000` - 100Mbps: ``` Accepted connection from 192.168.2.220, port 43506 [ 5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 43520 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 3.12 MBytes 26.2 Mbits/sec 235 1.41 KBytes [ 5] 1.00-2.00 sec 4.12 MBytes 34.6 Mbits/sec 309 1.41 KBytes [ 5] 2.00-3.00 sec 3.88 MBytes 32.5 Mbits/sec 217 5.66 KBytes [ 5] 3.00-4.00 sec 3.00 MBytes 25.2 Mbits/sec 309 2.83 KBytes [ 5] 4.00-5.00 sec 3.88 MBytes 32.5 Mbits/sec 253 4.24 KBytes [ 5] 5.00-6.00 sec 4.12 MBytes 34.6 Mbits/sec 272 2.83 KBytes [ 5] 6.00-7.00 sec 4.25 MBytes 35.7 Mbits/sec 292 4.24 KBytes [ 5] 7.00-8.00 sec 4.25 MBytes 35.7 Mbits/sec 224 2.83 KBytes [ 5] 8.00-9.00 sec 4.25 MBytes 35.6 Mbits/sec 353 1.41 KBytes [ 5] 9.00-10.00 sec 3.75 MBytes 31.5 Mbits/sec 275 4.24 KBytes [ 5] 10.00-11.00 sec 3.88 MBytes 32.5 Mbits/sec 311 2.83 KBytes [ 5] 11.00-12.00 sec 3.88 MBytes 32.5 Mbits/sec 300 4.24 KBytes [ 5] 12.00-13.00 sec 2.75 MBytes 23.1 Mbits/sec 159 4.24 KBytes [ 5] 13.00-14.00 sec 4.00 MBytes 33.6 Mbits/sec 375 4.24 KBytes [ 5] 14.00-15.00 sec 4.38 MBytes 36.7 Mbits/sec 356 2.83 KBytes [ 5] 15.00-16.00 sec 3.00 MBytes 25.2 Mbits/sec 214 4.24 KBytes [ 5] 16.00-17.00 sec 4.38 MBytes 36.7 Mbits/sec 327 4.24 KBytes [ 5] 17.00-18.00 sec 4.00 MBytes 33.6 Mbits/sec 276 2.83 KBytes [ 5] 18.00-19.00 sec 3.75 MBytes 31.5 Mbits/sec 206 4.24 KBytes [ 5] 19.00-20.00 sec 3.88 MBytes 32.5 Mbits/sec 231 4.24 KBytes [ 5] 20.00-21.00 sec 3.62 MBytes 30.4 Mbits/sec 292 4.24 KBytes [ 5] 21.00-22.00 sec 4.12 MBytes 34.6 Mbits/sec 354 2.83 KBytes [ 5] 22.00-23.00 sec 3.88 MBytes 32.5 Mbits/sec 239 5.66 KBytes [ 5] 23.00-24.00 sec 4.12 MBytes 34.6 Mbits/sec 255 1.41 KBytes [ 5] 24.00-25.00 sec 4.00 MBytes 33.6 Mbits/sec 310 4.24 KBytes [ 5] 25.00-26.00 sec 4.25 MBytes 35.6 Mbits/sec 136 5.66 KBytes [ 5] 26.00-27.00 sec 4.00 MBytes 33.6 Mbits/sec 285 5.66 KBytes [ 5] 27.00-28.00 sec 4.00 MBytes 33.6 Mbits/sec 283 4.24 KBytes [ 5] 28.00-29.00 sec 3.12 MBytes 26.2 Mbits/sec 99 1.41 KBytes [ 5] 29.00-30.00 sec 3.88 MBytes 32.5 Mbits/sec 134 2.83 KBytes [ 5] 30.00-31.00 sec 2.50 MBytes 21.0 Mbits/sec 52 4.24 KBytes [ 5] 31.00-32.00 sec 4.25 MBytes 35.7 Mbits/sec 304 2.83 KBytes [ 5] 32.00-33.00 sec 3.50 MBytes 29.4 Mbits/sec 366 4.24 KBytes [ 5] 32.00-33.00 sec 3.50 MBytes 29.4 Mbits/sec 366 4.24 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-33.00 sec 128 MBytes 32.5 Mbits/sec 8603 sender iperf3: the client has terminated ``` - 1Gbps: ``` Accepted connection from 192.168.2.220, port 55406 [ 5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 55416 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 70.8 MBytes 593 Mbits/sec 37 232 KBytes [ 5] 1.00-2.00 sec 77.8 MBytes 652 Mbits/sec 0 317 KBytes [ 5] 2.00-3.00 sec 63.0 MBytes 528 Mbits/sec 25 246 KBytes [ 5] 3.00-4.00 sec 72.8 MBytes 609 Mbits/sec 5 269 KBytes [ 5] 4.00-5.00 sec 70.9 MBytes 595 Mbits/sec 15 235 KBytes [ 5] 5.00-6.00 sec 59.1 MBytes 497 Mbits/sec 13 247 KBytes [ 5] 6.00-7.00 sec 70.1 MBytes 588 Mbits/sec 0 307 KBytes [ 5] 7.00-8.00 sec 63.1 MBytes 530 Mbits/sec 32 245 KBytes [ 5] 8.00-9.00 sec 67.2 MBytes 564 Mbits/sec 9 290 KBytes [ 5] 9.00-10.00 sec 68.9 MBytes 578 Mbits/sec 10 139 KBytes [ 5] 10.00-11.00 sec 56.0 MBytes 470 Mbits/sec 8 264 KBytes [ 5] 11.00-12.00 sec 51.5 MBytes 432 Mbits/sec 8 272 KBytes [ 5] 12.00-13.00 sec 60.5 MBytes 508 Mbits/sec 4 303 KBytes [ 5] 13.00-14.00 sec 65.5 MBytes 549 Mbits/sec 15 253 KBytes [ 5] 14.00-15.00 sec 69.5 MBytes 583 Mbits/sec 21 304 KBytes [ 5] 15.00-16.01 sec 76.0 MBytes 635 Mbits/sec 15 303 KBytes [ 5] 16.01-17.00 sec 76.6 MBytes 646 Mbits/sec 14 270 KBytes [ 5] 17.00-18.00 sec 78.9 MBytes 661 Mbits/sec 0 335 KBytes [ 5] 18.00-19.00 sec 73.2 MBytes 615 Mbits/sec 18 226 KBytes [ 5] 19.00-20.00 sec 76.9 MBytes 644 Mbits/sec 0 322 KBytes [ 5] 20.00-21.00 sec 67.0 MBytes 563 Mbits/sec 44 204 KBytes [ 5] 21.00-22.00 sec 58.4 MBytes 490 Mbits/sec 9 198 KBytes [ 5] 22.00-23.00 sec 53.6 MBytes 450 Mbits/sec 0 288 KBytes [ 5] 23.00-24.00 sec 61.0 MBytes 512 Mbits/sec 18 228 KBytes [ 5] 24.00-25.00 sec 69.8 MBytes 584 Mbits/sec 11 270 KBytes [ 5] 25.00-26.00 sec 76.9 MBytes 645 Mbits/sec 1 310 KBytes [ 5] 26.00-27.00 sec 60.4 MBytes 508 Mbits/sec 21 305 KBytes [ 5] 27.00-28.00 sec 64.2 MBytes 537 Mbits/sec 38 277 KBytes [ 5] 28.00-29.00 sec 75.1 MBytes 632 Mbits/sec 14 252 KBytes [ 5] 29.00-30.00 sec 68.2 MBytes 572 Mbits/sec 12 264 KBytes [ 5] 30.00-31.00 sec 75.1 MBytes 630 Mbits/sec 15 311 KBytes [ 5] 31.00-32.00 sec 69.4 MBytes 582 Mbits/sec 6 287 KBytes [ 5] 32.00-33.00 sec 77.1 MBytes 647 Mbits/sec 0 327 KBytes [ 5] 32.00-33.00 sec 77.1 MBytes 647 Mbits/sec 0 327 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-33.00 sec 2.25 GBytes 587 Mbits/sec 438 sender iperf3: the client has terminated ``` --- ## Patch ```patch diff --git a/drivers/net/dsa/mt7530-mmio.c b/drivers/net/dsa/mt7530-mmio.c index c53d870383ce..128bfaf4c53a 100644 --- a/drivers/net/dsa/mt7530-mmio.c +++ b/drivers/net/dsa/mt7530-mmio.c @@ -11,6 +11,7 @@ #include "mt7530.h" static const struct of_device_id mt7988_of_match[] = { + { .compatible = "airoha,en7523-switch", .data = &mt753x_table[ID_EN7523], }, { .compatible = "airoha,an7583-switch", .data = &mt753x_table[ID_AN7583], }, { .compatible = "airoha,en7581-switch", .data = &mt753x_table[ID_EN7581], }, { .compatible = "mediatek,mt7988-switch", .data = &mt753x_table[ID_MT7988], }, diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index d62f576cf8c1..283143ec8ace 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -3167,6 +3167,12 @@ static int mt7988_setup(struct dsa_switch *ds) AN7583_CSR_PHY_CORE_REG_CLK_SEL | FIELD_PREP(AN7583_CSR_ETHER_AFE_PWD, 0)); + if (priv->id == ID_EN7523) { + mt7530_set(priv, MT753X_PMCR_P(6), MT7530_RXCRC_EN); + mt7530_set(priv, MT7530_DBGGCR, CPORT_RXG_BUSY); + mt7530_write(priv, MT7530_CKGCR, LPI_TXIDLE_THD(0xFF)); + } + /* Reset the switch PHYs */ mt7530_write(priv, MT7530_SYS_CTRL, SYS_CTRL_PHY_RST); @@ -3278,6 +3284,16 @@ const struct mt753x_info mt753x_table[] = { .phy_write_c45 = mt7531_ind_c45_phy_write, .mac_port_get_caps = en7581_mac_port_get_caps, }, + [ID_EN7523] = { + .id = ID_EN7523, + .pcs_ops = &mt7530_pcs_ops, + .sw_setup = mt7988_setup, + .phy_read_c22 = mt7531_ind_c22_phy_read, + .phy_write_c22 = mt7531_ind_c22_phy_write, + .phy_read_c45 = mt7531_ind_c45_phy_read, + .phy_write_c45 = mt7531_ind_c45_phy_write, + .mac_port_get_caps = en7581_mac_port_get_caps, + }, }; EXPORT_SYMBOL_GPL(mt753x_table); diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h index 39c86e8642d9..2d3a0388e6e4 100644 --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h @@ -21,6 +21,7 @@ enum mt753x_id { ID_MT7988 = 3, ID_EN7581 = 4, ID_AN7583 = 5, + ID_EN7523 = 6, }; #define NUM_TRGMII_CTRL 5 @@ -68,32 +69,37 @@ enum mt753x_id { #define MT753X_MIRROR_REG(id) ((id == ID_MT7531 || \ id == ID_MT7988 || \ id == ID_EN7581 || \ - id == ID_AN7583) ? \ + id == ID_AN7583 || \ + id == ID_EN7523) ? \ MT7531_CFC : MT753X_MFC) #define MT753X_MIRROR_EN(id) ((id == ID_MT7531 || \ id == ID_MT7988 || \ - id == ID_EN7581) ? \ + id == ID_EN7581 || \ + id == ID_EN7523) ? \ MT7531_MIRROR_EN : MT7530_MIRROR_EN) #define MT753X_MIRROR_PORT_MASK(id) ((id == ID_MT7531 || \ id == ID_MT7988 || \ id == ID_EN7581 || \ - id == ID_AN7583) ? \ + id == ID_AN7583 || \ + id == ID_EN7523) ? \ MT7531_MIRROR_PORT_MASK : \ MT7530_MIRROR_PORT_MASK) #define MT753X_MIRROR_PORT_GET(id, val) ((id == ID_MT7531 || \ id == ID_MT7988 || \ id == ID_EN7581 || \ - id == ID_AN7583) ? \ + id == ID_AN7583 || \ + id == ID_EN7523) ? \ MT7531_MIRROR_PORT_GET(val) : \ MT7530_MIRROR_PORT_GET(val)) #define MT753X_MIRROR_PORT_SET(id, val) ((id == ID_MT7531 || \ id == ID_MT7988 || \ id == ID_EN7581 || \ - id == ID_AN7583) ? \ + id == ID_AN7583 || \ + id == ID_EN7523) ? \ MT7531_MIRROR_PORT_SET(val) : \ MT7530_MIRROR_PORT_SET(val)) @@ -335,6 +341,8 @@ enum mt7530_vlan_port_acc_frm { /* Register for port MAC control register */ #define MT753X_PMCR_P(x) (0x3000 + ((x) * 0x100)) +#define MT7530_TXCRC_EN BIT(26) +#define MT7530_RXCRC_EN BIT(25) #define PMCR_IFG_XMIT_MASK GENMASK(19, 18) #define PMCR_IFG_XMIT(x) FIELD_PREP(PMCR_IFG_XMIT_MASK, x) #define PMCR_EXT_PHY BIT(17) @@ -405,6 +413,22 @@ enum mt7530_vlan_port_acc_frm { #define MT7531_DBG_CNT(x) (0x3018 + (x) * 0x100) #define MT7531_DIS_CLR BIT(31) +#define MT7530_DBGGCR 0x30ec +#define TXFC_LPICHK BIT(5) +#define LPDET_RDYFIX BIT(4) +#define PSON_RDYFIX BIT(3) +#define PSOFF_RDYFIX BIT(2) +#define CPORT_RXG_BUSY BIT(1) +#define TX_LKOFF_ENDCHK BIT(0) + +#define MT7530_CKGCR 0x30f0 +#define LPI_TXIDLE_THD_MASK GENMASK(15, 8) +#define LPI_TXIDLE_THD(x) FIELD_PREP(LPI_TXIDLE_THD_MASK, x) +#define CKG_TXIDLE BIT(5) +#define CKG_RXLPI BIT(4) +#define CKG_LNKDN_PORT BIT(1) +#define CKG_LNKDN_GLB BIT(0) + #define MT7530_GMACCR 0x30e0 #define MAX_RX_JUMBO(x) ((x) << 2) #define MAX_RX_JUMBO_MASK GENMASK(5, 2) ``` --- ## dts ```dts switch: switch@1fb58000 { compatible = "airoha,en7523-switch"; reg = <0x1fb58000 0x8000>; resets = <&scu EN7523_GSW_RST>; interrupt-controller; #interrupt-cells = <1>; interrupt-parent = <&gic>; interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; #address-cells = <1>; #size-cells = <1>; ports { #address-cells = <1>; #size-cells = <0>; port@1 { reg = <1>; label = "lan1"; phy-mode = "internal"; phy-handle = <&gsw_phy1>; }; port@2 { reg = <2>; label = "lan2"; phy-mode = "internal"; phy-handle = <&gsw_phy2>; }; port@3 { reg = <3>; label = "lan3"; phy-mode = "internal"; phy-handle = <&gsw_phy3>; }; port@4 { reg = <4>; label = "lan4"; phy-mode = "internal"; phy-handle = <&gsw_phy4>; }; port@6 { reg = <6>; label = "cpu"; ethernet = <&gdm1>; phy-mode = "internal"; fixed-link { speed = <10000>; full-duplex; pause; }; }; }; mdio { #address-cells = <1>; #size-cells = <0>; gsw_phy1: ethernet-phy@1 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <9>; phy-mode = "internal"; }; gsw_phy2: ethernet-phy@2 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <10>; phy-mode = "internal"; }; gsw_phy3: ethernet-phy@3 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <11>; phy-mode = "internal"; }; gsw_phy4: ethernet-phy@4 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <12>; phy-mode = "internal"; }; }; }; ```
Author
Owner

External iperf server: iperf3 -c 138.199.4.1 -R -t100

Connecting to host 138.199.4.1, port 5201
Reverse mode, remote host 138.199.4.1 is sending
[  5] local 192.168.2.220 port 38378 connected to 138.199.4.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  37.6 MBytes   315 Mbits/sec                  
[  5]   1.00-2.00   sec  40.4 MBytes   339 Mbits/sec                  
[  5]   2.00-3.00   sec  38.9 MBytes   326 Mbits/sec                  
[  5]   3.00-4.00   sec  40.1 MBytes   337 Mbits/sec                  
[  5]   4.00-5.00   sec  38.4 MBytes   322 Mbits/sec                  
[  5]   5.00-6.00   sec  36.8 MBytes   308 Mbits/sec                  
[  5]   6.00-7.00   sec  37.8 MBytes   317 Mbits/sec                  
[  5]   7.00-8.00   sec  36.0 MBytes   302 Mbits/sec                  
[  5]   8.00-9.00   sec  36.0 MBytes   302 Mbits/sec                  
[  5]   9.00-10.00  sec  37.5 MBytes   315 Mbits/sec                  
[  5]  10.00-11.00  sec  36.5 MBytes   306 Mbits/sec                  
[  5]  11.00-12.00  sec  40.2 MBytes   338 Mbits/sec                  
[  5]  12.00-13.00  sec  40.1 MBytes   337 Mbits/sec                  
[  5]  13.00-14.00  sec  40.9 MBytes   343 Mbits/sec                  
[  5]  14.00-15.00  sec  41.6 MBytes   349 Mbits/sec                  
[  5]  15.00-16.00  sec  38.2 MBytes   321 Mbits/sec                  
[  5]  16.00-17.00  sec  39.2 MBytes   329 Mbits/sec                  
[  5]  17.00-18.00  sec  35.4 MBytes   297 Mbits/sec                  
[  5]  18.00-19.00  sec  37.6 MBytes   316 Mbits/sec                  
[  5]  19.00-20.00  sec  40.1 MBytes   337 Mbits/sec                  
[  5]  20.00-21.00  sec  36.9 MBytes   309 Mbits/sec                  
[  5]  21.00-22.00  sec  45.4 MBytes   381 Mbits/sec                  
[  5]  22.00-23.00  sec  39.9 MBytes   334 Mbits/sec                  
[  5]  23.00-24.00  sec  40.1 MBytes   337 Mbits/sec                  
[  5]  24.00-25.00  sec  29.2 MBytes   245 Mbits/sec                  
[  5]  25.00-26.00  sec  34.5 MBytes   289 Mbits/sec                  
[  5]  26.00-27.00  sec  39.0 MBytes   327 Mbits/sec                  
[  5]  27.00-28.00  sec  36.8 MBytes   308 Mbits/sec                  
[  5]  28.00-29.00  sec  38.9 MBytes   326 Mbits/sec                  
[  5]  29.00-30.00  sec  38.5 MBytes   323 Mbits/sec                  
[  5]  30.00-31.00  sec  35.2 MBytes   296 Mbits/sec                  
[  5]  31.00-32.00  sec  37.5 MBytes   315 Mbits/sec                  
[  5]  32.00-33.00  sec  35.4 MBytes   297 Mbits/sec                  
[  5]  33.00-34.00  sec  37.4 MBytes   314 Mbits/sec                  
[  5]  34.00-35.00  sec  38.0 MBytes   319 Mbits/sec                  
[  5]  35.00-36.00  sec  37.4 MBytes   313 Mbits/sec                  
[  5]  36.00-37.00  sec  41.0 MBytes   344 Mbits/sec                  
[  5]  37.00-38.00  sec  36.8 MBytes   308 Mbits/sec                  
[  5]  38.00-39.00  sec  38.5 MBytes   323 Mbits/sec                  
[  5]  39.00-40.00  sec  39.8 MBytes   333 Mbits/sec                  
[  5]  40.00-41.00  sec  37.9 MBytes   318 Mbits/sec                  
[  5]  41.00-42.00  sec  37.1 MBytes   311 Mbits/sec                  
[  5]  42.00-43.00  sec  35.1 MBytes   295 Mbits/sec                  
[  5]  43.00-44.00  sec  35.8 MBytes   300 Mbits/sec                  
[  5]  44.00-45.00  sec  38.1 MBytes   320 Mbits/sec                  
[  5]  45.00-46.00  sec  36.6 MBytes   307 Mbits/sec                  
[  5]  46.00-47.00  sec  40.2 MBytes   338 Mbits/sec                  
[  5]  47.00-48.00  sec  41.0 MBytes   344 Mbits/sec                  
[  5]  48.00-49.00  sec  33.1 MBytes   278 Mbits/sec                  
[  5]  49.00-50.00  sec  38.1 MBytes   320 Mbits/sec                  
[  5]  50.00-51.00  sec  36.5 MBytes   306 Mbits/sec                  
[  5]  51.00-52.00  sec  40.9 MBytes   343 Mbits/sec                  
[  5]  52.00-53.00  sec  17.4 MBytes   146 Mbits/sec                  
[  5]  53.00-54.00  sec  12.8 MBytes   107 Mbits/sec                  
[  5]  54.00-55.00  sec  36.5 MBytes   306 Mbits/sec                  
[  5]  55.00-56.00  sec  27.4 MBytes   230 Mbits/sec                  
[  5]  56.00-57.00  sec  36.0 MBytes   302 Mbits/sec                  
[  5]  57.00-58.00  sec  38.1 MBytes   320 Mbits/sec                  
[  5]  58.00-59.00  sec  37.9 MBytes   318 Mbits/sec                  
[  5]  59.00-60.00  sec  37.9 MBytes   318 Mbits/sec                  
[  5]  60.00-61.00  sec  37.2 MBytes   313 Mbits/sec                  
[  5]  61.00-62.00  sec  37.4 MBytes   314 Mbits/sec                  
[  5]  62.00-63.00  sec  37.9 MBytes   318 Mbits/sec                  
[  5]  63.00-64.00  sec  28.5 MBytes   239 Mbits/sec                  
[  5]  64.00-65.00  sec  40.6 MBytes   341 Mbits/sec                  
[  5]  65.00-66.00  sec  36.9 MBytes   309 Mbits/sec                  
[  5]  66.00-67.00  sec  38.5 MBytes   323 Mbits/sec                  
[  5]  67.00-68.00  sec  36.5 MBytes   306 Mbits/sec                  
[  5]  68.00-69.00  sec  36.6 MBytes   307 Mbits/sec                  
[  5]  69.00-70.00  sec  36.1 MBytes   303 Mbits/sec                  
[  5]  70.00-71.00  sec  38.0 MBytes   319 Mbits/sec                  
[  5]  71.00-72.00  sec  35.6 MBytes   299 Mbits/sec                  
[  5]  72.00-73.00  sec  39.9 MBytes   335 Mbits/sec                  
[  5]  73.00-74.00  sec  37.6 MBytes   316 Mbits/sec                  
[  5]  74.00-75.00  sec  36.8 MBytes   308 Mbits/sec                  
[  5]  75.00-76.00  sec  39.8 MBytes   333 Mbits/sec                  
[  5]  76.00-77.00  sec  30.6 MBytes   257 Mbits/sec                  
[  5]  77.00-78.00  sec  39.6 MBytes   332 Mbits/sec                  
[  5]  78.00-79.00  sec  37.1 MBytes   311 Mbits/sec                  
[  5]  79.00-80.00  sec  34.5 MBytes   289 Mbits/sec                  
[  5]  80.00-81.00  sec  35.0 MBytes   294 Mbits/sec                  
[  5]  81.00-82.00  sec  34.5 MBytes   289 Mbits/sec                  
[  5]  82.00-83.00  sec  39.1 MBytes   328 Mbits/sec                  
[  5]  83.00-84.00  sec  42.4 MBytes   355 Mbits/sec                  
[  5]  84.00-85.00  sec  40.6 MBytes   341 Mbits/sec                  
[  5]  85.00-86.00  sec  39.0 MBytes   327 Mbits/sec                  
[  5]  86.00-87.00  sec  39.9 MBytes   334 Mbits/sec                  
[  5]  87.00-88.00  sec  35.6 MBytes   299 Mbits/sec                  
[  5]  88.00-89.00  sec  38.0 MBytes   319 Mbits/sec                  
[  5]  89.00-90.00  sec  37.1 MBytes   311 Mbits/sec                  
[  5]  90.00-91.00  sec  37.1 MBytes   312 Mbits/sec                  
[  5]  91.00-92.00  sec  38.9 MBytes   326 Mbits/sec                  
[  5]  92.00-93.00  sec  28.9 MBytes   242 Mbits/sec                  
[  5]  93.00-94.00  sec  41.4 MBytes   347 Mbits/sec                  
[  5]  94.00-95.00  sec  35.0 MBytes   294 Mbits/sec                  
[  5]  95.00-96.00  sec  35.6 MBytes   299 Mbits/sec                  
[  5]  96.00-97.00  sec  34.4 MBytes   288 Mbits/sec                  
[  5]  97.00-98.00  sec  36.5 MBytes   306 Mbits/sec                  
[  5]  98.00-99.00  sec  39.1 MBytes   328 Mbits/sec                  
[  5]  99.00-100.00 sec  36.5 MBytes   306 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-100.04 sec  3.61 GBytes   310 Mbits/sec  1304            sender
[  5]   0.00-100.00 sec  3.61 GBytes   310 Mbits/sec                  receiver

iperf Done.
Off topic

Hardware offloader on

Connecting to host 138.199.4.1, port 5201
Reverse mode, remote host 138.199.4.1 is sending
[  5] local 192.168.2.220 port 42340 connected to 138.199.4.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  48.8 MBytes   409 Mbits/sec                  
[  5]   1.00-2.00   sec  40.9 MBytes   343 Mbits/sec                  
[  5]   2.00-3.00   sec  34.1 MBytes   286 Mbits/sec                  
[  5]   3.00-4.00   sec  5.75 MBytes  48.2 Mbits/sec                  
[  5]   4.00-5.00   sec  4.38 MBytes  36.7 Mbits/sec                  
[  5]   5.00-6.00   sec  9.00 MBytes  75.5 Mbits/sec                  
[  5]   6.00-7.00   sec  3.38 MBytes  28.3 Mbits/sec                  
[  5]   7.00-8.00   sec  5.00 MBytes  41.9 Mbits/sec                  
[  5]   8.00-9.00   sec  4.25 MBytes  35.7 Mbits/sec                  
[  5]   9.00-10.00  sec  3.12 MBytes  26.2 Mbits/sec                  
[  5]  10.00-11.00  sec  6.25 MBytes  52.4 Mbits/sec                  
[  5]  11.00-12.00  sec   256 KBytes  2.10 Mbits/sec                  
[  5]  12.00-13.00  sec   640 KBytes  5.24 Mbits/sec                  
[  5]  13.00-14.00  sec  2.88 MBytes  24.1 Mbits/sec                  
[  5]  14.00-15.00  sec  30.8 MBytes   258 Mbits/sec                  
[  5]  15.00-16.00  sec  2.38 MBytes  19.9 Mbits/sec                  
[  5]  16.00-17.00  sec  28.2 MBytes   237 Mbits/sec                  
[  5]  17.00-18.00  sec  27.6 MBytes   232 Mbits/sec                  
[  5]  18.00-19.00  sec  17.5 MBytes   147 Mbits/sec                  
[  5]  19.00-20.00  sec  12.5 MBytes   105 Mbits/sec                  
[  5]  20.00-21.00  sec  20.1 MBytes   169 Mbits/sec                  
[  5]  21.00-22.00  sec  6.38 MBytes  53.5 Mbits/sec                  
[  5]  22.00-23.00  sec  19.8 MBytes   166 Mbits/sec                  
[  5]  23.00-24.00  sec  25.5 MBytes   214 Mbits/sec                  
[  5]  24.00-25.00  sec  1.75 MBytes  14.7 Mbits/sec                  
[  5]  25.00-26.00  sec  18.4 MBytes   154 Mbits/sec                  
[  5]  26.00-27.00  sec  1.50 MBytes  12.6 Mbits/sec                  
[  5]  27.00-28.00  sec  16.8 MBytes   141 Mbits/sec                  
[  5]  28.00-29.00  sec  9.38 MBytes  78.7 Mbits/sec                  
[  5]  29.00-30.00  sec  16.2 MBytes   136 Mbits/sec                  
[  5]  30.00-31.00  sec  25.0 MBytes   210 Mbits/sec                  
[  5]  31.00-32.00  sec  25.1 MBytes   211 Mbits/sec                  
[  5]  32.00-33.00  sec  15.9 MBytes   133 Mbits/sec                  
[  5]  33.00-34.00  sec  8.25 MBytes  69.2 Mbits/sec                  
[  5]  34.00-35.00  sec  18.4 MBytes   154 Mbits/sec                  
[  5]  35.00-36.00  sec  6.00 MBytes  50.3 Mbits/sec                  
[  5]  36.00-37.00  sec  2.88 MBytes  24.1 Mbits/sec                  
[  5]  37.00-38.00  sec  1.88 MBytes  15.7 Mbits/sec                  
[  5]  38.00-39.00  sec  7.88 MBytes  66.1 Mbits/sec                  
[  5]  39.00-40.00  sec  0.00 Bytes  0.00 bits/sec                  
[  5]  40.00-41.00  sec  0.00 Bytes  0.00 bits/sec                  
[  5]  41.00-42.00  sec  0.00 Bytes  0.00 bits/sec                  
[  5]  42.00-43.00  sec  40.9 MBytes   343 Mbits/sec                  
[  5]  43.00-44.00  sec  17.4 MBytes   146 Mbits/sec                  
[  5]  44.00-45.00  sec  41.1 MBytes   345 Mbits/sec                  
[  5]  45.00-46.00  sec  36.9 MBytes   309 Mbits/sec                  
[  5]  46.00-47.00  sec  41.1 MBytes   345 Mbits/sec                  
[  5]  47.00-48.00  sec  42.0 MBytes   352 Mbits/sec                  
[  5]  48.00-49.00  sec  25.5 MBytes   214 Mbits/sec                  
[  5]  49.00-50.00  sec  18.9 MBytes   158 Mbits/sec                  
[  5]  50.00-51.00  sec  12.0 MBytes   101 Mbits/sec                  
[  5]  51.00-52.00  sec  9.88 MBytes  82.8 Mbits/sec                  
[  5]  52.00-53.00  sec  4.12 MBytes  34.6 Mbits/sec                  
[  5]  53.00-54.00  sec  8.62 MBytes  72.4 Mbits/sec                  
[  5]  54.00-55.00  sec  15.6 MBytes   131 Mbits/sec                  
[  5]  55.00-56.00  sec  7.12 MBytes  59.8 Mbits/sec                  
[  5]  56.00-57.00  sec  29.0 MBytes   243 Mbits/sec                  
[  5]  57.00-58.00  sec  9.88 MBytes  82.8 Mbits/sec                  
[  5]  58.00-59.00  sec  23.1 MBytes   194 Mbits/sec                  
[  5]  59.00-60.00  sec  28.9 MBytes   242 Mbits/sec                  
[  5]  60.00-61.00  sec  25.5 MBytes   214 Mbits/sec                  
[  5]  61.00-62.00  sec  0.00 Bytes  0.00 bits/sec                  
[  5]  62.00-63.00  sec  18.1 MBytes   152 Mbits/sec                  
[  5]  63.00-64.00  sec  38.6 MBytes   324 Mbits/sec                  
[  5]  64.00-65.00  sec  25.1 MBytes   211 Mbits/sec                  
[  5]  65.00-66.00  sec  8.62 MBytes  72.3 Mbits/sec                  
[  5]  66.00-67.00  sec  8.00 MBytes  67.1 Mbits/sec                  
[  5]  67.00-68.00  sec  6.62 MBytes  55.6 Mbits/sec                  
[  5]  68.00-69.00  sec  10.1 MBytes  84.9 Mbits/sec                  
[  5]  69.00-70.00  sec  1.88 MBytes  15.7 Mbits/sec                  
[  5]  70.00-71.00  sec  10.1 MBytes  84.9 Mbits/sec                  
[  5]  71.00-72.00  sec  1.88 MBytes  15.7 Mbits/sec                  
[  5]  72.00-73.00  sec  1.38 MBytes  11.5 Mbits/sec                  
[  5]  73.00-74.00  sec  8.12 MBytes  68.2 Mbits/sec                  
[  5]  74.00-75.00  sec  0.00 Bytes  0.00 bits/sec                  
[  5]  75.00-76.00  sec  14.2 MBytes   120 Mbits/sec                  
[  5]  76.00-77.00  sec   256 KBytes  2.10 Mbits/sec                  
[  5]  77.00-78.00  sec   256 KBytes  2.10 Mbits/sec                  
[  5]  78.00-79.00  sec   256 KBytes  2.10 Mbits/sec                  
[  5]  79.00-80.00  sec   256 KBytes  2.10 Mbits/sec                  
[  5]  80.00-81.00  sec   128 KBytes  1.05 Mbits/sec                  
[  5]  81.00-82.00  sec   896 KBytes  7.34 Mbits/sec                  
[  5]  82.00-83.00  sec  1.25 MBytes  10.5 Mbits/sec                  
[  5]  83.00-84.00  sec  8.62 MBytes  72.4 Mbits/sec                  
[  5]  84.00-85.00  sec  0.00 Bytes  0.00 bits/sec                  
[  5]  85.00-86.00  sec  2.00 MBytes  16.8 Mbits/sec                  
[  5]  86.00-87.00  sec  6.88 MBytes  57.7 Mbits/sec                  
[  5]  87.00-88.00  sec  0.00 Bytes  0.00 bits/sec                  
[  5]  88.00-89.00  sec  9.12 MBytes  76.5 Mbits/sec                  
[  5]  89.00-90.00  sec  20.9 MBytes   175 Mbits/sec                  
[  5]  90.00-91.00  sec  34.0 MBytes   285 Mbits/sec                  
[  5]  91.00-92.00  sec  37.1 MBytes   311 Mbits/sec                  
[  5]  92.00-93.00  sec  32.6 MBytes   274 Mbits/sec                  
[  5]  93.00-94.00  sec  27.9 MBytes   234 Mbits/sec                  
[  5]  94.00-95.00  sec  29.6 MBytes   249 Mbits/sec                  
[  5]  95.00-96.00  sec  34.5 MBytes   289 Mbits/sec                  
[  5]  96.00-97.00  sec  18.6 MBytes   156 Mbits/sec                  
[  5]  97.00-98.00  sec  10.5 MBytes  88.1 Mbits/sec                  
[  5]  98.00-99.00  sec   128 KBytes  1.05 Mbits/sec                  
[  5]  99.00-100.00 sec   256 KBytes  2.10 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-100.20 sec  1.38 GBytes   118 Mbits/sec  116567            sender
[  5]   0.00-100.00 sec  1.37 GBytes   118 Mbits/sec                  receiver

iperf Done.

test 2:

Connecting to host 138.199.4.1, port 5201
Reverse mode, remote host 138.199.4.1 is sending
[  5] local 192.168.2.220 port 47550 connected to 138.199.4.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  15.1 MBytes   127 Mbits/sec                  
[  5]   1.00-2.00   sec  4.75 MBytes  39.8 Mbits/sec                  
[  5]   2.00-3.00   sec  24.0 MBytes   201 Mbits/sec                  
[  5]   3.00-4.00   sec  31.9 MBytes   267 Mbits/sec                  
[  5]   4.00-5.00   sec  17.0 MBytes   143 Mbits/sec                  
[  5]   5.00-6.00   sec  19.9 MBytes   167 Mbits/sec                  
[  5]   6.00-7.00   sec  22.1 MBytes   186 Mbits/sec                  
[  5]   7.00-8.00   sec  32.0 MBytes   268 Mbits/sec                  
[  5]   8.00-9.00   sec  19.4 MBytes   162 Mbits/sec                  
[  5]   9.00-10.00  sec  18.8 MBytes   157 Mbits/sec                  
[  5]  10.00-11.00  sec  14.2 MBytes   120 Mbits/sec                  
[  5]  11.00-12.00  sec  7.62 MBytes  64.0 Mbits/sec                  
[  5]  12.00-13.00  sec  5.38 MBytes  45.1 Mbits/sec                  
[  5]  13.00-14.00  sec  4.50 MBytes  37.7 Mbits/sec                  
[  5]  14.00-15.00  sec  7.75 MBytes  65.0 Mbits/sec                  
[  5]  15.00-16.00  sec  2.00 MBytes  16.8 Mbits/sec                  
[  5]  16.00-17.00  sec  0.00 Bytes  0.00 bits/sec                  
[  5]  17.00-18.00  sec  0.00 Bytes  0.00 bits/sec                  
[  5]  18.00-19.00  sec  0.00 Bytes  0.00 bits/sec                  
[  5]  19.00-20.00  sec   128 KBytes  1.05 Mbits/sec                  
[  5]  20.00-21.00  sec  6.88 MBytes  57.7 Mbits/sec                  
[  5]  21.00-22.00  sec  0.00 Bytes  0.00 bits/sec                  
[  5]  22.00-23.00  sec  4.88 MBytes  40.9 Mbits/sec                  
[  5]  23.00-24.00  sec  29.1 MBytes   244 Mbits/sec                  
[  5]  24.00-25.00  sec   128 KBytes  1.05 Mbits/sec                  
[  5]  25.00-26.00  sec  7.50 MBytes  62.9 Mbits/sec                  
[  5]  26.00-27.00  sec  27.2 MBytes   229 Mbits/sec                  
[  5]  27.00-28.00  sec  21.4 MBytes   179 Mbits/sec                  
[  5]  28.00-29.00  sec  5.88 MBytes  49.3 Mbits/sec                  
[  5]  29.00-30.00  sec   128 KBytes  1.05 Mbits/sec                  
[  5]  30.00-31.00  sec  21.0 MBytes   176 Mbits/sec                  
[  5]  31.00-32.00  sec  7.38 MBytes  61.9 Mbits/sec                  
[  5]  32.00-33.00  sec  8.00 MBytes  67.1 Mbits/sec                  
[  5]  33.00-34.00  sec  11.6 MBytes  97.5 Mbits/sec                  
[  5]  34.00-35.00  sec  8.12 MBytes  68.2 Mbits/sec                  
[  5]  35.00-36.00  sec  13.2 MBytes   111 Mbits/sec                  
[  5]  36.00-37.00  sec  19.4 MBytes   163 Mbits/sec                  
[  5]  37.00-38.00  sec  7.12 MBytes  59.8 Mbits/sec                  
[  5]  38.00-39.00  sec  12.0 MBytes   101 Mbits/sec                  
[  5]  39.00-40.00  sec  10.8 MBytes  90.2 Mbits/sec                  
[  5]  40.00-41.00  sec   256 KBytes  2.10 Mbits/sec                  
[  5]  41.00-42.00  sec  1.12 MBytes  9.44 Mbits/sec                  
[  5]  42.00-43.00  sec   128 KBytes  1.05 Mbits/sec                  
[  5]  43.00-44.00  sec  1.25 MBytes  10.5 Mbits/sec                  
[  5]  44.00-45.00  sec  11.8 MBytes  98.6 Mbits/sec                  
[  5]  45.00-46.00  sec  0.00 Bytes  0.00 bits/sec                  
[  5]  46.00-47.00  sec  11.9 MBytes  99.6 Mbits/sec                  
[  5]  47.00-48.00  sec  15.6 MBytes   131 Mbits/sec                  
[  5]  48.00-49.00  sec  8.88 MBytes  74.4 Mbits/sec                  
[  5]  49.00-50.00  sec  11.1 MBytes  93.3 Mbits/sec                  
[  5]  50.00-51.00  sec  0.00 Bytes  0.00 bits/sec                  
[  5]  51.00-52.00  sec  20.1 MBytes   169 Mbits/sec                  
[  5]  52.00-53.00  sec  37.2 MBytes   312 Mbits/sec                  
[  5]  53.00-54.00  sec  25.4 MBytes   213 Mbits/sec                  
[  5]  54.00-55.00  sec  29.1 MBytes   244 Mbits/sec                  
[  5]  55.00-56.00  sec  12.6 MBytes   106 Mbits/sec                  
[  5]  56.00-57.00  sec  8.75 MBytes  73.4 Mbits/sec                  
[  5]  57.00-58.00  sec  11.0 MBytes  92.3 Mbits/sec                  
[  5]  58.00-59.00  sec  24.0 MBytes   201 Mbits/sec                  
[  5]  59.00-60.00  sec  18.2 MBytes   153 Mbits/sec                  
[  5]  60.00-61.00  sec  24.2 MBytes   203 Mbits/sec                  
[  5]  61.00-62.00  sec  3.25 MBytes  27.3 Mbits/sec                  
[  5]  62.00-63.00  sec  29.9 MBytes   251 Mbits/sec                  
[  5]  63.00-64.00  sec  7.25 MBytes  60.8 Mbits/sec                  
[  5]  64.00-65.00  sec  19.0 MBytes   159 Mbits/sec                  
[  5]  65.00-66.00  sec  7.50 MBytes  62.9 Mbits/sec                  
[  5]  66.00-67.00  sec  10.9 MBytes  91.2 Mbits/sec                  
[  5]  67.00-68.00  sec  1.25 MBytes  10.5 Mbits/sec                  
[  5]  68.00-69.00  sec  2.75 MBytes  23.1 Mbits/sec                  
[  5]  69.00-70.00  sec  2.75 MBytes  23.1 Mbits/sec                  
[  5]  70.00-71.00  sec  13.6 MBytes   114 Mbits/sec                  
[  5]  71.00-72.00  sec  36.1 MBytes   303 Mbits/sec                  
[  5]  72.00-73.00  sec  18.8 MBytes   157 Mbits/sec                  
[  5]  73.00-74.00  sec  11.8 MBytes  98.6 Mbits/sec                  
[  5]  74.00-75.00  sec  5.75 MBytes  48.2 Mbits/sec                  
[  5]  75.00-76.00  sec  30.0 MBytes   252 Mbits/sec                  
[  5]  76.00-77.00  sec  8.00 MBytes  67.1 Mbits/sec                  
[  5]  77.00-78.00  sec  1.50 MBytes  12.6 Mbits/sec                  
[  5]  78.00-79.00  sec  16.8 MBytes   141 Mbits/sec                  
[  5]  79.00-80.00  sec   896 KBytes  7.34 Mbits/sec                  
[  5]  80.00-81.00  sec  9.38 MBytes  78.7 Mbits/sec                  
[  5]  81.00-82.00  sec  36.8 MBytes   308 Mbits/sec                  
[  5]  82.00-83.00  sec  35.8 MBytes   300 Mbits/sec                  
[  5]  83.00-84.00  sec  24.9 MBytes   209 Mbits/sec                  
[  5]  84.00-85.00  sec  16.2 MBytes   136 Mbits/sec                  
[  5]  85.00-86.00  sec  5.25 MBytes  44.0 Mbits/sec                  
[  5]  86.00-87.00  sec  6.38 MBytes  53.5 Mbits/sec                  
[  5]  87.00-88.00  sec  10.1 MBytes  84.9 Mbits/sec                  
[  5]  88.00-89.00  sec  9.50 MBytes  79.7 Mbits/sec                  
[  5]  89.00-90.00  sec  6.62 MBytes  55.6 Mbits/sec                  
[  5]  90.00-91.00  sec  23.2 MBytes   195 Mbits/sec                  
[  5]  91.00-92.00  sec  15.1 MBytes   127 Mbits/sec                  
[  5]  92.00-93.00  sec  29.6 MBytes   249 Mbits/sec                  
[  5]  93.00-94.00  sec  26.2 MBytes   220 Mbits/sec                  
[  5]  94.00-95.00  sec   768 KBytes  6.29 Mbits/sec                  
[  5]  95.00-96.00  sec  15.9 MBytes   133 Mbits/sec                  
[  5]  96.00-97.00  sec  11.2 MBytes  94.4 Mbits/sec                  
[  5]  97.00-98.00  sec  11.8 MBytes  98.6 Mbits/sec                  
[  5]  98.00-99.00  sec  11.8 MBytes  98.6 Mbits/sec                  
[  5]  99.00-100.00 sec  7.62 MBytes  64.0 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-100.18 sec  1.25 GBytes   107 Mbits/sec  48297            sender
[  5]   0.00-100.00 sec  1.25 GBytes   108 Mbits/sec                  receiver

iperf Done.
External iperf server: `iperf3 -c 138.199.4.1 -R -t100` ``` Connecting to host 138.199.4.1, port 5201 Reverse mode, remote host 138.199.4.1 is sending [ 5] local 192.168.2.220 port 38378 connected to 138.199.4.1 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 37.6 MBytes 315 Mbits/sec [ 5] 1.00-2.00 sec 40.4 MBytes 339 Mbits/sec [ 5] 2.00-3.00 sec 38.9 MBytes 326 Mbits/sec [ 5] 3.00-4.00 sec 40.1 MBytes 337 Mbits/sec [ 5] 4.00-5.00 sec 38.4 MBytes 322 Mbits/sec [ 5] 5.00-6.00 sec 36.8 MBytes 308 Mbits/sec [ 5] 6.00-7.00 sec 37.8 MBytes 317 Mbits/sec [ 5] 7.00-8.00 sec 36.0 MBytes 302 Mbits/sec [ 5] 8.00-9.00 sec 36.0 MBytes 302 Mbits/sec [ 5] 9.00-10.00 sec 37.5 MBytes 315 Mbits/sec [ 5] 10.00-11.00 sec 36.5 MBytes 306 Mbits/sec [ 5] 11.00-12.00 sec 40.2 MBytes 338 Mbits/sec [ 5] 12.00-13.00 sec 40.1 MBytes 337 Mbits/sec [ 5] 13.00-14.00 sec 40.9 MBytes 343 Mbits/sec [ 5] 14.00-15.00 sec 41.6 MBytes 349 Mbits/sec [ 5] 15.00-16.00 sec 38.2 MBytes 321 Mbits/sec [ 5] 16.00-17.00 sec 39.2 MBytes 329 Mbits/sec [ 5] 17.00-18.00 sec 35.4 MBytes 297 Mbits/sec [ 5] 18.00-19.00 sec 37.6 MBytes 316 Mbits/sec [ 5] 19.00-20.00 sec 40.1 MBytes 337 Mbits/sec [ 5] 20.00-21.00 sec 36.9 MBytes 309 Mbits/sec [ 5] 21.00-22.00 sec 45.4 MBytes 381 Mbits/sec [ 5] 22.00-23.00 sec 39.9 MBytes 334 Mbits/sec [ 5] 23.00-24.00 sec 40.1 MBytes 337 Mbits/sec [ 5] 24.00-25.00 sec 29.2 MBytes 245 Mbits/sec [ 5] 25.00-26.00 sec 34.5 MBytes 289 Mbits/sec [ 5] 26.00-27.00 sec 39.0 MBytes 327 Mbits/sec [ 5] 27.00-28.00 sec 36.8 MBytes 308 Mbits/sec [ 5] 28.00-29.00 sec 38.9 MBytes 326 Mbits/sec [ 5] 29.00-30.00 sec 38.5 MBytes 323 Mbits/sec [ 5] 30.00-31.00 sec 35.2 MBytes 296 Mbits/sec [ 5] 31.00-32.00 sec 37.5 MBytes 315 Mbits/sec [ 5] 32.00-33.00 sec 35.4 MBytes 297 Mbits/sec [ 5] 33.00-34.00 sec 37.4 MBytes 314 Mbits/sec [ 5] 34.00-35.00 sec 38.0 MBytes 319 Mbits/sec [ 5] 35.00-36.00 sec 37.4 MBytes 313 Mbits/sec [ 5] 36.00-37.00 sec 41.0 MBytes 344 Mbits/sec [ 5] 37.00-38.00 sec 36.8 MBytes 308 Mbits/sec [ 5] 38.00-39.00 sec 38.5 MBytes 323 Mbits/sec [ 5] 39.00-40.00 sec 39.8 MBytes 333 Mbits/sec [ 5] 40.00-41.00 sec 37.9 MBytes 318 Mbits/sec [ 5] 41.00-42.00 sec 37.1 MBytes 311 Mbits/sec [ 5] 42.00-43.00 sec 35.1 MBytes 295 Mbits/sec [ 5] 43.00-44.00 sec 35.8 MBytes 300 Mbits/sec [ 5] 44.00-45.00 sec 38.1 MBytes 320 Mbits/sec [ 5] 45.00-46.00 sec 36.6 MBytes 307 Mbits/sec [ 5] 46.00-47.00 sec 40.2 MBytes 338 Mbits/sec [ 5] 47.00-48.00 sec 41.0 MBytes 344 Mbits/sec [ 5] 48.00-49.00 sec 33.1 MBytes 278 Mbits/sec [ 5] 49.00-50.00 sec 38.1 MBytes 320 Mbits/sec [ 5] 50.00-51.00 sec 36.5 MBytes 306 Mbits/sec [ 5] 51.00-52.00 sec 40.9 MBytes 343 Mbits/sec [ 5] 52.00-53.00 sec 17.4 MBytes 146 Mbits/sec [ 5] 53.00-54.00 sec 12.8 MBytes 107 Mbits/sec [ 5] 54.00-55.00 sec 36.5 MBytes 306 Mbits/sec [ 5] 55.00-56.00 sec 27.4 MBytes 230 Mbits/sec [ 5] 56.00-57.00 sec 36.0 MBytes 302 Mbits/sec [ 5] 57.00-58.00 sec 38.1 MBytes 320 Mbits/sec [ 5] 58.00-59.00 sec 37.9 MBytes 318 Mbits/sec [ 5] 59.00-60.00 sec 37.9 MBytes 318 Mbits/sec [ 5] 60.00-61.00 sec 37.2 MBytes 313 Mbits/sec [ 5] 61.00-62.00 sec 37.4 MBytes 314 Mbits/sec [ 5] 62.00-63.00 sec 37.9 MBytes 318 Mbits/sec [ 5] 63.00-64.00 sec 28.5 MBytes 239 Mbits/sec [ 5] 64.00-65.00 sec 40.6 MBytes 341 Mbits/sec [ 5] 65.00-66.00 sec 36.9 MBytes 309 Mbits/sec [ 5] 66.00-67.00 sec 38.5 MBytes 323 Mbits/sec [ 5] 67.00-68.00 sec 36.5 MBytes 306 Mbits/sec [ 5] 68.00-69.00 sec 36.6 MBytes 307 Mbits/sec [ 5] 69.00-70.00 sec 36.1 MBytes 303 Mbits/sec [ 5] 70.00-71.00 sec 38.0 MBytes 319 Mbits/sec [ 5] 71.00-72.00 sec 35.6 MBytes 299 Mbits/sec [ 5] 72.00-73.00 sec 39.9 MBytes 335 Mbits/sec [ 5] 73.00-74.00 sec 37.6 MBytes 316 Mbits/sec [ 5] 74.00-75.00 sec 36.8 MBytes 308 Mbits/sec [ 5] 75.00-76.00 sec 39.8 MBytes 333 Mbits/sec [ 5] 76.00-77.00 sec 30.6 MBytes 257 Mbits/sec [ 5] 77.00-78.00 sec 39.6 MBytes 332 Mbits/sec [ 5] 78.00-79.00 sec 37.1 MBytes 311 Mbits/sec [ 5] 79.00-80.00 sec 34.5 MBytes 289 Mbits/sec [ 5] 80.00-81.00 sec 35.0 MBytes 294 Mbits/sec [ 5] 81.00-82.00 sec 34.5 MBytes 289 Mbits/sec [ 5] 82.00-83.00 sec 39.1 MBytes 328 Mbits/sec [ 5] 83.00-84.00 sec 42.4 MBytes 355 Mbits/sec [ 5] 84.00-85.00 sec 40.6 MBytes 341 Mbits/sec [ 5] 85.00-86.00 sec 39.0 MBytes 327 Mbits/sec [ 5] 86.00-87.00 sec 39.9 MBytes 334 Mbits/sec [ 5] 87.00-88.00 sec 35.6 MBytes 299 Mbits/sec [ 5] 88.00-89.00 sec 38.0 MBytes 319 Mbits/sec [ 5] 89.00-90.00 sec 37.1 MBytes 311 Mbits/sec [ 5] 90.00-91.00 sec 37.1 MBytes 312 Mbits/sec [ 5] 91.00-92.00 sec 38.9 MBytes 326 Mbits/sec [ 5] 92.00-93.00 sec 28.9 MBytes 242 Mbits/sec [ 5] 93.00-94.00 sec 41.4 MBytes 347 Mbits/sec [ 5] 94.00-95.00 sec 35.0 MBytes 294 Mbits/sec [ 5] 95.00-96.00 sec 35.6 MBytes 299 Mbits/sec [ 5] 96.00-97.00 sec 34.4 MBytes 288 Mbits/sec [ 5] 97.00-98.00 sec 36.5 MBytes 306 Mbits/sec [ 5] 98.00-99.00 sec 39.1 MBytes 328 Mbits/sec [ 5] 99.00-100.00 sec 36.5 MBytes 306 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-100.04 sec 3.61 GBytes 310 Mbits/sec 1304 sender [ 5] 0.00-100.00 sec 3.61 GBytes 310 Mbits/sec receiver iperf Done. ``` <details> <summary>Off topic</summary> --- ## Hardware offloader on ``` Connecting to host 138.199.4.1, port 5201 Reverse mode, remote host 138.199.4.1 is sending [ 5] local 192.168.2.220 port 42340 connected to 138.199.4.1 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 48.8 MBytes 409 Mbits/sec [ 5] 1.00-2.00 sec 40.9 MBytes 343 Mbits/sec [ 5] 2.00-3.00 sec 34.1 MBytes 286 Mbits/sec [ 5] 3.00-4.00 sec 5.75 MBytes 48.2 Mbits/sec [ 5] 4.00-5.00 sec 4.38 MBytes 36.7 Mbits/sec [ 5] 5.00-6.00 sec 9.00 MBytes 75.5 Mbits/sec [ 5] 6.00-7.00 sec 3.38 MBytes 28.3 Mbits/sec [ 5] 7.00-8.00 sec 5.00 MBytes 41.9 Mbits/sec [ 5] 8.00-9.00 sec 4.25 MBytes 35.7 Mbits/sec [ 5] 9.00-10.00 sec 3.12 MBytes 26.2 Mbits/sec [ 5] 10.00-11.00 sec 6.25 MBytes 52.4 Mbits/sec [ 5] 11.00-12.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 12.00-13.00 sec 640 KBytes 5.24 Mbits/sec [ 5] 13.00-14.00 sec 2.88 MBytes 24.1 Mbits/sec [ 5] 14.00-15.00 sec 30.8 MBytes 258 Mbits/sec [ 5] 15.00-16.00 sec 2.38 MBytes 19.9 Mbits/sec [ 5] 16.00-17.00 sec 28.2 MBytes 237 Mbits/sec [ 5] 17.00-18.00 sec 27.6 MBytes 232 Mbits/sec [ 5] 18.00-19.00 sec 17.5 MBytes 147 Mbits/sec [ 5] 19.00-20.00 sec 12.5 MBytes 105 Mbits/sec [ 5] 20.00-21.00 sec 20.1 MBytes 169 Mbits/sec [ 5] 21.00-22.00 sec 6.38 MBytes 53.5 Mbits/sec [ 5] 22.00-23.00 sec 19.8 MBytes 166 Mbits/sec [ 5] 23.00-24.00 sec 25.5 MBytes 214 Mbits/sec [ 5] 24.00-25.00 sec 1.75 MBytes 14.7 Mbits/sec [ 5] 25.00-26.00 sec 18.4 MBytes 154 Mbits/sec [ 5] 26.00-27.00 sec 1.50 MBytes 12.6 Mbits/sec [ 5] 27.00-28.00 sec 16.8 MBytes 141 Mbits/sec [ 5] 28.00-29.00 sec 9.38 MBytes 78.7 Mbits/sec [ 5] 29.00-30.00 sec 16.2 MBytes 136 Mbits/sec [ 5] 30.00-31.00 sec 25.0 MBytes 210 Mbits/sec [ 5] 31.00-32.00 sec 25.1 MBytes 211 Mbits/sec [ 5] 32.00-33.00 sec 15.9 MBytes 133 Mbits/sec [ 5] 33.00-34.00 sec 8.25 MBytes 69.2 Mbits/sec [ 5] 34.00-35.00 sec 18.4 MBytes 154 Mbits/sec [ 5] 35.00-36.00 sec 6.00 MBytes 50.3 Mbits/sec [ 5] 36.00-37.00 sec 2.88 MBytes 24.1 Mbits/sec [ 5] 37.00-38.00 sec 1.88 MBytes 15.7 Mbits/sec [ 5] 38.00-39.00 sec 7.88 MBytes 66.1 Mbits/sec [ 5] 39.00-40.00 sec 0.00 Bytes 0.00 bits/sec [ 5] 40.00-41.00 sec 0.00 Bytes 0.00 bits/sec [ 5] 41.00-42.00 sec 0.00 Bytes 0.00 bits/sec [ 5] 42.00-43.00 sec 40.9 MBytes 343 Mbits/sec [ 5] 43.00-44.00 sec 17.4 MBytes 146 Mbits/sec [ 5] 44.00-45.00 sec 41.1 MBytes 345 Mbits/sec [ 5] 45.00-46.00 sec 36.9 MBytes 309 Mbits/sec [ 5] 46.00-47.00 sec 41.1 MBytes 345 Mbits/sec [ 5] 47.00-48.00 sec 42.0 MBytes 352 Mbits/sec [ 5] 48.00-49.00 sec 25.5 MBytes 214 Mbits/sec [ 5] 49.00-50.00 sec 18.9 MBytes 158 Mbits/sec [ 5] 50.00-51.00 sec 12.0 MBytes 101 Mbits/sec [ 5] 51.00-52.00 sec 9.88 MBytes 82.8 Mbits/sec [ 5] 52.00-53.00 sec 4.12 MBytes 34.6 Mbits/sec [ 5] 53.00-54.00 sec 8.62 MBytes 72.4 Mbits/sec [ 5] 54.00-55.00 sec 15.6 MBytes 131 Mbits/sec [ 5] 55.00-56.00 sec 7.12 MBytes 59.8 Mbits/sec [ 5] 56.00-57.00 sec 29.0 MBytes 243 Mbits/sec [ 5] 57.00-58.00 sec 9.88 MBytes 82.8 Mbits/sec [ 5] 58.00-59.00 sec 23.1 MBytes 194 Mbits/sec [ 5] 59.00-60.00 sec 28.9 MBytes 242 Mbits/sec [ 5] 60.00-61.00 sec 25.5 MBytes 214 Mbits/sec [ 5] 61.00-62.00 sec 0.00 Bytes 0.00 bits/sec [ 5] 62.00-63.00 sec 18.1 MBytes 152 Mbits/sec [ 5] 63.00-64.00 sec 38.6 MBytes 324 Mbits/sec [ 5] 64.00-65.00 sec 25.1 MBytes 211 Mbits/sec [ 5] 65.00-66.00 sec 8.62 MBytes 72.3 Mbits/sec [ 5] 66.00-67.00 sec 8.00 MBytes 67.1 Mbits/sec [ 5] 67.00-68.00 sec 6.62 MBytes 55.6 Mbits/sec [ 5] 68.00-69.00 sec 10.1 MBytes 84.9 Mbits/sec [ 5] 69.00-70.00 sec 1.88 MBytes 15.7 Mbits/sec [ 5] 70.00-71.00 sec 10.1 MBytes 84.9 Mbits/sec [ 5] 71.00-72.00 sec 1.88 MBytes 15.7 Mbits/sec [ 5] 72.00-73.00 sec 1.38 MBytes 11.5 Mbits/sec [ 5] 73.00-74.00 sec 8.12 MBytes 68.2 Mbits/sec [ 5] 74.00-75.00 sec 0.00 Bytes 0.00 bits/sec [ 5] 75.00-76.00 sec 14.2 MBytes 120 Mbits/sec [ 5] 76.00-77.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 77.00-78.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 78.00-79.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 79.00-80.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 80.00-81.00 sec 128 KBytes 1.05 Mbits/sec [ 5] 81.00-82.00 sec 896 KBytes 7.34 Mbits/sec [ 5] 82.00-83.00 sec 1.25 MBytes 10.5 Mbits/sec [ 5] 83.00-84.00 sec 8.62 MBytes 72.4 Mbits/sec [ 5] 84.00-85.00 sec 0.00 Bytes 0.00 bits/sec [ 5] 85.00-86.00 sec 2.00 MBytes 16.8 Mbits/sec [ 5] 86.00-87.00 sec 6.88 MBytes 57.7 Mbits/sec [ 5] 87.00-88.00 sec 0.00 Bytes 0.00 bits/sec [ 5] 88.00-89.00 sec 9.12 MBytes 76.5 Mbits/sec [ 5] 89.00-90.00 sec 20.9 MBytes 175 Mbits/sec [ 5] 90.00-91.00 sec 34.0 MBytes 285 Mbits/sec [ 5] 91.00-92.00 sec 37.1 MBytes 311 Mbits/sec [ 5] 92.00-93.00 sec 32.6 MBytes 274 Mbits/sec [ 5] 93.00-94.00 sec 27.9 MBytes 234 Mbits/sec [ 5] 94.00-95.00 sec 29.6 MBytes 249 Mbits/sec [ 5] 95.00-96.00 sec 34.5 MBytes 289 Mbits/sec [ 5] 96.00-97.00 sec 18.6 MBytes 156 Mbits/sec [ 5] 97.00-98.00 sec 10.5 MBytes 88.1 Mbits/sec [ 5] 98.00-99.00 sec 128 KBytes 1.05 Mbits/sec [ 5] 99.00-100.00 sec 256 KBytes 2.10 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-100.20 sec 1.38 GBytes 118 Mbits/sec 116567 sender [ 5] 0.00-100.00 sec 1.37 GBytes 118 Mbits/sec receiver iperf Done. ``` test 2: ``` Connecting to host 138.199.4.1, port 5201 Reverse mode, remote host 138.199.4.1 is sending [ 5] local 192.168.2.220 port 47550 connected to 138.199.4.1 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 15.1 MBytes 127 Mbits/sec [ 5] 1.00-2.00 sec 4.75 MBytes 39.8 Mbits/sec [ 5] 2.00-3.00 sec 24.0 MBytes 201 Mbits/sec [ 5] 3.00-4.00 sec 31.9 MBytes 267 Mbits/sec [ 5] 4.00-5.00 sec 17.0 MBytes 143 Mbits/sec [ 5] 5.00-6.00 sec 19.9 MBytes 167 Mbits/sec [ 5] 6.00-7.00 sec 22.1 MBytes 186 Mbits/sec [ 5] 7.00-8.00 sec 32.0 MBytes 268 Mbits/sec [ 5] 8.00-9.00 sec 19.4 MBytes 162 Mbits/sec [ 5] 9.00-10.00 sec 18.8 MBytes 157 Mbits/sec [ 5] 10.00-11.00 sec 14.2 MBytes 120 Mbits/sec [ 5] 11.00-12.00 sec 7.62 MBytes 64.0 Mbits/sec [ 5] 12.00-13.00 sec 5.38 MBytes 45.1 Mbits/sec [ 5] 13.00-14.00 sec 4.50 MBytes 37.7 Mbits/sec [ 5] 14.00-15.00 sec 7.75 MBytes 65.0 Mbits/sec [ 5] 15.00-16.00 sec 2.00 MBytes 16.8 Mbits/sec [ 5] 16.00-17.00 sec 0.00 Bytes 0.00 bits/sec [ 5] 17.00-18.00 sec 0.00 Bytes 0.00 bits/sec [ 5] 18.00-19.00 sec 0.00 Bytes 0.00 bits/sec [ 5] 19.00-20.00 sec 128 KBytes 1.05 Mbits/sec [ 5] 20.00-21.00 sec 6.88 MBytes 57.7 Mbits/sec [ 5] 21.00-22.00 sec 0.00 Bytes 0.00 bits/sec [ 5] 22.00-23.00 sec 4.88 MBytes 40.9 Mbits/sec [ 5] 23.00-24.00 sec 29.1 MBytes 244 Mbits/sec [ 5] 24.00-25.00 sec 128 KBytes 1.05 Mbits/sec [ 5] 25.00-26.00 sec 7.50 MBytes 62.9 Mbits/sec [ 5] 26.00-27.00 sec 27.2 MBytes 229 Mbits/sec [ 5] 27.00-28.00 sec 21.4 MBytes 179 Mbits/sec [ 5] 28.00-29.00 sec 5.88 MBytes 49.3 Mbits/sec [ 5] 29.00-30.00 sec 128 KBytes 1.05 Mbits/sec [ 5] 30.00-31.00 sec 21.0 MBytes 176 Mbits/sec [ 5] 31.00-32.00 sec 7.38 MBytes 61.9 Mbits/sec [ 5] 32.00-33.00 sec 8.00 MBytes 67.1 Mbits/sec [ 5] 33.00-34.00 sec 11.6 MBytes 97.5 Mbits/sec [ 5] 34.00-35.00 sec 8.12 MBytes 68.2 Mbits/sec [ 5] 35.00-36.00 sec 13.2 MBytes 111 Mbits/sec [ 5] 36.00-37.00 sec 19.4 MBytes 163 Mbits/sec [ 5] 37.00-38.00 sec 7.12 MBytes 59.8 Mbits/sec [ 5] 38.00-39.00 sec 12.0 MBytes 101 Mbits/sec [ 5] 39.00-40.00 sec 10.8 MBytes 90.2 Mbits/sec [ 5] 40.00-41.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 41.00-42.00 sec 1.12 MBytes 9.44 Mbits/sec [ 5] 42.00-43.00 sec 128 KBytes 1.05 Mbits/sec [ 5] 43.00-44.00 sec 1.25 MBytes 10.5 Mbits/sec [ 5] 44.00-45.00 sec 11.8 MBytes 98.6 Mbits/sec [ 5] 45.00-46.00 sec 0.00 Bytes 0.00 bits/sec [ 5] 46.00-47.00 sec 11.9 MBytes 99.6 Mbits/sec [ 5] 47.00-48.00 sec 15.6 MBytes 131 Mbits/sec [ 5] 48.00-49.00 sec 8.88 MBytes 74.4 Mbits/sec [ 5] 49.00-50.00 sec 11.1 MBytes 93.3 Mbits/sec [ 5] 50.00-51.00 sec 0.00 Bytes 0.00 bits/sec [ 5] 51.00-52.00 sec 20.1 MBytes 169 Mbits/sec [ 5] 52.00-53.00 sec 37.2 MBytes 312 Mbits/sec [ 5] 53.00-54.00 sec 25.4 MBytes 213 Mbits/sec [ 5] 54.00-55.00 sec 29.1 MBytes 244 Mbits/sec [ 5] 55.00-56.00 sec 12.6 MBytes 106 Mbits/sec [ 5] 56.00-57.00 sec 8.75 MBytes 73.4 Mbits/sec [ 5] 57.00-58.00 sec 11.0 MBytes 92.3 Mbits/sec [ 5] 58.00-59.00 sec 24.0 MBytes 201 Mbits/sec [ 5] 59.00-60.00 sec 18.2 MBytes 153 Mbits/sec [ 5] 60.00-61.00 sec 24.2 MBytes 203 Mbits/sec [ 5] 61.00-62.00 sec 3.25 MBytes 27.3 Mbits/sec [ 5] 62.00-63.00 sec 29.9 MBytes 251 Mbits/sec [ 5] 63.00-64.00 sec 7.25 MBytes 60.8 Mbits/sec [ 5] 64.00-65.00 sec 19.0 MBytes 159 Mbits/sec [ 5] 65.00-66.00 sec 7.50 MBytes 62.9 Mbits/sec [ 5] 66.00-67.00 sec 10.9 MBytes 91.2 Mbits/sec [ 5] 67.00-68.00 sec 1.25 MBytes 10.5 Mbits/sec [ 5] 68.00-69.00 sec 2.75 MBytes 23.1 Mbits/sec [ 5] 69.00-70.00 sec 2.75 MBytes 23.1 Mbits/sec [ 5] 70.00-71.00 sec 13.6 MBytes 114 Mbits/sec [ 5] 71.00-72.00 sec 36.1 MBytes 303 Mbits/sec [ 5] 72.00-73.00 sec 18.8 MBytes 157 Mbits/sec [ 5] 73.00-74.00 sec 11.8 MBytes 98.6 Mbits/sec [ 5] 74.00-75.00 sec 5.75 MBytes 48.2 Mbits/sec [ 5] 75.00-76.00 sec 30.0 MBytes 252 Mbits/sec [ 5] 76.00-77.00 sec 8.00 MBytes 67.1 Mbits/sec [ 5] 77.00-78.00 sec 1.50 MBytes 12.6 Mbits/sec [ 5] 78.00-79.00 sec 16.8 MBytes 141 Mbits/sec [ 5] 79.00-80.00 sec 896 KBytes 7.34 Mbits/sec [ 5] 80.00-81.00 sec 9.38 MBytes 78.7 Mbits/sec [ 5] 81.00-82.00 sec 36.8 MBytes 308 Mbits/sec [ 5] 82.00-83.00 sec 35.8 MBytes 300 Mbits/sec [ 5] 83.00-84.00 sec 24.9 MBytes 209 Mbits/sec [ 5] 84.00-85.00 sec 16.2 MBytes 136 Mbits/sec [ 5] 85.00-86.00 sec 5.25 MBytes 44.0 Mbits/sec [ 5] 86.00-87.00 sec 6.38 MBytes 53.5 Mbits/sec [ 5] 87.00-88.00 sec 10.1 MBytes 84.9 Mbits/sec [ 5] 88.00-89.00 sec 9.50 MBytes 79.7 Mbits/sec [ 5] 89.00-90.00 sec 6.62 MBytes 55.6 Mbits/sec [ 5] 90.00-91.00 sec 23.2 MBytes 195 Mbits/sec [ 5] 91.00-92.00 sec 15.1 MBytes 127 Mbits/sec [ 5] 92.00-93.00 sec 29.6 MBytes 249 Mbits/sec [ 5] 93.00-94.00 sec 26.2 MBytes 220 Mbits/sec [ 5] 94.00-95.00 sec 768 KBytes 6.29 Mbits/sec [ 5] 95.00-96.00 sec 15.9 MBytes 133 Mbits/sec [ 5] 96.00-97.00 sec 11.2 MBytes 94.4 Mbits/sec [ 5] 97.00-98.00 sec 11.8 MBytes 98.6 Mbits/sec [ 5] 98.00-99.00 sec 11.8 MBytes 98.6 Mbits/sec [ 5] 99.00-100.00 sec 7.62 MBytes 64.0 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-100.18 sec 1.25 GBytes 107 Mbits/sec 48297 sender [ 5] 0.00-100.00 sec 1.25 GBytes 108 Mbits/sec receiver iperf Done. ``` </details>
Owner

Can you show the boot log and the following:
devmem 0x1fb5b0ec
devmem 0x1fb5b0F0

?

Can you show the boot log and the following: devmem 0x1fb5b0ec devmem 0x1fb5b0F0 ?
Owner

I think these settings are not applied properly.

I think these settings are not applied properly.
Author
Owner

Can you show the boot log

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.12.59 (sirherobrine23@matheus-note) (arm-openwrt-linux-muslgnueabi-gcc (OpenWrt GCC 14.3.0 r31419+64-297057f0f2) 14.3.0, GNU ld (GNU Binutils) 2.44) #0 SMP Fri Nov 28 12:47:55 2025
[    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: TP-Link xx230v
[    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[    0.000000] earlycon: ns16550 at MMIO32 0x1fbf0000 (options '115200n8')
[    0.000000] printk: legacy bootconsole [ns16550] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000080200000-0x000000008fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080200000-0x0000000083ffffff]
[    0.000000]   node   0: [mem 0x0000000084000000-0x00000000849fffff]
[    0.000000]   node   0: [mem 0x0000000084a00000-0x0000000084afffff]
[    0.000000]   node   0: [mem 0x0000000084b00000-0x0000000084bfffff]
[    0.000000]   node   0: [mem 0x0000000084c00000-0x0000000084ffffff]
[    0.000000]   node   0: [mem 0x0000000085000000-0x00000000869fffff]
[    0.000000]   node   0: [mem 0x0000000086a00000-0x0000000086afffff]
[    0.000000]   node   0: [mem 0x0000000086b00000-0x0000000086bfffff]
[    0.000000]   node   0: [mem 0x0000000086c00000-0x0000000086cfffff]
[    0.000000]   node   0: [mem 0x0000000086d00000-0x0000000086dfffff]
[    0.000000]   node   0: [mem 0x0000000086e00000-0x0000000086ffffff]
[    0.000000]   node   0: [mem 0x0000000087000000-0x0000000089ffffff]
[    0.000000]   node   0: [mem 0x000000008a000000-0x000000008fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000008fffffff]
[    0.000000] On node 0, zone Normal: 512 pages in unavailable ranges
[    0.000000] OF: reserved mem: 0x84000000..0x849fffff (10240 KiB) nomap non-reusable npu_binary@84000000
[    0.000000] OF: reserved mem: 0x84b00000..0x84bfffff (1024 KiB) nomap non-reusable npu_flag@84B0000
[    0.000000] OF: reserved mem: 0x85000000..0x869fffff (26624 KiB) nomap non-reusable npu_pkt@85000000
[    0.000000] OF: reserved mem: 0x86b00000..0x86bfffff (1024 KiB) nomap non-reusable npu_phyaddr@86B00000
[    0.000000] OF: reserved mem: 0x86d00000..0x86dfffff (1024 KiB) nomap non-reusable npu_rxdesc@86D00000
[    0.000000] OF: reserved mem: 0x87000000..0x88ffffff (32768 KiB) nomap non-reusable qdma0-buf@87000000
[    0.000000] OF: reserved mem: 0x89000000..0x89ffffff (16384 KiB) nomap non-reusable qdma1-buf@89000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 14 pages/cpu s24780 r8192 d24372 u57344
[    0.000000] Kernel command line: console=ttyS0,115200 earlycon
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 65024
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=2.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GICv3: 256 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: GICv3 features: 16 PPIs
[    0.000000] GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=0
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x09080000
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 timer(s) running at 25.00MHz (virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns
[    0.000001] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns
[    0.008800] Switching to timer-based delay loop, resolution 40ns
[    0.015550] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=250000)
[    0.026941] CPU: Testing write buffer coherency: ok
[    0.032323] pid_max: default: 32768 minimum: 301
[    0.045207] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.053256] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.065194] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.072473] Setting up static identity map for 0x80300000 - 0x80300060
[    0.079842] rcu: Hierarchical SRCU implementation.
[    0.085110] rcu:     Max phase no-delay instances is 1000.
[    0.091146] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
[    0.100361] smp: Bringing up secondary CPUs ...
[    0.120453] GICv3: CPU1: found redistributor 1 region 0:0x090a0000
[    0.120509] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.120652] smp: Brought up 1 node, 2 CPUs
[    0.138165] SMP: Total of 2 processors activated (100.00 BogoMIPS).
[    0.145064] CPU: All CPU(s) started in SVC mode.
[    0.150600] Memory: 110500K/260096K available (7807K kernel code, 599K rwdata, 2036K rodata, 46080K init, 218K bss, 148840K reserved, 0K cma-reserved)
[    0.168957] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.179835] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.191272] pinctrl core: initialized pinctrl subsystem
[    0.199035] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.205869] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.214196] thermal_sys: Registered thermal governor 'step_wise'
[    0.214279] cpuidle: using governor menu
[    0.226113] debugfs: Directory '1fa20000.system-controller' with parent 'regmap' already present!
[    0.236759] /pcie@1fa91000: Fixed dependency cycle(s) with /pcie@1fa91000/interrupt-controller
[    0.246648] /pcie@1fa92000: Fixed dependency cycle(s) with /pcie@1fa92000/interrupt-controller
[    0.267150] SCSI subsystem initialized
[    0.271500] usbcore: registered new interface driver usbfs
[    0.277630] usbcore: registered new interface driver hub
[    0.283515] usbcore: registered new device driver usb
[    0.289236] Advanced Linux Sound Architecture Driver Initialized.
[    0.297408] clocksource: Switched to clocksource arch_sys_counter
[    0.311114] NET: Registered PF_INET protocol family
[    0.316676] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.325222] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.334480] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.343008] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.351445] TCP bind hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    0.359320] TCP: Hash tables configured (established 1024 bind 1024)
[    0.366726] MPTCP token hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.374979] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.382195] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.390348] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.396597] PCI: CLS 0 bytes, default 64
[    0.402464] workingset: timestamp_bits=14 max_order=15 bucket_order=1
[    0.411782] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.418298] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.435747] mtk-pcie 1fa91000.pcie: host bridge /pcie@1fa91000 ranges:
[    0.443074] mtk-pcie 1fa91000.pcie:      MEM 0x0020000000..0x0021ffffff -> 0x0020000000
[    1.057430] mtk-pcie 1fa91000.pcie: Port0 link down
[    1.063034] mtk-pcie 1fa91000.pcie: PCI host bridge to bus 0000:00
[    1.069893] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.075931] pci_bus 0000:00: root bus resource [mem 0x20000000-0x21ffffff]
[    1.084382] PCI: bus0: Fast back to back transfers enabled
[    1.090444] pci_bus 0000:00: resource 4 [mem 0x20000000-0x21ffffff]
[    1.097559] mtk-pcie 1fa92000.pcie: host bridge /pcie@1fa92000 ranges:
[    1.104758] mtk-pcie 1fa92000.pcie:      MEM 0x0022000000..0x0023ffffff -> 0x0022000000
[    1.635858] mtk-pcie 1fa92000.pcie: PCI host bridge to bus 0001:00
[    1.642705] pci_bus 0001:00: root bus resource [bus 00-ff]
[    1.648757] pci_bus 0001:00: root bus resource [mem 0x22000000-0x23ffffff]
[    1.656615] pci 0001:00:01.0: [14c3:0811] type 01 class 0x060400 PCIe Root Port
[    1.664841] pci 0001:00:01.0: BAR 0: can't handle BAR larger than 4GB (size 0x200000000)
[    1.673746] pci 0001:00:01.0: BAR 0 [mem size 0x00000001 64bit pref disabled]
[    1.681663] pci 0001:00:01.0: PCI bridge to [bus 00]
[    1.687183] pci 0001:00:01.0:   bridge window [mem 0x00000000-0x000fffff]
[    1.696749] PCI: bus0: Fast back to back transfers disabled
[    1.702933] pci 0001:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    1.712426] pci 0001:01:00.0: [14c3:7915] type 00 class 0x000280 PCIe Endpoint
[    1.720593] pci 0001:01:00.0: BAR 0 [mem 0x00000000-0x000fffff 64bit pref]
[    1.728276] pci 0001:01:00.0: BAR 2 [mem 0x00000000-0x00003fff 64bit pref]
[    1.735931] pci 0001:01:00.0: BAR 4 [mem 0x00000000-0x00000fff 64bit pref]
[    1.744201] pci 0001:01:00.0: supports D1 D2
[    1.748895] pci 0001:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.756541] pci 0001:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0001:00:01.0 (capable of 4.000 Gb/s with 5.0 GT/s PCIe x1 link)
[    1.773570] PCI: bus1: Fast back to back transfers disabled
[    1.779739] pci_bus 0001:01: busn_res: [bus 01-ff] end is updated to 01
[    1.787075] pci 0001:00:01.0: bridge window [mem 0x22000000-0x221fffff]: assigned
[    1.795321] pci 0001:00:01.0: BAR 0 [mem 0x22200000 64bit pref disabled]: assigned
[    1.803710] pci 0001:00:01.0: BAR 0: error updating (0x2220000c != 0x0000000c)
[    1.811696] pci 0001:01:00.0: BAR 0 [mem 0x22000000-0x220fffff 64bit pref]: assigned
[    1.820295] pci 0001:01:00.0: BAR 2 [mem 0x22100000-0x22103fff 64bit pref]: assigned
[    1.828902] pci 0001:01:00.0: BAR 4 [mem 0x22104000-0x22104fff 64bit pref]: assigned
[    1.837499] pci 0001:00:01.0: PCI bridge to [bus 01]
[    1.842982] pci 0001:00:01.0:   bridge window [mem 0x22000000-0x221fffff]
[    1.850522] pci_bus 0001:00: resource 4 [mem 0x22000000-0x23ffffff]
[    1.857420] pci_bus 0001:01: resource 1 [mem 0x22000000-0x221fffff]
[    1.864519] pcieport 0001:00:01.0: enabling device (0140 -> 0142)
[    1.872079] pcieport 0001:00:01.0: PME: Signaling with IRQ 30
[    1.879711] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    1.887725] printk: legacy console [ttyS0] disabled
[    1.893549] 1fbf0000.serial: ttyS0 at MMIO 0x1fbf0000 (irq = 31, base_baud = 115200) is a 16550
[    1.903198] printk: legacy console [ttyS0] enabled
[    1.903198] printk: legacy console [ttyS0] enabled
[    1.913278] printk: legacy bootconsole [ns16550] disabled
[    1.913278] printk: legacy bootconsole [ns16550] disabled
[    1.926561] spi-nand spi0.0: ESMT SPI NAND was found.
[    1.931702] spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
[    1.948027] 6 fixed-partitions partitions found on MTD device spi0.0
[    1.954403] Creating 6 MTD partitions on "spi0.0":
[    1.959231] 0x000000000000-0x000000080000 : "bootloader"
[    1.966536] 0x000000080000-0x000000120000 : "romfile"
[    1.974217] 0x0000000a0000-0x000000240000 : "misc"
[    1.982145] OF: Bad cell count for /spi@1fa10000/nand@0/partitions
[    1.988630] 0x0000001a0000-0x0000011a0000 : "kernel"
[    2.027560] 0x0000011a0000-0x000006000000 : "rootfs"
[    2.200499] mtd: setting mtd4 (rootfs) as root device
[    2.205936] mtdsplit: no squashfs found in "rootfs"
[    2.210880] 0x000003fe0000-0x000007fe0000 : "reserved_bmt"
[    2.450949] airoha-npu 1e900000.npu: SRAM Size: 0x60000
[    2.568409] airoha-npu 1e900000.npu: boot all with 0xf cores enabled
[C1]core freq at 333000000 Hz
[C1]timer_init: Timer clk is running at 125 Mhz
[C1]core1_main
[    2.688910] airoha-usb-phy 1fad0000.phy: Frequency not detected, using default SR calibration.
[    2.702109] xhci-mtk 1fab0000.usb: xHCI Host Controller
[    2.707387] xhci-mtk 1fab0000.usb: new USB bus registered, assigned bus number 1
[    2.718804] xhci-mtk 1fab0000.usb: hcc params 0x01400f98 hci version 0x110 quirks 0x0000000000200010
[    2.728028] xhci-mtk 1fab0000.usb: irq 43, io mem 0x1fab0000
[    2.733862] xhci-mtk 1fab0000.usb: xHCI Host Controller
[    2.739155] xhci-mtk 1fab0000.usb: new USB bus registered, assigned bus number 2
[    2.746563] xhci-mtk 1fab0000.usb: Host supports USB 3.2 Enhanced SuperSpeed
[    2.754413] hub 1-0:1.0: USB hub found
[    2.758298] hub 1-0:1.0: 2 ports detected
[    2.763084] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    2.771943] hub 2-0:1.0: USB hub found
[    2.775872] hub 2-0:1.0: 1 port detected
[    2.780698] i2c-mt7621 1fbf8000.i2c0: clock 100 kHz
[    2.785894] airoha-thermal 1efbd000.thermal-sensor: EN7523: IC  calibrated (pdid:3, pkg:3)
[    2.794258] airoha-thermal 1efbd000.thermal-sensor: EN7523: Init check code_30:32008, Slope:1750
[    2.815565] en7523-audio 1fbe2200.audio-controller: mtk_afe_combine_sub_dai(), num of dai 2
[    2.824509] debugfs: Directory '1fbe2200.audio-controller' with parent 'en7523-i2s' already present!
[    2.835326] NET: Registered PF_INET6 protocol family
[    2.842127] Segment Routing with IPv6
[    2.845861] In-situ OAM (IOAM) with IPv6
[    2.849921] NET: Registered PF_PACKET protocol family
[    2.855202] 8021q: 802.1Q VLAN Support v1.8
[    2.859540] Registering SWP/SWPB emulation handler
[    2.921527] mt7530-mmio 1fb58000.switch: configuring for fixed/internal link mode
[    2.929280] mt7530-mmio 1fb58000.switch: Link is Up - 10Gbps/Full - flow control rx/tx
[    2.938321] mt7530-mmio 1fb58000.switch lan1 (uninitialized): PHY [mt7530-0:09] driver [Generic PHY] (irq=POLL)
[    2.950515] mt7530-mmio 1fb58000.switch lan2 (uninitialized): PHY [mt7530-0:0a] driver [Generic PHY] (irq=POLL)
[    2.962799] mt7530-mmio 1fb58000.switch lan3 (uninitialized): PHY [mt7530-0:0b] driver [Generic PHY] (irq=POLL)
[    2.975168] mt7530-mmio 1fb58000.switch wan (uninitialized): PHY [mt7530-0:0c] driver [Generic PHY] (irq=POLL)
[    2.986110] airoha_eth 1fb50000.ethernet eth0: entered promiscuous mode
[    2.992880] DSA: tree 0 setup
[    2.996700] clk: Disabling unused clocks
[    3.000731] PM: genpd: Disabling unused power domains
[    3.005797] ALSA device list:
[    3.008789]   #0: en7523-i2s
[    3.058263] Freeing unused kernel image (initmem) memory: 46080K
[    3.064584] Run /init as init process
[    3.482460] init: Console is alive
[    3.486097] init: - watchdog -
[    3.499513] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    3.509363] gpio_button_hotplug: loading out-of-tree module taints kernel.
[    3.532851] usbcore: registered new interface driver usb-storage
[    3.546099] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    3.563122] init: - preinit -
[    7.437397] random: crng init done
Cannot parse config file '/etc/fw_env.config': No such file or directory
Failed to find NVMEM device
[    7.716139] mt7530-mmio 1fb58000.switch lan1: configuring for phy/internal link mode
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[   11.943871] procd: - early -
[   11.946905] procd: - watchdog -
[   12.482232] procd: - watchdog -
[   12.485607] procd: - ubus -
[   12.545562] procd: - init -
Please press Enter to activate this console.
[   12.801515] kmodloader: loading kernel modules from /etc/modules.d/*
[   13.058769] i2c_dev: i2c /dev entries driver
[   13.067790] Loading modules backported from Linux version v6.16-0-g038d61fd6422
[   13.075121] Backport generated by backports.git v6.1.145-1-47-g6194bf852a3e
[   13.101297] usbcore: registered new interface driver cdc_ether
[   13.154434] mt7915e 0001:01:00.0: enabling device (0140 -> 0142)
[   13.317929] mt7915e 0001:01:00.0: HW/SW Version: 0x8a108a10, Build Time: 20240429200716a
[   13.317929] 
[   13.363644] mt7915e 0001:01:00.0: WM Firmware Version: ____000000, Build Time: 20240429200752
[   13.404939] mt7915e 0001:01:00.0: WA Firmware Version: DEV_000000, Build Time: 20240429200812
[   13.454162] urngd: v1.0.2 started.
[   13.528939] mt7915e 0001:01:00.0: registering led 'mt76-phy0'
[   13.610969] mt7915e 0001:01:00.0: registering led 'mt76-phy1'
[   13.755209] PPP generic driver version 2.4.2
[   13.776949] NET: Registered PF_PPPOX protocol family
[   13.789372] usbcore: registered new interface driver rndis_host
[   13.804880] kmodloader: done loading kernel modules from /etc/modules.d/*
[   20.457751] mt7530-mmio 1fb58000.switch lan1: configuring for phy/internal link mode
[   20.473550] br-lan: port 1(lan1) entered blocking state
[   20.478949] br-lan: port 1(lan1) entered disabled state
[   20.484258] mt7530-mmio 1fb58000.switch lan1: entered allmulticast mode
[   20.491019] airoha_eth 1fb50000.ethernet eth0: entered allmulticast mode
[   20.498198] mt7530-mmio 1fb58000.switch lan1: entered promiscuous mode
[   20.530678] mt7530-mmio 1fb58000.switch lan2: configuring for phy/internal link mode
[   20.551575] br-lan: port 2(lan2) entered blocking state
[   20.556879] br-lan: port 2(lan2) entered disabled state
[   20.562287] mt7530-mmio 1fb58000.switch lan2: entered allmulticast mode
[   20.569296] mt7530-mmio 1fb58000.switch lan2: entered promiscuous mode
[   20.584347] mt7530-mmio 1fb58000.switch lan3: configuring for phy/internal link mode
[   20.598118] br-lan: port 3(lan3) entered blocking state
[   20.603375] br-lan: port 3(lan3) entered disabled state
[   20.608805] mt7530-mmio 1fb58000.switch lan3: entered allmulticast mode
[   20.615880] mt7530-mmio 1fb58000.switch lan3: entered promiscuous mode
[   20.858854] mt7530-mmio 1fb58000.switch wan: configuring for phy/internal link mode
[   24.718836] mt7530-mmio 1fb58000.switch lan2: Link is Up - 1Gbps/Full - flow control rx/tx
[   24.727224] br-lan: port 2(lan2) entered blocking state
[   24.732500] br-lan: port 2(lan2) entered forwarding state
[   28.877651] mt7530-mmio 1fb58000.switch lan2: Link is Down
[   28.883291] br-lan: port 2(lan2) entered disabled state
[   30.958762] mt7530-mmio 1fb58000.switch lan2: Link is Up - 100Mbps/Half - flow control off
[   30.967134] br-lan: port 2(lan2) entered blocking state
[   30.972410] br-lan: port 2(lan2) entered forwarding state
> Can you show the boot log ```log [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 6.12.59 (sirherobrine23@matheus-note) (arm-openwrt-linux-muslgnueabi-gcc (OpenWrt GCC 14.3.0 r31419+64-297057f0f2) 14.3.0, GNU ld (GNU Binutils) 2.44) #0 SMP Fri Nov 28 12:47:55 2025 [ 0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d [ 0.000000] CPU: div instructions available: patching division code [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] OF: fdt: Machine model: TP-Link xx230v [ 0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000 [ 0.000000] earlycon: ns16550 at MMIO32 0x1fbf0000 (options '115200n8') [ 0.000000] printk: legacy bootconsole [ns16550] enabled [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000080200000-0x000000008fffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000080200000-0x0000000083ffffff] [ 0.000000] node 0: [mem 0x0000000084000000-0x00000000849fffff] [ 0.000000] node 0: [mem 0x0000000084a00000-0x0000000084afffff] [ 0.000000] node 0: [mem 0x0000000084b00000-0x0000000084bfffff] [ 0.000000] node 0: [mem 0x0000000084c00000-0x0000000084ffffff] [ 0.000000] node 0: [mem 0x0000000085000000-0x00000000869fffff] [ 0.000000] node 0: [mem 0x0000000086a00000-0x0000000086afffff] [ 0.000000] node 0: [mem 0x0000000086b00000-0x0000000086bfffff] [ 0.000000] node 0: [mem 0x0000000086c00000-0x0000000086cfffff] [ 0.000000] node 0: [mem 0x0000000086d00000-0x0000000086dfffff] [ 0.000000] node 0: [mem 0x0000000086e00000-0x0000000086ffffff] [ 0.000000] node 0: [mem 0x0000000087000000-0x0000000089ffffff] [ 0.000000] node 0: [mem 0x000000008a000000-0x000000008fffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000008fffffff] [ 0.000000] On node 0, zone Normal: 512 pages in unavailable ranges [ 0.000000] OF: reserved mem: 0x84000000..0x849fffff (10240 KiB) nomap non-reusable npu_binary@84000000 [ 0.000000] OF: reserved mem: 0x84b00000..0x84bfffff (1024 KiB) nomap non-reusable npu_flag@84B0000 [ 0.000000] OF: reserved mem: 0x85000000..0x869fffff (26624 KiB) nomap non-reusable npu_pkt@85000000 [ 0.000000] OF: reserved mem: 0x86b00000..0x86bfffff (1024 KiB) nomap non-reusable npu_phyaddr@86B00000 [ 0.000000] OF: reserved mem: 0x86d00000..0x86dfffff (1024 KiB) nomap non-reusable npu_rxdesc@86D00000 [ 0.000000] OF: reserved mem: 0x87000000..0x88ffffff (32768 KiB) nomap non-reusable qdma0-buf@87000000 [ 0.000000] OF: reserved mem: 0x89000000..0x89ffffff (16384 KiB) nomap non-reusable qdma1-buf@89000000 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. [ 0.000000] psci: SMC Calling Convention v1.1 [ 0.000000] percpu: Embedded 14 pages/cpu s24780 r8192 d24372 u57344 [ 0.000000] Kernel command line: console=ttyS0,115200 earlycon [ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes, linear) [ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear) [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 65024 [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 [ 0.000000] rcu: Hierarchical RCU implementation. [ 0.000000] Tracing variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. [ 0.000000] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=2. [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [ 0.000000] GICv3: 256 SPIs implemented [ 0.000000] GICv3: 0 Extended SPIs implemented [ 0.000000] GICv3: GICv3 features: 16 PPIs [ 0.000000] GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=0 [ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x09080000 [ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention. [ 0.000000] arch_timer: cp15 timer(s) running at 25.00MHz (virt). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns [ 0.000001] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns [ 0.008800] Switching to timer-based delay loop, resolution 40ns [ 0.015550] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=250000) [ 0.026941] CPU: Testing write buffer coherency: ok [ 0.032323] pid_max: default: 32768 minimum: 301 [ 0.045207] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.053256] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.065194] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [ 0.072473] Setting up static identity map for 0x80300000 - 0x80300060 [ 0.079842] rcu: Hierarchical SRCU implementation. [ 0.085110] rcu: Max phase no-delay instances is 1000. [ 0.091146] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level [ 0.100361] smp: Bringing up secondary CPUs ... [ 0.120453] GICv3: CPU1: found redistributor 1 region 0:0x090a0000 [ 0.120509] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [ 0.120652] smp: Brought up 1 node, 2 CPUs [ 0.138165] SMP: Total of 2 processors activated (100.00 BogoMIPS). [ 0.145064] CPU: All CPU(s) started in SVC mode. [ 0.150600] Memory: 110500K/260096K available (7807K kernel code, 599K rwdata, 2036K rodata, 46080K init, 218K bss, 148840K reserved, 0K cma-reserved) [ 0.168957] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.179835] futex hash table entries: 512 (order: 3, 32768 bytes, linear) [ 0.191272] pinctrl core: initialized pinctrl subsystem [ 0.199035] NET: Registered PF_NETLINK/PF_ROUTE protocol family [ 0.205869] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.214196] thermal_sys: Registered thermal governor 'step_wise' [ 0.214279] cpuidle: using governor menu [ 0.226113] debugfs: Directory '1fa20000.system-controller' with parent 'regmap' already present! [ 0.236759] /pcie@1fa91000: Fixed dependency cycle(s) with /pcie@1fa91000/interrupt-controller [ 0.246648] /pcie@1fa92000: Fixed dependency cycle(s) with /pcie@1fa92000/interrupt-controller [ 0.267150] SCSI subsystem initialized [ 0.271500] usbcore: registered new interface driver usbfs [ 0.277630] usbcore: registered new interface driver hub [ 0.283515] usbcore: registered new device driver usb [ 0.289236] Advanced Linux Sound Architecture Driver Initialized. [ 0.297408] clocksource: Switched to clocksource arch_sys_counter [ 0.311114] NET: Registered PF_INET protocol family [ 0.316676] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear) [ 0.325222] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear) [ 0.334480] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) [ 0.343008] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.351445] TCP bind hash table entries: 1024 (order: 2, 16384 bytes, linear) [ 0.359320] TCP: Hash tables configured (established 1024 bind 1024) [ 0.366726] MPTCP token hash table entries: 256 (order: 0, 4096 bytes, linear) [ 0.374979] UDP hash table entries: 256 (order: 1, 8192 bytes, linear) [ 0.382195] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear) [ 0.390348] NET: Registered PF_UNIX/PF_LOCAL protocol family [ 0.396597] PCI: CLS 0 bytes, default 64 [ 0.402464] workingset: timestamp_bits=14 max_order=15 bucket_order=1 [ 0.411782] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.418298] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.435747] mtk-pcie 1fa91000.pcie: host bridge /pcie@1fa91000 ranges: [ 0.443074] mtk-pcie 1fa91000.pcie: MEM 0x0020000000..0x0021ffffff -> 0x0020000000 [ 1.057430] mtk-pcie 1fa91000.pcie: Port0 link down [ 1.063034] mtk-pcie 1fa91000.pcie: PCI host bridge to bus 0000:00 [ 1.069893] pci_bus 0000:00: root bus resource [bus 00-ff] [ 1.075931] pci_bus 0000:00: root bus resource [mem 0x20000000-0x21ffffff] [ 1.084382] PCI: bus0: Fast back to back transfers enabled [ 1.090444] pci_bus 0000:00: resource 4 [mem 0x20000000-0x21ffffff] [ 1.097559] mtk-pcie 1fa92000.pcie: host bridge /pcie@1fa92000 ranges: [ 1.104758] mtk-pcie 1fa92000.pcie: MEM 0x0022000000..0x0023ffffff -> 0x0022000000 [ 1.635858] mtk-pcie 1fa92000.pcie: PCI host bridge to bus 0001:00 [ 1.642705] pci_bus 0001:00: root bus resource [bus 00-ff] [ 1.648757] pci_bus 0001:00: root bus resource [mem 0x22000000-0x23ffffff] [ 1.656615] pci 0001:00:01.0: [14c3:0811] type 01 class 0x060400 PCIe Root Port [ 1.664841] pci 0001:00:01.0: BAR 0: can't handle BAR larger than 4GB (size 0x200000000) [ 1.673746] pci 0001:00:01.0: BAR 0 [mem size 0x00000001 64bit pref disabled] [ 1.681663] pci 0001:00:01.0: PCI bridge to [bus 00] [ 1.687183] pci 0001:00:01.0: bridge window [mem 0x00000000-0x000fffff] [ 1.696749] PCI: bus0: Fast back to back transfers disabled [ 1.702933] pci 0001:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring [ 1.712426] pci 0001:01:00.0: [14c3:7915] type 00 class 0x000280 PCIe Endpoint [ 1.720593] pci 0001:01:00.0: BAR 0 [mem 0x00000000-0x000fffff 64bit pref] [ 1.728276] pci 0001:01:00.0: BAR 2 [mem 0x00000000-0x00003fff 64bit pref] [ 1.735931] pci 0001:01:00.0: BAR 4 [mem 0x00000000-0x00000fff 64bit pref] [ 1.744201] pci 0001:01:00.0: supports D1 D2 [ 1.748895] pci 0001:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold [ 1.756541] pci 0001:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0001:00:01.0 (capable of 4.000 Gb/s with 5.0 GT/s PCIe x1 link) [ 1.773570] PCI: bus1: Fast back to back transfers disabled [ 1.779739] pci_bus 0001:01: busn_res: [bus 01-ff] end is updated to 01 [ 1.787075] pci 0001:00:01.0: bridge window [mem 0x22000000-0x221fffff]: assigned [ 1.795321] pci 0001:00:01.0: BAR 0 [mem 0x22200000 64bit pref disabled]: assigned [ 1.803710] pci 0001:00:01.0: BAR 0: error updating (0x2220000c != 0x0000000c) [ 1.811696] pci 0001:01:00.0: BAR 0 [mem 0x22000000-0x220fffff 64bit pref]: assigned [ 1.820295] pci 0001:01:00.0: BAR 2 [mem 0x22100000-0x22103fff 64bit pref]: assigned [ 1.828902] pci 0001:01:00.0: BAR 4 [mem 0x22104000-0x22104fff 64bit pref]: assigned [ 1.837499] pci 0001:00:01.0: PCI bridge to [bus 01] [ 1.842982] pci 0001:00:01.0: bridge window [mem 0x22000000-0x221fffff] [ 1.850522] pci_bus 0001:00: resource 4 [mem 0x22000000-0x23ffffff] [ 1.857420] pci_bus 0001:01: resource 1 [mem 0x22000000-0x221fffff] [ 1.864519] pcieport 0001:00:01.0: enabling device (0140 -> 0142) [ 1.872079] pcieport 0001:00:01.0: PME: Signaling with IRQ 30 [ 1.879711] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled [ 1.887725] printk: legacy console [ttyS0] disabled [ 1.893549] 1fbf0000.serial: ttyS0 at MMIO 0x1fbf0000 (irq = 31, base_baud = 115200) is a 16550 [ 1.903198] printk: legacy console [ttyS0] enabled [ 1.903198] printk: legacy console [ttyS0] enabled [ 1.913278] printk: legacy bootconsole [ns16550] disabled [ 1.913278] printk: legacy bootconsole [ns16550] disabled [ 1.926561] spi-nand spi0.0: ESMT SPI NAND was found. [ 1.931702] spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64 [ 1.948027] 6 fixed-partitions partitions found on MTD device spi0.0 [ 1.954403] Creating 6 MTD partitions on "spi0.0": [ 1.959231] 0x000000000000-0x000000080000 : "bootloader" [ 1.966536] 0x000000080000-0x000000120000 : "romfile" [ 1.974217] 0x0000000a0000-0x000000240000 : "misc" [ 1.982145] OF: Bad cell count for /spi@1fa10000/nand@0/partitions [ 1.988630] 0x0000001a0000-0x0000011a0000 : "kernel" [ 2.027560] 0x0000011a0000-0x000006000000 : "rootfs" [ 2.200499] mtd: setting mtd4 (rootfs) as root device [ 2.205936] mtdsplit: no squashfs found in "rootfs" [ 2.210880] 0x000003fe0000-0x000007fe0000 : "reserved_bmt" [ 2.450949] airoha-npu 1e900000.npu: SRAM Size: 0x60000 [ 2.568409] airoha-npu 1e900000.npu: boot all with 0xf cores enabled [C1]core freq at 333000000 Hz [C1]timer_init: Timer clk is running at 125 Mhz [C1]core1_main [ 2.688910] airoha-usb-phy 1fad0000.phy: Frequency not detected, using default SR calibration. [ 2.702109] xhci-mtk 1fab0000.usb: xHCI Host Controller [ 2.707387] xhci-mtk 1fab0000.usb: new USB bus registered, assigned bus number 1 [ 2.718804] xhci-mtk 1fab0000.usb: hcc params 0x01400f98 hci version 0x110 quirks 0x0000000000200010 [ 2.728028] xhci-mtk 1fab0000.usb: irq 43, io mem 0x1fab0000 [ 2.733862] xhci-mtk 1fab0000.usb: xHCI Host Controller [ 2.739155] xhci-mtk 1fab0000.usb: new USB bus registered, assigned bus number 2 [ 2.746563] xhci-mtk 1fab0000.usb: Host supports USB 3.2 Enhanced SuperSpeed [ 2.754413] hub 1-0:1.0: USB hub found [ 2.758298] hub 1-0:1.0: 2 ports detected [ 2.763084] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM. [ 2.771943] hub 2-0:1.0: USB hub found [ 2.775872] hub 2-0:1.0: 1 port detected [ 2.780698] i2c-mt7621 1fbf8000.i2c0: clock 100 kHz [ 2.785894] airoha-thermal 1efbd000.thermal-sensor: EN7523: IC calibrated (pdid:3, pkg:3) [ 2.794258] airoha-thermal 1efbd000.thermal-sensor: EN7523: Init check code_30:32008, Slope:1750 [ 2.815565] en7523-audio 1fbe2200.audio-controller: mtk_afe_combine_sub_dai(), num of dai 2 [ 2.824509] debugfs: Directory '1fbe2200.audio-controller' with parent 'en7523-i2s' already present! [ 2.835326] NET: Registered PF_INET6 protocol family [ 2.842127] Segment Routing with IPv6 [ 2.845861] In-situ OAM (IOAM) with IPv6 [ 2.849921] NET: Registered PF_PACKET protocol family [ 2.855202] 8021q: 802.1Q VLAN Support v1.8 [ 2.859540] Registering SWP/SWPB emulation handler [ 2.921527] mt7530-mmio 1fb58000.switch: configuring for fixed/internal link mode [ 2.929280] mt7530-mmio 1fb58000.switch: Link is Up - 10Gbps/Full - flow control rx/tx [ 2.938321] mt7530-mmio 1fb58000.switch lan1 (uninitialized): PHY [mt7530-0:09] driver [Generic PHY] (irq=POLL) [ 2.950515] mt7530-mmio 1fb58000.switch lan2 (uninitialized): PHY [mt7530-0:0a] driver [Generic PHY] (irq=POLL) [ 2.962799] mt7530-mmio 1fb58000.switch lan3 (uninitialized): PHY [mt7530-0:0b] driver [Generic PHY] (irq=POLL) [ 2.975168] mt7530-mmio 1fb58000.switch wan (uninitialized): PHY [mt7530-0:0c] driver [Generic PHY] (irq=POLL) [ 2.986110] airoha_eth 1fb50000.ethernet eth0: entered promiscuous mode [ 2.992880] DSA: tree 0 setup [ 2.996700] clk: Disabling unused clocks [ 3.000731] PM: genpd: Disabling unused power domains [ 3.005797] ALSA device list: [ 3.008789] #0: en7523-i2s [ 3.058263] Freeing unused kernel image (initmem) memory: 46080K [ 3.064584] Run /init as init process [ 3.482460] init: Console is alive [ 3.486097] init: - watchdog - [ 3.499513] kmodloader: loading kernel modules from /etc/modules-boot.d/* [ 3.509363] gpio_button_hotplug: loading out-of-tree module taints kernel. [ 3.532851] usbcore: registered new interface driver usb-storage [ 3.546099] kmodloader: done loading kernel modules from /etc/modules-boot.d/* [ 3.563122] init: - preinit - [ 7.437397] random: crng init done Cannot parse config file '/etc/fw_env.config': No such file or directory Failed to find NVMEM device [ 7.716139] mt7530-mmio 1fb58000.switch lan1: configuring for phy/internal link mode Press the [f] key and hit [enter] to enter failsafe mode Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level [ 11.943871] procd: - early - [ 11.946905] procd: - watchdog - [ 12.482232] procd: - watchdog - [ 12.485607] procd: - ubus - [ 12.545562] procd: - init - Please press Enter to activate this console. [ 12.801515] kmodloader: loading kernel modules from /etc/modules.d/* [ 13.058769] i2c_dev: i2c /dev entries driver [ 13.067790] Loading modules backported from Linux version v6.16-0-g038d61fd6422 [ 13.075121] Backport generated by backports.git v6.1.145-1-47-g6194bf852a3e [ 13.101297] usbcore: registered new interface driver cdc_ether [ 13.154434] mt7915e 0001:01:00.0: enabling device (0140 -> 0142) [ 13.317929] mt7915e 0001:01:00.0: HW/SW Version: 0x8a108a10, Build Time: 20240429200716a [ 13.317929] [ 13.363644] mt7915e 0001:01:00.0: WM Firmware Version: ____000000, Build Time: 20240429200752 [ 13.404939] mt7915e 0001:01:00.0: WA Firmware Version: DEV_000000, Build Time: 20240429200812 [ 13.454162] urngd: v1.0.2 started. [ 13.528939] mt7915e 0001:01:00.0: registering led 'mt76-phy0' [ 13.610969] mt7915e 0001:01:00.0: registering led 'mt76-phy1' [ 13.755209] PPP generic driver version 2.4.2 [ 13.776949] NET: Registered PF_PPPOX protocol family [ 13.789372] usbcore: registered new interface driver rndis_host [ 13.804880] kmodloader: done loading kernel modules from /etc/modules.d/* [ 20.457751] mt7530-mmio 1fb58000.switch lan1: configuring for phy/internal link mode [ 20.473550] br-lan: port 1(lan1) entered blocking state [ 20.478949] br-lan: port 1(lan1) entered disabled state [ 20.484258] mt7530-mmio 1fb58000.switch lan1: entered allmulticast mode [ 20.491019] airoha_eth 1fb50000.ethernet eth0: entered allmulticast mode [ 20.498198] mt7530-mmio 1fb58000.switch lan1: entered promiscuous mode [ 20.530678] mt7530-mmio 1fb58000.switch lan2: configuring for phy/internal link mode [ 20.551575] br-lan: port 2(lan2) entered blocking state [ 20.556879] br-lan: port 2(lan2) entered disabled state [ 20.562287] mt7530-mmio 1fb58000.switch lan2: entered allmulticast mode [ 20.569296] mt7530-mmio 1fb58000.switch lan2: entered promiscuous mode [ 20.584347] mt7530-mmio 1fb58000.switch lan3: configuring for phy/internal link mode [ 20.598118] br-lan: port 3(lan3) entered blocking state [ 20.603375] br-lan: port 3(lan3) entered disabled state [ 20.608805] mt7530-mmio 1fb58000.switch lan3: entered allmulticast mode [ 20.615880] mt7530-mmio 1fb58000.switch lan3: entered promiscuous mode [ 20.858854] mt7530-mmio 1fb58000.switch wan: configuring for phy/internal link mode [ 24.718836] mt7530-mmio 1fb58000.switch lan2: Link is Up - 1Gbps/Full - flow control rx/tx [ 24.727224] br-lan: port 2(lan2) entered blocking state [ 24.732500] br-lan: port 2(lan2) entered forwarding state [ 28.877651] mt7530-mmio 1fb58000.switch lan2: Link is Down [ 28.883291] br-lan: port 2(lan2) entered disabled state [ 30.958762] mt7530-mmio 1fb58000.switch lan2: Link is Up - 100Mbps/Half - flow control off [ 30.967134] br-lan: port 2(lan2) entered blocking state [ 30.972410] br-lan: port 2(lan2) entered forwarding state ````
Author
Owner

devmem 0x1fb5b0ec
devmem 0x1fb5b0F0

root@OpenWrt:~# devmem 0x1fb5b0ec
0x00000002
root@OpenWrt:~# devmem 0x1fb5b0F0
0x0000FF00
> devmem 0x1fb5b0ec > devmem 0x1fb5b0F0 ```log root@OpenWrt:~# devmem 0x1fb5b0ec 0x00000002 root@OpenWrt:~# devmem 0x1fb5b0F0 0x0000FF00 ```
Owner

mt7530-mmio 1fb58000.switch lan2: Link is Up - 100Mbps/Half - flow control off

This sounds bad.

` mt7530-mmio 1fb58000.switch lan2: Link is Up - 100Mbps/Half - flow control off` This sounds bad.
Author
Owner

Client: iperf3 -c 192.168.2.1 -t25 -R

mt7530_set(priv, MT753X_PMCR_P(6), MT7530_RXCRC_EN |
PMCR_IFG_XMIT(1) |
PMCR_MAC_MODE |
PMCR_BACKOFF_EN |
PMCR_BACKPR_EN);
mt7530_set(priv, MT7530_DBGGCR, CPORT_RXG_BUSY);
mt7530_write(priv, MT7530_CKGCR, LPI_TXIDLE_THD(0xFF));

Accepted connection from 192.168.2.220, port 41986                                                                                                             
[  5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 41992
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  65.0 MBytes   545 Mbits/sec   27    430 KBytes       
[  5]   1.00-2.00   sec  54.8 MBytes   459 Mbits/sec   23    240 KBytes       
[  5]   2.00-3.00   sec  59.9 MBytes   502 Mbits/sec   10    249 KBytes       
[  5]   3.00-4.00   sec  62.6 MBytes   525 Mbits/sec    6    199 KBytes       
[  5]   4.00-5.00   sec  64.5 MBytes   541 Mbits/sec    4    288 KBytes       
[  5]   5.00-6.00   sec  61.6 MBytes   517 Mbits/sec    4    296 KBytes       
[  5]   6.00-7.00   sec  61.5 MBytes   516 Mbits/sec   26    212 KBytes       
[  5]   7.00-8.00   sec  61.9 MBytes   519 Mbits/sec   12    219 KBytes       
[  5]   8.00-9.00   sec  58.9 MBytes   494 Mbits/sec   15    257 KBytes       
[  5]   9.00-10.00  sec  63.0 MBytes   528 Mbits/sec   29    246 KBytes       
[  5]  10.00-11.00  sec  64.8 MBytes   543 Mbits/sec   17    290 KBytes       
[  5]  11.00-12.00  sec  58.5 MBytes   491 Mbits/sec   27    221 KBytes       
[  5]  12.00-13.00  sec  63.5 MBytes   533 Mbits/sec    8    274 KBytes       
[  5]  13.00-14.00  sec  61.1 MBytes   513 Mbits/sec   19    327 KBytes       
[  5]  14.00-15.00  sec  61.2 MBytes   514 Mbits/sec   49    279 KBytes       
[  5]  15.00-16.00  sec  62.9 MBytes   527 Mbits/sec    5    344 KBytes       
[  5]  16.00-17.00  sec  61.5 MBytes   516 Mbits/sec   46    260 KBytes       
[  5]  17.00-18.00  sec  57.2 MBytes   480 Mbits/sec    2    280 KBytes       
[  5]  18.00-19.00  sec  63.8 MBytes   535 Mbits/sec   38    233 KBytes       
[  5]  19.00-20.00  sec  63.8 MBytes   533 Mbits/sec   14    307 KBytes       
[  5]  20.00-21.00  sec  61.2 MBytes   515 Mbits/sec   62    245 KBytes       
[  5]  21.00-22.00  sec  58.0 MBytes   487 Mbits/sec    4    269 KBytes       
[  5]  22.00-23.00  sec  64.6 MBytes   542 Mbits/sec    1    320 KBytes       
[  5]  23.00-24.00  sec  60.6 MBytes   509 Mbits/sec   46    229 KBytes       
[  5]  24.00-25.00  sec  58.6 MBytes   491 Mbits/sec    7    246 KBytes       
[  5]  25.00-25.27  sec  2.50 MBytes  78.0 Mbits/sec    0    256 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.27  sec  1.50 GBytes   511 Mbits/sec  501            sender
Client: `iperf3 -c 192.168.2.1 -t25 -R` https://sirherobrine23.com.br/airoha_en7523/kernel/src/commit/136d76fe326947da1a4f2e16907bc3433ade5aea/drivers/net/dsa/mt7530.c#L3171-L3177 ``` Accepted connection from 192.168.2.220, port 41986 [ 5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 41992 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 65.0 MBytes 545 Mbits/sec 27 430 KBytes [ 5] 1.00-2.00 sec 54.8 MBytes 459 Mbits/sec 23 240 KBytes [ 5] 2.00-3.00 sec 59.9 MBytes 502 Mbits/sec 10 249 KBytes [ 5] 3.00-4.00 sec 62.6 MBytes 525 Mbits/sec 6 199 KBytes [ 5] 4.00-5.00 sec 64.5 MBytes 541 Mbits/sec 4 288 KBytes [ 5] 5.00-6.00 sec 61.6 MBytes 517 Mbits/sec 4 296 KBytes [ 5] 6.00-7.00 sec 61.5 MBytes 516 Mbits/sec 26 212 KBytes [ 5] 7.00-8.00 sec 61.9 MBytes 519 Mbits/sec 12 219 KBytes [ 5] 8.00-9.00 sec 58.9 MBytes 494 Mbits/sec 15 257 KBytes [ 5] 9.00-10.00 sec 63.0 MBytes 528 Mbits/sec 29 246 KBytes [ 5] 10.00-11.00 sec 64.8 MBytes 543 Mbits/sec 17 290 KBytes [ 5] 11.00-12.00 sec 58.5 MBytes 491 Mbits/sec 27 221 KBytes [ 5] 12.00-13.00 sec 63.5 MBytes 533 Mbits/sec 8 274 KBytes [ 5] 13.00-14.00 sec 61.1 MBytes 513 Mbits/sec 19 327 KBytes [ 5] 14.00-15.00 sec 61.2 MBytes 514 Mbits/sec 49 279 KBytes [ 5] 15.00-16.00 sec 62.9 MBytes 527 Mbits/sec 5 344 KBytes [ 5] 16.00-17.00 sec 61.5 MBytes 516 Mbits/sec 46 260 KBytes [ 5] 17.00-18.00 sec 57.2 MBytes 480 Mbits/sec 2 280 KBytes [ 5] 18.00-19.00 sec 63.8 MBytes 535 Mbits/sec 38 233 KBytes [ 5] 19.00-20.00 sec 63.8 MBytes 533 Mbits/sec 14 307 KBytes [ 5] 20.00-21.00 sec 61.2 MBytes 515 Mbits/sec 62 245 KBytes [ 5] 21.00-22.00 sec 58.0 MBytes 487 Mbits/sec 4 269 KBytes [ 5] 22.00-23.00 sec 64.6 MBytes 542 Mbits/sec 1 320 KBytes [ 5] 23.00-24.00 sec 60.6 MBytes 509 Mbits/sec 46 229 KBytes [ 5] 24.00-25.00 sec 58.6 MBytes 491 Mbits/sec 7 246 KBytes [ 5] 25.00-25.27 sec 2.50 MBytes 78.0 Mbits/sec 0 256 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.27 sec 1.50 GBytes 511 Mbits/sec 501 sender ```
Author
Owner

mt7530-mmio 1fb58000.switch lan2: Link is Up - 100Mbps/Half - flow control off

This sounds bad.

I had forced the link to 100mbps on my computer

> ` mt7530-mmio 1fb58000.switch lan2: Link is Up - 100Mbps/Half - flow control off` > > This sounds bad. I had forced the link to 100mbps on my computer
Owner

99% of the time, if you end up with half duplex something is wrong.

What speeds do you get without -R?

99% of the time, if you end up with half duplex something is wrong. What speeds do you get without -R?
Author
Owner

1Gbps:

iperf3 -c 192.168.2.1 -t25                                                                                                                                     1 ↵
Connecting to host 192.168.2.1, port 5201
[  5] local 192.168.2.220 port 52868 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  79.2 MBytes   664 Mbits/sec    1    310 KBytes       
[  5]   1.00-2.00   sec  80.6 MBytes   676 Mbits/sec    0    310 KBytes       
[  5]   2.00-3.00   sec  75.1 MBytes   630 Mbits/sec    3    233 KBytes       
[  5]   3.00-4.00   sec  87.5 MBytes   734 Mbits/sec    1    298 KBytes       
[  5]   4.00-5.00   sec  99.4 MBytes   834 Mbits/sec    2    298 KBytes       
[  5]   5.00-6.00   sec   106 MBytes   885 Mbits/sec    0    298 KBytes       
[  5]   6.00-7.00   sec  80.2 MBytes   673 Mbits/sec    1    298 KBytes       
[  5]   7.00-8.00   sec  79.5 MBytes   667 Mbits/sec    2    298 KBytes       
[  5]   8.00-9.00   sec  79.8 MBytes   669 Mbits/sec    0    298 KBytes       
[  5]   9.00-10.00  sec   105 MBytes   882 Mbits/sec    0    298 KBytes       
[  5]  10.00-11.00  sec  75.5 MBytes   633 Mbits/sec    3    284 KBytes       
[  5]  11.00-12.00  sec  83.1 MBytes   697 Mbits/sec    2    301 KBytes       
[  5]  12.00-13.00  sec   105 MBytes   884 Mbits/sec    0    301 KBytes       
[  5]  13.00-14.00  sec   105 MBytes   883 Mbits/sec    0    301 KBytes       
[  5]  14.00-15.00  sec   101 MBytes   847 Mbits/sec    0    301 KBytes       
[  5]  15.00-16.00  sec  76.5 MBytes   642 Mbits/sec    2    301 KBytes       
[  5]  16.00-17.00  sec  79.4 MBytes   666 Mbits/sec    3    301 KBytes       
[  5]  17.00-18.00  sec   108 MBytes   903 Mbits/sec    0    301 KBytes       
[  5]  18.00-19.00  sec  73.4 MBytes   615 Mbits/sec    1    301 KBytes       
[  5]  19.00-20.00  sec  96.4 MBytes   808 Mbits/sec    0    301 KBytes       
[  5]  20.00-21.00  sec   104 MBytes   868 Mbits/sec    0    301 KBytes       
[  5]  21.00-22.00  sec  86.8 MBytes   728 Mbits/sec    1    253 KBytes       
[  5]  22.00-23.00  sec   106 MBytes   888 Mbits/sec    0    300 KBytes       
[  5]  23.00-24.00  sec   107 MBytes   899 Mbits/sec    0    300 KBytes       
[  5]  24.00-25.00  sec   106 MBytes   889 Mbits/sec    0    300 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.00  sec  2.23 GBytes   767 Mbits/sec   22            sender
[  5]   0.00-25.01  sec  2.23 GBytes   766 Mbits/sec                  receiver

iperf Done.

100mbps full

[ 1294.674671] br-lan: port 2(lan2) entered forwarding state                                                                                                           
[ 1295.699589] mt7530-mmio 1fb58000.switch lan2: Link is Down                                                                                                          
[ 1295.705262] br-lan: port 2(lan2) entered disabled state                                                                                                             
[ 1297.781018] mt7530-mmio 1fb58000.switch lan2: Link is Up - 100Mbps/Half - flow control off                                                                          
[ 1297.789472] br-lan: port 2(lan2) entered blocking state                                                                                                             
[ 1297.794725] br-lan: port 2(lan2) entered forwarding state      
iperf3 -c 192.168.2.1 -t25                                                                                                                                     
Connecting to host 192.168.2.1, port 5201
[  5] local 192.168.2.220 port 33860 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  11.1 MBytes  93.2 Mbits/sec    0    307 KBytes       
[  5]   1.00-2.00   sec  9.50 MBytes  79.7 Mbits/sec    0    307 KBytes       
[  5]   2.00-3.00   sec  10.2 MBytes  86.0 Mbits/sec    0    307 KBytes       
[  5]   3.00-4.00   sec  9.75 MBytes  81.8 Mbits/sec    0    307 KBytes       
[  5]   4.00-5.00   sec  10.0 MBytes  83.9 Mbits/sec    0    307 KBytes       
[  5]   5.00-6.00   sec  10.0 MBytes  83.9 Mbits/sec    0    307 KBytes       
[  5]   6.00-7.00   sec  9.62 MBytes  80.7 Mbits/sec    0    307 KBytes       
[  5]   7.00-8.00   sec  10.1 MBytes  84.9 Mbits/sec    0    307 KBytes       
[  5]   8.00-9.00   sec  9.75 MBytes  81.8 Mbits/sec    0    307 KBytes       
[  5]   9.00-10.00  sec  9.62 MBytes  80.7 Mbits/sec    0    307 KBytes       
[  5]  10.00-11.00  sec  9.62 MBytes  80.7 Mbits/sec    0    307 KBytes       
[  5]  11.00-12.00  sec  9.75 MBytes  81.9 Mbits/sec    0    307 KBytes       
[  5]  12.00-13.00  sec  10.0 MBytes  83.8 Mbits/sec    0    307 KBytes       
[  5]  13.00-14.00  sec  10.4 MBytes  87.0 Mbits/sec    0    307 KBytes       
[  5]  14.00-15.00  sec  9.38 MBytes  78.6 Mbits/sec    0    307 KBytes       
[  5]  15.00-16.00  sec  9.75 MBytes  81.8 Mbits/sec    0    307 KBytes       
[  5]  16.00-17.00  sec  10.0 MBytes  83.9 Mbits/sec    0    307 KBytes       
[  5]  17.00-18.00  sec  9.75 MBytes  81.9 Mbits/sec    0    307 KBytes       
[  5]  18.00-19.00  sec  9.75 MBytes  81.7 Mbits/sec    0    307 KBytes       
[  5]  19.00-20.00  sec  10.2 MBytes  86.0 Mbits/sec    0    307 KBytes       
[  5]  20.00-21.00  sec  10.0 MBytes  84.0 Mbits/sec    0    307 KBytes       
[  5]  21.00-22.00  sec  10.1 MBytes  84.9 Mbits/sec    0    307 KBytes       
[  5]  22.00-23.00  sec  9.50 MBytes  79.8 Mbits/sec    0    307 KBytes       
[  5]  23.00-24.00  sec  10.2 MBytes  85.9 Mbits/sec    0    307 KBytes       
[  5]  24.00-25.00  sec  10.0 MBytes  83.9 Mbits/sec    0    307 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.00  sec   248 MBytes  83.3 Mbits/sec    0            sender
[  5]   0.00-25.01  sec   247 MBytes  82.8 Mbits/sec                  receiver

iperf Done.
## 1Gbps: ``` iperf3 -c 192.168.2.1 -t25 1 ↵ Connecting to host 192.168.2.1, port 5201 [ 5] local 192.168.2.220 port 52868 connected to 192.168.2.1 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 79.2 MBytes 664 Mbits/sec 1 310 KBytes [ 5] 1.00-2.00 sec 80.6 MBytes 676 Mbits/sec 0 310 KBytes [ 5] 2.00-3.00 sec 75.1 MBytes 630 Mbits/sec 3 233 KBytes [ 5] 3.00-4.00 sec 87.5 MBytes 734 Mbits/sec 1 298 KBytes [ 5] 4.00-5.00 sec 99.4 MBytes 834 Mbits/sec 2 298 KBytes [ 5] 5.00-6.00 sec 106 MBytes 885 Mbits/sec 0 298 KBytes [ 5] 6.00-7.00 sec 80.2 MBytes 673 Mbits/sec 1 298 KBytes [ 5] 7.00-8.00 sec 79.5 MBytes 667 Mbits/sec 2 298 KBytes [ 5] 8.00-9.00 sec 79.8 MBytes 669 Mbits/sec 0 298 KBytes [ 5] 9.00-10.00 sec 105 MBytes 882 Mbits/sec 0 298 KBytes [ 5] 10.00-11.00 sec 75.5 MBytes 633 Mbits/sec 3 284 KBytes [ 5] 11.00-12.00 sec 83.1 MBytes 697 Mbits/sec 2 301 KBytes [ 5] 12.00-13.00 sec 105 MBytes 884 Mbits/sec 0 301 KBytes [ 5] 13.00-14.00 sec 105 MBytes 883 Mbits/sec 0 301 KBytes [ 5] 14.00-15.00 sec 101 MBytes 847 Mbits/sec 0 301 KBytes [ 5] 15.00-16.00 sec 76.5 MBytes 642 Mbits/sec 2 301 KBytes [ 5] 16.00-17.00 sec 79.4 MBytes 666 Mbits/sec 3 301 KBytes [ 5] 17.00-18.00 sec 108 MBytes 903 Mbits/sec 0 301 KBytes [ 5] 18.00-19.00 sec 73.4 MBytes 615 Mbits/sec 1 301 KBytes [ 5] 19.00-20.00 sec 96.4 MBytes 808 Mbits/sec 0 301 KBytes [ 5] 20.00-21.00 sec 104 MBytes 868 Mbits/sec 0 301 KBytes [ 5] 21.00-22.00 sec 86.8 MBytes 728 Mbits/sec 1 253 KBytes [ 5] 22.00-23.00 sec 106 MBytes 888 Mbits/sec 0 300 KBytes [ 5] 23.00-24.00 sec 107 MBytes 899 Mbits/sec 0 300 KBytes [ 5] 24.00-25.00 sec 106 MBytes 889 Mbits/sec 0 300 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.00 sec 2.23 GBytes 767 Mbits/sec 22 sender [ 5] 0.00-25.01 sec 2.23 GBytes 766 Mbits/sec receiver iperf Done. ``` --- ## 100mbps full ``` [ 1294.674671] br-lan: port 2(lan2) entered forwarding state [ 1295.699589] mt7530-mmio 1fb58000.switch lan2: Link is Down [ 1295.705262] br-lan: port 2(lan2) entered disabled state [ 1297.781018] mt7530-mmio 1fb58000.switch lan2: Link is Up - 100Mbps/Half - flow control off [ 1297.789472] br-lan: port 2(lan2) entered blocking state [ 1297.794725] br-lan: port 2(lan2) entered forwarding state ``` ``` iperf3 -c 192.168.2.1 -t25 Connecting to host 192.168.2.1, port 5201 [ 5] local 192.168.2.220 port 33860 connected to 192.168.2.1 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 11.1 MBytes 93.2 Mbits/sec 0 307 KBytes [ 5] 1.00-2.00 sec 9.50 MBytes 79.7 Mbits/sec 0 307 KBytes [ 5] 2.00-3.00 sec 10.2 MBytes 86.0 Mbits/sec 0 307 KBytes [ 5] 3.00-4.00 sec 9.75 MBytes 81.8 Mbits/sec 0 307 KBytes [ 5] 4.00-5.00 sec 10.0 MBytes 83.9 Mbits/sec 0 307 KBytes [ 5] 5.00-6.00 sec 10.0 MBytes 83.9 Mbits/sec 0 307 KBytes [ 5] 6.00-7.00 sec 9.62 MBytes 80.7 Mbits/sec 0 307 KBytes [ 5] 7.00-8.00 sec 10.1 MBytes 84.9 Mbits/sec 0 307 KBytes [ 5] 8.00-9.00 sec 9.75 MBytes 81.8 Mbits/sec 0 307 KBytes [ 5] 9.00-10.00 sec 9.62 MBytes 80.7 Mbits/sec 0 307 KBytes [ 5] 10.00-11.00 sec 9.62 MBytes 80.7 Mbits/sec 0 307 KBytes [ 5] 11.00-12.00 sec 9.75 MBytes 81.9 Mbits/sec 0 307 KBytes [ 5] 12.00-13.00 sec 10.0 MBytes 83.8 Mbits/sec 0 307 KBytes [ 5] 13.00-14.00 sec 10.4 MBytes 87.0 Mbits/sec 0 307 KBytes [ 5] 14.00-15.00 sec 9.38 MBytes 78.6 Mbits/sec 0 307 KBytes [ 5] 15.00-16.00 sec 9.75 MBytes 81.8 Mbits/sec 0 307 KBytes [ 5] 16.00-17.00 sec 10.0 MBytes 83.9 Mbits/sec 0 307 KBytes [ 5] 17.00-18.00 sec 9.75 MBytes 81.9 Mbits/sec 0 307 KBytes [ 5] 18.00-19.00 sec 9.75 MBytes 81.7 Mbits/sec 0 307 KBytes [ 5] 19.00-20.00 sec 10.2 MBytes 86.0 Mbits/sec 0 307 KBytes [ 5] 20.00-21.00 sec 10.0 MBytes 84.0 Mbits/sec 0 307 KBytes [ 5] 21.00-22.00 sec 10.1 MBytes 84.9 Mbits/sec 0 307 KBytes [ 5] 22.00-23.00 sec 9.50 MBytes 79.8 Mbits/sec 0 307 KBytes [ 5] 23.00-24.00 sec 10.2 MBytes 85.9 Mbits/sec 0 307 KBytes [ 5] 24.00-25.00 sec 10.0 MBytes 83.9 Mbits/sec 0 307 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.00 sec 248 MBytes 83.3 Mbits/sec 0 sender [ 5] 0.00-25.01 sec 247 MBytes 82.8 Mbits/sec receiver iperf Done. ```
Author
Owner

100Mbps half, no traffic

[ 1543.227067] mt7530-mmio 1fb58000.switch lan2: Link is Down
[ 1543.232758] br-lan: port 2(lan2) entered disabled state
[ 1546.348406] mt7530-mmio 1fb58000.switch lan2: Link is Up - 1Gbps/Full - flow control rx/tx
[ 1546.356822] br-lan: port 2(lan2) entered blocking state
[ 1546.362067] br-lan: port 2(lan2) entered forwarding state
100Mbps half, no traffic ``` [ 1543.227067] mt7530-mmio 1fb58000.switch lan2: Link is Down [ 1543.232758] br-lan: port 2(lan2) entered disabled state [ 1546.348406] mt7530-mmio 1fb58000.switch lan2: Link is Up - 1Gbps/Full - flow control rx/tx [ 1546.356822] br-lan: port 2(lan2) entered blocking state [ 1546.362067] br-lan: port 2(lan2) entered forwarding state ```
Author
Owner

If I switch back to 209, the interrupt will give me those speeds.

iperf3 -c 192.168.2.1 -t25
Connecting to host 192.168.2.1, port 5201
[  5] local 192.168.2.220 port 44982 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  85.4 MBytes   715 Mbits/sec    2    298 KBytes       
[  5]   1.00-2.00   sec  74.8 MBytes   627 Mbits/sec    2    269 KBytes       
[  5]   2.00-3.00   sec  78.0 MBytes   654 Mbits/sec    2    298 KBytes       
[  5]   3.00-4.00   sec  74.4 MBytes   624 Mbits/sec    4    298 KBytes       
[  5]   4.00-5.00   sec  99.0 MBytes   830 Mbits/sec    2    298 KBytes       
[  5]   5.00-6.00   sec   105 MBytes   880 Mbits/sec    0    298 KBytes       
[  5]   6.00-7.00   sec  75.4 MBytes   632 Mbits/sec    1    298 KBytes       
[  5]   7.00-8.00   sec  87.1 MBytes   731 Mbits/sec    1    301 KBytes       
[  5]   8.00-9.00   sec   105 MBytes   881 Mbits/sec    1    301 KBytes       
[  5]   9.00-10.00  sec   106 MBytes   888 Mbits/sec    0    301 KBytes       
[  5]  10.00-11.00  sec  80.8 MBytes   677 Mbits/sec    2    301 KBytes       
[  5]  11.00-12.00  sec   105 MBytes   880 Mbits/sec    0    301 KBytes       
[  5]  12.00-13.00  sec   102 MBytes   860 Mbits/sec    0    301 KBytes       
[  5]  13.00-14.00  sec  75.2 MBytes   631 Mbits/sec    1    301 KBytes       
[  5]  14.00-15.00  sec  90.6 MBytes   760 Mbits/sec    3    298 KBytes       
[  5]  15.00-16.00  sec   105 MBytes   878 Mbits/sec    0    298 KBytes       
[  5]  16.00-17.00  sec  83.1 MBytes   697 Mbits/sec    0    300 KBytes       
[  5]  17.00-18.00  sec  96.4 MBytes   808 Mbits/sec    2    300 KBytes       
[  5]  18.00-19.00  sec  84.1 MBytes   706 Mbits/sec    2    300 KBytes       
[  5]  19.00-20.00  sec  89.1 MBytes   748 Mbits/sec    2    300 KBytes       
[  5]  20.00-21.00  sec  75.2 MBytes   631 Mbits/sec    3    263 KBytes       
[  5]  21.00-22.00  sec   105 MBytes   880 Mbits/sec    0    301 KBytes       
[  5]  22.00-23.00  sec   103 MBytes   866 Mbits/sec    0    301 KBytes       
[  5]  23.00-24.00  sec   105 MBytes   879 Mbits/sec    0    301 KBytes       
[  5]  24.00-25.22  sec  71.4 MBytes   493 Mbits/sec    4    252 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.22  sec  2.21 GBytes   752 Mbits/sec   34            sender
[  5]   0.00-25.22  sec  2.21 GBytes   752 Mbits/sec                  receiver

iperf Done.
iperf3 -c 192.168.2.1 -t25 -R
Connecting to host 192.168.2.1, port 5201
Reverse mode, remote host 192.168.2.1 is sending
[  5] local 192.168.2.220 port 52642 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  60.1 MBytes   504 Mbits/sec                  
[  5]   1.00-2.00   sec  61.6 MBytes   517 Mbits/sec                  
[  5]   2.00-3.00   sec  63.5 MBytes   532 Mbits/sec                  
[  5]   3.00-4.00   sec  62.0 MBytes   520 Mbits/sec                  
[  5]   4.00-5.00   sec  63.0 MBytes   529 Mbits/sec                  
[  5]   5.00-6.00   sec  63.2 MBytes   531 Mbits/sec                  
[  5]   6.00-7.00   sec  62.4 MBytes   523 Mbits/sec                  
[  5]   7.00-8.00   sec  59.2 MBytes   497 Mbits/sec                  
[  5]   8.00-9.00   sec  64.5 MBytes   542 Mbits/sec                  
[  5]   9.00-10.00  sec  61.5 MBytes   515 Mbits/sec                  
[  5]  10.00-11.00  sec  63.4 MBytes   532 Mbits/sec                  
[  5]  11.00-12.00  sec  65.4 MBytes   548 Mbits/sec                  
[  5]  12.00-13.00  sec  63.4 MBytes   532 Mbits/sec                  
[  5]  13.00-14.00  sec  66.4 MBytes   557 Mbits/sec                  
[  5]  14.00-15.00  sec  64.0 MBytes   537 Mbits/sec                  
[  5]  15.00-16.00  sec  63.4 MBytes   531 Mbits/sec                  
[  5]  16.00-17.00  sec  66.6 MBytes   559 Mbits/sec                  
[  5]  17.00-18.00  sec  62.4 MBytes   523 Mbits/sec                  
[  5]  18.00-19.00  sec  58.0 MBytes   487 Mbits/sec                  
[  5]  19.00-20.00  sec  64.2 MBytes   539 Mbits/sec                  
[  5]  20.00-21.00  sec  65.6 MBytes   550 Mbits/sec                  
[  5]  21.00-22.00  sec  64.9 MBytes   544 Mbits/sec                  
[  5]  22.00-23.00  sec  62.8 MBytes   526 Mbits/sec                  
[  5]  23.00-24.00  sec  64.1 MBytes   538 Mbits/sec                  
[  5]  24.00-25.00  sec  62.8 MBytes   526 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.00  sec  1.54 GBytes   530 Mbits/sec  612            sender
[  5]   0.00-25.00  sec  1.54 GBytes   530 Mbits/sec                  receiver

iperf Done.
If I switch back to `209`, the interrupt will give me those speeds. ``` iperf3 -c 192.168.2.1 -t25 Connecting to host 192.168.2.1, port 5201 [ 5] local 192.168.2.220 port 44982 connected to 192.168.2.1 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 85.4 MBytes 715 Mbits/sec 2 298 KBytes [ 5] 1.00-2.00 sec 74.8 MBytes 627 Mbits/sec 2 269 KBytes [ 5] 2.00-3.00 sec 78.0 MBytes 654 Mbits/sec 2 298 KBytes [ 5] 3.00-4.00 sec 74.4 MBytes 624 Mbits/sec 4 298 KBytes [ 5] 4.00-5.00 sec 99.0 MBytes 830 Mbits/sec 2 298 KBytes [ 5] 5.00-6.00 sec 105 MBytes 880 Mbits/sec 0 298 KBytes [ 5] 6.00-7.00 sec 75.4 MBytes 632 Mbits/sec 1 298 KBytes [ 5] 7.00-8.00 sec 87.1 MBytes 731 Mbits/sec 1 301 KBytes [ 5] 8.00-9.00 sec 105 MBytes 881 Mbits/sec 1 301 KBytes [ 5] 9.00-10.00 sec 106 MBytes 888 Mbits/sec 0 301 KBytes [ 5] 10.00-11.00 sec 80.8 MBytes 677 Mbits/sec 2 301 KBytes [ 5] 11.00-12.00 sec 105 MBytes 880 Mbits/sec 0 301 KBytes [ 5] 12.00-13.00 sec 102 MBytes 860 Mbits/sec 0 301 KBytes [ 5] 13.00-14.00 sec 75.2 MBytes 631 Mbits/sec 1 301 KBytes [ 5] 14.00-15.00 sec 90.6 MBytes 760 Mbits/sec 3 298 KBytes [ 5] 15.00-16.00 sec 105 MBytes 878 Mbits/sec 0 298 KBytes [ 5] 16.00-17.00 sec 83.1 MBytes 697 Mbits/sec 0 300 KBytes [ 5] 17.00-18.00 sec 96.4 MBytes 808 Mbits/sec 2 300 KBytes [ 5] 18.00-19.00 sec 84.1 MBytes 706 Mbits/sec 2 300 KBytes [ 5] 19.00-20.00 sec 89.1 MBytes 748 Mbits/sec 2 300 KBytes [ 5] 20.00-21.00 sec 75.2 MBytes 631 Mbits/sec 3 263 KBytes [ 5] 21.00-22.00 sec 105 MBytes 880 Mbits/sec 0 301 KBytes [ 5] 22.00-23.00 sec 103 MBytes 866 Mbits/sec 0 301 KBytes [ 5] 23.00-24.00 sec 105 MBytes 879 Mbits/sec 0 301 KBytes [ 5] 24.00-25.22 sec 71.4 MBytes 493 Mbits/sec 4 252 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.22 sec 2.21 GBytes 752 Mbits/sec 34 sender [ 5] 0.00-25.22 sec 2.21 GBytes 752 Mbits/sec receiver iperf Done. ``` ``` iperf3 -c 192.168.2.1 -t25 -R Connecting to host 192.168.2.1, port 5201 Reverse mode, remote host 192.168.2.1 is sending [ 5] local 192.168.2.220 port 52642 connected to 192.168.2.1 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 60.1 MBytes 504 Mbits/sec [ 5] 1.00-2.00 sec 61.6 MBytes 517 Mbits/sec [ 5] 2.00-3.00 sec 63.5 MBytes 532 Mbits/sec [ 5] 3.00-4.00 sec 62.0 MBytes 520 Mbits/sec [ 5] 4.00-5.00 sec 63.0 MBytes 529 Mbits/sec [ 5] 5.00-6.00 sec 63.2 MBytes 531 Mbits/sec [ 5] 6.00-7.00 sec 62.4 MBytes 523 Mbits/sec [ 5] 7.00-8.00 sec 59.2 MBytes 497 Mbits/sec [ 5] 8.00-9.00 sec 64.5 MBytes 542 Mbits/sec [ 5] 9.00-10.00 sec 61.5 MBytes 515 Mbits/sec [ 5] 10.00-11.00 sec 63.4 MBytes 532 Mbits/sec [ 5] 11.00-12.00 sec 65.4 MBytes 548 Mbits/sec [ 5] 12.00-13.00 sec 63.4 MBytes 532 Mbits/sec [ 5] 13.00-14.00 sec 66.4 MBytes 557 Mbits/sec [ 5] 14.00-15.00 sec 64.0 MBytes 537 Mbits/sec [ 5] 15.00-16.00 sec 63.4 MBytes 531 Mbits/sec [ 5] 16.00-17.00 sec 66.6 MBytes 559 Mbits/sec [ 5] 17.00-18.00 sec 62.4 MBytes 523 Mbits/sec [ 5] 18.00-19.00 sec 58.0 MBytes 487 Mbits/sec [ 5] 19.00-20.00 sec 64.2 MBytes 539 Mbits/sec [ 5] 20.00-21.00 sec 65.6 MBytes 550 Mbits/sec [ 5] 21.00-22.00 sec 64.9 MBytes 544 Mbits/sec [ 5] 22.00-23.00 sec 62.8 MBytes 526 Mbits/sec [ 5] 23.00-24.00 sec 64.1 MBytes 538 Mbits/sec [ 5] 24.00-25.00 sec 62.8 MBytes 526 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.00 sec 1.54 GBytes 530 Mbits/sec 612 sender [ 5] 0.00-25.00 sec 1.54 GBytes 530 Mbits/sec receiver iperf Done. ```
Author
Owner

iperf3 -c 192.168.2.1 -t25 -R

`iperf3 -c 192.168.2.1 -t25 -R`
Owner

Well I would say that this is working quite well. Will you update the openwrt PR with these changes?

Well I would say that this is working quite well. Will you update the openwrt PR with these changes?
Author
Owner

I will, but which interrupt should I leave?

I will, but which interrupt should I leave?
Author
Owner

31 interrupt

`31` interrupt
Owner

Are you saying that you get slower speeds with the 31 interrupt configured? That should not be possible.

Are you saying that you get slower speeds with the 31 interrupt configured? That should not be possible.
Owner

SoC Interrupt 31 should not be triggering at all. Look at /proc/interrupts. If it is triggering then something is fishy with the enabling of interrupts. I validated manually.

What does devmem 0x1FB5F008 say?

SoC Interrupt 31 should not be triggering at all. Look at /proc/interrupts. If it is triggering then something is fishy with the enabling of interrupts. I validated manually. What does devmem 0x1FB5F008 say?
Owner

When everything is working properly we should get proper interrupts from when something changes with the phy.

[ 64.776455] mt7530-mmio 1fb58000.switch lan1 (uninitialized): PHY [mt7530-0:09] driver [Generic PHY] (irq=POLL)
[ 64.793774] mt7530-mmio 1fb58000.switch lan2 (uninitialized): PHY [mt7530-0:0a] driver [Generic PHY] (irq=POLL)
[ 64.806081] mt7530-mmio 1fb58000.switch lan3 (uninitialized): PHY [mt7530-0:0b] driver [Generic PHY] (irq=POLL)
[ 64.818353] mt7530-mmio 1fb58000.switch wan (uninitialized): PHY [mt7530-0:0c] driver [Generic PHY] (irq=POLL)

These lines should change to real irqs.

When everything is working properly we should get proper interrupts from when something changes with the phy. [ 64.776455] mt7530-mmio 1fb58000.switch lan1 (uninitialized): PHY [mt7530-0:09] driver [Generic PHY] (irq=POLL) [ 64.793774] mt7530-mmio 1fb58000.switch lan2 (uninitialized): PHY [mt7530-0:0a] driver [Generic PHY] (irq=POLL) [ 64.806081] mt7530-mmio 1fb58000.switch lan3 (uninitialized): PHY [mt7530-0:0b] driver [Generic PHY] (irq=POLL) [ 64.818353] mt7530-mmio 1fb58000.switch wan (uninitialized): PHY [mt7530-0:0c] driver [Generic PHY] (irq=POLL) These lines should change to real irqs.
Owner

Anyway update the PR with the interrupt set at 209 if you dont get it working. I'll pull your changes and look into the issue.

Anyway update the PR with the interrupt set at 209 if you dont get it working. I'll pull your changes and look into the issue.
Author
Owner

31 interrupt:

SoC Interrupt 31 should not be triggering at all. Look at /proc/interrupts. If it is triggering then something is fishy with the enabling of interrupts. I validated manually.

root@OpenWrt:~# cat /proc/interrupts
           CPU0       CPU1       
 26:      45926      53931     GICv3  27 Level     arch_timer
 30:          0          0     dummy   0 Edge      PCIe PME
 31:       7858          0     GICv3  50 Level     ttyS0
 32:    1499526          0     GICv3  69 Level     airoha_eth.0
 33:          0          0     GICv3  87 Level     airoha_eth.1
 34:          0          0     GICv3  70 Level     airoha_eth.4
 35:          0          0     GICv3  90 Level     airoha_eth.5
 36:          0          0     GICv3 157 Level     airoha-npu-mbox
 43:          0          0     GICv3  65 Level     xhci-hcd:usb1
 44:          0          0     GICv3  80 Level     en7523-afe
 45:          0          0     GICv3  63 Level     mt7530
 46:        262          0  MTK PCIe MSI 134742016 Edge      mt7915e
IPI0:          0          0  CPU wakeup interrupts
IPI1:          0          0  Timer broadcast interrupts
IPI2:       1124     122936  Rescheduling interrupts
IPI3:      39551     730370  Function call interrupts
IPI4:          0          0  CPU stop interrupts
IPI5:          0          2  IRQ work interrupts
IPI6:          0          0  completion interrupts
Err:          0
root@OpenWrt:~# 

What does devmem 0x1FB5F008 say?

root@OpenWrt:~# devmem 0x1FB5F008
0x00000000
root@OpenWrt:~#

209 interrupt:

root@OpenWrt:~# cat /proc/interrupts 
           CPU0       CPU1       
 26:       7957       7897     GICv3  27 Level     arch_timer
 30:          0          0     dummy   0 Edge      PCIe PME
 31:        283          0     GICv3  50 Level     ttyS0
 32:       1237          0     GICv3  69 Level     airoha_eth.0
 33:          0          0     GICv3  87 Level     airoha_eth.1
 34:          0          0     GICv3  70 Level     airoha_eth.4
 35:          0          0     GICv3  90 Level     airoha_eth.5
 36:          0          0     GICv3 157 Level     airoha-npu-mbox
 43:          0          0     GICv3  65 Level     xhci-hcd:usb1
 44:          0          0     GICv3  80 Level     en7523-afe
 45:          0          0     GICv3 241 Level     mt7530
 46:        260          0  MTK PCIe MSI 134742016 Edge      mt7915e
IPI0:          0          0  CPU wakeup interrupts
IPI1:          0          0  Timer broadcast interrupts
IPI2:       1058       1132  Rescheduling interrupts
IPI3:       2637       2568  Function call interrupts
IPI4:          0          0  CPU stop interrupts
IPI5:          0          1  IRQ work interrupts
IPI6:          0          0  completion interrupts
Err:          0
root@OpenWrt:~# devmem 0x1FB5F008
0x00000000
root@OpenWrt:~#
`31` interrupt: > SoC Interrupt 31 should not be triggering at all. Look at /proc/interrupts. If it is triggering then something is fishy with the enabling of interrupts. I validated manually. ``` root@OpenWrt:~# cat /proc/interrupts CPU0 CPU1 26: 45926 53931 GICv3 27 Level arch_timer 30: 0 0 dummy 0 Edge PCIe PME 31: 7858 0 GICv3 50 Level ttyS0 32: 1499526 0 GICv3 69 Level airoha_eth.0 33: 0 0 GICv3 87 Level airoha_eth.1 34: 0 0 GICv3 70 Level airoha_eth.4 35: 0 0 GICv3 90 Level airoha_eth.5 36: 0 0 GICv3 157 Level airoha-npu-mbox 43: 0 0 GICv3 65 Level xhci-hcd:usb1 44: 0 0 GICv3 80 Level en7523-afe 45: 0 0 GICv3 63 Level mt7530 46: 262 0 MTK PCIe MSI 134742016 Edge mt7915e IPI0: 0 0 CPU wakeup interrupts IPI1: 0 0 Timer broadcast interrupts IPI2: 1124 122936 Rescheduling interrupts IPI3: 39551 730370 Function call interrupts IPI4: 0 0 CPU stop interrupts IPI5: 0 2 IRQ work interrupts IPI6: 0 0 completion interrupts Err: 0 root@OpenWrt:~# ``` > What does devmem 0x1FB5F008 say? ``` root@OpenWrt:~# devmem 0x1FB5F008 0x00000000 root@OpenWrt:~# ``` --- `209` interrupt: ``` root@OpenWrt:~# cat /proc/interrupts CPU0 CPU1 26: 7957 7897 GICv3 27 Level arch_timer 30: 0 0 dummy 0 Edge PCIe PME 31: 283 0 GICv3 50 Level ttyS0 32: 1237 0 GICv3 69 Level airoha_eth.0 33: 0 0 GICv3 87 Level airoha_eth.1 34: 0 0 GICv3 70 Level airoha_eth.4 35: 0 0 GICv3 90 Level airoha_eth.5 36: 0 0 GICv3 157 Level airoha-npu-mbox 43: 0 0 GICv3 65 Level xhci-hcd:usb1 44: 0 0 GICv3 80 Level en7523-afe 45: 0 0 GICv3 241 Level mt7530 46: 260 0 MTK PCIe MSI 134742016 Edge mt7915e IPI0: 0 0 CPU wakeup interrupts IPI1: 0 0 Timer broadcast interrupts IPI2: 1058 1132 Rescheduling interrupts IPI3: 2637 2568 Function call interrupts IPI4: 0 0 CPU stop interrupts IPI5: 0 1 IRQ work interrupts IPI6: 0 0 completion interrupts Err: 0 ``` ``` root@OpenWrt:~# devmem 0x1FB5F008 0x00000000 root@OpenWrt:~# ```
Owner

LGTM

LGTM
Author
Owner

I will be finishing the other drivers, and as soon as I'm done I will be pushing them to both repositories

I will be finishing the other drivers, and as soon as I'm done I will be pushing them to both repositories
Author
Owner

I don't know if this will help, but this is the /proc/interrupts file in stock

~ # cat /proc/interrupts 
           CPU0       CPU1       
 66:       9283       9101     GICv3  27 Edge      arch_timer
 70:          0          0     GICv3 150 Level     rxdone0
 71:          0          0     GICv3 151 Level     rxdone1
 76:          0          0     GICv3 157 Level     npuMbox2host
 80:          0          0     GICv3  57 Level     1fbf0100.apb_timer1
 81:          0          0     GICv3  79 Level     ScuPbusTout
 91:       3015          0     GICv3 100 Level     0000:02:00.0
 93:          0          0     GICv3  67 Level     TRNG_Data_Ready_ISR
 94:          0          0     GICv3  60 Level     1fbe3300.i2c_slave
 95:      38373          0     GICv3  50 Level     TC3162 UART
 98:       1015          0     GICv3  69 Level     qdma_lan_int1
 99:          0          0     GICv3  87 Level     qdma_lan_int2
100:          0          0     GICv3  88 Level     qdma_lan_int3
102:          0          0     GICv3  70 Level     qdma_wan_int1
103:          0          0     GICv3  90 Level     qdma_wan_int2
104:          0          0     GICv3  91 Level     qdma_wan_int3
105:          0          0     GICv3  92 Level     qdma_wan_int4
106:          0          0     GICv3  81 Level     FE
107:          0          0     GICv3  96 Level     pdma_int
108:          0          0     GICv3  95 Level     1fa01800.dma-controller
109:          0          0     GICv3  74 Level     xpon_isr
110:          0          0     GICv3  66 Level     dying gasp
111:          0          0     GICv3  65 Level     xhci-hcd:usb1
112:          1          0     GICv3  75 Level     phy_isr
113:          0       7394     GICv3  59 Level     PCM1
116:          0          0     GICv3 183 Level     sgmii_pcie0
117:          0          0     GICv3 184 Level     sgmii_pcie1
118:          0          0     GICv3 185 Level     sgmii_usb0
IPI0:          0          0  CPU wakeup interrupts
IPI1:          0          0  Timer broadcast interrupts
IPI2:       4359       2563  Rescheduling interrupts
IPI3:          0          0  Function call interrupts
IPI4:         31         50  Single function call interrupts
IPI5:          0          0  CPU stop interrupts
IPI6:          0          0  IRQ work interrupts
IPI7:          0          0  completion interrupts
Err:          0
~ # sys memrl 0x1FB5F008

<Address>       <Value>
0x1fb5f008      0x00000000
~ #
I don't know if this will help, but this is the /proc/interrupts file in stock ``` ~ # cat /proc/interrupts CPU0 CPU1 66: 9283 9101 GICv3 27 Edge arch_timer 70: 0 0 GICv3 150 Level rxdone0 71: 0 0 GICv3 151 Level rxdone1 76: 0 0 GICv3 157 Level npuMbox2host 80: 0 0 GICv3 57 Level 1fbf0100.apb_timer1 81: 0 0 GICv3 79 Level ScuPbusTout 91: 3015 0 GICv3 100 Level 0000:02:00.0 93: 0 0 GICv3 67 Level TRNG_Data_Ready_ISR 94: 0 0 GICv3 60 Level 1fbe3300.i2c_slave 95: 38373 0 GICv3 50 Level TC3162 UART 98: 1015 0 GICv3 69 Level qdma_lan_int1 99: 0 0 GICv3 87 Level qdma_lan_int2 100: 0 0 GICv3 88 Level qdma_lan_int3 102: 0 0 GICv3 70 Level qdma_wan_int1 103: 0 0 GICv3 90 Level qdma_wan_int2 104: 0 0 GICv3 91 Level qdma_wan_int3 105: 0 0 GICv3 92 Level qdma_wan_int4 106: 0 0 GICv3 81 Level FE 107: 0 0 GICv3 96 Level pdma_int 108: 0 0 GICv3 95 Level 1fa01800.dma-controller 109: 0 0 GICv3 74 Level xpon_isr 110: 0 0 GICv3 66 Level dying gasp 111: 0 0 GICv3 65 Level xhci-hcd:usb1 112: 1 0 GICv3 75 Level phy_isr 113: 0 7394 GICv3 59 Level PCM1 116: 0 0 GICv3 183 Level sgmii_pcie0 117: 0 0 GICv3 184 Level sgmii_pcie1 118: 0 0 GICv3 185 Level sgmii_usb0 IPI0: 0 0 CPU wakeup interrupts IPI1: 0 0 Timer broadcast interrupts IPI2: 4359 2563 Rescheduling interrupts IPI3: 0 0 Function call interrupts IPI4: 31 50 Single function call interrupts IPI5: 0 0 CPU stop interrupts IPI6: 0 0 IRQ work interrupts IPI7: 0 0 completion interrupts Err: 0 ``` ``` ~ # sys memrl 0x1FB5F008 <Address> <Value> 0x1fb5f008 0x00000000 ~ # ```
Author
Owner

Commit: e526ec1965

Stock

iperf3 -c 138.199.4.1 -t25
Connecting to host 138.199.4.1, port 5201
[  5] local 192.168.1.10 port 41176 connected to 138.199.4.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   109 MBytes   914 Mbits/sec    0    671 KBytes       
[  5]   1.00-2.00   sec  14.6 MBytes   123 Mbits/sec  953    236 KBytes       
[  5]   2.00-3.00   sec  6.62 MBytes  55.6 Mbits/sec  315    593 KBytes       
[  5]   3.00-4.00   sec  56.6 MBytes   475 Mbits/sec  135    491 KBytes       
[  5]   4.00-5.00   sec  59.4 MBytes   498 Mbits/sec  673   2.79 KBytes       
[  5]   5.00-6.00   sec  24.8 MBytes   208 Mbits/sec  1870    325 KBytes       
[  5]   6.00-7.00   sec  4.62 MBytes  38.8 Mbits/sec  1114    761 KBytes       
[  5]   7.00-8.00   sec  62.1 MBytes   521 Mbits/sec  143    487 KBytes       
[  5]   8.00-9.00   sec  56.5 MBytes   474 Mbits/sec  1545    778 KBytes       
[  5]   9.00-10.00  sec  14.5 MBytes   122 Mbits/sec  1059    329 KBytes       
[  5]  10.00-11.00  sec  3.25 MBytes  27.3 Mbits/sec  378    810 KBytes       
[  5]  11.00-12.00  sec  4.00 MBytes  33.5 Mbits/sec  231    568 KBytes       
[  5]  12.00-13.00  sec  48.2 MBytes   405 Mbits/sec  161    467 KBytes       
[  5]  13.00-14.00  sec  78.2 MBytes   656 Mbits/sec  663    439 KBytes       
[  5]  14.00-15.00  sec  28.6 MBytes   240 Mbits/sec  1178   5.58 KBytes       
[  5]  15.00-16.00  sec  41.4 MBytes   347 Mbits/sec  1969    576 KBytes       
[  5]  16.00-17.00  sec  29.1 MBytes   245 Mbits/sec  2242    598 KBytes       
[  5]  17.00-18.00  sec  21.2 MBytes   178 Mbits/sec  869    259 KBytes       
[  5]  18.00-19.00  sec  7.00 MBytes  58.7 Mbits/sec  1224    668 KBytes       
[  5]  19.00-20.00  sec  22.1 MBytes   186 Mbits/sec  252    488 KBytes       
[  5]  20.00-21.00  sec  92.1 MBytes   772 Mbits/sec   60    378 KBytes       
[  5]  21.00-22.00  sec  2.25 MBytes  18.9 Mbits/sec  250    736 KBytes       
[  5]  22.00-23.00  sec  67.5 MBytes   567 Mbits/sec  872    388 KBytes       
[  5]  23.00-24.00  sec  2.12 MBytes  17.8 Mbits/sec  391    701 KBytes       
[  5]  24.00-25.00  sec  3.88 MBytes  32.5 Mbits/sec  284    491 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.00  sec   860 MBytes   289 Mbits/sec  18831            sender
[  5]   0.00-25.04  sec   857 MBytes   287 Mbits/sec                  receiver

iperf Done.
iperf3 -c 138.199.4.1 -t25 -R
Connecting to host 138.199.4.1, port 5201
Reverse mode, remote host 138.199.4.1 is sending
[  5] local 192.168.1.10 port 41296 connected to 138.199.4.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   106 MBytes   888 Mbits/sec                  
[  5]   1.00-2.00   sec   108 MBytes   907 Mbits/sec                  
[  5]   2.00-3.00   sec   108 MBytes   908 Mbits/sec                  
[  5]   3.00-4.00   sec  80.8 MBytes   677 Mbits/sec                  
[  5]   4.00-5.00   sec  61.8 MBytes   518 Mbits/sec                  
[  5]   5.00-6.00   sec  79.6 MBytes   668 Mbits/sec                  
[  5]   6.00-7.00   sec  67.5 MBytes   566 Mbits/sec                  
[  5]   7.00-8.00   sec  78.6 MBytes   660 Mbits/sec                  
[  5]   8.00-9.00   sec  68.8 MBytes   577 Mbits/sec                  
[  5]   9.00-10.00  sec  72.8 MBytes   610 Mbits/sec                  
[  5]  10.00-11.00  sec  70.4 MBytes   590 Mbits/sec                  
[  5]  11.00-12.00  sec  76.1 MBytes   639 Mbits/sec                  
[  5]  12.00-13.00  sec  74.9 MBytes   628 Mbits/sec                  
[  5]  13.00-14.00  sec  57.8 MBytes   484 Mbits/sec                  
[  5]  14.00-15.00  sec  70.6 MBytes   592 Mbits/sec                  
[  5]  15.00-16.00  sec  84.6 MBytes   710 Mbits/sec                  
[  5]  16.00-17.00  sec  66.5 MBytes   558 Mbits/sec                  
[  5]  17.00-18.00  sec  68.4 MBytes   574 Mbits/sec                  
[  5]  18.00-19.00  sec  76.9 MBytes   645 Mbits/sec                  
[  5]  19.00-20.00  sec  73.9 MBytes   620 Mbits/sec                  
[  5]  20.00-21.00  sec  77.2 MBytes   648 Mbits/sec                  
[  5]  21.00-22.00  sec  68.2 MBytes   572 Mbits/sec                  
[  5]  22.00-23.00  sec  59.0 MBytes   495 Mbits/sec                  
[  5]  23.00-24.00  sec  78.4 MBytes   657 Mbits/sec                  
[  5]  24.00-25.00  sec  78.6 MBytes   660 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.04  sec  1.87 GBytes   641 Mbits/sec  9004            sender
[  5]   0.00-25.00  sec  1.87 GBytes   642 Mbits/sec                  receiver

iperf Done.

offloading enabled

  • iperf3 -c 192.168.2.1 -t25 -R
Accepted connection from 192.168.2.220, port 39134
[  5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 39146
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.02   sec  51.8 MBytes   426 Mbits/sec   15    461 KBytes       
[  5]   1.02-2.01   sec  21.6 MBytes   182 Mbits/sec    0    496 KBytes       
[  5]   2.01-3.05   sec  35.9 MBytes   291 Mbits/sec    0    546 KBytes       
[  5]   3.05-4.02   sec  27.5 MBytes   238 Mbits/sec    0    585 KBytes       
[  5]   4.02-5.22   sec  43.2 MBytes   302 Mbits/sec    7    469 KBytes       
[  5]   5.22-6.01   sec  15.4 MBytes   162 Mbits/sec    0    509 KBytes       
[  5]   6.01-7.00   sec  27.5 MBytes   234 Mbits/sec    0    544 KBytes       
[  5]   7.00-8.00   sec  7.12 MBytes  59.8 Mbits/sec    0    574 KBytes       
[  5]   8.00-9.01   sec  29.1 MBytes   242 Mbits/sec    0    588 KBytes       
[  5]   9.01-10.05  sec  45.6 MBytes   366 Mbits/sec   21    475 KBytes       
[  5]  10.05-11.06  sec  41.1 MBytes   342 Mbits/sec    0    537 KBytes       
[  5]  11.06-12.00  sec  24.6 MBytes   220 Mbits/sec    4    411 KBytes       
[  5]  12.00-13.02  sec  28.4 MBytes   234 Mbits/sec    0    477 KBytes       
[  5]  13.02-14.01  sec  23.6 MBytes   200 Mbits/sec    0    515 KBytes       
[  5]  14.01-15.00  sec  26.2 MBytes   222 Mbits/sec    0    537 KBytes       
[  5]  15.00-16.00  sec  13.5 MBytes   113 Mbits/sec    5    409 KBytes       
[  5]  16.00-17.00  sec  13.4 MBytes   112 Mbits/sec    0    438 KBytes       
[  5]  17.00-18.06  sec  28.5 MBytes   225 Mbits/sec    0    467 KBytes       
[  5]  18.06-19.04  sec  25.4 MBytes   218 Mbits/sec    1    380 KBytes       
[  5]  19.04-20.02  sec  42.8 MBytes   368 Mbits/sec    0    455 KBytes       
[  5]  20.02-21.01  sec  28.8 MBytes   243 Mbits/sec    2    359 KBytes       
[  5]  21.01-22.00  sec  38.1 MBytes   323 Mbits/sec    0    427 KBytes       
[  5]  22.00-23.00  sec  30.6 MBytes   257 Mbits/sec    0    484 KBytes       
[  5]  23.00-24.08  sec  40.6 MBytes   315 Mbits/sec    0    544 KBytes       
[  5]  24.08-25.00  sec  11.4 MBytes   104 Mbits/sec    0    557 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.10  sec   722 MBytes   241 Mbits/sec   55            sender
  • iperf3 -c 192.168.2.1 -t25
Connecting to host 192.168.2.1, port 5201
[  5] local 192.168.2.220 port 56010 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  12.2 MBytes   103 Mbits/sec    5    314 KBytes       
[  5]   1.00-2.00   sec  42.5 MBytes   357 Mbits/sec    3    314 KBytes       
[  5]   2.00-3.00   sec  17.0 MBytes   143 Mbits/sec    3    314 KBytes       
[  5]   3.00-4.00   sec  28.9 MBytes   242 Mbits/sec    4    235 KBytes       
[  5]   4.00-5.00   sec  46.0 MBytes   386 Mbits/sec    1    226 KBytes       
[  5]   5.00-6.00   sec  44.5 MBytes   374 Mbits/sec    2    298 KBytes       
[  5]   6.00-7.00   sec  40.1 MBytes   337 Mbits/sec    2    298 KBytes       
[  5]   7.00-8.00   sec  35.2 MBytes   296 Mbits/sec    2    313 KBytes       
[  5]   8.00-9.00   sec  44.1 MBytes   370 Mbits/sec    4    239 KBytes       
[  5]   9.00-10.00  sec  65.0 MBytes   545 Mbits/sec    0    303 KBytes       
[  5]  10.00-11.00  sec  60.4 MBytes   506 Mbits/sec    2    303 KBytes       
[  5]  11.00-12.00  sec  61.0 MBytes   512 Mbits/sec    2    300 KBytes       
[  5]  12.00-13.00  sec  39.1 MBytes   328 Mbits/sec    4    300 KBytes       
[  5]  13.00-14.00  sec  61.4 MBytes   514 Mbits/sec    3    300 KBytes       
[  5]  14.00-15.00  sec  23.0 MBytes   193 Mbits/sec    3    274 KBytes       
[  5]  15.00-16.00  sec  50.6 MBytes   425 Mbits/sec    3    300 KBytes       
[  5]  16.00-17.00  sec  26.1 MBytes   219 Mbits/sec    5    182 KBytes       
[  5]  17.00-18.00  sec  38.1 MBytes   320 Mbits/sec    4    239 KBytes       
[  5]  18.00-19.00  sec  44.0 MBytes   369 Mbits/sec    3    291 KBytes       
[  5]  19.00-20.00  sec  49.4 MBytes   414 Mbits/sec    4    298 KBytes       
[  5]  20.00-21.00  sec  17.0 MBytes   143 Mbits/sec    4    239 KBytes       
[  5]  21.00-22.00  sec  29.4 MBytes   246 Mbits/sec    8    274 KBytes       
[  5]  22.00-23.00  sec  23.1 MBytes   194 Mbits/sec    1    291 KBytes       
[  5]  23.00-24.00  sec  16.5 MBytes   138 Mbits/sec    3    256 KBytes       
[  5]  24.00-25.00  sec  23.4 MBytes   196 Mbits/sec    4    307 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.00  sec   938 MBytes   315 Mbits/sec   79            sender
[  5]   0.00-25.15  sec   938 MBytes   313 Mbits/sec                  receiver

iperf Done.

offloading disabled

  • iperf3 -c 192.168.2.1 -t25 -R
Accepted connection from 192.168.2.220, port 50734
[  5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 50738
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  59.4 MBytes   498 Mbits/sec  107    209 KBytes       
[  5]   1.00-2.00   sec  60.9 MBytes   511 Mbits/sec    8    276 KBytes       
[  5]   2.00-3.00   sec  53.8 MBytes   451 Mbits/sec   36    181 KBytes       
[  5]   3.00-4.00   sec  60.5 MBytes   508 Mbits/sec   18    247 KBytes       
[  5]   4.00-5.00   sec  60.1 MBytes   504 Mbits/sec    2    214 KBytes       
[  5]   5.00-6.00   sec  59.4 MBytes   499 Mbits/sec    1    267 KBytes       
[  5]   6.00-7.00   sec  61.1 MBytes   513 Mbits/sec   18    221 KBytes       
[  5]   7.00-8.00   sec  62.2 MBytes   522 Mbits/sec   23    262 KBytes       
[  5]   8.00-9.00   sec  62.2 MBytes   522 Mbits/sec   15    233 KBytes       
[  5]   9.00-10.00  sec  64.2 MBytes   538 Mbits/sec   18    180 KBytes       
[  5]  10.00-11.00  sec  65.0 MBytes   546 Mbits/sec   22    235 KBytes       
[  5]  11.00-12.00  sec  63.9 MBytes   535 Mbits/sec    7    218 KBytes       
[  5]  12.00-13.00  sec  64.5 MBytes   541 Mbits/sec    9    262 KBytes       
[  5]  13.00-14.00  sec  68.0 MBytes   569 Mbits/sec   39    198 KBytes       
[  5]  14.00-15.00  sec  61.2 MBytes   515 Mbits/sec   18    274 KBytes       
[  5]  15.00-16.00  sec  59.5 MBytes   498 Mbits/sec   15    273 KBytes       
[  5]  16.00-17.01  sec  66.0 MBytes   551 Mbits/sec    5    296 KBytes       
[  5]  17.01-18.00  sec  61.5 MBytes   519 Mbits/sec   17    286 KBytes       
[  5]  18.00-19.00  sec  67.5 MBytes   566 Mbits/sec   29    290 KBytes       
[  5]  19.00-20.00  sec  65.4 MBytes   549 Mbits/sec    4    303 KBytes       
[  5]  20.00-21.00  sec  65.4 MBytes   548 Mbits/sec   14    297 KBytes       
[  5]  21.00-22.00  sec  65.0 MBytes   545 Mbits/sec    5    270 KBytes       
[  5]  22.00-23.00  sec  61.0 MBytes   512 Mbits/sec    4    281 KBytes       
[  5]  23.00-24.00  sec  64.8 MBytes   544 Mbits/sec   30    212 KBytes       
[  5]  24.00-25.00  sec  63.6 MBytes   533 Mbits/sec    7    211 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.00  sec  1.53 GBytes   526 Mbits/sec  471            sender
  • iperf3 -c 192.168.2.1 -t25
Connecting to host 192.168.2.1, port 5201
[  5] local 192.168.2.220 port 57052 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  81.1 MBytes   680 Mbits/sec    2    583 KBytes       
[  5]   1.00-2.00   sec  83.1 MBytes   697 Mbits/sec    5    583 KBytes       
[  5]   2.00-3.00   sec   104 MBytes   876 Mbits/sec    0    583 KBytes       
[  5]   3.00-4.00   sec   106 MBytes   892 Mbits/sec    0    583 KBytes       
[  5]   4.00-5.00   sec   105 MBytes   884 Mbits/sec    0    583 KBytes       
[  5]   5.00-6.00   sec   106 MBytes   891 Mbits/sec    0    583 KBytes       
[  5]   6.00-7.00   sec  96.8 MBytes   812 Mbits/sec    2    583 KBytes       
[  5]   7.00-8.00   sec   106 MBytes   892 Mbits/sec    0    583 KBytes       
[  5]   8.00-9.00   sec   105 MBytes   883 Mbits/sec    1    583 KBytes       
[  5]   9.00-10.00  sec   105 MBytes   881 Mbits/sec    0    583 KBytes       
[  5]  10.00-11.00  sec   106 MBytes   890 Mbits/sec    0    583 KBytes       
[  5]  11.00-12.00  sec   105 MBytes   878 Mbits/sec    1    583 KBytes       
[  5]  12.00-13.00  sec   104 MBytes   871 Mbits/sec    0    583 KBytes       
[  5]  13.00-14.00  sec   106 MBytes   887 Mbits/sec    1    407 KBytes       
[  5]  14.00-15.00  sec   107 MBytes   895 Mbits/sec    0    407 KBytes       
[  5]  15.00-16.00  sec   106 MBytes   893 Mbits/sec    0    407 KBytes       
[  5]  16.00-17.00  sec  80.4 MBytes   674 Mbits/sec    4    229 KBytes       
[  5]  17.00-18.00  sec   103 MBytes   863 Mbits/sec    0    298 KBytes       
[  5]  18.00-19.00  sec  78.8 MBytes   660 Mbits/sec    1    298 KBytes       
[  5]  19.00-20.00  sec  99.0 MBytes   830 Mbits/sec    1    298 KBytes       
[  5]  20.00-21.00  sec   100 MBytes   840 Mbits/sec    2    298 KBytes       
[  5]  21.00-22.00  sec   106 MBytes   892 Mbits/sec    0    298 KBytes       
[  5]  22.00-23.00  sec  73.9 MBytes   620 Mbits/sec    2    298 KBytes       
[  5]  23.00-24.00  sec  79.0 MBytes   663 Mbits/sec    1    298 KBytes       
[  5]  24.00-25.00  sec   102 MBytes   858 Mbits/sec    0    298 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.00  sec  2.40 GBytes   825 Mbits/sec   23            sender
[  5]   0.00-25.00  sec  2.40 GBytes   824 Mbits/sec                  receiver

iperf Done.
Full log
╭─sirherobrine23@matheus-note ~/gitwork/airoha_en7523/openwrt 
╰─$ iperf3 -c 192.168.2.1 -t25 -R
Connecting to host 192.168.2.1, port 5201
Reverse mode, remote host 192.168.2.1 is sending
[  5] local 192.168.2.220 port 39146 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  50.1 MBytes   420 Mbits/sec                  
[  5]   1.00-2.00   sec  21.9 MBytes   184 Mbits/sec                  
[  5]   2.00-3.00   sec  35.4 MBytes   297 Mbits/sec                  
[  5]   3.00-4.00   sec  29.0 MBytes   243 Mbits/sec                  
[  5]   4.00-5.00   sec  27.9 MBytes   234 Mbits/sec                  
[  5]   5.00-6.00   sec  29.6 MBytes   249 Mbits/sec                  
[  5]   6.00-7.00   sec  28.6 MBytes   240 Mbits/sec                  
[  5]   7.00-8.00   sec  6.62 MBytes  55.6 Mbits/sec                  
[  5]   8.00-9.00   sec  29.2 MBytes   245 Mbits/sec                  
[  5]   9.00-10.00  sec  42.1 MBytes   353 Mbits/sec                  
[  5]  10.00-11.00  sec  40.5 MBytes   340 Mbits/sec                  
[  5]  11.00-12.00  sec  28.6 MBytes   240 Mbits/sec                  
[  5]  12.00-13.00  sec  28.5 MBytes   239 Mbits/sec                  
[  5]  13.00-14.00  sec  24.0 MBytes   201 Mbits/sec                  
[  5]  14.00-15.00  sec  26.4 MBytes   221 Mbits/sec                  
[  5]  15.00-16.00  sec  13.2 MBytes   111 Mbits/sec                  
[  5]  16.00-17.00  sec  13.6 MBytes   114 Mbits/sec                  
[  5]  17.00-18.00  sec  24.4 MBytes   204 Mbits/sec                  
[  5]  18.00-19.00  sec  26.4 MBytes   221 Mbits/sec                  
[  5]  19.00-20.00  sec  44.5 MBytes   373 Mbits/sec                  
[  5]  20.00-21.00  sec  29.0 MBytes   243 Mbits/sec                  
[  5]  21.00-22.00  sec  38.9 MBytes   326 Mbits/sec                  
[  5]  22.00-23.00  sec  31.4 MBytes   263 Mbits/sec                  
[  5]  23.00-24.00  sec  35.0 MBytes   294 Mbits/sec                  
[  5]  24.00-25.00  sec  16.6 MBytes   139 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.10  sec   722 MBytes   241 Mbits/sec   55            sender
[  5]   0.00-25.00  sec   722 MBytes   242 Mbits/sec                  receiver

iperf Done.
╭─sirherobrine23@matheus-note ~/gitwork/airoha_en7523/openwrt 
╰─$ iperf3 -c 192.168.2.1 -t25   
Connecting to host 192.168.2.1, port 5201
[  5] local 192.168.2.220 port 56010 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  12.2 MBytes   103 Mbits/sec    5    314 KBytes       
[  5]   1.00-2.00   sec  42.5 MBytes   357 Mbits/sec    3    314 KBytes       
[  5]   2.00-3.00   sec  17.0 MBytes   143 Mbits/sec    3    314 KBytes       
[  5]   3.00-4.00   sec  28.9 MBytes   242 Mbits/sec    4    235 KBytes       
[  5]   4.00-5.00   sec  46.0 MBytes   386 Mbits/sec    1    226 KBytes       
[  5]   5.00-6.00   sec  44.5 MBytes   374 Mbits/sec    2    298 KBytes       
[  5]   6.00-7.00   sec  40.1 MBytes   337 Mbits/sec    2    298 KBytes       
[  5]   7.00-8.00   sec  35.2 MBytes   296 Mbits/sec    2    313 KBytes       
[  5]   8.00-9.00   sec  44.1 MBytes   370 Mbits/sec    4    239 KBytes       
[  5]   9.00-10.00  sec  65.0 MBytes   545 Mbits/sec    0    303 KBytes       
[  5]  10.00-11.00  sec  60.4 MBytes   506 Mbits/sec    2    303 KBytes       
[  5]  11.00-12.00  sec  61.0 MBytes   512 Mbits/sec    2    300 KBytes       
[  5]  12.00-13.00  sec  39.1 MBytes   328 Mbits/sec    4    300 KBytes       
[  5]  13.00-14.00  sec  61.4 MBytes   514 Mbits/sec    3    300 KBytes       
[  5]  14.00-15.00  sec  23.0 MBytes   193 Mbits/sec    3    274 KBytes       
[  5]  15.00-16.00  sec  50.6 MBytes   425 Mbits/sec    3    300 KBytes       
[  5]  16.00-17.00  sec  26.1 MBytes   219 Mbits/sec    5    182 KBytes       
[  5]  17.00-18.00  sec  38.1 MBytes   320 Mbits/sec    4    239 KBytes       
[  5]  18.00-19.00  sec  44.0 MBytes   369 Mbits/sec    3    291 KBytes       
[  5]  19.00-20.00  sec  49.4 MBytes   414 Mbits/sec    4    298 KBytes       
[  5]  20.00-21.00  sec  17.0 MBytes   143 Mbits/sec    4    239 KBytes       
[  5]  21.00-22.00  sec  29.4 MBytes   246 Mbits/sec    8    274 KBytes       
[  5]  22.00-23.00  sec  23.1 MBytes   194 Mbits/sec    1    291 KBytes       
[  5]  23.00-24.00  sec  16.5 MBytes   138 Mbits/sec    3    256 KBytes       
[  5]  24.00-25.00  sec  23.4 MBytes   196 Mbits/sec    4    307 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.00  sec   938 MBytes   315 Mbits/sec   79            sender
[  5]   0.00-25.15  sec   938 MBytes   313 Mbits/sec                  receiver

iperf Done.
╭─sirherobrine23@matheus-note ~/gitwork/airoha_en7523/openwrt 
╰─$ iperf3 -c 192.168.2.1 -t25 -R                     
Connecting to host 192.168.2.1, port 5201
Reverse mode, remote host 192.168.2.1 is sending
[  5] local 192.168.2.220 port 50738 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  59.0 MBytes   494 Mbits/sec                  
[  5]   1.00-2.00   sec  60.8 MBytes   510 Mbits/sec                  
[  5]   2.00-3.00   sec  53.8 MBytes   451 Mbits/sec                  
[  5]   3.00-4.00   sec  60.8 MBytes   510 Mbits/sec                  
[  5]   4.00-5.00   sec  60.0 MBytes   503 Mbits/sec                  
[  5]   5.00-6.00   sec  59.1 MBytes   496 Mbits/sec                  
[  5]   6.00-7.00   sec  61.9 MBytes   519 Mbits/sec                  
[  5]   7.00-8.00   sec  61.9 MBytes   519 Mbits/sec                  
[  5]   8.00-9.00   sec  62.0 MBytes   520 Mbits/sec                  
[  5]   9.00-10.00  sec  64.2 MBytes   539 Mbits/sec                  
[  5]  10.00-11.00  sec  65.2 MBytes   547 Mbits/sec                  
[  5]  11.00-12.00  sec  63.8 MBytes   535 Mbits/sec                  
[  5]  12.00-13.00  sec  64.8 MBytes   543 Mbits/sec                  
[  5]  13.00-14.00  sec  67.9 MBytes   569 Mbits/sec                  
[  5]  14.00-15.00  sec  62.2 MBytes   522 Mbits/sec                  
[  5]  15.00-16.00  sec  58.6 MBytes   492 Mbits/sec                  
[  5]  16.00-17.00  sec  65.6 MBytes   550 Mbits/sec                  
[  5]  17.00-18.00  sec  62.2 MBytes   522 Mbits/sec                  
[  5]  18.00-19.00  sec  67.8 MBytes   568 Mbits/sec                  
[  5]  19.00-20.00  sec  65.2 MBytes   548 Mbits/sec                  
[  5]  20.00-21.00  sec  65.6 MBytes   550 Mbits/sec                  
[  5]  21.00-22.00  sec  65.2 MBytes   547 Mbits/sec                  
[  5]  22.00-23.00  sec  61.6 MBytes   517 Mbits/sec                  
[  5]  23.00-24.00  sec  65.0 MBytes   545 Mbits/sec                  
[  5]  24.00-25.00  sec  63.4 MBytes   532 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.00  sec  1.53 GBytes   526 Mbits/sec  471            sender
[  5]   0.00-25.00  sec  1.53 GBytes   526 Mbits/sec                  receiver

iperf Done.
╭─sirherobrine23@matheus-note ~/gitwork/airoha_en7523/openwrt 
╰─$ iperf3 -c 192.168.2.1 -t25   
Connecting to host 192.168.2.1, port 5201
[  5] local 192.168.2.220 port 57052 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  81.1 MBytes   680 Mbits/sec    2    583 KBytes       
[  5]   1.00-2.00   sec  83.1 MBytes   697 Mbits/sec    5    583 KBytes       
[  5]   2.00-3.00   sec   104 MBytes   876 Mbits/sec    0    583 KBytes       
[  5]   3.00-4.00   sec   106 MBytes   892 Mbits/sec    0    583 KBytes       
[  5]   4.00-5.00   sec   105 MBytes   884 Mbits/sec    0    583 KBytes       
[  5]   5.00-6.00   sec   106 MBytes   891 Mbits/sec    0    583 KBytes       
[  5]   6.00-7.00   sec  96.8 MBytes   812 Mbits/sec    2    583 KBytes       
[  5]   7.00-8.00   sec   106 MBytes   892 Mbits/sec    0    583 KBytes       
[  5]   8.00-9.00   sec   105 MBytes   883 Mbits/sec    1    583 KBytes       
[  5]   9.00-10.00  sec   105 MBytes   881 Mbits/sec    0    583 KBytes       
[  5]  10.00-11.00  sec   106 MBytes   890 Mbits/sec    0    583 KBytes       
[  5]  11.00-12.00  sec   105 MBytes   878 Mbits/sec    1    583 KBytes       
[  5]  12.00-13.00  sec   104 MBytes   871 Mbits/sec    0    583 KBytes       
[  5]  13.00-14.00  sec   106 MBytes   887 Mbits/sec    1    407 KBytes       
[  5]  14.00-15.00  sec   107 MBytes   895 Mbits/sec    0    407 KBytes       
[  5]  15.00-16.00  sec   106 MBytes   893 Mbits/sec    0    407 KBytes       
[  5]  16.00-17.00  sec  80.4 MBytes   674 Mbits/sec    4    229 KBytes       
[  5]  17.00-18.00  sec   103 MBytes   863 Mbits/sec    0    298 KBytes       
[  5]  18.00-19.00  sec  78.8 MBytes   660 Mbits/sec    1    298 KBytes       
[  5]  19.00-20.00  sec  99.0 MBytes   830 Mbits/sec    1    298 KBytes       
[  5]  20.00-21.00  sec   100 MBytes   840 Mbits/sec    2    298 KBytes       
[  5]  21.00-22.00  sec   106 MBytes   892 Mbits/sec    0    298 KBytes       
[  5]  22.00-23.00  sec  73.9 MBytes   620 Mbits/sec    2    298 KBytes       
[  5]  23.00-24.00  sec  79.0 MBytes   663 Mbits/sec    1    298 KBytes       
[  5]  24.00-25.00  sec   102 MBytes   858 Mbits/sec    0    298 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.00  sec  2.40 GBytes   825 Mbits/sec   23            sender
[  5]   0.00-25.00  sec  2.40 GBytes   824 Mbits/sec                  receiver

iperf Done.
root@OpenWrt:~# iperf3 -s
-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 192.168.2.220, port 39134
[  5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 39146
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.02   sec  51.8 MBytes   426 Mbits/sec   15    461 KBytes       
[  5]   1.02-2.01   sec  21.6 MBytes   182 Mbits/sec    0    496 KBytes       
[  5]   2.01-3.05   sec  35.9 MBytes   291 Mbits/sec    0    546 KBytes       
[  5]   3.05-4.02   sec  27.5 MBytes   238 Mbits/sec    0    585 KBytes       
[  5]   4.02-5.22   sec  43.2 MBytes   302 Mbits/sec    7    469 KBytes       
[  5]   5.22-6.01   sec  15.4 MBytes   162 Mbits/sec    0    509 KBytes       
[  5]   6.01-7.00   sec  27.5 MBytes   234 Mbits/sec    0    544 KBytes       
[  5]   7.00-8.00   sec  7.12 MBytes  59.8 Mbits/sec    0    574 KBytes       
[  5]   8.00-9.01   sec  29.1 MBytes   242 Mbits/sec    0    588 KBytes       
[  5]   9.01-10.05  sec  45.6 MBytes   366 Mbits/sec   21    475 KBytes       
[  5]  10.05-11.06  sec  41.1 MBytes   342 Mbits/sec    0    537 KBytes       
[  5]  11.06-12.00  sec  24.6 MBytes   220 Mbits/sec    4    411 KBytes       
[  5]  12.00-13.02  sec  28.4 MBytes   234 Mbits/sec    0    477 KBytes       
[  5]  13.02-14.01  sec  23.6 MBytes   200 Mbits/sec    0    515 KBytes       
[  5]  14.01-15.00  sec  26.2 MBytes   222 Mbits/sec    0    537 KBytes       
[  5]  15.00-16.00  sec  13.5 MBytes   113 Mbits/sec    5    409 KBytes       
[  5]  16.00-17.00  sec  13.4 MBytes   112 Mbits/sec    0    438 KBytes       
[  5]  17.00-18.06  sec  28.5 MBytes   225 Mbits/sec    0    467 KBytes       
[  5]  18.06-19.04  sec  25.4 MBytes   218 Mbits/sec    1    380 KBytes       
[  5]  19.04-20.02  sec  42.8 MBytes   368 Mbits/sec    0    455 KBytes       
[  5]  20.02-21.01  sec  28.8 MBytes   243 Mbits/sec    2    359 KBytes       
[  5]  21.01-22.00  sec  38.1 MBytes   323 Mbits/sec    0    427 KBytes       
[  5]  22.00-23.00  sec  30.6 MBytes   257 Mbits/sec    0    484 KBytes       
[  5]  23.00-24.08  sec  40.6 MBytes   315 Mbits/sec    0    544 KBytes       
[  5]  24.08-25.00  sec  11.4 MBytes   104 Mbits/sec    0    557 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.10  sec   722 MBytes   241 Mbits/sec   55            sender
-----------------------------------------------------------
Server listening on 5201 (test #2)
-----------------------------------------------------------
Accepted connection from 192.168.2.220, port 55994
[  5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 56010
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  9.75 MBytes  81.8 Mbits/sec                  
[  5]   1.00-2.00   sec  43.0 MBytes   361 Mbits/sec                  
[  5]   2.00-3.00   sec  16.4 MBytes   137 Mbits/sec                  
[  5]   3.00-4.00   sec  29.8 MBytes   250 Mbits/sec                  
[  5]   4.00-5.00   sec  45.9 MBytes   385 Mbits/sec                  
[  5]   5.00-6.01   sec  44.9 MBytes   374 Mbits/sec                  
[  5]   6.01-7.00   sec  39.0 MBytes   329 Mbits/sec                  
[  5]   7.00-8.15   sec  48.2 MBytes   351 Mbits/sec                  
[  5]   8.15-9.00   sec  31.4 MBytes   311 Mbits/sec                  
[  5]   9.00-10.00  sec  65.4 MBytes   548 Mbits/sec                  
[  5]  10.00-11.00  sec  60.0 MBytes   503 Mbits/sec                  
[  5]  11.00-12.00  sec  61.2 MBytes   514 Mbits/sec                  
[  5]  12.00-13.14  sec  48.1 MBytes   353 Mbits/sec                  
[  5]  13.14-14.00  sec  51.5 MBytes   505 Mbits/sec                  
[  5]  14.00-15.02  sec  24.0 MBytes   198 Mbits/sec                  
[  5]  15.02-16.06  sec  54.8 MBytes   439 Mbits/sec                  
[  5]  16.06-17.00  sec  17.5 MBytes   157 Mbits/sec                  
[  5]  17.00-18.11  sec  41.2 MBytes   311 Mbits/sec                  
[  5]  18.11-19.00  sec  41.8 MBytes   395 Mbits/sec                  
[  5]  19.00-20.00  sec  48.8 MBytes   409 Mbits/sec                  
[  5]  20.00-21.00  sec  17.1 MBytes   143 Mbits/sec                  
[  5]  21.00-22.00  sec  28.6 MBytes   240 Mbits/sec                  
[  5]  22.00-23.00  sec  23.8 MBytes   200 Mbits/sec                  
[  5]  23.00-24.08  sec  21.2 MBytes   164 Mbits/sec                  
[  5]  24.08-25.00  sec  18.8 MBytes   172 Mbits/sec                  
[  5]  25.00-25.15  sec  2.12 MBytes   116 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-25.15  sec   938 MBytes   313 Mbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201 (test #3)
-----------------------------------------------------------
Accepted connection from 192.168.2.220, port 50734
[  5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 50738
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  59.4 MBytes   498 Mbits/sec  107    209 KBytes       
[  5]   1.00-2.00   sec  60.9 MBytes   511 Mbits/sec    8    276 KBytes       
[  5]   2.00-3.00   sec  53.8 MBytes   451 Mbits/sec   36    181 KBytes       
[  5]   3.00-4.00   sec  60.5 MBytes   508 Mbits/sec   18    247 KBytes       
[  5]   4.00-5.00   sec  60.1 MBytes   504 Mbits/sec    2    214 KBytes       
[  5]   5.00-6.00   sec  59.4 MBytes   499 Mbits/sec    1    267 KBytes       
[  5]   6.00-7.00   sec  61.1 MBytes   513 Mbits/sec   18    221 KBytes       
[  5]   7.00-8.00   sec  62.2 MBytes   522 Mbits/sec   23    262 KBytes       
[  5]   8.00-9.00   sec  62.2 MBytes   522 Mbits/sec   15    233 KBytes       
[  5]   9.00-10.00  sec  64.2 MBytes   538 Mbits/sec   18    180 KBytes       
[  5]  10.00-11.00  sec  65.0 MBytes   546 Mbits/sec   22    235 KBytes       
[  5]  11.00-12.00  sec  63.9 MBytes   535 Mbits/sec    7    218 KBytes       
[  5]  12.00-13.00  sec  64.5 MBytes   541 Mbits/sec    9    262 KBytes       
[  5]  13.00-14.00  sec  68.0 MBytes   569 Mbits/sec   39    198 KBytes       
[  5]  14.00-15.00  sec  61.2 MBytes   515 Mbits/sec   18    274 KBytes       
[  5]  15.00-16.00  sec  59.5 MBytes   498 Mbits/sec   15    273 KBytes       
[  5]  16.00-17.01  sec  66.0 MBytes   551 Mbits/sec    5    296 KBytes       
[  5]  17.01-18.00  sec  61.5 MBytes   519 Mbits/sec   17    286 KBytes       
[  5]  18.00-19.00  sec  67.5 MBytes   566 Mbits/sec   29    290 KBytes       
[  5]  19.00-20.00  sec  65.4 MBytes   549 Mbits/sec    4    303 KBytes       
[  5]  20.00-21.00  sec  65.4 MBytes   548 Mbits/sec   14    297 KBytes       
[  5]  21.00-22.00  sec  65.0 MBytes   545 Mbits/sec    5    270 KBytes       
[  5]  22.00-23.00  sec  61.0 MBytes   512 Mbits/sec    4    281 KBytes       
[  5]  23.00-24.00  sec  64.8 MBytes   544 Mbits/sec   30    212 KBytes       
[  5]  24.00-25.00  sec  63.6 MBytes   533 Mbits/sec    7    211 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-25.00  sec  1.53 GBytes   526 Mbits/sec  471            sender
-----------------------------------------------------------
Server listening on 5201 (test #4)
-----------------------------------------------------------
Accepted connection from 192.168.2.220, port 57050
[  5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 57052
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  78.5 MBytes   659 Mbits/sec                  
[  5]   1.00-2.00   sec  83.6 MBytes   701 Mbits/sec                  
[  5]   2.00-3.00   sec   105 MBytes   882 Mbits/sec                  
[  5]   3.00-4.00   sec   106 MBytes   887 Mbits/sec                  
[  5]   4.00-5.00   sec   106 MBytes   887 Mbits/sec                  
[  5]   5.00-6.00   sec   106 MBytes   891 Mbits/sec                  
[  5]   6.00-7.00   sec  96.5 MBytes   810 Mbits/sec                  
[  5]   7.00-8.00   sec   107 MBytes   895 Mbits/sec                  
[  5]   8.00-9.00   sec   104 MBytes   875 Mbits/sec                  
[  5]   9.00-10.00  sec   106 MBytes   885 Mbits/sec                  
[  5]  10.00-11.00  sec   106 MBytes   889 Mbits/sec                  
[  5]  11.00-12.00  sec   104 MBytes   874 Mbits/sec                  
[  5]  12.00-13.00  sec   104 MBytes   874 Mbits/sec                  
[  5]  13.00-14.00  sec   106 MBytes   887 Mbits/sec                  
[  5]  14.00-15.00  sec   106 MBytes   892 Mbits/sec                  
[  5]  15.00-16.00  sec   106 MBytes   889 Mbits/sec                  
[  5]  16.00-17.00  sec  79.4 MBytes   666 Mbits/sec                  
[  5]  17.00-18.00  sec   103 MBytes   864 Mbits/sec                  
[  5]  18.00-19.00  sec  78.0 MBytes   654 Mbits/sec                  
[  5]  19.00-20.00  sec  99.0 MBytes   831 Mbits/sec                  
[  5]  20.00-21.00  sec  99.8 MBytes   837 Mbits/sec                  
[  5]  21.00-22.00  sec   106 MBytes   886 Mbits/sec                  
[  5]  22.00-23.00  sec  73.8 MBytes   619 Mbits/sec                  
[  5]  23.00-24.00  sec  78.6 MBytes   660 Mbits/sec                  
[  5]  24.00-25.00  sec   103 MBytes   866 Mbits/sec                  
[  5]  25.00-25.00  sec   384 KBytes   656 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-25.00  sec  2.40 GBytes   824 Mbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201 (test #5)
-----------------------------------------------------------
Commit: e526ec196518101a52a09ca82ce1ba9c79b8620a # Stock ``` iperf3 -c 138.199.4.1 -t25 Connecting to host 138.199.4.1, port 5201 [ 5] local 192.168.1.10 port 41176 connected to 138.199.4.1 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 109 MBytes 914 Mbits/sec 0 671 KBytes [ 5] 1.00-2.00 sec 14.6 MBytes 123 Mbits/sec 953 236 KBytes [ 5] 2.00-3.00 sec 6.62 MBytes 55.6 Mbits/sec 315 593 KBytes [ 5] 3.00-4.00 sec 56.6 MBytes 475 Mbits/sec 135 491 KBytes [ 5] 4.00-5.00 sec 59.4 MBytes 498 Mbits/sec 673 2.79 KBytes [ 5] 5.00-6.00 sec 24.8 MBytes 208 Mbits/sec 1870 325 KBytes [ 5] 6.00-7.00 sec 4.62 MBytes 38.8 Mbits/sec 1114 761 KBytes [ 5] 7.00-8.00 sec 62.1 MBytes 521 Mbits/sec 143 487 KBytes [ 5] 8.00-9.00 sec 56.5 MBytes 474 Mbits/sec 1545 778 KBytes [ 5] 9.00-10.00 sec 14.5 MBytes 122 Mbits/sec 1059 329 KBytes [ 5] 10.00-11.00 sec 3.25 MBytes 27.3 Mbits/sec 378 810 KBytes [ 5] 11.00-12.00 sec 4.00 MBytes 33.5 Mbits/sec 231 568 KBytes [ 5] 12.00-13.00 sec 48.2 MBytes 405 Mbits/sec 161 467 KBytes [ 5] 13.00-14.00 sec 78.2 MBytes 656 Mbits/sec 663 439 KBytes [ 5] 14.00-15.00 sec 28.6 MBytes 240 Mbits/sec 1178 5.58 KBytes [ 5] 15.00-16.00 sec 41.4 MBytes 347 Mbits/sec 1969 576 KBytes [ 5] 16.00-17.00 sec 29.1 MBytes 245 Mbits/sec 2242 598 KBytes [ 5] 17.00-18.00 sec 21.2 MBytes 178 Mbits/sec 869 259 KBytes [ 5] 18.00-19.00 sec 7.00 MBytes 58.7 Mbits/sec 1224 668 KBytes [ 5] 19.00-20.00 sec 22.1 MBytes 186 Mbits/sec 252 488 KBytes [ 5] 20.00-21.00 sec 92.1 MBytes 772 Mbits/sec 60 378 KBytes [ 5] 21.00-22.00 sec 2.25 MBytes 18.9 Mbits/sec 250 736 KBytes [ 5] 22.00-23.00 sec 67.5 MBytes 567 Mbits/sec 872 388 KBytes [ 5] 23.00-24.00 sec 2.12 MBytes 17.8 Mbits/sec 391 701 KBytes [ 5] 24.00-25.00 sec 3.88 MBytes 32.5 Mbits/sec 284 491 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.00 sec 860 MBytes 289 Mbits/sec 18831 sender [ 5] 0.00-25.04 sec 857 MBytes 287 Mbits/sec receiver iperf Done. ``` ``` iperf3 -c 138.199.4.1 -t25 -R Connecting to host 138.199.4.1, port 5201 Reverse mode, remote host 138.199.4.1 is sending [ 5] local 192.168.1.10 port 41296 connected to 138.199.4.1 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 106 MBytes 888 Mbits/sec [ 5] 1.00-2.00 sec 108 MBytes 907 Mbits/sec [ 5] 2.00-3.00 sec 108 MBytes 908 Mbits/sec [ 5] 3.00-4.00 sec 80.8 MBytes 677 Mbits/sec [ 5] 4.00-5.00 sec 61.8 MBytes 518 Mbits/sec [ 5] 5.00-6.00 sec 79.6 MBytes 668 Mbits/sec [ 5] 6.00-7.00 sec 67.5 MBytes 566 Mbits/sec [ 5] 7.00-8.00 sec 78.6 MBytes 660 Mbits/sec [ 5] 8.00-9.00 sec 68.8 MBytes 577 Mbits/sec [ 5] 9.00-10.00 sec 72.8 MBytes 610 Mbits/sec [ 5] 10.00-11.00 sec 70.4 MBytes 590 Mbits/sec [ 5] 11.00-12.00 sec 76.1 MBytes 639 Mbits/sec [ 5] 12.00-13.00 sec 74.9 MBytes 628 Mbits/sec [ 5] 13.00-14.00 sec 57.8 MBytes 484 Mbits/sec [ 5] 14.00-15.00 sec 70.6 MBytes 592 Mbits/sec [ 5] 15.00-16.00 sec 84.6 MBytes 710 Mbits/sec [ 5] 16.00-17.00 sec 66.5 MBytes 558 Mbits/sec [ 5] 17.00-18.00 sec 68.4 MBytes 574 Mbits/sec [ 5] 18.00-19.00 sec 76.9 MBytes 645 Mbits/sec [ 5] 19.00-20.00 sec 73.9 MBytes 620 Mbits/sec [ 5] 20.00-21.00 sec 77.2 MBytes 648 Mbits/sec [ 5] 21.00-22.00 sec 68.2 MBytes 572 Mbits/sec [ 5] 22.00-23.00 sec 59.0 MBytes 495 Mbits/sec [ 5] 23.00-24.00 sec 78.4 MBytes 657 Mbits/sec [ 5] 24.00-25.00 sec 78.6 MBytes 660 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.04 sec 1.87 GBytes 641 Mbits/sec 9004 sender [ 5] 0.00-25.00 sec 1.87 GBytes 642 Mbits/sec receiver iperf Done. ``` # offloading enabled - `iperf3 -c 192.168.2.1 -t25 -R` ``` Accepted connection from 192.168.2.220, port 39134 [ 5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 39146 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.02 sec 51.8 MBytes 426 Mbits/sec 15 461 KBytes [ 5] 1.02-2.01 sec 21.6 MBytes 182 Mbits/sec 0 496 KBytes [ 5] 2.01-3.05 sec 35.9 MBytes 291 Mbits/sec 0 546 KBytes [ 5] 3.05-4.02 sec 27.5 MBytes 238 Mbits/sec 0 585 KBytes [ 5] 4.02-5.22 sec 43.2 MBytes 302 Mbits/sec 7 469 KBytes [ 5] 5.22-6.01 sec 15.4 MBytes 162 Mbits/sec 0 509 KBytes [ 5] 6.01-7.00 sec 27.5 MBytes 234 Mbits/sec 0 544 KBytes [ 5] 7.00-8.00 sec 7.12 MBytes 59.8 Mbits/sec 0 574 KBytes [ 5] 8.00-9.01 sec 29.1 MBytes 242 Mbits/sec 0 588 KBytes [ 5] 9.01-10.05 sec 45.6 MBytes 366 Mbits/sec 21 475 KBytes [ 5] 10.05-11.06 sec 41.1 MBytes 342 Mbits/sec 0 537 KBytes [ 5] 11.06-12.00 sec 24.6 MBytes 220 Mbits/sec 4 411 KBytes [ 5] 12.00-13.02 sec 28.4 MBytes 234 Mbits/sec 0 477 KBytes [ 5] 13.02-14.01 sec 23.6 MBytes 200 Mbits/sec 0 515 KBytes [ 5] 14.01-15.00 sec 26.2 MBytes 222 Mbits/sec 0 537 KBytes [ 5] 15.00-16.00 sec 13.5 MBytes 113 Mbits/sec 5 409 KBytes [ 5] 16.00-17.00 sec 13.4 MBytes 112 Mbits/sec 0 438 KBytes [ 5] 17.00-18.06 sec 28.5 MBytes 225 Mbits/sec 0 467 KBytes [ 5] 18.06-19.04 sec 25.4 MBytes 218 Mbits/sec 1 380 KBytes [ 5] 19.04-20.02 sec 42.8 MBytes 368 Mbits/sec 0 455 KBytes [ 5] 20.02-21.01 sec 28.8 MBytes 243 Mbits/sec 2 359 KBytes [ 5] 21.01-22.00 sec 38.1 MBytes 323 Mbits/sec 0 427 KBytes [ 5] 22.00-23.00 sec 30.6 MBytes 257 Mbits/sec 0 484 KBytes [ 5] 23.00-24.08 sec 40.6 MBytes 315 Mbits/sec 0 544 KBytes [ 5] 24.08-25.00 sec 11.4 MBytes 104 Mbits/sec 0 557 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.10 sec 722 MBytes 241 Mbits/sec 55 sender ``` - `iperf3 -c 192.168.2.1 -t25` ``` Connecting to host 192.168.2.1, port 5201 [ 5] local 192.168.2.220 port 56010 connected to 192.168.2.1 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 12.2 MBytes 103 Mbits/sec 5 314 KBytes [ 5] 1.00-2.00 sec 42.5 MBytes 357 Mbits/sec 3 314 KBytes [ 5] 2.00-3.00 sec 17.0 MBytes 143 Mbits/sec 3 314 KBytes [ 5] 3.00-4.00 sec 28.9 MBytes 242 Mbits/sec 4 235 KBytes [ 5] 4.00-5.00 sec 46.0 MBytes 386 Mbits/sec 1 226 KBytes [ 5] 5.00-6.00 sec 44.5 MBytes 374 Mbits/sec 2 298 KBytes [ 5] 6.00-7.00 sec 40.1 MBytes 337 Mbits/sec 2 298 KBytes [ 5] 7.00-8.00 sec 35.2 MBytes 296 Mbits/sec 2 313 KBytes [ 5] 8.00-9.00 sec 44.1 MBytes 370 Mbits/sec 4 239 KBytes [ 5] 9.00-10.00 sec 65.0 MBytes 545 Mbits/sec 0 303 KBytes [ 5] 10.00-11.00 sec 60.4 MBytes 506 Mbits/sec 2 303 KBytes [ 5] 11.00-12.00 sec 61.0 MBytes 512 Mbits/sec 2 300 KBytes [ 5] 12.00-13.00 sec 39.1 MBytes 328 Mbits/sec 4 300 KBytes [ 5] 13.00-14.00 sec 61.4 MBytes 514 Mbits/sec 3 300 KBytes [ 5] 14.00-15.00 sec 23.0 MBytes 193 Mbits/sec 3 274 KBytes [ 5] 15.00-16.00 sec 50.6 MBytes 425 Mbits/sec 3 300 KBytes [ 5] 16.00-17.00 sec 26.1 MBytes 219 Mbits/sec 5 182 KBytes [ 5] 17.00-18.00 sec 38.1 MBytes 320 Mbits/sec 4 239 KBytes [ 5] 18.00-19.00 sec 44.0 MBytes 369 Mbits/sec 3 291 KBytes [ 5] 19.00-20.00 sec 49.4 MBytes 414 Mbits/sec 4 298 KBytes [ 5] 20.00-21.00 sec 17.0 MBytes 143 Mbits/sec 4 239 KBytes [ 5] 21.00-22.00 sec 29.4 MBytes 246 Mbits/sec 8 274 KBytes [ 5] 22.00-23.00 sec 23.1 MBytes 194 Mbits/sec 1 291 KBytes [ 5] 23.00-24.00 sec 16.5 MBytes 138 Mbits/sec 3 256 KBytes [ 5] 24.00-25.00 sec 23.4 MBytes 196 Mbits/sec 4 307 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.00 sec 938 MBytes 315 Mbits/sec 79 sender [ 5] 0.00-25.15 sec 938 MBytes 313 Mbits/sec receiver iperf Done. ``` # offloading disabled - `iperf3 -c 192.168.2.1 -t25 -R` ``` Accepted connection from 192.168.2.220, port 50734 [ 5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 50738 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 59.4 MBytes 498 Mbits/sec 107 209 KBytes [ 5] 1.00-2.00 sec 60.9 MBytes 511 Mbits/sec 8 276 KBytes [ 5] 2.00-3.00 sec 53.8 MBytes 451 Mbits/sec 36 181 KBytes [ 5] 3.00-4.00 sec 60.5 MBytes 508 Mbits/sec 18 247 KBytes [ 5] 4.00-5.00 sec 60.1 MBytes 504 Mbits/sec 2 214 KBytes [ 5] 5.00-6.00 sec 59.4 MBytes 499 Mbits/sec 1 267 KBytes [ 5] 6.00-7.00 sec 61.1 MBytes 513 Mbits/sec 18 221 KBytes [ 5] 7.00-8.00 sec 62.2 MBytes 522 Mbits/sec 23 262 KBytes [ 5] 8.00-9.00 sec 62.2 MBytes 522 Mbits/sec 15 233 KBytes [ 5] 9.00-10.00 sec 64.2 MBytes 538 Mbits/sec 18 180 KBytes [ 5] 10.00-11.00 sec 65.0 MBytes 546 Mbits/sec 22 235 KBytes [ 5] 11.00-12.00 sec 63.9 MBytes 535 Mbits/sec 7 218 KBytes [ 5] 12.00-13.00 sec 64.5 MBytes 541 Mbits/sec 9 262 KBytes [ 5] 13.00-14.00 sec 68.0 MBytes 569 Mbits/sec 39 198 KBytes [ 5] 14.00-15.00 sec 61.2 MBytes 515 Mbits/sec 18 274 KBytes [ 5] 15.00-16.00 sec 59.5 MBytes 498 Mbits/sec 15 273 KBytes [ 5] 16.00-17.01 sec 66.0 MBytes 551 Mbits/sec 5 296 KBytes [ 5] 17.01-18.00 sec 61.5 MBytes 519 Mbits/sec 17 286 KBytes [ 5] 18.00-19.00 sec 67.5 MBytes 566 Mbits/sec 29 290 KBytes [ 5] 19.00-20.00 sec 65.4 MBytes 549 Mbits/sec 4 303 KBytes [ 5] 20.00-21.00 sec 65.4 MBytes 548 Mbits/sec 14 297 KBytes [ 5] 21.00-22.00 sec 65.0 MBytes 545 Mbits/sec 5 270 KBytes [ 5] 22.00-23.00 sec 61.0 MBytes 512 Mbits/sec 4 281 KBytes [ 5] 23.00-24.00 sec 64.8 MBytes 544 Mbits/sec 30 212 KBytes [ 5] 24.00-25.00 sec 63.6 MBytes 533 Mbits/sec 7 211 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.00 sec 1.53 GBytes 526 Mbits/sec 471 sender ``` - `iperf3 -c 192.168.2.1 -t25` ``` Connecting to host 192.168.2.1, port 5201 [ 5] local 192.168.2.220 port 57052 connected to 192.168.2.1 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 81.1 MBytes 680 Mbits/sec 2 583 KBytes [ 5] 1.00-2.00 sec 83.1 MBytes 697 Mbits/sec 5 583 KBytes [ 5] 2.00-3.00 sec 104 MBytes 876 Mbits/sec 0 583 KBytes [ 5] 3.00-4.00 sec 106 MBytes 892 Mbits/sec 0 583 KBytes [ 5] 4.00-5.00 sec 105 MBytes 884 Mbits/sec 0 583 KBytes [ 5] 5.00-6.00 sec 106 MBytes 891 Mbits/sec 0 583 KBytes [ 5] 6.00-7.00 sec 96.8 MBytes 812 Mbits/sec 2 583 KBytes [ 5] 7.00-8.00 sec 106 MBytes 892 Mbits/sec 0 583 KBytes [ 5] 8.00-9.00 sec 105 MBytes 883 Mbits/sec 1 583 KBytes [ 5] 9.00-10.00 sec 105 MBytes 881 Mbits/sec 0 583 KBytes [ 5] 10.00-11.00 sec 106 MBytes 890 Mbits/sec 0 583 KBytes [ 5] 11.00-12.00 sec 105 MBytes 878 Mbits/sec 1 583 KBytes [ 5] 12.00-13.00 sec 104 MBytes 871 Mbits/sec 0 583 KBytes [ 5] 13.00-14.00 sec 106 MBytes 887 Mbits/sec 1 407 KBytes [ 5] 14.00-15.00 sec 107 MBytes 895 Mbits/sec 0 407 KBytes [ 5] 15.00-16.00 sec 106 MBytes 893 Mbits/sec 0 407 KBytes [ 5] 16.00-17.00 sec 80.4 MBytes 674 Mbits/sec 4 229 KBytes [ 5] 17.00-18.00 sec 103 MBytes 863 Mbits/sec 0 298 KBytes [ 5] 18.00-19.00 sec 78.8 MBytes 660 Mbits/sec 1 298 KBytes [ 5] 19.00-20.00 sec 99.0 MBytes 830 Mbits/sec 1 298 KBytes [ 5] 20.00-21.00 sec 100 MBytes 840 Mbits/sec 2 298 KBytes [ 5] 21.00-22.00 sec 106 MBytes 892 Mbits/sec 0 298 KBytes [ 5] 22.00-23.00 sec 73.9 MBytes 620 Mbits/sec 2 298 KBytes [ 5] 23.00-24.00 sec 79.0 MBytes 663 Mbits/sec 1 298 KBytes [ 5] 24.00-25.00 sec 102 MBytes 858 Mbits/sec 0 298 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.00 sec 2.40 GBytes 825 Mbits/sec 23 sender [ 5] 0.00-25.00 sec 2.40 GBytes 824 Mbits/sec receiver iperf Done. ``` <details> <summary>Full log</summary> ``` ╭─sirherobrine23@matheus-note ~/gitwork/airoha_en7523/openwrt ╰─$ iperf3 -c 192.168.2.1 -t25 -R Connecting to host 192.168.2.1, port 5201 Reverse mode, remote host 192.168.2.1 is sending [ 5] local 192.168.2.220 port 39146 connected to 192.168.2.1 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 50.1 MBytes 420 Mbits/sec [ 5] 1.00-2.00 sec 21.9 MBytes 184 Mbits/sec [ 5] 2.00-3.00 sec 35.4 MBytes 297 Mbits/sec [ 5] 3.00-4.00 sec 29.0 MBytes 243 Mbits/sec [ 5] 4.00-5.00 sec 27.9 MBytes 234 Mbits/sec [ 5] 5.00-6.00 sec 29.6 MBytes 249 Mbits/sec [ 5] 6.00-7.00 sec 28.6 MBytes 240 Mbits/sec [ 5] 7.00-8.00 sec 6.62 MBytes 55.6 Mbits/sec [ 5] 8.00-9.00 sec 29.2 MBytes 245 Mbits/sec [ 5] 9.00-10.00 sec 42.1 MBytes 353 Mbits/sec [ 5] 10.00-11.00 sec 40.5 MBytes 340 Mbits/sec [ 5] 11.00-12.00 sec 28.6 MBytes 240 Mbits/sec [ 5] 12.00-13.00 sec 28.5 MBytes 239 Mbits/sec [ 5] 13.00-14.00 sec 24.0 MBytes 201 Mbits/sec [ 5] 14.00-15.00 sec 26.4 MBytes 221 Mbits/sec [ 5] 15.00-16.00 sec 13.2 MBytes 111 Mbits/sec [ 5] 16.00-17.00 sec 13.6 MBytes 114 Mbits/sec [ 5] 17.00-18.00 sec 24.4 MBytes 204 Mbits/sec [ 5] 18.00-19.00 sec 26.4 MBytes 221 Mbits/sec [ 5] 19.00-20.00 sec 44.5 MBytes 373 Mbits/sec [ 5] 20.00-21.00 sec 29.0 MBytes 243 Mbits/sec [ 5] 21.00-22.00 sec 38.9 MBytes 326 Mbits/sec [ 5] 22.00-23.00 sec 31.4 MBytes 263 Mbits/sec [ 5] 23.00-24.00 sec 35.0 MBytes 294 Mbits/sec [ 5] 24.00-25.00 sec 16.6 MBytes 139 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.10 sec 722 MBytes 241 Mbits/sec 55 sender [ 5] 0.00-25.00 sec 722 MBytes 242 Mbits/sec receiver iperf Done. ╭─sirherobrine23@matheus-note ~/gitwork/airoha_en7523/openwrt ╰─$ iperf3 -c 192.168.2.1 -t25 Connecting to host 192.168.2.1, port 5201 [ 5] local 192.168.2.220 port 56010 connected to 192.168.2.1 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 12.2 MBytes 103 Mbits/sec 5 314 KBytes [ 5] 1.00-2.00 sec 42.5 MBytes 357 Mbits/sec 3 314 KBytes [ 5] 2.00-3.00 sec 17.0 MBytes 143 Mbits/sec 3 314 KBytes [ 5] 3.00-4.00 sec 28.9 MBytes 242 Mbits/sec 4 235 KBytes [ 5] 4.00-5.00 sec 46.0 MBytes 386 Mbits/sec 1 226 KBytes [ 5] 5.00-6.00 sec 44.5 MBytes 374 Mbits/sec 2 298 KBytes [ 5] 6.00-7.00 sec 40.1 MBytes 337 Mbits/sec 2 298 KBytes [ 5] 7.00-8.00 sec 35.2 MBytes 296 Mbits/sec 2 313 KBytes [ 5] 8.00-9.00 sec 44.1 MBytes 370 Mbits/sec 4 239 KBytes [ 5] 9.00-10.00 sec 65.0 MBytes 545 Mbits/sec 0 303 KBytes [ 5] 10.00-11.00 sec 60.4 MBytes 506 Mbits/sec 2 303 KBytes [ 5] 11.00-12.00 sec 61.0 MBytes 512 Mbits/sec 2 300 KBytes [ 5] 12.00-13.00 sec 39.1 MBytes 328 Mbits/sec 4 300 KBytes [ 5] 13.00-14.00 sec 61.4 MBytes 514 Mbits/sec 3 300 KBytes [ 5] 14.00-15.00 sec 23.0 MBytes 193 Mbits/sec 3 274 KBytes [ 5] 15.00-16.00 sec 50.6 MBytes 425 Mbits/sec 3 300 KBytes [ 5] 16.00-17.00 sec 26.1 MBytes 219 Mbits/sec 5 182 KBytes [ 5] 17.00-18.00 sec 38.1 MBytes 320 Mbits/sec 4 239 KBytes [ 5] 18.00-19.00 sec 44.0 MBytes 369 Mbits/sec 3 291 KBytes [ 5] 19.00-20.00 sec 49.4 MBytes 414 Mbits/sec 4 298 KBytes [ 5] 20.00-21.00 sec 17.0 MBytes 143 Mbits/sec 4 239 KBytes [ 5] 21.00-22.00 sec 29.4 MBytes 246 Mbits/sec 8 274 KBytes [ 5] 22.00-23.00 sec 23.1 MBytes 194 Mbits/sec 1 291 KBytes [ 5] 23.00-24.00 sec 16.5 MBytes 138 Mbits/sec 3 256 KBytes [ 5] 24.00-25.00 sec 23.4 MBytes 196 Mbits/sec 4 307 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.00 sec 938 MBytes 315 Mbits/sec 79 sender [ 5] 0.00-25.15 sec 938 MBytes 313 Mbits/sec receiver iperf Done. ╭─sirherobrine23@matheus-note ~/gitwork/airoha_en7523/openwrt ╰─$ iperf3 -c 192.168.2.1 -t25 -R Connecting to host 192.168.2.1, port 5201 Reverse mode, remote host 192.168.2.1 is sending [ 5] local 192.168.2.220 port 50738 connected to 192.168.2.1 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 59.0 MBytes 494 Mbits/sec [ 5] 1.00-2.00 sec 60.8 MBytes 510 Mbits/sec [ 5] 2.00-3.00 sec 53.8 MBytes 451 Mbits/sec [ 5] 3.00-4.00 sec 60.8 MBytes 510 Mbits/sec [ 5] 4.00-5.00 sec 60.0 MBytes 503 Mbits/sec [ 5] 5.00-6.00 sec 59.1 MBytes 496 Mbits/sec [ 5] 6.00-7.00 sec 61.9 MBytes 519 Mbits/sec [ 5] 7.00-8.00 sec 61.9 MBytes 519 Mbits/sec [ 5] 8.00-9.00 sec 62.0 MBytes 520 Mbits/sec [ 5] 9.00-10.00 sec 64.2 MBytes 539 Mbits/sec [ 5] 10.00-11.00 sec 65.2 MBytes 547 Mbits/sec [ 5] 11.00-12.00 sec 63.8 MBytes 535 Mbits/sec [ 5] 12.00-13.00 sec 64.8 MBytes 543 Mbits/sec [ 5] 13.00-14.00 sec 67.9 MBytes 569 Mbits/sec [ 5] 14.00-15.00 sec 62.2 MBytes 522 Mbits/sec [ 5] 15.00-16.00 sec 58.6 MBytes 492 Mbits/sec [ 5] 16.00-17.00 sec 65.6 MBytes 550 Mbits/sec [ 5] 17.00-18.00 sec 62.2 MBytes 522 Mbits/sec [ 5] 18.00-19.00 sec 67.8 MBytes 568 Mbits/sec [ 5] 19.00-20.00 sec 65.2 MBytes 548 Mbits/sec [ 5] 20.00-21.00 sec 65.6 MBytes 550 Mbits/sec [ 5] 21.00-22.00 sec 65.2 MBytes 547 Mbits/sec [ 5] 22.00-23.00 sec 61.6 MBytes 517 Mbits/sec [ 5] 23.00-24.00 sec 65.0 MBytes 545 Mbits/sec [ 5] 24.00-25.00 sec 63.4 MBytes 532 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.00 sec 1.53 GBytes 526 Mbits/sec 471 sender [ 5] 0.00-25.00 sec 1.53 GBytes 526 Mbits/sec receiver iperf Done. ╭─sirherobrine23@matheus-note ~/gitwork/airoha_en7523/openwrt ╰─$ iperf3 -c 192.168.2.1 -t25 Connecting to host 192.168.2.1, port 5201 [ 5] local 192.168.2.220 port 57052 connected to 192.168.2.1 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 81.1 MBytes 680 Mbits/sec 2 583 KBytes [ 5] 1.00-2.00 sec 83.1 MBytes 697 Mbits/sec 5 583 KBytes [ 5] 2.00-3.00 sec 104 MBytes 876 Mbits/sec 0 583 KBytes [ 5] 3.00-4.00 sec 106 MBytes 892 Mbits/sec 0 583 KBytes [ 5] 4.00-5.00 sec 105 MBytes 884 Mbits/sec 0 583 KBytes [ 5] 5.00-6.00 sec 106 MBytes 891 Mbits/sec 0 583 KBytes [ 5] 6.00-7.00 sec 96.8 MBytes 812 Mbits/sec 2 583 KBytes [ 5] 7.00-8.00 sec 106 MBytes 892 Mbits/sec 0 583 KBytes [ 5] 8.00-9.00 sec 105 MBytes 883 Mbits/sec 1 583 KBytes [ 5] 9.00-10.00 sec 105 MBytes 881 Mbits/sec 0 583 KBytes [ 5] 10.00-11.00 sec 106 MBytes 890 Mbits/sec 0 583 KBytes [ 5] 11.00-12.00 sec 105 MBytes 878 Mbits/sec 1 583 KBytes [ 5] 12.00-13.00 sec 104 MBytes 871 Mbits/sec 0 583 KBytes [ 5] 13.00-14.00 sec 106 MBytes 887 Mbits/sec 1 407 KBytes [ 5] 14.00-15.00 sec 107 MBytes 895 Mbits/sec 0 407 KBytes [ 5] 15.00-16.00 sec 106 MBytes 893 Mbits/sec 0 407 KBytes [ 5] 16.00-17.00 sec 80.4 MBytes 674 Mbits/sec 4 229 KBytes [ 5] 17.00-18.00 sec 103 MBytes 863 Mbits/sec 0 298 KBytes [ 5] 18.00-19.00 sec 78.8 MBytes 660 Mbits/sec 1 298 KBytes [ 5] 19.00-20.00 sec 99.0 MBytes 830 Mbits/sec 1 298 KBytes [ 5] 20.00-21.00 sec 100 MBytes 840 Mbits/sec 2 298 KBytes [ 5] 21.00-22.00 sec 106 MBytes 892 Mbits/sec 0 298 KBytes [ 5] 22.00-23.00 sec 73.9 MBytes 620 Mbits/sec 2 298 KBytes [ 5] 23.00-24.00 sec 79.0 MBytes 663 Mbits/sec 1 298 KBytes [ 5] 24.00-25.00 sec 102 MBytes 858 Mbits/sec 0 298 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.00 sec 2.40 GBytes 825 Mbits/sec 23 sender [ 5] 0.00-25.00 sec 2.40 GBytes 824 Mbits/sec receiver iperf Done. ``` ``` root@OpenWrt:~# iperf3 -s ----------------------------------------------------------- Server listening on 5201 (test #1) ----------------------------------------------------------- Accepted connection from 192.168.2.220, port 39134 [ 5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 39146 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.02 sec 51.8 MBytes 426 Mbits/sec 15 461 KBytes [ 5] 1.02-2.01 sec 21.6 MBytes 182 Mbits/sec 0 496 KBytes [ 5] 2.01-3.05 sec 35.9 MBytes 291 Mbits/sec 0 546 KBytes [ 5] 3.05-4.02 sec 27.5 MBytes 238 Mbits/sec 0 585 KBytes [ 5] 4.02-5.22 sec 43.2 MBytes 302 Mbits/sec 7 469 KBytes [ 5] 5.22-6.01 sec 15.4 MBytes 162 Mbits/sec 0 509 KBytes [ 5] 6.01-7.00 sec 27.5 MBytes 234 Mbits/sec 0 544 KBytes [ 5] 7.00-8.00 sec 7.12 MBytes 59.8 Mbits/sec 0 574 KBytes [ 5] 8.00-9.01 sec 29.1 MBytes 242 Mbits/sec 0 588 KBytes [ 5] 9.01-10.05 sec 45.6 MBytes 366 Mbits/sec 21 475 KBytes [ 5] 10.05-11.06 sec 41.1 MBytes 342 Mbits/sec 0 537 KBytes [ 5] 11.06-12.00 sec 24.6 MBytes 220 Mbits/sec 4 411 KBytes [ 5] 12.00-13.02 sec 28.4 MBytes 234 Mbits/sec 0 477 KBytes [ 5] 13.02-14.01 sec 23.6 MBytes 200 Mbits/sec 0 515 KBytes [ 5] 14.01-15.00 sec 26.2 MBytes 222 Mbits/sec 0 537 KBytes [ 5] 15.00-16.00 sec 13.5 MBytes 113 Mbits/sec 5 409 KBytes [ 5] 16.00-17.00 sec 13.4 MBytes 112 Mbits/sec 0 438 KBytes [ 5] 17.00-18.06 sec 28.5 MBytes 225 Mbits/sec 0 467 KBytes [ 5] 18.06-19.04 sec 25.4 MBytes 218 Mbits/sec 1 380 KBytes [ 5] 19.04-20.02 sec 42.8 MBytes 368 Mbits/sec 0 455 KBytes [ 5] 20.02-21.01 sec 28.8 MBytes 243 Mbits/sec 2 359 KBytes [ 5] 21.01-22.00 sec 38.1 MBytes 323 Mbits/sec 0 427 KBytes [ 5] 22.00-23.00 sec 30.6 MBytes 257 Mbits/sec 0 484 KBytes [ 5] 23.00-24.08 sec 40.6 MBytes 315 Mbits/sec 0 544 KBytes [ 5] 24.08-25.00 sec 11.4 MBytes 104 Mbits/sec 0 557 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.10 sec 722 MBytes 241 Mbits/sec 55 sender ----------------------------------------------------------- Server listening on 5201 (test #2) ----------------------------------------------------------- Accepted connection from 192.168.2.220, port 55994 [ 5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 56010 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 9.75 MBytes 81.8 Mbits/sec [ 5] 1.00-2.00 sec 43.0 MBytes 361 Mbits/sec [ 5] 2.00-3.00 sec 16.4 MBytes 137 Mbits/sec [ 5] 3.00-4.00 sec 29.8 MBytes 250 Mbits/sec [ 5] 4.00-5.00 sec 45.9 MBytes 385 Mbits/sec [ 5] 5.00-6.01 sec 44.9 MBytes 374 Mbits/sec [ 5] 6.01-7.00 sec 39.0 MBytes 329 Mbits/sec [ 5] 7.00-8.15 sec 48.2 MBytes 351 Mbits/sec [ 5] 8.15-9.00 sec 31.4 MBytes 311 Mbits/sec [ 5] 9.00-10.00 sec 65.4 MBytes 548 Mbits/sec [ 5] 10.00-11.00 sec 60.0 MBytes 503 Mbits/sec [ 5] 11.00-12.00 sec 61.2 MBytes 514 Mbits/sec [ 5] 12.00-13.14 sec 48.1 MBytes 353 Mbits/sec [ 5] 13.14-14.00 sec 51.5 MBytes 505 Mbits/sec [ 5] 14.00-15.02 sec 24.0 MBytes 198 Mbits/sec [ 5] 15.02-16.06 sec 54.8 MBytes 439 Mbits/sec [ 5] 16.06-17.00 sec 17.5 MBytes 157 Mbits/sec [ 5] 17.00-18.11 sec 41.2 MBytes 311 Mbits/sec [ 5] 18.11-19.00 sec 41.8 MBytes 395 Mbits/sec [ 5] 19.00-20.00 sec 48.8 MBytes 409 Mbits/sec [ 5] 20.00-21.00 sec 17.1 MBytes 143 Mbits/sec [ 5] 21.00-22.00 sec 28.6 MBytes 240 Mbits/sec [ 5] 22.00-23.00 sec 23.8 MBytes 200 Mbits/sec [ 5] 23.00-24.08 sec 21.2 MBytes 164 Mbits/sec [ 5] 24.08-25.00 sec 18.8 MBytes 172 Mbits/sec [ 5] 25.00-25.15 sec 2.12 MBytes 116 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-25.15 sec 938 MBytes 313 Mbits/sec receiver ----------------------------------------------------------- Server listening on 5201 (test #3) ----------------------------------------------------------- Accepted connection from 192.168.2.220, port 50734 [ 5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 50738 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 59.4 MBytes 498 Mbits/sec 107 209 KBytes [ 5] 1.00-2.00 sec 60.9 MBytes 511 Mbits/sec 8 276 KBytes [ 5] 2.00-3.00 sec 53.8 MBytes 451 Mbits/sec 36 181 KBytes [ 5] 3.00-4.00 sec 60.5 MBytes 508 Mbits/sec 18 247 KBytes [ 5] 4.00-5.00 sec 60.1 MBytes 504 Mbits/sec 2 214 KBytes [ 5] 5.00-6.00 sec 59.4 MBytes 499 Mbits/sec 1 267 KBytes [ 5] 6.00-7.00 sec 61.1 MBytes 513 Mbits/sec 18 221 KBytes [ 5] 7.00-8.00 sec 62.2 MBytes 522 Mbits/sec 23 262 KBytes [ 5] 8.00-9.00 sec 62.2 MBytes 522 Mbits/sec 15 233 KBytes [ 5] 9.00-10.00 sec 64.2 MBytes 538 Mbits/sec 18 180 KBytes [ 5] 10.00-11.00 sec 65.0 MBytes 546 Mbits/sec 22 235 KBytes [ 5] 11.00-12.00 sec 63.9 MBytes 535 Mbits/sec 7 218 KBytes [ 5] 12.00-13.00 sec 64.5 MBytes 541 Mbits/sec 9 262 KBytes [ 5] 13.00-14.00 sec 68.0 MBytes 569 Mbits/sec 39 198 KBytes [ 5] 14.00-15.00 sec 61.2 MBytes 515 Mbits/sec 18 274 KBytes [ 5] 15.00-16.00 sec 59.5 MBytes 498 Mbits/sec 15 273 KBytes [ 5] 16.00-17.01 sec 66.0 MBytes 551 Mbits/sec 5 296 KBytes [ 5] 17.01-18.00 sec 61.5 MBytes 519 Mbits/sec 17 286 KBytes [ 5] 18.00-19.00 sec 67.5 MBytes 566 Mbits/sec 29 290 KBytes [ 5] 19.00-20.00 sec 65.4 MBytes 549 Mbits/sec 4 303 KBytes [ 5] 20.00-21.00 sec 65.4 MBytes 548 Mbits/sec 14 297 KBytes [ 5] 21.00-22.00 sec 65.0 MBytes 545 Mbits/sec 5 270 KBytes [ 5] 22.00-23.00 sec 61.0 MBytes 512 Mbits/sec 4 281 KBytes [ 5] 23.00-24.00 sec 64.8 MBytes 544 Mbits/sec 30 212 KBytes [ 5] 24.00-25.00 sec 63.6 MBytes 533 Mbits/sec 7 211 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-25.00 sec 1.53 GBytes 526 Mbits/sec 471 sender ----------------------------------------------------------- Server listening on 5201 (test #4) ----------------------------------------------------------- Accepted connection from 192.168.2.220, port 57050 [ 5] local 192.168.2.1 port 5201 connected to 192.168.2.220 port 57052 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 78.5 MBytes 659 Mbits/sec [ 5] 1.00-2.00 sec 83.6 MBytes 701 Mbits/sec [ 5] 2.00-3.00 sec 105 MBytes 882 Mbits/sec [ 5] 3.00-4.00 sec 106 MBytes 887 Mbits/sec [ 5] 4.00-5.00 sec 106 MBytes 887 Mbits/sec [ 5] 5.00-6.00 sec 106 MBytes 891 Mbits/sec [ 5] 6.00-7.00 sec 96.5 MBytes 810 Mbits/sec [ 5] 7.00-8.00 sec 107 MBytes 895 Mbits/sec [ 5] 8.00-9.00 sec 104 MBytes 875 Mbits/sec [ 5] 9.00-10.00 sec 106 MBytes 885 Mbits/sec [ 5] 10.00-11.00 sec 106 MBytes 889 Mbits/sec [ 5] 11.00-12.00 sec 104 MBytes 874 Mbits/sec [ 5] 12.00-13.00 sec 104 MBytes 874 Mbits/sec [ 5] 13.00-14.00 sec 106 MBytes 887 Mbits/sec [ 5] 14.00-15.00 sec 106 MBytes 892 Mbits/sec [ 5] 15.00-16.00 sec 106 MBytes 889 Mbits/sec [ 5] 16.00-17.00 sec 79.4 MBytes 666 Mbits/sec [ 5] 17.00-18.00 sec 103 MBytes 864 Mbits/sec [ 5] 18.00-19.00 sec 78.0 MBytes 654 Mbits/sec [ 5] 19.00-20.00 sec 99.0 MBytes 831 Mbits/sec [ 5] 20.00-21.00 sec 99.8 MBytes 837 Mbits/sec [ 5] 21.00-22.00 sec 106 MBytes 886 Mbits/sec [ 5] 22.00-23.00 sec 73.8 MBytes 619 Mbits/sec [ 5] 23.00-24.00 sec 78.6 MBytes 660 Mbits/sec [ 5] 24.00-25.00 sec 103 MBytes 866 Mbits/sec [ 5] 25.00-25.00 sec 384 KBytes 656 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-25.00 sec 2.40 GBytes 824 Mbits/sec receiver ----------------------------------------------------------- Server listening on 5201 (test #5) ----------------------------------------------------------- ``` </details>
Author
Owner

I added the en7523 to mtk-ge-soc.c, and removed the alterations you requested, but my TCP packets are requesting retransmission, although ICMP is working normally

root@OpenWrt:~# apk update
wget: Failed to send request: Operation not permitted
ERROR: wget: exited with error 4
WARNING: updating and opening https://downloads.openwrt.org/snapshots/targets/airoha/en7523/packages/packages.adb: unexpected end of file
wget: Failed to send request: Operation not permitted
ERROR: wget: exited with error 4
WARNING: updating and opening https://downloads.openwrt.org/snapshots/packages/arm_cortex-a7/base/packages.adb: unexpected end of file
wget: Failed to send request: Operation not permitted
ERROR: wget: exited with error 4
WARNING: updating and opening https://downloads.openwrt.org/snapshots/packages/arm_cortex-a7/luci/packages.adb: unexpected end of file
wget: Failed to send request: Operation not permitted
ERROR: wget: exited with error 4
WARNING: updating and opening https://downloads.openwrt.org/snapshots/packages/arm_cortex-a7/packages/packages.adb: unexpected end of file
wget: Failed to send request: Operation not permitted
ERROR: wget: exited with error 4
WARNING: updating and opening https://downloads.openwrt.org/snapshots/packages/arm_cortex-a7/routing/packages.adb: unexpected end of file
wget: Failed to send request: Operation not permitted
ERROR: wget: exited with error 4
WARNING: updating and opening https://downloads.openwrt.org/snapshots/packages/arm_cortex-a7/telephony/packages.adb: unexpected end of file
wget: Failed to send request: Operation not permitted
ERROR: wget: exited with error 4
WARNING: updating and opening https://downloads.openwrt.org/snapshots/packages/arm_cortex-a7/video/packages.adb: unexpected end of file
7 unavailable, 0 stale; 187 distinct packages available
root@OpenWrt:~# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: seq=0 ttl=64 time=0.598 ms
64 bytes from 192.168.1.1: seq=1 ttl=64 time=0.499 ms
64 bytes from 192.168.1.1: seq=2 ttl=64 time=0.502 ms
64 bytes from 192.168.1.1: seq=3 ttl=64 time=0.508 ms
64 bytes from 192.168.1.1: seq=4 ttl=64 time=0.494 ms
64 bytes from 192.168.1.1: seq=5 ttl=64 time=0.502 ms
^C
--- 192.168.1.1 ping statistics ---
6 packets transmitted, 6 packets received, 0% packet loss
round-trip min/avg/max = 0.494/0.517/0.598 ms
root@OpenWrt:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1504 qdisc mq state UNKNOWN qlen 1000
    link/ether d8:44:89:bd:cf:d8 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::da44:89ff:febd:cfd8/64 scope link 
       valid_lft forever preferred_lft forever
3: lan1@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state DOWN qlen 1000
    link/ether d8:44:89:bd:cf:d8 brd ff:ff:ff:ff:ff:ff
4: lan2@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state DOWN qlen 1000
    link/ether d8:44:89:bd:cf:d8 brd ff:ff:ff:ff:ff:ff
5: lan3@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state DOWN qlen 1000
    link/ether d8:44:89:bd:cf:d8 brd ff:ff:ff:ff:ff:ff
6: wan@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether d8:44:89:bd:cf:d8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.8/24 brd 192.168.1.255 scope global wan
       valid_lft forever preferred_lft forever
    inet6 fe80::da44:89ff:febd:cfd8/64 scope link 
       valid_lft forever preferred_lft forever
7: br-lan: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether d8:44:89:bd:cf:d8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.1/24 brd 192.168.2.255 scope global br-lan
       valid_lft forever preferred_lft forever
    inet6 fdfd:a42c:9933::1/60 scope global noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::da44:89ff:febd:cfd8/64 scope link 
       valid_lft forever preferred_lft forever
root@OpenWrt:~# 

{
PHY_ID_MATCH_EXACT(MTK_GPHY_ID_EN7523),
.name = "Airoha EN7523 PHY",
.probe = en7523_phy_probe,
.led_blink_set = mt798x_phy_led_blink_set,
.led_brightness_set = mt798x_phy_led_brightness_set,
.led_hw_is_supported = mt798x_phy_led_hw_is_supported,
.led_hw_control_set = mt798x_phy_led_hw_control_set,
.led_hw_control_get = mt798x_phy_led_hw_control_get,
.led_polarity_set = an7581_phy_led_polarity_set,
},

I added the en7523 to `mtk-ge-soc.c`, and removed the alterations you requested, but my TCP packets are requesting retransmission, although ICMP is working normally ``` root@OpenWrt:~# apk update wget: Failed to send request: Operation not permitted ERROR: wget: exited with error 4 WARNING: updating and opening https://downloads.openwrt.org/snapshots/targets/airoha/en7523/packages/packages.adb: unexpected end of file wget: Failed to send request: Operation not permitted ERROR: wget: exited with error 4 WARNING: updating and opening https://downloads.openwrt.org/snapshots/packages/arm_cortex-a7/base/packages.adb: unexpected end of file wget: Failed to send request: Operation not permitted ERROR: wget: exited with error 4 WARNING: updating and opening https://downloads.openwrt.org/snapshots/packages/arm_cortex-a7/luci/packages.adb: unexpected end of file wget: Failed to send request: Operation not permitted ERROR: wget: exited with error 4 WARNING: updating and opening https://downloads.openwrt.org/snapshots/packages/arm_cortex-a7/packages/packages.adb: unexpected end of file wget: Failed to send request: Operation not permitted ERROR: wget: exited with error 4 WARNING: updating and opening https://downloads.openwrt.org/snapshots/packages/arm_cortex-a7/routing/packages.adb: unexpected end of file wget: Failed to send request: Operation not permitted ERROR: wget: exited with error 4 WARNING: updating and opening https://downloads.openwrt.org/snapshots/packages/arm_cortex-a7/telephony/packages.adb: unexpected end of file wget: Failed to send request: Operation not permitted ERROR: wget: exited with error 4 WARNING: updating and opening https://downloads.openwrt.org/snapshots/packages/arm_cortex-a7/video/packages.adb: unexpected end of file 7 unavailable, 0 stale; 187 distinct packages available root@OpenWrt:~# ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1): 56 data bytes 64 bytes from 192.168.1.1: seq=0 ttl=64 time=0.598 ms 64 bytes from 192.168.1.1: seq=1 ttl=64 time=0.499 ms 64 bytes from 192.168.1.1: seq=2 ttl=64 time=0.502 ms 64 bytes from 192.168.1.1: seq=3 ttl=64 time=0.508 ms 64 bytes from 192.168.1.1: seq=4 ttl=64 time=0.494 ms 64 bytes from 192.168.1.1: seq=5 ttl=64 time=0.502 ms ^C --- 192.168.1.1 ping statistics --- 6 packets transmitted, 6 packets received, 0% packet loss round-trip min/avg/max = 0.494/0.517/0.598 ms root@OpenWrt:~# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1504 qdisc mq state UNKNOWN qlen 1000 link/ether d8:44:89:bd:cf:d8 brd ff:ff:ff:ff:ff:ff inet6 fe80::da44:89ff:febd:cfd8/64 scope link valid_lft forever preferred_lft forever 3: lan1@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state DOWN qlen 1000 link/ether d8:44:89:bd:cf:d8 brd ff:ff:ff:ff:ff:ff 4: lan2@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state DOWN qlen 1000 link/ether d8:44:89:bd:cf:d8 brd ff:ff:ff:ff:ff:ff 5: lan3@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state DOWN qlen 1000 link/ether d8:44:89:bd:cf:d8 brd ff:ff:ff:ff:ff:ff 6: wan@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000 link/ether d8:44:89:bd:cf:d8 brd ff:ff:ff:ff:ff:ff inet 192.168.1.8/24 brd 192.168.1.255 scope global wan valid_lft forever preferred_lft forever inet6 fe80::da44:89ff:febd:cfd8/64 scope link valid_lft forever preferred_lft forever 7: br-lan: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000 link/ether d8:44:89:bd:cf:d8 brd ff:ff:ff:ff:ff:ff inet 192.168.2.1/24 brd 192.168.2.255 scope global br-lan valid_lft forever preferred_lft forever inet6 fdfd:a42c:9933::1/60 scope global noprefixroute valid_lft forever preferred_lft forever inet6 fe80::da44:89ff:febd:cfd8/64 scope link valid_lft forever preferred_lft forever root@OpenWrt:~# ``` https://sirherobrine23.com.br/airoha_en7523/kernel/src/commit/af865b0d0bb2e65deefc9d9f68f2443423194050/drivers/net/phy/mediatek/mtk-ge-soc.c#L1519-L1529
Owner

I added the en7523 to mtk-ge-soc.c, and removed the alterations you requested, but my TCP packets are requesting retransmission, although ICMP is working normally

I dont follow which ips are what and what direction you do things. TCP retransmission is bound to happen if you max out the link somehow.

I only test with the router are 192.168.1.1 and the computer client at 192.168.1.100. I then run iperf3 from the computer.

> I added the en7523 to `mtk-ge-soc.c`, and removed the alterations you requested, but my TCP packets are requesting retransmission, although ICMP is working normally I dont follow which ips are what and what direction you do things. TCP retransmission is bound to happen if you max out the link somehow. I only test with the router are 192.168.1.1 and the computer client at 192.168.1.100. I then run iperf3 from the computer.
Author
Owner

In either direction, because I can't get TCP/IPv6 from either the OpenWrt side or the computer, only IPv4

In either direction, because I can't get TCP/IPv6 from either the OpenWrt side or the computer, only IPv4
Author
Owner

The same applies to UDP/IPv6

The same applies to UDP/IPv6
Owner

I thought you had it working. Anyway this is the code I am using +

devmem 0x1fb5b0ec 32 0x2
devmem 0x1fb5b0F0 32 0x0000FF00
devmem 0x1fb5b600 32 0x205e33b

I thought you had it working. Anyway this is the code I am using + devmem 0x1fb5b0ec 32 0x2 devmem 0x1fb5b0F0 32 0x0000FF00 devmem 0x1fb5b600 32 0x205e33b
Owner

Your mt7530 changes should make the memsets unneeded.

Your mt7530 changes should make the memsets unneeded.
merbanan reopened this issue 2025-12-02 17:55:37 +00:00
Author
Owner
╭─sirherobrine23@matheus-note ~/gitwork/airoha_en7523/openwrt 
╰─$ iperf3 -c openwrt.lan -t15 -b1G -6
Connecting to host openwrt.lan, port 5201
[  5] local fd0e:c4c:221b::a9c port 42322 connected to fd0e:c4c:221b::1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   105 MBytes   879 Mbits/sec    0    305 KBytes       
[  5]   1.00-2.00   sec  74.0 MBytes   621 Mbits/sec    4    305 KBytes       
[  5]   2.00-3.00   sec  76.2 MBytes   639 Mbits/sec    0    305 KBytes       
[  5]   3.00-4.00   sec  72.6 MBytes   609 Mbits/sec    0    305 KBytes       
[  5]   4.00-5.00   sec  81.6 MBytes   685 Mbits/sec    1    301 KBytes       
[  5]   5.00-6.00   sec   102 MBytes   859 Mbits/sec    0    301 KBytes       
[  5]   6.00-7.00   sec   104 MBytes   877 Mbits/sec    0    301 KBytes       
[  5]   7.00-8.00   sec   104 MBytes   868 Mbits/sec    0    301 KBytes       
[  5]   8.00-9.00   sec  93.2 MBytes   782 Mbits/sec    1    296 KBytes       
[  5]   9.00-10.00  sec  77.8 MBytes   652 Mbits/sec    0    301 KBytes       
[  5]  10.00-11.00  sec  73.8 MBytes   619 Mbits/sec    1    301 KBytes       
[  5]  11.00-12.00  sec  75.9 MBytes   636 Mbits/sec    1    251 KBytes       
[  5]  12.00-13.00  sec  77.6 MBytes   651 Mbits/sec    0    300 KBytes       
[  5]  13.00-14.00  sec  79.9 MBytes   670 Mbits/sec    1    300 KBytes       
[  5]  14.00-15.00  sec   105 MBytes   877 Mbits/sec    0    300 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-15.00  sec  1.27 GBytes   729 Mbits/sec    9            sender
[  5]   0.00-15.01  sec  1.27 GBytes   728 Mbits/sec                  receiver

iperf Done.
╭─sirherobrine23@matheus-note ~/gitwork/airoha_en7523/openwrt 
╰─$ iperf3 -c openwrt.lan -t15 -b1G -4
Connecting to host openwrt.lan, port 5201
[  5] local 192.168.2.220 port 53752 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  81.5 MBytes   683 Mbits/sec    0    304 KBytes       
[  5]   1.00-2.00   sec  82.1 MBytes   689 Mbits/sec    1    304 KBytes       
[  5]   2.00-3.00   sec  80.0 MBytes   671 Mbits/sec    0    304 KBytes       
[  5]   3.00-4.00   sec  78.9 MBytes   662 Mbits/sec    3    324 KBytes       
[  5]   4.00-5.00   sec  91.0 MBytes   763 Mbits/sec    2    324 KBytes       
[  5]   5.00-6.00   sec   108 MBytes   907 Mbits/sec    0    324 KBytes       
[  5]   6.00-7.00   sec  77.0 MBytes   646 Mbits/sec    0    324 KBytes       
[  5]   7.00-8.00   sec  77.5 MBytes   650 Mbits/sec    1    307 KBytes       
[  5]   8.00-9.00   sec  74.4 MBytes   624 Mbits/sec    2    307 KBytes       
[  5]   9.00-10.00  sec  90.8 MBytes   761 Mbits/sec    4    307 KBytes       
[  5]  10.00-11.00  sec  85.5 MBytes   717 Mbits/sec    1    307 KBytes       
[  5]  11.00-12.00  sec  77.9 MBytes   653 Mbits/sec    1    307 KBytes       
[  5]  12.00-13.00  sec  85.1 MBytes   714 Mbits/sec    2    308 KBytes       
[  5]  13.00-14.00  sec   108 MBytes   902 Mbits/sec    0    308 KBytes       
[  5]  14.00-15.00  sec  98.4 MBytes   825 Mbits/sec    1    310 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-15.00  sec  1.27 GBytes   725 Mbits/sec   18            sender
[  5]   0.00-15.01  sec  1.26 GBytes   723 Mbits/sec                  receiver

iperf Done.
╭─sirherobrine23@matheus-note ~/gitwork/airoha_en7523/openwrt 
╰─$ iperf3 -c openwrt.lan -t15 -b1G -6 -R
Connecting to host openwrt.lan, port 5201
Reverse mode, remote host openwrt.lan is sending
[  5] local fd0e:c4c:221b::a9c port 56670 connected to fd0e:c4c:221b::1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  0.00 Bytes  0.00 bits/sec                  
[  5]   1.00-2.00   sec   256 KBytes  2.10 Mbits/sec                  
[  5]   2.00-3.00   sec   256 KBytes  2.10 Mbits/sec                  
[  5]   3.00-4.00   sec   256 KBytes  2.10 Mbits/sec                  
[  5]   4.00-5.00   sec   128 KBytes  1.05 Mbits/sec                  
[  5]   5.00-6.00   sec   256 KBytes  2.10 Mbits/sec                  
[  5]   6.00-7.00   sec   128 KBytes  1.05 Mbits/sec                  
[  5]   7.00-8.00   sec   256 KBytes  2.10 Mbits/sec                  
[  5]   8.00-9.00   sec   128 KBytes  1.05 Mbits/sec                  
[  5]   9.00-10.00  sec   256 KBytes  2.10 Mbits/sec                  
[  5]  10.00-11.00  sec   256 KBytes  2.10 Mbits/sec                  
[  5]  11.00-12.00  sec   128 KBytes  1.05 Mbits/sec                  
[  5]  12.00-13.00  sec   256 KBytes  2.10 Mbits/sec                  
[  5]  13.00-14.00  sec   256 KBytes  2.10 Mbits/sec                  
[  5]  14.00-15.00  sec   128 KBytes  1.05 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-15.00  sec  3.00 MBytes  1.68 Mbits/sec  633            sender
[  5]   0.00-15.00  sec  2.88 MBytes  1.61 Mbits/sec                  receiver

iperf Done.
╭─sirherobrine23@matheus-note ~/gitwork/airoha_en7523/openwrt 
╰─$ iperf3 -c openwrt.lan -t15 -b1G -4 -R
Connecting to host openwrt.lan, port 5201
Reverse mode, remote host openwrt.lan is sending
[  5] local 192.168.2.220 port 59020 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  0.00 Bytes  0.00 bits/sec                  
[  5]   1.00-2.00   sec   256 KBytes  2.10 Mbits/sec                  
[  5]   2.00-3.00   sec   128 KBytes  1.05 Mbits/sec                  
[  5]   3.00-4.00   sec   256 KBytes  2.10 Mbits/sec                  
[  5]   4.00-5.00   sec   256 KBytes  2.10 Mbits/sec                  
[  5]   5.00-6.00   sec   256 KBytes  2.10 Mbits/sec                  
[  5]   6.00-7.00   sec   128 KBytes  1.05 Mbits/sec                  
[  5]   7.00-8.00   sec   256 KBytes  2.10 Mbits/sec                  
[  5]   8.00-9.00   sec   256 KBytes  2.10 Mbits/sec                  
[  5]   9.00-10.00  sec   256 KBytes  2.10 Mbits/sec                  
[  5]  10.00-11.00  sec   256 KBytes  2.10 Mbits/sec                  
[  5]  11.00-12.00  sec   128 KBytes  1.05 Mbits/sec                  
[  5]  12.00-13.00  sec   256 KBytes  2.10 Mbits/sec                  
[  5]  13.00-14.00  sec   256 KBytes  2.10 Mbits/sec                  
[  5]  14.00-15.00  sec   128 KBytes  1.05 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-15.00  sec  3.12 MBytes  1.75 Mbits/sec  651            sender
[  5]   0.00-15.00  sec  3.00 MBytes  1.68 Mbits/sec                  receiver

iperf Done.
``` ╭─sirherobrine23@matheus-note ~/gitwork/airoha_en7523/openwrt ╰─$ iperf3 -c openwrt.lan -t15 -b1G -6 Connecting to host openwrt.lan, port 5201 [ 5] local fd0e:c4c:221b::a9c port 42322 connected to fd0e:c4c:221b::1 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 105 MBytes 879 Mbits/sec 0 305 KBytes [ 5] 1.00-2.00 sec 74.0 MBytes 621 Mbits/sec 4 305 KBytes [ 5] 2.00-3.00 sec 76.2 MBytes 639 Mbits/sec 0 305 KBytes [ 5] 3.00-4.00 sec 72.6 MBytes 609 Mbits/sec 0 305 KBytes [ 5] 4.00-5.00 sec 81.6 MBytes 685 Mbits/sec 1 301 KBytes [ 5] 5.00-6.00 sec 102 MBytes 859 Mbits/sec 0 301 KBytes [ 5] 6.00-7.00 sec 104 MBytes 877 Mbits/sec 0 301 KBytes [ 5] 7.00-8.00 sec 104 MBytes 868 Mbits/sec 0 301 KBytes [ 5] 8.00-9.00 sec 93.2 MBytes 782 Mbits/sec 1 296 KBytes [ 5] 9.00-10.00 sec 77.8 MBytes 652 Mbits/sec 0 301 KBytes [ 5] 10.00-11.00 sec 73.8 MBytes 619 Mbits/sec 1 301 KBytes [ 5] 11.00-12.00 sec 75.9 MBytes 636 Mbits/sec 1 251 KBytes [ 5] 12.00-13.00 sec 77.6 MBytes 651 Mbits/sec 0 300 KBytes [ 5] 13.00-14.00 sec 79.9 MBytes 670 Mbits/sec 1 300 KBytes [ 5] 14.00-15.00 sec 105 MBytes 877 Mbits/sec 0 300 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-15.00 sec 1.27 GBytes 729 Mbits/sec 9 sender [ 5] 0.00-15.01 sec 1.27 GBytes 728 Mbits/sec receiver iperf Done. ╭─sirherobrine23@matheus-note ~/gitwork/airoha_en7523/openwrt ╰─$ iperf3 -c openwrt.lan -t15 -b1G -4 Connecting to host openwrt.lan, port 5201 [ 5] local 192.168.2.220 port 53752 connected to 192.168.2.1 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 81.5 MBytes 683 Mbits/sec 0 304 KBytes [ 5] 1.00-2.00 sec 82.1 MBytes 689 Mbits/sec 1 304 KBytes [ 5] 2.00-3.00 sec 80.0 MBytes 671 Mbits/sec 0 304 KBytes [ 5] 3.00-4.00 sec 78.9 MBytes 662 Mbits/sec 3 324 KBytes [ 5] 4.00-5.00 sec 91.0 MBytes 763 Mbits/sec 2 324 KBytes [ 5] 5.00-6.00 sec 108 MBytes 907 Mbits/sec 0 324 KBytes [ 5] 6.00-7.00 sec 77.0 MBytes 646 Mbits/sec 0 324 KBytes [ 5] 7.00-8.00 sec 77.5 MBytes 650 Mbits/sec 1 307 KBytes [ 5] 8.00-9.00 sec 74.4 MBytes 624 Mbits/sec 2 307 KBytes [ 5] 9.00-10.00 sec 90.8 MBytes 761 Mbits/sec 4 307 KBytes [ 5] 10.00-11.00 sec 85.5 MBytes 717 Mbits/sec 1 307 KBytes [ 5] 11.00-12.00 sec 77.9 MBytes 653 Mbits/sec 1 307 KBytes [ 5] 12.00-13.00 sec 85.1 MBytes 714 Mbits/sec 2 308 KBytes [ 5] 13.00-14.00 sec 108 MBytes 902 Mbits/sec 0 308 KBytes [ 5] 14.00-15.00 sec 98.4 MBytes 825 Mbits/sec 1 310 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-15.00 sec 1.27 GBytes 725 Mbits/sec 18 sender [ 5] 0.00-15.01 sec 1.26 GBytes 723 Mbits/sec receiver iperf Done. ╭─sirherobrine23@matheus-note ~/gitwork/airoha_en7523/openwrt ╰─$ iperf3 -c openwrt.lan -t15 -b1G -6 -R Connecting to host openwrt.lan, port 5201 Reverse mode, remote host openwrt.lan is sending [ 5] local fd0e:c4c:221b::a9c port 56670 connected to fd0e:c4c:221b::1 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 0.00 Bytes 0.00 bits/sec [ 5] 1.00-2.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 2.00-3.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 3.00-4.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 4.00-5.00 sec 128 KBytes 1.05 Mbits/sec [ 5] 5.00-6.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 6.00-7.00 sec 128 KBytes 1.05 Mbits/sec [ 5] 7.00-8.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 8.00-9.00 sec 128 KBytes 1.05 Mbits/sec [ 5] 9.00-10.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 10.00-11.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 11.00-12.00 sec 128 KBytes 1.05 Mbits/sec [ 5] 12.00-13.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 13.00-14.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 14.00-15.00 sec 128 KBytes 1.05 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-15.00 sec 3.00 MBytes 1.68 Mbits/sec 633 sender [ 5] 0.00-15.00 sec 2.88 MBytes 1.61 Mbits/sec receiver iperf Done. ╭─sirherobrine23@matheus-note ~/gitwork/airoha_en7523/openwrt ╰─$ iperf3 -c openwrt.lan -t15 -b1G -4 -R Connecting to host openwrt.lan, port 5201 Reverse mode, remote host openwrt.lan is sending [ 5] local 192.168.2.220 port 59020 connected to 192.168.2.1 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 0.00 Bytes 0.00 bits/sec [ 5] 1.00-2.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 2.00-3.00 sec 128 KBytes 1.05 Mbits/sec [ 5] 3.00-4.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 4.00-5.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 5.00-6.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 6.00-7.00 sec 128 KBytes 1.05 Mbits/sec [ 5] 7.00-8.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 8.00-9.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 9.00-10.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 10.00-11.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 11.00-12.00 sec 128 KBytes 1.05 Mbits/sec [ 5] 12.00-13.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 13.00-14.00 sec 256 KBytes 2.10 Mbits/sec [ 5] 14.00-15.00 sec 128 KBytes 1.05 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-15.00 sec 3.12 MBytes 1.75 Mbits/sec 651 sender [ 5] 0.00-15.00 sec 3.00 MBytes 1.68 Mbits/sec receiver iperf Done. ```
Owner

I confirm I get the same speeds as you.

I confirm I get the same speeds as you.
Author
Owner

Try disabling GDMP, this may restore the upload speed.

Try disabling `GDMP`, this may restore the upload speed.
Owner

But the code looked ok :( I'll have to debug more tomorrow.

But the code looked ok :( I'll have to debug more tomorrow.
Author
Owner

I'll test it with gdmp enabled and disabled

I'll test it with gdmp enabled and disabled
Owner

I am so sorry (cant understand it to me this amount of time to find this):

if (skb->len > 2048)
	goto error;

Get rid of that line and you should get ~200mbit tx.

All in all while the code works the complete patch needs to be reworked. I think the MT7530 patches are good to go. For Openwrt I think this type of patch is going to be accept.

Are you up for sending this code up stream?

Also phy irq support is missing. And the dtsi should be cleanup like the an7581.dtsi has been.

I am so sorry (cant understand it to me this amount of time to find this): if (skb->len > 2048) goto error; Get rid of that line and you should get ~200mbit tx. All in all while the code works the complete patch needs to be reworked. I think the MT7530 patches are good to go. For Openwrt I think this type of patch is going to be accept. Are you up for sending this code up stream? Also phy irq support is missing. And the dtsi should be cleanup like the an7581.dtsi has been.
Author
Owner

I already removed it, so I don't know what it could be

I already removed it, so I don't know what it could be
Author
Owner

see the pull request (#9)

see the pull request (#9)
Sirherobrine23 added this to the Ethernet milestone 2025-12-08 17:47:57 +00:00
Owner

This is how things are connected in the frame engine on the EN7523.

This is how things are connected in the frame engine on the EN7523.
Author
Owner

@merbanan, please clarify something for me, wasn't irq=POLL supposed to have been changed?

[    3.156104] mt7530-mmio 1fb58000.switch lan1 (uninitialized): PHY [mt7530-0:09] driver [Airoha EN7523 PHY] (irq=POLL)
[    3.167701] mt7530-mmio 1fb58000.switch lan2 (uninitialized): PHY [mt7530-0:0a] driver [Airoha EN7523 PHY] (irq=POLL)
[    3.179286] mt7530-mmio 1fb58000.switch lan3 (uninitialized): PHY [mt7530-0:0b] driver [Airoha EN7523 PHY] (irq=POLL)
[    3.190786] mt7530-mmio 1fb58000.switch wan (uninitialized): PHY [mt7530-0:0c] driver [Airoha EN7523 PHY] (irq=POLL)
@merbanan, please clarify something for me, wasn't `irq=POLL` supposed to have been changed? ``` [ 3.156104] mt7530-mmio 1fb58000.switch lan1 (uninitialized): PHY [mt7530-0:09] driver [Airoha EN7523 PHY] (irq=POLL) [ 3.167701] mt7530-mmio 1fb58000.switch lan2 (uninitialized): PHY [mt7530-0:0a] driver [Airoha EN7523 PHY] (irq=POLL) [ 3.179286] mt7530-mmio 1fb58000.switch lan3 (uninitialized): PHY [mt7530-0:0b] driver [Airoha EN7523 PHY] (irq=POLL) [ 3.190786] mt7530-mmio 1fb58000.switch wan (uninitialized): PHY [mt7530-0:0c] driver [Airoha EN7523 PHY] (irq=POLL) ```
Owner

Correct, something must be missing when resolving the irq path, I am guessing it is the MT7530/EN7523 integration code. I am still rebuilding my setup so I can not test yet.

Correct, something must be missing when resolving the irq path, I am guessing it is the MT7530/EN7523 integration code. I am still rebuilding my setup so I can not test yet.
Author
Owner

now re-enable NPU

[    2.362130] airoha-npu 1e900000.npu: L2C sram size: 0x00
[    2.367464] airoha-npu 1e900000.npu: FPGA Stage: fPGA (0)
[    2.479088] airoha-npu 1e900000.npu: v1 Boot cores
[C0]core freq at 333000000 Hz
[C0]timer_init: Timer clk is running at 32 Mhz
[C0]wcid_counter_init:0
[C0]wcid_counter_init:1
[C0][NPU] ba_node_init...
[C0]baNode_array_init
[C0]counter_init:2
[C0][NPU] queue_mutex_init...
[C0]qdma_init
[C1]core1_main
[C2]timer_isr  Store Value 1e903000, val[C2]core2_main
[C3]core3_main
[C3]do npu_enq_deq_init
[    2.888037] airoha-npu 1e900000.npu: Airoha NPU fw version: v0.1111 (0x457)
now re-enable NPU ``` [ 2.362130] airoha-npu 1e900000.npu: L2C sram size: 0x00 [ 2.367464] airoha-npu 1e900000.npu: FPGA Stage: fPGA (0) [ 2.479088] airoha-npu 1e900000.npu: v1 Boot cores [C0]core freq at 333000000 Hz [C0]timer_init: Timer clk is running at 32 Mhz [C0]wcid_counter_init:0 [C0]wcid_counter_init:1 [C0][NPU] ba_node_init... [C0]baNode_array_init [C0]counter_init:2 [C0][NPU] queue_mutex_init... [C0]qdma_init [C1]core1_main [C2]timer_isr Store Value 1e903000, val[C2]core2_main [C3]core3_main [C3]do npu_enq_deq_init [ 2.888037] airoha-npu 1e900000.npu: Airoha NPU fw version: v0.1111 (0x457) ```
Owner

[ 2.362130] airoha-npu 1e900000.npu: L2C sram size: 0x00

That looks wrong.

> [ 2.362130] airoha-npu 1e900000.npu: L2C sram size: 0x00 That looks wrong.
Author
Owner

NPU Enabled gettings my max speed in https://speed.cloudflare.com/

  • Download: 533 Mbps (i have 600mbps)
  • Upload: 433 Mbps (i have 500mbps)
NPU Enabled gettings my max speed in https://speed.cloudflare.com/ - Download: 533 Mbps (i have 600mbps) - Upload: 433 Mbps (i have 500mbps)
Owner

Well everything is passing via the cpu. NPU should not do anything.

Well everything is passing via the cpu. NPU should not do anything.
Author
Owner

[ 2.362130] airoha-npu 1e900000.npu: L2C sram size: 0x00

That looks wrong.

74e58d4a82/econet_public/arch/arm/mach-econet/ecnt_scu.c (L84)
74e58d4a82/econet_public/arch/arm/mach-econet/ecnt_scu.c (L1317)

// Get NPU SRAM Size
// CR_NP_SCU_SCREG_WR0 = 0x280
// get_np_scu_data(CR_NP_SCU_SCREG_WR0);
u32 l2c_sram_size;
regmap_read(npu->scu_regmap, 0x280, &l2c_sram_size);
dev_info(dev, "L2C sram size: 0x%02x\n", l2c_sram_size);

> > [ 2.362130] airoha-npu 1e900000.npu: L2C sram size: 0x00 > > That looks wrong. https://sirherobrine23.com.br/airoha_en7523/xPON/src/commit/74e58d4a82e27fb314fc69cbe711d6e2425694a9/econet_public/arch/arm/mach-econet/ecnt_scu.c#L84 https://sirherobrine23.com.br/airoha_en7523/xPON/src/commit/74e58d4a82e27fb314fc69cbe711d6e2425694a9/econet_public/arch/arm/mach-econet/ecnt_scu.c#L1317 https://sirherobrine23.com.br/airoha_en7523/kernel/src/commit/027086c25c8904b1741e0eecbd05f3be944c3184/drivers/net/ethernet/airoha/airoha_npu.c#L815-L820
Author
Owner

Well everything is passing via the cpu. NPU should not do anything.

I enabled hardware Flow offloading type. Before enabling it, I had 323Mbps Tx and Rx.

> Well everything is passing via the cpu. NPU should not do anything. I enabled hardware Flow offloading type. Before enabling it, I had 323Mbps Tx and Rx.
Author
Owner

These are speed tests I ran on speed.cloudflare.com

  1. 500Mbps download, 390Mbps upload: offloading hardware enabled, ethernet
  2. 351Mbps download, 331Mbps upload: offloading hardware disabled, ethernet
  3. 502Mbps download, 282Mbps upload: offloading hardware disabled, wireless
  4. 577Mbps download, 306Mbps upload: offloading hardware enabled, wireless

if I'm not mistaken, the NPU handles part of the network traffic on the switch and wireless (tx ring)

These are speed tests I ran on speed.cloudflare.com 1. 500Mbps download, 390Mbps upload: offloading hardware enabled, ethernet 2. 351Mbps download, 331Mbps upload: offloading hardware disabled, ethernet 3. 502Mbps download, 282Mbps upload: offloading hardware disabled, wireless 4. 577Mbps download, 306Mbps upload: offloading hardware enabled, wireless if I'm not mistaken, the NPU handles part of the network traffic on the switch and wireless (tx ring)
Owner

Check the cpu while doing an iperf test through the device. I am quite sure the NPUs are not involved at all.

Check the cpu while doing an iperf test through the device. I am quite sure the NPUs are not involved at all.
Author
Owner

Check the cpu while doing an iperf test through the device. I am quite sure the NPUs are not involved at all.

You're right, but CPU usage has dropped significantly; it used to be 20-27%, and now it's around 16-22%

> Check the cpu while doing an iperf test through the device. I am quite sure the NPUs are not involved at all. You're right, but CPU usage has dropped significantly; it used to be 20-27%, and now it's around 16-22%
Owner

Well it seems the hw off-load (eth) is working then. I need to write the tools so we can look at the active ppe rules.

Well it seems the hw off-load (eth) is working then. I need to write the tools so we can look at the active ppe rules.
Owner

And wifi tx off-load is still within reach.

And wifi tx off-load is still within reach.
Author
Owner

I'm having problems with the NPU again. The whole system freezes after the interface starts up. If I disable it, it works normally again, but without the NPU and hardware offloading disabled and with the total speed reduced

[   24.371993] mt7530-mmio 1fb58000.switch lan1: configuring for phy/internal link mode
[   24.389733] br-lan: port 1(lan1) entered blocking state
[   24.395011] br-lan: port 1(lan1) entered disabled state
[   24.400403] mt7530-mmio 1fb58000.switch lan1: entered allmulticast mode
[   24.407058] airoha_eth 1fb50000.ethernet eth0: entered allmulticast mode
[   24.414265] mt7530-mmio 1fb58000.switch lan1: entered promiscuous mode
[   24.424618] mt7530-mmio 1fb58000.switch lan2: configuring for phy/internal link mode
[   24.433492] br-lan: port 2(lan2) entered blocking state
[   24.438763] br-lan: port 2(lan2) entered disabled state
[   24.444162] mt7530-mmio 1fb58000.switch lan2: entered allmulticast mode
[   24.451191] mt7530-mmio 1fb58000.switch lan2: entered promiscuous mode
[   24.462243] mt7530-mmio 1fb58000.switch lan3: configuring for phy/internal link mode
[   24.471100] br-lan: port 3(lan3) entered blocking state
[   24.476375] br-lan: port 3(lan3) entered disabled state
[   24.481749] mt7530-mmio 1fb58000.switch lan3: entered allmulticast mode
[   24.488725] mt7530-mmio 1fb58000.switch lan3: entered promiscuous mode
[   24.537527] mt7530-mmio 1fb58000.switch wan: configuring for phy/internal link mode


I'm having problems with the NPU again. The whole system freezes after the interface starts up. If I disable it, it works normally again, but without the NPU and hardware offloading disabled and with the total speed reduced ``` [ 24.371993] mt7530-mmio 1fb58000.switch lan1: configuring for phy/internal link mode [ 24.389733] br-lan: port 1(lan1) entered blocking state [ 24.395011] br-lan: port 1(lan1) entered disabled state [ 24.400403] mt7530-mmio 1fb58000.switch lan1: entered allmulticast mode [ 24.407058] airoha_eth 1fb50000.ethernet eth0: entered allmulticast mode [ 24.414265] mt7530-mmio 1fb58000.switch lan1: entered promiscuous mode [ 24.424618] mt7530-mmio 1fb58000.switch lan2: configuring for phy/internal link mode [ 24.433492] br-lan: port 2(lan2) entered blocking state [ 24.438763] br-lan: port 2(lan2) entered disabled state [ 24.444162] mt7530-mmio 1fb58000.switch lan2: entered allmulticast mode [ 24.451191] mt7530-mmio 1fb58000.switch lan2: entered promiscuous mode [ 24.462243] mt7530-mmio 1fb58000.switch lan3: configuring for phy/internal link mode [ 24.471100] br-lan: port 3(lan3) entered blocking state [ 24.476375] br-lan: port 3(lan3) entered disabled state [ 24.481749] mt7530-mmio 1fb58000.switch lan3: entered allmulticast mode [ 24.488725] mt7530-mmio 1fb58000.switch lan3: entered promiscuous mode [ 24.537527] mt7530-mmio 1fb58000.switch wan: configuring for phy/internal link mode ```
Owner

Well what happens if you only disable the NPU? I think the memory that the npu cores touch is not properly reserved from the os.

Well what happens if you only disable the NPU? I think the memory that the npu cores touch is not properly reserved from the os.
Author
Owner

If I disable it, the whole system works normally, without system freezing

If I disable it, the whole system works normally, without system freezing
Owner

Yeah, can you test loading the driver but not starting the cores? I think they simply corrupt the kernel internal structures or act on non zeroed buffer memory.

It is very hard to figure out what the issue is in this case. If you are able to find gpio 8/9 you should be able to enable the npu uart mux and see if there is any output from the npu driver. But this is all hard problems. I do have a ref board where I should be able to connect this but I dont see a path forward where this issue is getting fixed by being able to observe the npu uart.

The best way forward imo is to disable the npu for now and focus on the WED implementation. The MT7622 support should be possible to port to the en7523 code.

Yeah, can you test loading the driver but not starting the cores? I think they simply corrupt the kernel internal structures or act on non zeroed buffer memory. It is very hard to figure out what the issue is in this case. If you are able to find gpio 8/9 you should be able to enable the npu uart mux and see if there is any output from the npu driver. But this is all hard problems. I do have a ref board where I should be able to connect this but I dont see a path forward where this issue is getting fixed by being able to observe the npu uart. The best way forward imo is to disable the npu for now and focus on the WED implementation. The MT7622 support should be possible to port to the en7523 code.
Author
Owner
Owner

Make sure you power cycle the device. The wifi driver npu support might need disabling also.

Make sure you power cycle the device. The wifi driver npu support might need disabling also.
Author
Owner

Make sure you power cycle the device. The wifi driver npu support might need disabling also.

The mt7915 not have NPU and wed currently in OpenWRT builds, only mt7996

> Make sure you power cycle the device. The wifi driver npu support might need disabling also. The mt7915 not have NPU and wed currently in OpenWRT builds, only mt7996
Author
Owner

Yeah, can you test loading the driver but not starting the cores

I disabled core boot and had no problem with the NPU, boot log:

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.12.63 (sirherobrine23@matheus-note) (arm-openwrt-linux-muslgnueabi-gcc (OpenWrt GCC 14.3.0 r32493-8d680de76a) 14.3.0, GNU ld (GNU Binutils) 2.44) #0 SMP Fri Jan  9 13:48:45 2026
[    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: TP-Link xx230v
[    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[    0.000000] earlycon: ns16550 at MMIO32 0x1fbf0000 (options '115200n8')
[    0.000000] printk: legacy bootconsole [ns16550] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] OF: reserved mem: Reserved memory: failed to reserve memory for node 'npu_binary@84000000': base 0x84000000, size 1 MiB
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000080200000-0x000000008fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080200000-0x0000000086ffffff]
[    0.000000]   node   0: [mem 0x0000000087000000-0x0000000089ffffff]
[    0.000000]   node   0: [mem 0x000000008a000000-0x000000008fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000008fffffff]
[    0.000000] On node 0, zone Normal: 512 pages in unavailable ranges
[    0.000000] OF: reserved mem: 0x84000000..0x840fffff (1024 KiB) nomap non-reusable npu_binary@84000000
[    0.000000] OF: reserved mem: 0x87000000..0x88ffffff (32768 KiB) nomap non-reusable qdma0-buf@87000000
[    0.000000] OF: reserved mem: 0x89000000..0x89ffffff (16384 KiB) nomap non-reusable qdma1-buf@89000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 14 pages/cpu s24780 r8192 d24372 u57344
[    0.000000] Kernel command line: console=ttyS0,115200 earlycon
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 65024
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=2.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GICv3: 256 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: GICv3 features: 16 PPIs
[    0.000000] GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=0
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x09080000
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 timer(s) running at 25.00MHz (virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns
[    0.000001] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns
[    0.008800] Switching to timer-based delay loop, resolution 40ns
[    0.015569] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=250000)
[    0.026957] CPU: Testing write buffer coherency: ok
[    0.032340] pid_max: default: 32768 minimum: 301
[    0.045205] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.053255] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.065187] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.072495] Setting up static identity map for 0x80300000 - 0x80300060
[    0.079867] rcu: Hierarchical SRCU implementation.
[    0.085135] rcu:     Max phase no-delay instances is 1000.
[    0.091176] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
[    0.100398] smp: Bringing up secondary CPUs ...
[    0.120495] GICv3: CPU1: found redistributor 1 region 0:0x090a0000
[    0.120550] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.120693] smp: Brought up 1 node, 2 CPUs
[    0.138199] SMP: Total of 2 processors activated (100.00 BogoMIPS).
[    0.145100] CPU: All CPU(s) started in SVC mode.
[    0.150643] Memory: 141104K/260096K available (7784K kernel code, 600K rwdata, 2032K rodata, 55296K init, 221K bss, 118236K reserved, 0K cma-reserved)
[    0.169732] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.180609] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.192027] pinctrl core: initialized pinctrl subsystem
[    0.199805] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.206609] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.214964] thermal_sys: Registered thermal governor 'step_wise'
[    0.215048] cpuidle: using governor menu
[    0.226940] debugfs: Directory '1fa20000.system-controller' with parent 'regmap' already present!
[    0.237784] /pcie@1fa91000: Fixed dependency cycle(s) with /pcie@1fa91000/interrupt-controller
[    0.247712] /pcie@1fa92000: Fixed dependency cycle(s) with /pcie@1fa92000/interrupt-controller
[    0.269171] SCSI subsystem initialized
[    0.273551] usbcore: registered new interface driver usbfs
[    0.279653] usbcore: registered new interface driver hub
[    0.285561] usbcore: registered new device driver usb
[    0.291298] Advanced Linux Sound Architecture Driver Initialized.
[    0.299220] clocksource: Switched to clocksource arch_sys_counter
[    0.312921] NET: Registered PF_INET protocol family
[    0.318425] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.327070] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.336313] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.344852] TCP established hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.353303] TCP bind hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.361202] TCP: Hash tables configured (established 2048 bind 2048)
[    0.368625] MPTCP token hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.376858] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.384069] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.392222] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.398481] PCI: CLS 0 bytes, default 64
[    0.409404] workingset: timestamp_bits=14 max_order=16 bucket_order=2
[    0.419023] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.425552] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.445396] mtk-pcie 1fa91000.pcie: host bridge /pcie@1fa91000 ranges:
[    0.452746] mtk-pcie 1fa91000.pcie:      MEM 0x0020000000..0x0021ffffff -> 0x0020000000
[    1.059233] mtk-pcie 1fa91000.pcie: Port0 link down
[    1.064910] mtk-pcie 1fa91000.pcie: PCI host bridge to bus 0000:00
[    1.071772] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.077804] pci_bus 0000:00: root bus resource [mem 0x20000000-0x21ffffff]
[    1.086429] PCI: bus0: Fast back to back transfers enabled
[    1.092495] pci_bus 0000:00: resource 4 [mem 0x20000000-0x21ffffff]
[    1.099703] mtk-pcie 1fa92000.pcie: host bridge /pcie@1fa92000 ranges:
[    1.106903] mtk-pcie 1fa92000.pcie:      MEM 0x0022000000..0x0023ffffff -> 0x0022000000
[    1.637685] mtk-pcie 1fa92000.pcie: PCI host bridge to bus 0001:00
[    1.644528] pci_bus 0001:00: root bus resource [bus 00-ff]
[    1.650591] pci_bus 0001:00: root bus resource [mem 0x22000000-0x23ffffff]
[    1.658490] pci 0001:00:01.0: [14c3:0811] type 01 class 0x060400 PCIe Root Port
[    1.666733] pci 0001:00:01.0: BAR 0: can't handle BAR larger than 4GB (size 0x200000000)
[    1.675639] pci 0001:00:01.0: BAR 0 [mem size 0x00000001 64bit pref disabled]
[    1.683563] pci 0001:00:01.0: PCI bridge to [bus 00]
[    1.689083] pci 0001:00:01.0:   bridge window [mem 0x00000000-0x000fffff]
[    1.698816] PCI: bus0: Fast back to back transfers disabled
[    1.704999] pci 0001:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    1.714500] pci 0001:01:00.0: [14c3:7915] type 00 class 0x000280 PCIe Endpoint
[    1.722657] pci 0001:01:00.0: BAR 0 [mem 0x00000000-0x000fffff 64bit pref]
[    1.730343] pci 0001:01:00.0: BAR 2 [mem 0x00000000-0x00003fff 64bit pref]
[    1.737997] pci 0001:01:00.0: BAR 4 [mem 0x00000000-0x00000fff 64bit pref]
[    1.746267] pci 0001:01:00.0: supports D1 D2
[    1.750962] pci 0001:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.758572] pci 0001:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0001:00:01.0 (capable of 4.000 Gb/s with 5.0 GT/s PCIe x1 link)
[    1.775628] PCI: bus1: Fast back to back transfers disabled
[    1.781798] pci_bus 0001:01: busn_res: [bus 01-ff] end is updated to 01
[    1.789132] pci 0001:00:01.0: bridge window [mem 0x22000000-0x221fffff]: assigned
[    1.797377] pci 0001:00:01.0: BAR 0 [mem 0x22200000 64bit pref disabled]: assigned
[    1.805767] pci 0001:00:01.0: BAR 0: error updating (0x2220000c != 0x0000000c)
[    1.813754] pci 0001:01:00.0: BAR 0 [mem 0x22000000-0x220fffff 64bit pref]: assigned
[    1.822353] pci 0001:01:00.0: BAR 2 [mem 0x22100000-0x22103fff 64bit pref]: assigned
[    1.830955] pci 0001:01:00.0: BAR 4 [mem 0x22104000-0x22104fff 64bit pref]: assigned
[    1.839556] pci 0001:00:01.0: PCI bridge to [bus 01]
[    1.845040] pci 0001:00:01.0:   bridge window [mem 0x22000000-0x221fffff]
[    1.852579] pci_bus 0001:00: resource 4 [mem 0x22000000-0x23ffffff]
[    1.859477] pci_bus 0001:01: resource 1 [mem 0x22000000-0x221fffff]
[    1.866621] pcieport 0001:00:01.0: enabling device (0140 -> 0142)
[    1.874162] pcieport 0001:00:01.0: PME: Signaling with IRQ 31
[    1.882086] airoha_hsdma 1fa01800.hsdma: Airoha HSDMA driver registered
[    1.889885] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    1.897887] printk: legacy console [ttyS0] disabled
[    1.903776] 1fbf0000.serial: ttyS0 at MMIO 0x1fbf0000 (irq = 33, base_baud = 115200) is a 16550
[    1.913431] printk: legacy console [ttyS0] enabled
[    1.913431] printk: legacy console [ttyS0] enabled
[    1.923510] printk: legacy bootconsole [ns16550] disabled
[    1.923510] printk: legacy bootconsole [ns16550] disabled
[    1.937271] spi-nand spi0.0: ESMT SPI NAND was found.
[    1.942414] spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
[    1.958243] 6 fixed-partitions partitions found on MTD device spi0.0
[    1.964666] Creating 6 MTD partitions on "spi0.0":
[    1.969509] 0x000000000000-0x000000080000 : "bootloader"
[    1.976835] 0x000000080000-0x000000120000 : "romfile"
[    1.983917] 0x0000000a0000-0x000000240000 : "misc"
[    1.992641] 0x0000001a0000-0x0000011a0000 : "kernel"
[    2.031184] 0x0000011a0000-0x000006000000 : "rootfs"
[    2.204545] mtd: setting mtd4 (rootfs) as root device
[    2.210010] mtdsplit: no squashfs found in "rootfs"
[    2.214928] 0x000003fe0000-0x000007fe0000 : "reserved_bmt"
[    2.383476] airoha-npu 1e900000.npu: L2C sram size: 0x00
[    2.388810] airoha-npu 1e900000.npu: FPGA Stage: 1
[    2.513768] airoha-usb-phy 1fad0000.phy: Frequency not detected, using default SR calibration.
[    2.526968] xhci-mtk 1fab0000.usb: xHCI Host Controller
[    2.532245] xhci-mtk 1fab0000.usb: new USB bus registered, assigned bus number 1
[    2.543609] xhci-mtk 1fab0000.usb: hcc params 0x01400f98 hci version 0x110 quirks 0x0000000000200010
[    2.552900] xhci-mtk 1fab0000.usb: irq 45, io mem 0x1fab0000
[    2.558728] xhci-mtk 1fab0000.usb: xHCI Host Controller
[    2.563997] xhci-mtk 1fab0000.usb: new USB bus registered, assigned bus number 2
[    2.571423] xhci-mtk 1fab0000.usb: Host supports USB 3.2 Enhanced SuperSpeed
[    2.579329] hub 1-0:1.0: USB hub found
[    2.583270] hub 1-0:1.0: 2 ports detected
[    2.588107] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    2.596996] hub 2-0:1.0: USB hub found
[    2.600867] hub 2-0:1.0: 1 port detected
[    2.605672] i2c-mt7621 1fbf8000.i2c0: clock 100 kHz
[    2.611005] airoha-thermal 1efbd000.thermal-sensor: EN7523: IC  calibrated (pdid:3, pkg:3)
[    2.619316] airoha-thermal 1efbd000.thermal-sensor: EN7523: Init check code_30:32008, Slope:1750
[    2.640598] en7523-audio 1fbe2200.audio-controller: mtk_afe_combine_sub_dai(), num of dai 2
[    2.649527] debugfs: Directory '1fbe2200.audio-controller' with parent 'en7523-i2s' already present!
[    2.660515] NET: Registered PF_INET6 protocol family
[    2.667299] Segment Routing with IPv6
[    2.671100] In-situ OAM (IOAM) with IPv6
[    2.675128] NET: Registered PF_PACKET protocol family
[    2.680505] 8021q: 802.1Q VLAN Support v1.8
[    2.684822] Registering SWP/SWPB emulation handler
[    2.756042] mt7530-mmio 1fb58000.switch: configuring for fixed/internal link mode
[    2.763790] mt7530-mmio 1fb58000.switch lan1 (uninitialized): PHY [mt7530-0:09] driver [Airoha EN7523 PHY] (irq=POLL)
[    2.775387] mt7530-mmio 1fb58000.switch lan2 (uninitialized): PHY [mt7530-0:0a] driver [Airoha EN7523 PHY] (irq=POLL)
[    2.786899] mt7530-mmio 1fb58000.switch lan3 (uninitialized): PHY [mt7530-0:0b] driver [Airoha EN7523 PHY] (irq=POLL)
[    2.798422] mt7530-mmio 1fb58000.switch wan (uninitialized): PHY [mt7530-0:0c] driver [Airoha EN7523 PHY] (irq=POLL)
[    2.809927] airoha_eth 1fb50000.ethernet eth0: entered promiscuous mode
[    2.816607] DSA: tree 0 setup
[    2.820027] mt7530-mmio 1fb58000.switch: Link is Up - 10Gbps/Full - flow control rx/tx
[    2.828847] clk: Disabling unused clocks
[    2.832860] PM: genpd: Disabling unused power domains
[    2.837925] ALSA device list:
[    2.840931]   #0: en7523-i2s
[    2.899851] Freeing unused kernel image (initmem) memory: 55296K
[    2.906172] Run /init as init process
[    3.543068] init: Console is alive
[    3.546707] init: - watchdog -
[    3.558489] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    3.567244] gpio_button_hotplug: loading out-of-tree module taints kernel.
[    3.587995] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    3.602404] init: - preinit -
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[    4.971642] random: procd: uninitialized urandom read (4 bytes read)
[    4.975199] procd: - early -
[    4.981176] procd: - watchdog -
[    5.521375] procd: - watchdog -
[    5.524746] procd: - ubus -
[    7.209219] random: crng init done
[    7.217454] procd: - init -
Please press Enter to activate this console.
[    7.475970] kmodloader: loading kernel modules from /etc/modules.d/*
[    7.728917] i2c_dev: i2c /dev entries driver
[    7.736104] Loading modules backported from Linux version v6.18-0-g7d0a66e4b
[    7.743234] Backport generated by backports.git 4d44cef
[    7.814378] mt7915e 0001:01:00.0: enabling device (0140 -> 0142)
[    7.969963] mt7915e 0001:01:00.0: HW/SW Version: 0x8a108a10, Build Time: 20240429200716a
[    7.969963] 
[    7.997317] mt7915e 0001:01:00.0: WM Firmware Version: ____000000, Build Time: 20240429200752
[    8.033290] mt7915e 0001:01:00.0: WA Firmware Version: DEV_000000, Build Time: 20240429200812
[    8.073746] urngd: v1.0.2 started.
[    8.170517] mt7915e 0001:01:00.0: registering led 'mt76-phy0'
[    8.263299] mt7915e 0001:01:00.0: registering led 'mt76-phy1'
[    8.411239] PPP generic driver version 2.4.2
[    8.420503] NET: Registered PF_PPPOX protocol family
[    8.443135] kmodloader: done loading kernel modules from /etc/modules.d/*
[   39.617211] mt7530-mmio 1fb58000.switch lan1: configuring for phy/internal link mode
[   39.626820] br-lan: port 1(lan1) entered blocking state
[   39.632190] br-lan: port 1(lan1) entered disabled state
[   39.637511] mt7530-mmio 1fb58000.switch lan1: entered allmulticast mode
[   39.644251] airoha_eth 1fb50000.ethernet eth0: entered allmulticast mode
[   39.651385] mt7530-mmio 1fb58000.switch lan1: entered promiscuous mode
[   39.663564] mt7530-mmio 1fb58000.switch lan2: configuring for phy/internal link mode
[   39.677963] br-lan: port 2(lan2) entered blocking state
[   39.683352] br-lan: port 2(lan2) entered disabled state
[   39.688675] mt7530-mmio 1fb58000.switch lan2: entered allmulticast mode
[   39.695717] mt7530-mmio 1fb58000.switch lan2: entered promiscuous mode
[   39.708557] mt7530-mmio 1fb58000.switch lan3: configuring for phy/internal link mode
[   39.720983] br-lan: port 3(lan3) entered blocking state
[   39.726257] br-lan: port 3(lan3) entered disabled state
[   39.731641] mt7530-mmio 1fb58000.switch lan3: entered allmulticast mode
[   39.738715] mt7530-mmio 1fb58000.switch lan3: entered promiscuous mode
[   39.791329] mt7530-mmio 1fb58000.switch wan: configuring for phy/internal link mode
[   40.205427] br-lan: port 4(phy0-ap0) entered blocking state
[   40.211137] br-lan: port 4(phy0-ap0) entered disabled state
[   40.216826] mt7915e 0001:01:00.0 phy0-ap0: entered allmulticast mode
[   40.223505] mt7915e 0001:01:00.0 phy0-ap0: entered promiscuous mode
[   40.263761] mt7915e 0001:01:00.0 phy0-ap0: left allmulticast mode
[   40.270027] mt7915e 0001:01:00.0 phy0-ap0: left promiscuous mode
[   40.276219] br-lan: port 4(phy0-ap0) entered disabled state
[   40.362195] br-lan: port 4(phy0-ap0) entered blocking state
[   40.367816] br-lan: port 4(phy0-ap0) entered disabled state
[   40.373571] mt7915e 0001:01:00.0 phy0-ap0: entered allmulticast mode
[   40.380277] mt7915e 0001:01:00.0 phy0-ap0: entered promiscuous mode
[   40.730211] br-lan: port 5(phy1-ap0) entered blocking state
[   40.735856] br-lan: port 5(phy1-ap0) entered disabled state
[   40.741568] mt7915e 0001:01:00.0 phy1-ap0: entered allmulticast mode
[   40.748178] mt7915e 0001:01:00.0 phy1-ap0: entered promiscuous mode
[   40.804125] br-lan: port 5(phy1-ap0) entered blocking state
[   40.809770] br-lan: port 5(phy1-ap0) entered forwarding state
[   40.816691] mt7915e 0001:01:00.0 phy1-ap0: left allmulticast mode
[   40.822945] mt7915e 0001:01:00.0 phy1-ap0: left promiscuous mode
[   40.829111] br-lan: port 5(phy1-ap0) entered disabled state
[   40.883186] br-lan: port 5(phy1-ap0) entered blocking state
[   40.888823] br-lan: port 5(phy1-ap0) entered disabled state
[   40.894565] mt7915e 0001:01:00.0 phy1-ap0: entered allmulticast mode
[   40.901299] mt7915e 0001:01:00.0 phy1-ap0: entered promiscuous mode
[   43.760947] mt7530-mmio 1fb58000.switch lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[   43.769366] br-lan: port 1(lan1) entered blocking state
[   43.774619] br-lan: port 1(lan1) entered forwarding state
[   44.277736] br-lan: port 5(phy1-ap0) entered blocking state
[   44.283388] br-lan: port 5(phy1-ap0) entered forwarding state
[   48.072291] br-lan: port 4(phy0-ap0) entered blocking state
[   48.077916] br-lan: port 4(phy0-ap0) entered forwarding state
[   87.680644] mt7530-mmio 1fb58000.switch wan: Link is Up - 1Gbps/Full - flow control rx
[   93.680115] mt7530-mmio 1fb58000.switch lan1: Link is Down
[   93.685864] br-lan: port 1(lan1) entered disabled state
[   96.800818] mt7530-mmio 1fb58000.switch lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[   96.801129] br-lan: port 1(lan1) entered blocking state
[   96.814392] br-lan: port 1(lan1) entered forwarding state
> Yeah, can you test loading the driver but not starting the cores I disabled core boot and had no problem with the NPU, boot log: ``` [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 6.12.63 (sirherobrine23@matheus-note) (arm-openwrt-linux-muslgnueabi-gcc (OpenWrt GCC 14.3.0 r32493-8d680de76a) 14.3.0, GNU ld (GNU Binutils) 2.44) #0 SMP Fri Jan 9 13:48:45 2026 [ 0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d [ 0.000000] CPU: div instructions available: patching division code [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] OF: fdt: Machine model: TP-Link xx230v [ 0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000 [ 0.000000] earlycon: ns16550 at MMIO32 0x1fbf0000 (options '115200n8') [ 0.000000] printk: legacy bootconsole [ns16550] enabled [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] OF: reserved mem: Reserved memory: failed to reserve memory for node 'npu_binary@84000000': base 0x84000000, size 1 MiB [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000080200000-0x000000008fffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000080200000-0x0000000086ffffff] [ 0.000000] node 0: [mem 0x0000000087000000-0x0000000089ffffff] [ 0.000000] node 0: [mem 0x000000008a000000-0x000000008fffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000008fffffff] [ 0.000000] On node 0, zone Normal: 512 pages in unavailable ranges [ 0.000000] OF: reserved mem: 0x84000000..0x840fffff (1024 KiB) nomap non-reusable npu_binary@84000000 [ 0.000000] OF: reserved mem: 0x87000000..0x88ffffff (32768 KiB) nomap non-reusable qdma0-buf@87000000 [ 0.000000] OF: reserved mem: 0x89000000..0x89ffffff (16384 KiB) nomap non-reusable qdma1-buf@89000000 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. [ 0.000000] psci: SMC Calling Convention v1.1 [ 0.000000] percpu: Embedded 14 pages/cpu s24780 r8192 d24372 u57344 [ 0.000000] Kernel command line: console=ttyS0,115200 earlycon [ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes, linear) [ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes, linear) [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 65024 [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 [ 0.000000] rcu: Hierarchical RCU implementation. [ 0.000000] Tracing variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. [ 0.000000] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=2. [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [ 0.000000] GICv3: 256 SPIs implemented [ 0.000000] GICv3: 0 Extended SPIs implemented [ 0.000000] GICv3: GICv3 features: 16 PPIs [ 0.000000] GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=0 [ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x09080000 [ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention. [ 0.000000] arch_timer: cp15 timer(s) running at 25.00MHz (virt). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns [ 0.000001] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns [ 0.008800] Switching to timer-based delay loop, resolution 40ns [ 0.015569] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=250000) [ 0.026957] CPU: Testing write buffer coherency: ok [ 0.032340] pid_max: default: 32768 minimum: 301 [ 0.045205] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.053255] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.065187] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [ 0.072495] Setting up static identity map for 0x80300000 - 0x80300060 [ 0.079867] rcu: Hierarchical SRCU implementation. [ 0.085135] rcu: Max phase no-delay instances is 1000. [ 0.091176] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level [ 0.100398] smp: Bringing up secondary CPUs ... [ 0.120495] GICv3: CPU1: found redistributor 1 region 0:0x090a0000 [ 0.120550] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [ 0.120693] smp: Brought up 1 node, 2 CPUs [ 0.138199] SMP: Total of 2 processors activated (100.00 BogoMIPS). [ 0.145100] CPU: All CPU(s) started in SVC mode. [ 0.150643] Memory: 141104K/260096K available (7784K kernel code, 600K rwdata, 2032K rodata, 55296K init, 221K bss, 118236K reserved, 0K cma-reserved) [ 0.169732] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.180609] futex hash table entries: 512 (order: 3, 32768 bytes, linear) [ 0.192027] pinctrl core: initialized pinctrl subsystem [ 0.199805] NET: Registered PF_NETLINK/PF_ROUTE protocol family [ 0.206609] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.214964] thermal_sys: Registered thermal governor 'step_wise' [ 0.215048] cpuidle: using governor menu [ 0.226940] debugfs: Directory '1fa20000.system-controller' with parent 'regmap' already present! [ 0.237784] /pcie@1fa91000: Fixed dependency cycle(s) with /pcie@1fa91000/interrupt-controller [ 0.247712] /pcie@1fa92000: Fixed dependency cycle(s) with /pcie@1fa92000/interrupt-controller [ 0.269171] SCSI subsystem initialized [ 0.273551] usbcore: registered new interface driver usbfs [ 0.279653] usbcore: registered new interface driver hub [ 0.285561] usbcore: registered new device driver usb [ 0.291298] Advanced Linux Sound Architecture Driver Initialized. [ 0.299220] clocksource: Switched to clocksource arch_sys_counter [ 0.312921] NET: Registered PF_INET protocol family [ 0.318425] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear) [ 0.327070] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear) [ 0.336313] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) [ 0.344852] TCP established hash table entries: 2048 (order: 1, 8192 bytes, linear) [ 0.353303] TCP bind hash table entries: 2048 (order: 3, 32768 bytes, linear) [ 0.361202] TCP: Hash tables configured (established 2048 bind 2048) [ 0.368625] MPTCP token hash table entries: 256 (order: 0, 4096 bytes, linear) [ 0.376858] UDP hash table entries: 256 (order: 1, 8192 bytes, linear) [ 0.384069] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear) [ 0.392222] NET: Registered PF_UNIX/PF_LOCAL protocol family [ 0.398481] PCI: CLS 0 bytes, default 64 [ 0.409404] workingset: timestamp_bits=14 max_order=16 bucket_order=2 [ 0.419023] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.425552] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.445396] mtk-pcie 1fa91000.pcie: host bridge /pcie@1fa91000 ranges: [ 0.452746] mtk-pcie 1fa91000.pcie: MEM 0x0020000000..0x0021ffffff -> 0x0020000000 [ 1.059233] mtk-pcie 1fa91000.pcie: Port0 link down [ 1.064910] mtk-pcie 1fa91000.pcie: PCI host bridge to bus 0000:00 [ 1.071772] pci_bus 0000:00: root bus resource [bus 00-ff] [ 1.077804] pci_bus 0000:00: root bus resource [mem 0x20000000-0x21ffffff] [ 1.086429] PCI: bus0: Fast back to back transfers enabled [ 1.092495] pci_bus 0000:00: resource 4 [mem 0x20000000-0x21ffffff] [ 1.099703] mtk-pcie 1fa92000.pcie: host bridge /pcie@1fa92000 ranges: [ 1.106903] mtk-pcie 1fa92000.pcie: MEM 0x0022000000..0x0023ffffff -> 0x0022000000 [ 1.637685] mtk-pcie 1fa92000.pcie: PCI host bridge to bus 0001:00 [ 1.644528] pci_bus 0001:00: root bus resource [bus 00-ff] [ 1.650591] pci_bus 0001:00: root bus resource [mem 0x22000000-0x23ffffff] [ 1.658490] pci 0001:00:01.0: [14c3:0811] type 01 class 0x060400 PCIe Root Port [ 1.666733] pci 0001:00:01.0: BAR 0: can't handle BAR larger than 4GB (size 0x200000000) [ 1.675639] pci 0001:00:01.0: BAR 0 [mem size 0x00000001 64bit pref disabled] [ 1.683563] pci 0001:00:01.0: PCI bridge to [bus 00] [ 1.689083] pci 0001:00:01.0: bridge window [mem 0x00000000-0x000fffff] [ 1.698816] PCI: bus0: Fast back to back transfers disabled [ 1.704999] pci 0001:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring [ 1.714500] pci 0001:01:00.0: [14c3:7915] type 00 class 0x000280 PCIe Endpoint [ 1.722657] pci 0001:01:00.0: BAR 0 [mem 0x00000000-0x000fffff 64bit pref] [ 1.730343] pci 0001:01:00.0: BAR 2 [mem 0x00000000-0x00003fff 64bit pref] [ 1.737997] pci 0001:01:00.0: BAR 4 [mem 0x00000000-0x00000fff 64bit pref] [ 1.746267] pci 0001:01:00.0: supports D1 D2 [ 1.750962] pci 0001:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold [ 1.758572] pci 0001:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0001:00:01.0 (capable of 4.000 Gb/s with 5.0 GT/s PCIe x1 link) [ 1.775628] PCI: bus1: Fast back to back transfers disabled [ 1.781798] pci_bus 0001:01: busn_res: [bus 01-ff] end is updated to 01 [ 1.789132] pci 0001:00:01.0: bridge window [mem 0x22000000-0x221fffff]: assigned [ 1.797377] pci 0001:00:01.0: BAR 0 [mem 0x22200000 64bit pref disabled]: assigned [ 1.805767] pci 0001:00:01.0: BAR 0: error updating (0x2220000c != 0x0000000c) [ 1.813754] pci 0001:01:00.0: BAR 0 [mem 0x22000000-0x220fffff 64bit pref]: assigned [ 1.822353] pci 0001:01:00.0: BAR 2 [mem 0x22100000-0x22103fff 64bit pref]: assigned [ 1.830955] pci 0001:01:00.0: BAR 4 [mem 0x22104000-0x22104fff 64bit pref]: assigned [ 1.839556] pci 0001:00:01.0: PCI bridge to [bus 01] [ 1.845040] pci 0001:00:01.0: bridge window [mem 0x22000000-0x221fffff] [ 1.852579] pci_bus 0001:00: resource 4 [mem 0x22000000-0x23ffffff] [ 1.859477] pci_bus 0001:01: resource 1 [mem 0x22000000-0x221fffff] [ 1.866621] pcieport 0001:00:01.0: enabling device (0140 -> 0142) [ 1.874162] pcieport 0001:00:01.0: PME: Signaling with IRQ 31 [ 1.882086] airoha_hsdma 1fa01800.hsdma: Airoha HSDMA driver registered [ 1.889885] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled [ 1.897887] printk: legacy console [ttyS0] disabled [ 1.903776] 1fbf0000.serial: ttyS0 at MMIO 0x1fbf0000 (irq = 33, base_baud = 115200) is a 16550 [ 1.913431] printk: legacy console [ttyS0] enabled [ 1.913431] printk: legacy console [ttyS0] enabled [ 1.923510] printk: legacy bootconsole [ns16550] disabled [ 1.923510] printk: legacy bootconsole [ns16550] disabled [ 1.937271] spi-nand spi0.0: ESMT SPI NAND was found. [ 1.942414] spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64 [ 1.958243] 6 fixed-partitions partitions found on MTD device spi0.0 [ 1.964666] Creating 6 MTD partitions on "spi0.0": [ 1.969509] 0x000000000000-0x000000080000 : "bootloader" [ 1.976835] 0x000000080000-0x000000120000 : "romfile" [ 1.983917] 0x0000000a0000-0x000000240000 : "misc" [ 1.992641] 0x0000001a0000-0x0000011a0000 : "kernel" [ 2.031184] 0x0000011a0000-0x000006000000 : "rootfs" [ 2.204545] mtd: setting mtd4 (rootfs) as root device [ 2.210010] mtdsplit: no squashfs found in "rootfs" [ 2.214928] 0x000003fe0000-0x000007fe0000 : "reserved_bmt" [ 2.383476] airoha-npu 1e900000.npu: L2C sram size: 0x00 [ 2.388810] airoha-npu 1e900000.npu: FPGA Stage: 1 [ 2.513768] airoha-usb-phy 1fad0000.phy: Frequency not detected, using default SR calibration. [ 2.526968] xhci-mtk 1fab0000.usb: xHCI Host Controller [ 2.532245] xhci-mtk 1fab0000.usb: new USB bus registered, assigned bus number 1 [ 2.543609] xhci-mtk 1fab0000.usb: hcc params 0x01400f98 hci version 0x110 quirks 0x0000000000200010 [ 2.552900] xhci-mtk 1fab0000.usb: irq 45, io mem 0x1fab0000 [ 2.558728] xhci-mtk 1fab0000.usb: xHCI Host Controller [ 2.563997] xhci-mtk 1fab0000.usb: new USB bus registered, assigned bus number 2 [ 2.571423] xhci-mtk 1fab0000.usb: Host supports USB 3.2 Enhanced SuperSpeed [ 2.579329] hub 1-0:1.0: USB hub found [ 2.583270] hub 1-0:1.0: 2 ports detected [ 2.588107] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM. [ 2.596996] hub 2-0:1.0: USB hub found [ 2.600867] hub 2-0:1.0: 1 port detected [ 2.605672] i2c-mt7621 1fbf8000.i2c0: clock 100 kHz [ 2.611005] airoha-thermal 1efbd000.thermal-sensor: EN7523: IC calibrated (pdid:3, pkg:3) [ 2.619316] airoha-thermal 1efbd000.thermal-sensor: EN7523: Init check code_30:32008, Slope:1750 [ 2.640598] en7523-audio 1fbe2200.audio-controller: mtk_afe_combine_sub_dai(), num of dai 2 [ 2.649527] debugfs: Directory '1fbe2200.audio-controller' with parent 'en7523-i2s' already present! [ 2.660515] NET: Registered PF_INET6 protocol family [ 2.667299] Segment Routing with IPv6 [ 2.671100] In-situ OAM (IOAM) with IPv6 [ 2.675128] NET: Registered PF_PACKET protocol family [ 2.680505] 8021q: 802.1Q VLAN Support v1.8 [ 2.684822] Registering SWP/SWPB emulation handler [ 2.756042] mt7530-mmio 1fb58000.switch: configuring for fixed/internal link mode [ 2.763790] mt7530-mmio 1fb58000.switch lan1 (uninitialized): PHY [mt7530-0:09] driver [Airoha EN7523 PHY] (irq=POLL) [ 2.775387] mt7530-mmio 1fb58000.switch lan2 (uninitialized): PHY [mt7530-0:0a] driver [Airoha EN7523 PHY] (irq=POLL) [ 2.786899] mt7530-mmio 1fb58000.switch lan3 (uninitialized): PHY [mt7530-0:0b] driver [Airoha EN7523 PHY] (irq=POLL) [ 2.798422] mt7530-mmio 1fb58000.switch wan (uninitialized): PHY [mt7530-0:0c] driver [Airoha EN7523 PHY] (irq=POLL) [ 2.809927] airoha_eth 1fb50000.ethernet eth0: entered promiscuous mode [ 2.816607] DSA: tree 0 setup [ 2.820027] mt7530-mmio 1fb58000.switch: Link is Up - 10Gbps/Full - flow control rx/tx [ 2.828847] clk: Disabling unused clocks [ 2.832860] PM: genpd: Disabling unused power domains [ 2.837925] ALSA device list: [ 2.840931] #0: en7523-i2s [ 2.899851] Freeing unused kernel image (initmem) memory: 55296K [ 2.906172] Run /init as init process [ 3.543068] init: Console is alive [ 3.546707] init: - watchdog - [ 3.558489] kmodloader: loading kernel modules from /etc/modules-boot.d/* [ 3.567244] gpio_button_hotplug: loading out-of-tree module taints kernel. [ 3.587995] kmodloader: done loading kernel modules from /etc/modules-boot.d/* [ 3.602404] init: - preinit - Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level [ 4.971642] random: procd: uninitialized urandom read (4 bytes read) [ 4.975199] procd: - early - [ 4.981176] procd: - watchdog - [ 5.521375] procd: - watchdog - [ 5.524746] procd: - ubus - [ 7.209219] random: crng init done [ 7.217454] procd: - init - Please press Enter to activate this console. [ 7.475970] kmodloader: loading kernel modules from /etc/modules.d/* [ 7.728917] i2c_dev: i2c /dev entries driver [ 7.736104] Loading modules backported from Linux version v6.18-0-g7d0a66e4b [ 7.743234] Backport generated by backports.git 4d44cef [ 7.814378] mt7915e 0001:01:00.0: enabling device (0140 -> 0142) [ 7.969963] mt7915e 0001:01:00.0: HW/SW Version: 0x8a108a10, Build Time: 20240429200716a [ 7.969963] [ 7.997317] mt7915e 0001:01:00.0: WM Firmware Version: ____000000, Build Time: 20240429200752 [ 8.033290] mt7915e 0001:01:00.0: WA Firmware Version: DEV_000000, Build Time: 20240429200812 [ 8.073746] urngd: v1.0.2 started. [ 8.170517] mt7915e 0001:01:00.0: registering led 'mt76-phy0' [ 8.263299] mt7915e 0001:01:00.0: registering led 'mt76-phy1' [ 8.411239] PPP generic driver version 2.4.2 [ 8.420503] NET: Registered PF_PPPOX protocol family [ 8.443135] kmodloader: done loading kernel modules from /etc/modules.d/* [ 39.617211] mt7530-mmio 1fb58000.switch lan1: configuring for phy/internal link mode [ 39.626820] br-lan: port 1(lan1) entered blocking state [ 39.632190] br-lan: port 1(lan1) entered disabled state [ 39.637511] mt7530-mmio 1fb58000.switch lan1: entered allmulticast mode [ 39.644251] airoha_eth 1fb50000.ethernet eth0: entered allmulticast mode [ 39.651385] mt7530-mmio 1fb58000.switch lan1: entered promiscuous mode [ 39.663564] mt7530-mmio 1fb58000.switch lan2: configuring for phy/internal link mode [ 39.677963] br-lan: port 2(lan2) entered blocking state [ 39.683352] br-lan: port 2(lan2) entered disabled state [ 39.688675] mt7530-mmio 1fb58000.switch lan2: entered allmulticast mode [ 39.695717] mt7530-mmio 1fb58000.switch lan2: entered promiscuous mode [ 39.708557] mt7530-mmio 1fb58000.switch lan3: configuring for phy/internal link mode [ 39.720983] br-lan: port 3(lan3) entered blocking state [ 39.726257] br-lan: port 3(lan3) entered disabled state [ 39.731641] mt7530-mmio 1fb58000.switch lan3: entered allmulticast mode [ 39.738715] mt7530-mmio 1fb58000.switch lan3: entered promiscuous mode [ 39.791329] mt7530-mmio 1fb58000.switch wan: configuring for phy/internal link mode [ 40.205427] br-lan: port 4(phy0-ap0) entered blocking state [ 40.211137] br-lan: port 4(phy0-ap0) entered disabled state [ 40.216826] mt7915e 0001:01:00.0 phy0-ap0: entered allmulticast mode [ 40.223505] mt7915e 0001:01:00.0 phy0-ap0: entered promiscuous mode [ 40.263761] mt7915e 0001:01:00.0 phy0-ap0: left allmulticast mode [ 40.270027] mt7915e 0001:01:00.0 phy0-ap0: left promiscuous mode [ 40.276219] br-lan: port 4(phy0-ap0) entered disabled state [ 40.362195] br-lan: port 4(phy0-ap0) entered blocking state [ 40.367816] br-lan: port 4(phy0-ap0) entered disabled state [ 40.373571] mt7915e 0001:01:00.0 phy0-ap0: entered allmulticast mode [ 40.380277] mt7915e 0001:01:00.0 phy0-ap0: entered promiscuous mode [ 40.730211] br-lan: port 5(phy1-ap0) entered blocking state [ 40.735856] br-lan: port 5(phy1-ap0) entered disabled state [ 40.741568] mt7915e 0001:01:00.0 phy1-ap0: entered allmulticast mode [ 40.748178] mt7915e 0001:01:00.0 phy1-ap0: entered promiscuous mode [ 40.804125] br-lan: port 5(phy1-ap0) entered blocking state [ 40.809770] br-lan: port 5(phy1-ap0) entered forwarding state [ 40.816691] mt7915e 0001:01:00.0 phy1-ap0: left allmulticast mode [ 40.822945] mt7915e 0001:01:00.0 phy1-ap0: left promiscuous mode [ 40.829111] br-lan: port 5(phy1-ap0) entered disabled state [ 40.883186] br-lan: port 5(phy1-ap0) entered blocking state [ 40.888823] br-lan: port 5(phy1-ap0) entered disabled state [ 40.894565] mt7915e 0001:01:00.0 phy1-ap0: entered allmulticast mode [ 40.901299] mt7915e 0001:01:00.0 phy1-ap0: entered promiscuous mode [ 43.760947] mt7530-mmio 1fb58000.switch lan1: Link is Up - 1Gbps/Full - flow control rx/tx [ 43.769366] br-lan: port 1(lan1) entered blocking state [ 43.774619] br-lan: port 1(lan1) entered forwarding state [ 44.277736] br-lan: port 5(phy1-ap0) entered blocking state [ 44.283388] br-lan: port 5(phy1-ap0) entered forwarding state [ 48.072291] br-lan: port 4(phy0-ap0) entered blocking state [ 48.077916] br-lan: port 4(phy0-ap0) entered forwarding state [ 87.680644] mt7530-mmio 1fb58000.switch wan: Link is Up - 1Gbps/Full - flow control rx [ 93.680115] mt7530-mmio 1fb58000.switch lan1: Link is Down [ 93.685864] br-lan: port 1(lan1) entered disabled state [ 96.800818] mt7530-mmio 1fb58000.switch lan1: Link is Up - 1Gbps/Full - flow control rx/tx [ 96.801129] br-lan: port 1(lan1) entered blocking state [ 96.814392] br-lan: port 1(lan1) entered forwarding state ```
Author
Owner

I disabled cores 3 and 4 and get the NPU active again, but if I enable cores 3 and 4, the system freezes, and if I enable even core 3, the system freezes before even starting the network interface

core 1, 2 and 3 boot

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.12.63 (sirherobrine23@matheus-note) (arm-openwrt-linux-muslgnueabi-gcc (OpenWrt GCC 14.3.0 r32493-8d680de76a) 14.3.0, GNU ld (GNU Binutils) 2.44) #0 SMP Fri Jan  9 13:48:45 2026
[    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: TP-Link xx230v
[    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[    0.000000] earlycon: ns16550 at MMIO32 0x1fbf0000 (options '115200n8')
[    0.000000] printk: legacy bootconsole [ns16550] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] OF: reserved mem: Reserved memory: failed to reserve memory for node 'npu_binary@84000000': base 0x84000000, size 1 MiB
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000080200000-0x000000008fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080200000-0x0000000086ffffff]
[    0.000000]   node   0: [mem 0x0000000087000000-0x0000000089ffffff]
[    0.000000]   node   0: [mem 0x000000008a000000-0x000000008fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000008fffffff]
[    0.000000] On node 0, zone Normal: 512 pages in unavailable ranges
[    0.000000] OF: reserved mem: 0x84000000..0x840fffff (1024 KiB) nomap non-reusable npu_binary@84000000
[    0.000000] OF: reserved mem: 0x87000000..0x88ffffff (32768 KiB) nomap non-reusable qdma0-buf@87000000
[    0.000000] OF: reserved mem: 0x89000000..0x89ffffff (16384 KiB) nomap non-reusable qdma1-buf@89000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 14 pages/cpu s24780 r8192 d24372 u57344
[    0.000000] Kernel command line: console=ttyS0,115200 earlycon
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 65024
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=2.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GICv3: 256 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: GICv3 features: 16 PPIs
[    0.000000] GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=0
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x09080000
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 timer(s) running at 25.00MHz (virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns
[    0.000001] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns
[    0.008800] Switching to timer-based delay loop, resolution 40ns
[    0.015571] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=250000)
[    0.026958] CPU: Testing write buffer coherency: ok
[    0.032340] pid_max: default: 32768 minimum: 301
[    0.045203] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.053255] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.065194] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.072479] Setting up static identity map for 0x80300000 - 0x80300060
[    0.079848] rcu: Hierarchical SRCU implementation.
[    0.085117] rcu:     Max phase no-delay instances is 1000.
[    0.091156] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
[    0.100362] smp: Bringing up secondary CPUs ...
[    0.120456] GICv3: CPU1: found redistributor 1 region 0:0x090a0000
[    0.120510] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.120653] smp: Brought up 1 node, 2 CPUs
[    0.138165] SMP: Total of 2 processors activated (100.00 BogoMIPS).
[    0.145065] CPU: All CPU(s) started in SVC mode.
[    0.150611] Memory: 141104K/260096K available (7784K kernel code, 600K rwdata, 2032K rodata, 55296K init, 221K bss, 118236K reserved, 0K cma-reserved)
[    0.169697] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.180572] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.191993] pinctrl core: initialized pinctrl subsystem
[    0.199785] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.206598] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.214941] thermal_sys: Registered thermal governor 'step_wise'
[    0.215026] cpuidle: using governor menu
[    0.226906] debugfs: Directory '1fa20000.system-controller' with parent 'regmap' already present!
[    0.237771] /pcie@1fa91000: Fixed dependency cycle(s) with /pcie@1fa91000/interrupt-controller
[    0.247678] /pcie@1fa92000: Fixed dependency cycle(s) with /pcie@1fa92000/interrupt-controller
[    0.269244] SCSI subsystem initialized
[    0.273590] usbcore: registered new interface driver usbfs
[    0.279728] usbcore: registered new interface driver hub
[    0.285593] usbcore: registered new device driver usb
[    0.291296] Advanced Linux Sound Architecture Driver Initialized.
[    0.299402] clocksource: Switched to clocksource arch_sys_counter
[    0.313065] NET: Registered PF_INET protocol family
[    0.318574] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.327190] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.336452] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.344995] TCP established hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.353444] TCP bind hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.361340] TCP: Hash tables configured (established 2048 bind 2048)
[    0.368763] MPTCP token hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.376991] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.384215] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.392336] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.398584] PCI: CLS 0 bytes, default 64
[    0.404541] workingset: timestamp_bits=14 max_order=16 bucket_order=2
[    0.414222] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.420733] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.438626] mtk-pcie 1fa91000.pcie: host bridge /pcie@1fa91000 ranges:
[    0.445934] mtk-pcie 1fa91000.pcie:      MEM 0x0020000000..0x0021ffffff -> 0x0020000000
[    1.049362] mtk-pcie 1fa91000.pcie: Port0 link down
[    1.055025] mtk-pcie 1fa91000.pcie: PCI host bridge to bus 0000:00
[    1.061886] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.067916] pci_bus 0000:00: root bus resource [mem 0x20000000-0x21ffffff]
[    1.076558] PCI: bus0: Fast back to back transfers enabled
[    1.082631] pci_bus 0000:00: resource 4 [mem 0x20000000-0x21ffffff]
[    1.089842] mtk-pcie 1fa92000.pcie: host bridge /pcie@1fa92000 ranges:
[    1.097041] mtk-pcie 1fa92000.pcie:      MEM 0x0022000000..0x0023ffffff -> 0x0022000000
[    1.627809] mtk-pcie 1fa92000.pcie: PCI host bridge to bus 0001:00
[    1.634662] pci_bus 0001:00: root bus resource [bus 00-ff]
[    1.640719] pci_bus 0001:00: root bus resource [mem 0x22000000-0x23ffffff]
[    1.648615] pci 0001:00:01.0: [14c3:0811] type 01 class 0x060400 PCIe Root Port
[    1.656854] pci 0001:00:01.0: BAR 0: can't handle BAR larger than 4GB (size 0x200000000)
[    1.665760] pci 0001:00:01.0: BAR 0 [mem size 0x00000001 64bit pref disabled]
[    1.673685] pci 0001:00:01.0: PCI bridge to [bus 00]
[    1.679204] pci 0001:00:01.0:   bridge window [mem 0x00000000-0x000fffff]
[    1.688943] PCI: bus0: Fast back to back transfers disabled
[    1.695128] pci 0001:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    1.704631] pci 0001:01:00.0: [14c3:7915] type 00 class 0x000280 PCIe Endpoint
[    1.712788] pci 0001:01:00.0: BAR 0 [mem 0x00000000-0x000fffff 64bit pref]
[    1.720474] pci 0001:01:00.0: BAR 2 [mem 0x00000000-0x00003fff 64bit pref]
[    1.728135] pci 0001:01:00.0: BAR 4 [mem 0x00000000-0x00000fff 64bit pref]
[    1.736405] pci 0001:01:00.0: supports D1 D2
[    1.741102] pci 0001:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.748709] pci 0001:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0001:00:01.0 (capable of 4.000 Gb/s with 5.0 GT/s PCIe x1 link)
[    1.765746] PCI: bus1: Fast back to back transfers disabled
[    1.771910] pci_bus 0001:01: busn_res: [bus 01-ff] end is updated to 01
[    1.779244] pci 0001:00:01.0: bridge window [mem 0x22000000-0x221fffff]: assigned
[    1.787491] pci 0001:00:01.0: BAR 0 [mem 0x22200000 64bit pref disabled]: assigned
[    1.795869] pci 0001:00:01.0: BAR 0: error updating (0x2220000c != 0x0000000c)
[    1.803855] pci 0001:01:00.0: BAR 0 [mem 0x22000000-0x220fffff 64bit pref]: assigned
[    1.812466] pci 0001:01:00.0: BAR 2 [mem 0x22100000-0x22103fff 64bit pref]: assigned
[    1.821068] pci 0001:01:00.0: BAR 4 [mem 0x22104000-0x22104fff 64bit pref]: assigned
[    1.829669] pci 0001:00:01.0: PCI bridge to [bus 01]
[    1.835152] pci 0001:00:01.0:   bridge window [mem 0x22000000-0x221fffff]
[    1.842690] pci_bus 0001:00: resource 4 [mem 0x22000000-0x23ffffff]
[    1.849589] pci_bus 0001:01: resource 1 [mem 0x22000000-0x221fffff]
[    1.856701] pcieport 0001:00:01.0: enabling device (0140 -> 0142)
[    1.864268] pcieport 0001:00:01.0: PME: Signaling with IRQ 31
[    1.872211] airoha_hsdma 1fa01800.hsdma: Airoha HSDMA driver registered
[    1.880031] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    1.888008] printk: legacy console [ttyS0] disabled
[    1.893891] 1fbf0000.serial: ttyS0 at MMIO 0x1fbf0000 (irq = 33, base_baud = 115200) is a 16550
[    1.903540] printk: legacy console [ttyS0] enabled
[    1.903540] printk: legacy console [ttyS0] enabled
[    1.913638] printk: legacy bootconsole [ns16550] disabled
[    1.913638] printk: legacy bootconsole [ns16550] disabled
[    1.927449] spi-nand spi0.0: ESMT SPI NAND was found.
[    1.932595] spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
[    1.948331] 6 fixed-partitions partitions found on MTD device spi0.0
[    1.954753] Creating 6 MTD partitions on "spi0.0":
[    1.959590] 0x000000000000-0x000000080000 : "bootloader"
[    1.966942] 0x000000080000-0x000000120000 : "romfile"
[    1.974001] 0x0000000a0000-0x000000240000 : "misc"
[    1.982748] 0x0000001a0000-0x0000011a0000 : "kernel"
[    2.021326] 0x0000011a0000-0x000006000000 : "rootfs"
[    2.194700] mtd: setting mtd4 (rootfs) as root device
[    2.200165] mtdsplit: no squashfs found in "rootfs"
[    2.205085] 0x000003fe0000-0x000007fe0000 : "reserved_bmt"
[    2.383667] airoha-npu 1e900000.npu: L2C sram size: 0x00
[    2.389000] airoha-npu 1e900000.npu: FPGA Stage: 1
[C0]core freq at 333000000 Hz
[C0]timer_init: Timer clk is running at 32 Mhz
[C0]wcid_counter_init:0
[C0]wcid_counter_init:1
[C0][NPU] ba_node_init...
[C0]baNode_array_init
[C0]counter_init:2
[C0][NPU] queue_mutex_init...
[C0]qdma_init
[C1]core1_main
[C3]core3_main
[C3]do npu_enq_deq_init
[    2.903482] airoha-npu 1e900000.npu: Airoha NPU fw version: v0.1111 (0x457)
[    2.924912] airoha-usb-phy 1fad0000.phy: Frequency not detected, using default SR calibration.
[    2.938115] xhci-mtk 1fab0000.usb: xHCI Host Controller
[    2.943401] xhci-mtk 1fab0000.usb: new USB bus registered, assigned bus number 1
[    2.954843] xhci-mtk 1fab0000.usb: hcc params 0x01400f98 hci version 0x110 quirks 0x0000000000200010
[    2.964069] xhci-mtk 1fab0000.usb: irq 45, io mem 0x1fab0000
[    2.969917] xhci-mtk 1fab0000.usb: xHCI Host Controller
[    2.975157] xhci-mtk 1fab0000.usb: new USB bus registered, assigned bus number 2
[    2.982596] xhci-mtk 1fab0000.usb: Host supports USB 3

core 1 and 2 boot

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.12.63 (sirherobrine23@matheus-note) (arm-openwrt-linux-muslgnueabi-gcc (OpenWrt GCC 14.3.0 r32493-8d680de76a) 14.3.0, GNU ld (GNU Binutils) 2.44) #0 SMP Fri Jan  9 13:48:45 2026
[    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: TP-Link xx230v
[    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[    0.000000] earlycon: ns16550 at MMIO32 0x1fbf0000 (options '115200n8')
[    0.000000] printk: legacy bootconsole [ns16550] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] OF: reserved mem: Reserved memory: failed to reserve memory for node 'npu_binary@84000000': base 0x84000000, size 1 MiB
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000080200000-0x000000008fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080200000-0x0000000086ffffff]
[    0.000000]   node   0: [mem 0x0000000087000000-0x0000000089ffffff]
[    0.000000]   node   0: [mem 0x000000008a000000-0x000000008fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000008fffffff]
[    0.000000] On node 0, zone Normal: 512 pages in unavailable ranges
[    0.000000] OF: reserved mem: 0x84000000..0x840fffff (1024 KiB) nomap non-reusable npu_binary@84000000
[    0.000000] OF: reserved mem: 0x87000000..0x88ffffff (32768 KiB) nomap non-reusable qdma0-buf@87000000
[    0.000000] OF: reserved mem: 0x89000000..0x89ffffff (16384 KiB) nomap non-reusable qdma1-buf@89000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 14 pages/cpu s24780 r8192 d24372 u57344
[    0.000000] Kernel command line: console=ttyS0,115200 earlycon
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 65024
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=2.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GICv3: 256 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: GICv3 features: 16 PPIs
[    0.000000] GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=0
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x09080000
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 timer(s) running at 25.00MHz (virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns
[    0.000001] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns
[    0.008800] Switching to timer-based delay loop, resolution 40ns
[    0.015572] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=250000)
[    0.026957] CPU: Testing write buffer coherency: ok
[    0.032341] pid_max: default: 32768 minimum: 301
[    0.045204] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.053257] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.065193] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.072501] Setting up static identity map for 0x80300000 - 0x80300060
[    0.079864] rcu: Hierarchical SRCU implementation.
[    0.085135] rcu:     Max phase no-delay instances is 1000.
[    0.091174] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
[    0.100387] smp: Bringing up secondary CPUs ...
[    0.120477] GICv3: CPU1: found redistributor 1 region 0:0x090a0000
[    0.120532] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.120674] smp: Brought up 1 node, 2 CPUs
[    0.138183] SMP: Total of 2 processors activated (100.00 BogoMIPS).
[    0.145082] CPU: All CPU(s) started in SVC mode.
[    0.150596] Memory: 141104K/260096K available (7784K kernel code, 600K rwdata, 2032K rodata, 55296K init, 221K bss, 118236K reserved, 0K cma-reserved)
[    0.169680] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.180561] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.191974] pinctrl core: initialized pinctrl subsystem
[    0.199773] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.206583] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.214926] thermal_sys: Registered thermal governor 'step_wise'
[    0.215012] cpuidle: using governor menu
[    0.226890] debugfs: Directory '1fa20000.system-controller' with parent 'regmap' already present!
[    0.237756] /pcie@1fa91000: Fixed dependency cycle(s) with /pcie@1fa91000/interrupt-controller
[    0.247657] /pcie@1fa92000: Fixed dependency cycle(s) with /pcie@1fa92000/interrupt-controller
[    0.269211] SCSI subsystem initialized
[    0.273584] usbcore: registered new interface driver usbfs
[    0.279705] usbcore: registered new interface driver hub
[    0.285587] usbcore: registered new device driver usb
[    0.291316] Advanced Linux Sound Architecture Driver Initialized.
[    0.299281] clocksource: Switched to clocksource arch_sys_counter
[    0.312954] NET: Registered PF_INET protocol family
[    0.318462] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.327127] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.336376] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.344913] TCP established hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.353365] TCP bind hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.361263] TCP: Hash tables configured (established 2048 bind 2048)
[    0.368687] MPTCP token hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.376923] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.384140] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.392288] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.398541] PCI: CLS 0 bytes, default 64
[    0.409452] workingset: timestamp_bits=14 max_order=16 bucket_order=2
[    0.419079] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.425605] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.445398] mtk-pcie 1fa91000.pcie: host bridge /pcie@1fa91000 ranges:
[    0.452754] mtk-pcie 1fa91000.pcie:      MEM 0x0020000000..0x0021ffffff -> 0x0020000000
[    1.059292] mtk-pcie 1fa91000.pcie: Port0 link down
[    1.064956] mtk-pcie 1fa91000.pcie: PCI host bridge to bus 0000:00
[    1.071819] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.077856] pci_bus 0000:00: root bus resource [mem 0x20000000-0x21ffffff]
[    1.086509] PCI: bus0: Fast back to back transfers enabled
[    1.092573] pci_bus 0000:00: resource 4 [mem 0x20000000-0x21ffffff]
[    1.099780] mtk-pcie 1fa92000.pcie: host bridge /pcie@1fa92000 ranges:
[    1.106981] mtk-pcie 1fa92000.pcie:      MEM 0x0022000000..0x0023ffffff -> 0x0022000000
[    1.637737] mtk-pcie 1fa92000.pcie: PCI host bridge to bus 0001:00
[    1.644580] pci_bus 0001:00: root bus resource [bus 00-ff]
[    1.650642] pci_bus 0001:00: root bus resource [mem 0x22000000-0x23ffffff]
[    1.658546] pci 0001:00:01.0: [14c3:0811] type 01 class 0x060400 PCIe Root Port
[    1.666786] pci 0001:00:01.0: BAR 0: can't handle BAR larger than 4GB (size 0x200000000)
[    1.675686] pci 0001:00:01.0: BAR 0 [mem size 0x00000001 64bit pref disabled]
[    1.683606] pci 0001:00:01.0: PCI bridge to [bus 00]
[    1.689127] pci 0001:00:01.0:   bridge window [mem 0x00000000-0x000fffff]
[    1.698885] PCI: bus0: Fast back to back transfers disabled
[    1.705067] pci 0001:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    1.714573] pci 0001:01:00.0: [14c3:7915] type 00 class 0x000280 PCIe Endpoint
[    1.722735] pci 0001:01:00.0: BAR 0 [mem 0x00000000-0x000fffff 64bit pref]
[    1.730415] pci 0001:01:00.0: BAR 2 [mem 0x00000000-0x00003fff 64bit pref]
[    1.738066] pci 0001:01:00.0: BAR 4 [mem 0x00000000-0x00000fff 64bit pref]
[    1.746339] pci 0001:01:00.0: supports D1 D2
[    1.751048] pci 0001:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.758659] pci 0001:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0001:00:01.0 (capable of 4.000 Gb/s with 5.0 GT/s PCIe x1 link)
[    1.775697] PCI: bus1: Fast back to back transfers disabled
[    1.781867] pci_bus 0001:01: busn_res: [bus 01-ff] end is updated to 01
[    1.789192] pci 0001:00:01.0: bridge window [mem 0x22000000-0x221fffff]: assigned
[    1.797432] pci 0001:00:01.0: BAR 0 [mem 0x22200000 64bit pref disabled]: assigned
[    1.805819] pci 0001:00:01.0: BAR 0: error updating (0x2220000c != 0x0000000c)
[    1.813813] pci 0001:01:00.0: BAR 0 [mem 0x22000000-0x220fffff 64bit pref]: assigned
[    1.822414] pci 0001:01:00.0: BAR 2 [mem 0x22100000-0x22103fff 64bit pref]: assigned
[    1.831017] pci 0001:01:00.0: BAR 4 [mem 0x22104000-0x22104fff 64bit pref]: assigned
[    1.839617] pci 0001:00:01.0: PCI bridge to [bus 01]
[    1.845101] pci 0001:00:01.0:   bridge window [mem 0x22000000-0x221fffff]
[    1.852635] pci_bus 0001:00: resource 4 [mem 0x22000000-0x23ffffff]
[    1.859529] pci_bus 0001:01: resource 1 [mem 0x22000000-0x221fffff]
[    1.866634] pcieport 0001:00:01.0: enabling device (0140 -> 0142)
[    1.874201] pcieport 0001:00:01.0: PME: Signaling with IRQ 31
[    1.882135] airoha_hsdma 1fa01800.hsdma: Airoha HSDMA driver registered
[    1.889947] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    1.897975] printk: legacy console [ttyS0] disabled
[    1.903861] 1fbf0000.serial: ttyS0 at MMIO 0x1fbf0000 (irq = 33, base_baud = 115200) is a 16550
[    1.913495] printk: legacy console [ttyS0] enabled
[    1.913495] printk: legacy console [ttyS0] enabled
[    1.923586] printk: legacy bootconsole [ns16550] disabled
[    1.923586] printk: legacy bootconsole [ns16550] disabled
[    1.937780] spi-nand spi0.0: ESMT SPI NAND was found.
[    1.942893] spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
[    1.958629] 6 fixed-partitions partitions found on MTD device spi0.0
[    1.965050] Creating 6 MTD partitions on "spi0.0":
[    1.969885] 0x000000000000-0x000000080000 : "bootloader"
[    1.977227] 0x000000080000-0x000000120000 : "romfile"
[    1.984271] 0x0000000a0000-0x000000240000 : "misc"
[    1.992807] 0x0000001a0000-0x0000011a0000 : "kernel"
[    2.031875] 0x0000011a0000-0x000006000000 : "rootfs"
[    2.204975] mtd: setting mtd4 (rootfs) as root device
[    2.210434] mtdsplit: no squashfs found in "rootfs"
[    2.215354] 0x000003fe0000-0x000007fe0000 : "reserved_bmt"
[    2.373398] airoha-npu 1e900000.npu: L2C sram size: 0x00
[    2.378733] airoha-npu 1e900000.npu: FPGA Stage: 1
[C0]core freq at 333000000 Hz
[C0]timer_init: Timer clk is running at 32 Mhz
[C0]wcid_counter_init:0
[C0]wcid_counter_init:1
[C0][NPU] ba_node_init...
[C0]baNode_array_init
[C0]counter_init:2
[C0][NPU] queue_mutex_init...
[C0]qdma_init
[C1]core1_main
[C2]timer_isr  Store Value 1e903000, val[C2]core2_main
[    2.792388] airoha-npu 1e900000.npu: Airoha NPU fw version: v0.1111 (0x457)
[    2.813813] airoha-usb-phy 1fad0000.phy: Frequency not detected, using default SR calibration.
[    2.827025] xhci-mtk 1fab0000.usb: xHCI Host Controller
[    2.832305] xhci-mtk 1fab0000.usb: new USB bus registered, assigned bus number 1
[    2.843710] xhci-mtk 1fab0000.usb: hcc params 0x01400f98 hci version 0x110 quirks 0x0000000000200010
[    2.852945] xhci-mtk 1fab0000.usb: irq 45, io mem 0x1fab0000
[    2.858773] xhci-mtk 1fab0000.usb: xHCI Host Controller
[    2.864051] xhci-mtk 1fab0000.usb: new USB bus registered, assigned bus number 2
[    2.871481] xhci-mtk 1fab0000.usb: Host supports USB 3.2 Enhanced SuperSpeed
[    2.879369] hub 1-0:1.0: USB hub found
[    2.883308] hub 1-0:1.0: 2 ports detected
[    2.888129] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    2.897014] hub 2-0:1.0: USB hub found
[    2.900925] hub 2-0:1.0: 1 port detected
[    2.905703] i2c-mt7621 1fbf8000.i2c0: clock 100 kHz
[    2.911048] airoha-thermal 1efbd000.thermal-sensor: EN7523: IC  calibrated (pdid:3, pkg:3)
[    2.919362] airoha-thermal 1efbd000.thermal-sensor: EN7523: Init check code_30:32008, Slope:1750
[    2.940591] en7523-audio 1fbe2200.audio-controller: mtk_afe_combine_sub_dai(), num of dai 2
[    2.949472] debugfs: Directory '1fbe2200.audio-controller' with parent 'en7523-i2s' already present!
[    2.960543] NET: Registered PF_INET6 protocol family
[    2.967156] Segment Routing with IPv6
[    2.970945] In-situ OAM (IOAM) with IPv6
[    2.974967] NET: Registered PF_PACKET protocol family
[    2.980289] 8021q: 802.1Q VLAN Support v1.8
[    2.984572] Registering SWP/SWPB emulation handler
[    3.055900] mt7530-mmio 1fb58000.switch: configuring for fixed/internal link mode
[    3.063670] mt7530-mmio 1fb58000.switch lan1 (uninitialized): PHY [mt7530-0:09] driver [Airoha EN7523 PHY] (irq=POLL)
[    3.075374] mt7530-mmio 1fb58000.switch lan2 (uninitialized): PHY [mt7530-0:0a] driver [Airoha EN7523 PHY] (irq=POLL)
[    3.086993] mt7530-mmio 1fb58000.switch lan3 (uninitialized): PHY [mt7530-0:0b] driver [Airoha EN7523 PHY] (irq=POLL)
[    3.098675] mt7530-mmio 1fb58000.switch wan (uninitialized): PHY [mt7530-0:0c] driver [Airoha EN7523 PHY] (irq=POLL)
[    3.110146] airoha_eth 1fb50000.ethernet eth0: entered promiscuous mode
[    3.116829] DSA: tree 0 setup
[    3.120133] mt7530-mmio 1fb58000.switch: Link is Up - 10Gbps/Full - flow control rx/tx
[    3.128827] clk: Disabling unused clocks
[    3.132818] PM: genpd: Disabling unused power domains
[    3.137881] ALSA device list:
[    3.140902]   #0: en7523-i2s
[    3.199576] Freeing unused kernel image (initmem) memory: 55296K
[    3.205870] Run /init as init process
[    3.837654] init: Console is alive
[    3.841403] init: - watchdog -
[    3.851831] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    3.860799] gpio_button_hotplug: loading out-of-tree module taints kernel.
[    3.881843] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    3.899763] init: - preinit -
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[    5.250916] random: procd: uninitialized urandom read (4 bytes read)
[    5.254671] procd: - early -
[    5.260462] procd: - watchdog -
[    5.799084] procd: - watchdog -
[    5.802572] procd: - ubus -
[    7.729267] random: crng init done
[    7.737455] procd: - init -
Please press Enter to activate this console.
[    8.002266] kmodloader: loading kernel modules from /etc/modules.d/*
[    8.252680] i2c_dev: i2c /dev entries driver
[    8.268712] Loading modules backported from Linux version v6.18-0-g7d0a66e4b
[    8.275820] Backport generated by backports.git 4d44cef
[    8.354081] mt7915e 0001:01:00.0: enabling device (0140 -> 0142)
[    8.540072] mt7915e 0001:01:00.0: HW/SW Version: 0x8a108a10, Build Time: 20240429200716a
[    8.540072] 
[    8.567183] mt7915e 0001:01:00.0: WM Firmware Version: ____000000, Build Time: 20240429200752
[    8.567259] urngd: v1.0.2 started.
[    8.605472] mt7915e 0001:01:00.0: WA Firmware Version: DEV_000000, Build Time: 20240429200812
[    8.743389] mt7915e 0001:01:00.0: registering led 'mt76-phy0'
[    8.824489] mt7915e 0001:01:00.0: registering led 'mt76-phy1'
[    8.951226] PPP generic driver version 2.4.2
[    8.980055] NET: Registered PF_PPPOX protocol family
[    8.999628] kmodloader: done loading kernel modules from /etc/modules.d/*
[   19.492445] mt7530-mmio 1fb58000.switch lan1: configuring for phy/internal link mode
[   19.503424] br-lan: port 1(lan1) entered blocking state
[   19.508707] br-lan: port 1(lan1) entered disabled state
[   19.514103] mt7530-mmio 1fb58000.switch lan1: entered allmulticast mode
[   19.520799] airoha_eth 1fb50000.ethernet eth0: entered allmulticast mode
[   19.527833] mt7530-mmio 1fb58000.switch lan1: entered promiscuous mode
[   19.546703] mt7530-mmio 1fb58000.switch lan2: configuring for phy/internal link mode
[   19.556841] br-lan: port 2(lan2) entered blocking state
[   19.562178] br-lan: port 2(lan2) entered disabled state
[   19.567474] mt7530-mmio 1fb58000.switch lan2: entered allmulticast mode
[   19.574550] mt7530-mmio 1fb58000.switch lan2: entered promiscuous mode
[   19.599657] mt7530-mmio 1fb58000.switch lan3: configuring for phy/internal link mode
[   19.609144] br-lan: port 3(lan3) entered blocking state
[   19.614553] br-lan: port 3(lan3) entered disabled state
[   19.619923] mt7530-mmio 1fb58000.switch lan3: entered allmulticast mode
[   19.626979] mt7530-mmio 1fb58000.switch lan3: entered promiscuous mode
[   19.672216] mt7530-mmio 1fb58000.switch wan: configuring for phy/internal link mode
[   20.114482] br-lan: port 4(phy0-ap0) entered blocking state
[   20.120174] br-lan: port 4(phy0-ap0) entered disabled state
[   20.125815] mt7915e 0001:01:00.0 phy0-ap0: entered allmulticast mode
[   20.132541] mt7915e 0001:01:00.0 phy0-ap0: entered promiscuous mode
[   20.153025] mt7915e 0001:01:00.0 phy0-ap0: left allmulticast mode
[   20.159169] mt7915e 0001:01:00.0 phy0-ap0: left promiscuous mode
[   20.165397] br-lan: port 4(phy0-ap0) entered disabled state
[   20.265570] br-lan: port 4(phy0-ap0) entered blocking state
[   20.271310] br-lan: port 4(phy0-ap0) entered disabled state
[   20.276952] mt7915e 0001:01:00.0 phy0-ap0: entered allmulticast mode
[   20.283622] mt7915e 0001:01:00.0 phy0-ap0: entered promiscuous mode
[   20.710188] br-lan: port 5(phy1-ap0) entered blocking state
[   20.715836] br-lan: port 5(phy1-ap0) entered disabled state
[   20.721630] mt7915e 0001:01:00.0 phy1-ap0: entered allmulticast mode
[   20.728280] mt7915e 0001:01:00.0 phy1-ap0: entered promiscuous mode
[   20.790787] br-lan: port 5(phy1-ap0) entered blocking state
[   20.796396] br-lan: port 5(phy1-ap0) entered forwarding state
[   20.803849] mt7915e 0001:01:00.0 phy1-ap0: left allmulticast mode
[   20.810155] mt7915e 0001:01:00.0 phy1-ap0: left promiscuous mode
[   20.816406] br-lan: port 5(phy1-ap0) entered disabled state
[   20.859888] br-lan: port 5(phy1-ap0) entered blocking state
[   20.865530] br-lan: port 5(phy1-ap0) entered disabled state
[   20.871305] mt7915e 0001:01:00.0 phy1-ap0: entered allmulticast mode
[   20.878000] mt7915e 0001:01:00.0 phy1-ap0: entered promiscuous mode
[   23.680957] mt7530-mmio 1fb58000.switch lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[   23.689334] br-lan: port 1(lan1) entered blocking state
[   23.694576] br-lan: port 1(lan1) entered forwarding state
[   24.224969] br-lan: port 5(phy1-ap0) entered blocking state
[   24.230605] br-lan: port 5(phy1-ap0) entered forwarding state
[   28.032662] br-lan: port 4(phy0-ap0) entered blocking state
[   28.038259] br-lan: port 4(phy0-ap0) entered forwarding state
[   34.240720] mt7530-mmio 1fb58000.switch wan: Link is Up - 1Gbps/Full - flow control rx
[   37.200762] mt7530-mmio 1fb58000.switch lan1: Link is Down
[   37.206378] br-lan: port 1(lan1) entered disabled state
[   39.282321] mt7530-mmio 1fb58000.switch lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[   39.283311] br-lan: port 1(lan1) entered blocking state
[   39.295932] br-lan: port 1(lan1) entered forwarding state
I disabled cores 3 and 4 and get the NPU active again, but if I enable cores 3 and 4, the system freezes, and if I enable even core 3, the system freezes before even starting the network interface ## core 1, 2 and 3 boot ``` [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 6.12.63 (sirherobrine23@matheus-note) (arm-openwrt-linux-muslgnueabi-gcc (OpenWrt GCC 14.3.0 r32493-8d680de76a) 14.3.0, GNU ld (GNU Binutils) 2.44) #0 SMP Fri Jan 9 13:48:45 2026 [ 0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d [ 0.000000] CPU: div instructions available: patching division code [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] OF: fdt: Machine model: TP-Link xx230v [ 0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000 [ 0.000000] earlycon: ns16550 at MMIO32 0x1fbf0000 (options '115200n8') [ 0.000000] printk: legacy bootconsole [ns16550] enabled [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] OF: reserved mem: Reserved memory: failed to reserve memory for node 'npu_binary@84000000': base 0x84000000, size 1 MiB [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000080200000-0x000000008fffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000080200000-0x0000000086ffffff] [ 0.000000] node 0: [mem 0x0000000087000000-0x0000000089ffffff] [ 0.000000] node 0: [mem 0x000000008a000000-0x000000008fffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000008fffffff] [ 0.000000] On node 0, zone Normal: 512 pages in unavailable ranges [ 0.000000] OF: reserved mem: 0x84000000..0x840fffff (1024 KiB) nomap non-reusable npu_binary@84000000 [ 0.000000] OF: reserved mem: 0x87000000..0x88ffffff (32768 KiB) nomap non-reusable qdma0-buf@87000000 [ 0.000000] OF: reserved mem: 0x89000000..0x89ffffff (16384 KiB) nomap non-reusable qdma1-buf@89000000 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. [ 0.000000] psci: SMC Calling Convention v1.1 [ 0.000000] percpu: Embedded 14 pages/cpu s24780 r8192 d24372 u57344 [ 0.000000] Kernel command line: console=ttyS0,115200 earlycon [ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes, linear) [ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes, linear) [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 65024 [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 [ 0.000000] rcu: Hierarchical RCU implementation. [ 0.000000] Tracing variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. [ 0.000000] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=2. [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [ 0.000000] GICv3: 256 SPIs implemented [ 0.000000] GICv3: 0 Extended SPIs implemented [ 0.000000] GICv3: GICv3 features: 16 PPIs [ 0.000000] GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=0 [ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x09080000 [ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention. [ 0.000000] arch_timer: cp15 timer(s) running at 25.00MHz (virt). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns [ 0.000001] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns [ 0.008800] Switching to timer-based delay loop, resolution 40ns [ 0.015571] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=250000) [ 0.026958] CPU: Testing write buffer coherency: ok [ 0.032340] pid_max: default: 32768 minimum: 301 [ 0.045203] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.053255] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.065194] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [ 0.072479] Setting up static identity map for 0x80300000 - 0x80300060 [ 0.079848] rcu: Hierarchical SRCU implementation. [ 0.085117] rcu: Max phase no-delay instances is 1000. [ 0.091156] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level [ 0.100362] smp: Bringing up secondary CPUs ... [ 0.120456] GICv3: CPU1: found redistributor 1 region 0:0x090a0000 [ 0.120510] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [ 0.120653] smp: Brought up 1 node, 2 CPUs [ 0.138165] SMP: Total of 2 processors activated (100.00 BogoMIPS). [ 0.145065] CPU: All CPU(s) started in SVC mode. [ 0.150611] Memory: 141104K/260096K available (7784K kernel code, 600K rwdata, 2032K rodata, 55296K init, 221K bss, 118236K reserved, 0K cma-reserved) [ 0.169697] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.180572] futex hash table entries: 512 (order: 3, 32768 bytes, linear) [ 0.191993] pinctrl core: initialized pinctrl subsystem [ 0.199785] NET: Registered PF_NETLINK/PF_ROUTE protocol family [ 0.206598] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.214941] thermal_sys: Registered thermal governor 'step_wise' [ 0.215026] cpuidle: using governor menu [ 0.226906] debugfs: Directory '1fa20000.system-controller' with parent 'regmap' already present! [ 0.237771] /pcie@1fa91000: Fixed dependency cycle(s) with /pcie@1fa91000/interrupt-controller [ 0.247678] /pcie@1fa92000: Fixed dependency cycle(s) with /pcie@1fa92000/interrupt-controller [ 0.269244] SCSI subsystem initialized [ 0.273590] usbcore: registered new interface driver usbfs [ 0.279728] usbcore: registered new interface driver hub [ 0.285593] usbcore: registered new device driver usb [ 0.291296] Advanced Linux Sound Architecture Driver Initialized. [ 0.299402] clocksource: Switched to clocksource arch_sys_counter [ 0.313065] NET: Registered PF_INET protocol family [ 0.318574] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear) [ 0.327190] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear) [ 0.336452] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) [ 0.344995] TCP established hash table entries: 2048 (order: 1, 8192 bytes, linear) [ 0.353444] TCP bind hash table entries: 2048 (order: 3, 32768 bytes, linear) [ 0.361340] TCP: Hash tables configured (established 2048 bind 2048) [ 0.368763] MPTCP token hash table entries: 256 (order: 0, 4096 bytes, linear) [ 0.376991] UDP hash table entries: 256 (order: 1, 8192 bytes, linear) [ 0.384215] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear) [ 0.392336] NET: Registered PF_UNIX/PF_LOCAL protocol family [ 0.398584] PCI: CLS 0 bytes, default 64 [ 0.404541] workingset: timestamp_bits=14 max_order=16 bucket_order=2 [ 0.414222] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.420733] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.438626] mtk-pcie 1fa91000.pcie: host bridge /pcie@1fa91000 ranges: [ 0.445934] mtk-pcie 1fa91000.pcie: MEM 0x0020000000..0x0021ffffff -> 0x0020000000 [ 1.049362] mtk-pcie 1fa91000.pcie: Port0 link down [ 1.055025] mtk-pcie 1fa91000.pcie: PCI host bridge to bus 0000:00 [ 1.061886] pci_bus 0000:00: root bus resource [bus 00-ff] [ 1.067916] pci_bus 0000:00: root bus resource [mem 0x20000000-0x21ffffff] [ 1.076558] PCI: bus0: Fast back to back transfers enabled [ 1.082631] pci_bus 0000:00: resource 4 [mem 0x20000000-0x21ffffff] [ 1.089842] mtk-pcie 1fa92000.pcie: host bridge /pcie@1fa92000 ranges: [ 1.097041] mtk-pcie 1fa92000.pcie: MEM 0x0022000000..0x0023ffffff -> 0x0022000000 [ 1.627809] mtk-pcie 1fa92000.pcie: PCI host bridge to bus 0001:00 [ 1.634662] pci_bus 0001:00: root bus resource [bus 00-ff] [ 1.640719] pci_bus 0001:00: root bus resource [mem 0x22000000-0x23ffffff] [ 1.648615] pci 0001:00:01.0: [14c3:0811] type 01 class 0x060400 PCIe Root Port [ 1.656854] pci 0001:00:01.0: BAR 0: can't handle BAR larger than 4GB (size 0x200000000) [ 1.665760] pci 0001:00:01.0: BAR 0 [mem size 0x00000001 64bit pref disabled] [ 1.673685] pci 0001:00:01.0: PCI bridge to [bus 00] [ 1.679204] pci 0001:00:01.0: bridge window [mem 0x00000000-0x000fffff] [ 1.688943] PCI: bus0: Fast back to back transfers disabled [ 1.695128] pci 0001:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring [ 1.704631] pci 0001:01:00.0: [14c3:7915] type 00 class 0x000280 PCIe Endpoint [ 1.712788] pci 0001:01:00.0: BAR 0 [mem 0x00000000-0x000fffff 64bit pref] [ 1.720474] pci 0001:01:00.0: BAR 2 [mem 0x00000000-0x00003fff 64bit pref] [ 1.728135] pci 0001:01:00.0: BAR 4 [mem 0x00000000-0x00000fff 64bit pref] [ 1.736405] pci 0001:01:00.0: supports D1 D2 [ 1.741102] pci 0001:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold [ 1.748709] pci 0001:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0001:00:01.0 (capable of 4.000 Gb/s with 5.0 GT/s PCIe x1 link) [ 1.765746] PCI: bus1: Fast back to back transfers disabled [ 1.771910] pci_bus 0001:01: busn_res: [bus 01-ff] end is updated to 01 [ 1.779244] pci 0001:00:01.0: bridge window [mem 0x22000000-0x221fffff]: assigned [ 1.787491] pci 0001:00:01.0: BAR 0 [mem 0x22200000 64bit pref disabled]: assigned [ 1.795869] pci 0001:00:01.0: BAR 0: error updating (0x2220000c != 0x0000000c) [ 1.803855] pci 0001:01:00.0: BAR 0 [mem 0x22000000-0x220fffff 64bit pref]: assigned [ 1.812466] pci 0001:01:00.0: BAR 2 [mem 0x22100000-0x22103fff 64bit pref]: assigned [ 1.821068] pci 0001:01:00.0: BAR 4 [mem 0x22104000-0x22104fff 64bit pref]: assigned [ 1.829669] pci 0001:00:01.0: PCI bridge to [bus 01] [ 1.835152] pci 0001:00:01.0: bridge window [mem 0x22000000-0x221fffff] [ 1.842690] pci_bus 0001:00: resource 4 [mem 0x22000000-0x23ffffff] [ 1.849589] pci_bus 0001:01: resource 1 [mem 0x22000000-0x221fffff] [ 1.856701] pcieport 0001:00:01.0: enabling device (0140 -> 0142) [ 1.864268] pcieport 0001:00:01.0: PME: Signaling with IRQ 31 [ 1.872211] airoha_hsdma 1fa01800.hsdma: Airoha HSDMA driver registered [ 1.880031] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled [ 1.888008] printk: legacy console [ttyS0] disabled [ 1.893891] 1fbf0000.serial: ttyS0 at MMIO 0x1fbf0000 (irq = 33, base_baud = 115200) is a 16550 [ 1.903540] printk: legacy console [ttyS0] enabled [ 1.903540] printk: legacy console [ttyS0] enabled [ 1.913638] printk: legacy bootconsole [ns16550] disabled [ 1.913638] printk: legacy bootconsole [ns16550] disabled [ 1.927449] spi-nand spi0.0: ESMT SPI NAND was found. [ 1.932595] spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64 [ 1.948331] 6 fixed-partitions partitions found on MTD device spi0.0 [ 1.954753] Creating 6 MTD partitions on "spi0.0": [ 1.959590] 0x000000000000-0x000000080000 : "bootloader" [ 1.966942] 0x000000080000-0x000000120000 : "romfile" [ 1.974001] 0x0000000a0000-0x000000240000 : "misc" [ 1.982748] 0x0000001a0000-0x0000011a0000 : "kernel" [ 2.021326] 0x0000011a0000-0x000006000000 : "rootfs" [ 2.194700] mtd: setting mtd4 (rootfs) as root device [ 2.200165] mtdsplit: no squashfs found in "rootfs" [ 2.205085] 0x000003fe0000-0x000007fe0000 : "reserved_bmt" [ 2.383667] airoha-npu 1e900000.npu: L2C sram size: 0x00 [ 2.389000] airoha-npu 1e900000.npu: FPGA Stage: 1 [C0]core freq at 333000000 Hz [C0]timer_init: Timer clk is running at 32 Mhz [C0]wcid_counter_init:0 [C0]wcid_counter_init:1 [C0][NPU] ba_node_init... [C0]baNode_array_init [C0]counter_init:2 [C0][NPU] queue_mutex_init... [C0]qdma_init [C1]core1_main [C3]core3_main [C3]do npu_enq_deq_init [ 2.903482] airoha-npu 1e900000.npu: Airoha NPU fw version: v0.1111 (0x457) [ 2.924912] airoha-usb-phy 1fad0000.phy: Frequency not detected, using default SR calibration. [ 2.938115] xhci-mtk 1fab0000.usb: xHCI Host Controller [ 2.943401] xhci-mtk 1fab0000.usb: new USB bus registered, assigned bus number 1 [ 2.954843] xhci-mtk 1fab0000.usb: hcc params 0x01400f98 hci version 0x110 quirks 0x0000000000200010 [ 2.964069] xhci-mtk 1fab0000.usb: irq 45, io mem 0x1fab0000 [ 2.969917] xhci-mtk 1fab0000.usb: xHCI Host Controller [ 2.975157] xhci-mtk 1fab0000.usb: new USB bus registered, assigned bus number 2 [ 2.982596] xhci-mtk 1fab0000.usb: Host supports USB 3 ``` ## core 1 and 2 boot ``` [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 6.12.63 (sirherobrine23@matheus-note) (arm-openwrt-linux-muslgnueabi-gcc (OpenWrt GCC 14.3.0 r32493-8d680de76a) 14.3.0, GNU ld (GNU Binutils) 2.44) #0 SMP Fri Jan 9 13:48:45 2026 [ 0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d [ 0.000000] CPU: div instructions available: patching division code [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] OF: fdt: Machine model: TP-Link xx230v [ 0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000 [ 0.000000] earlycon: ns16550 at MMIO32 0x1fbf0000 (options '115200n8') [ 0.000000] printk: legacy bootconsole [ns16550] enabled [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] OF: reserved mem: Reserved memory: failed to reserve memory for node 'npu_binary@84000000': base 0x84000000, size 1 MiB [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000080200000-0x000000008fffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000080200000-0x0000000086ffffff] [ 0.000000] node 0: [mem 0x0000000087000000-0x0000000089ffffff] [ 0.000000] node 0: [mem 0x000000008a000000-0x000000008fffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000008fffffff] [ 0.000000] On node 0, zone Normal: 512 pages in unavailable ranges [ 0.000000] OF: reserved mem: 0x84000000..0x840fffff (1024 KiB) nomap non-reusable npu_binary@84000000 [ 0.000000] OF: reserved mem: 0x87000000..0x88ffffff (32768 KiB) nomap non-reusable qdma0-buf@87000000 [ 0.000000] OF: reserved mem: 0x89000000..0x89ffffff (16384 KiB) nomap non-reusable qdma1-buf@89000000 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. [ 0.000000] psci: SMC Calling Convention v1.1 [ 0.000000] percpu: Embedded 14 pages/cpu s24780 r8192 d24372 u57344 [ 0.000000] Kernel command line: console=ttyS0,115200 earlycon [ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes, linear) [ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes, linear) [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 65024 [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 [ 0.000000] rcu: Hierarchical RCU implementation. [ 0.000000] Tracing variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. [ 0.000000] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=2. [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [ 0.000000] GICv3: 256 SPIs implemented [ 0.000000] GICv3: 0 Extended SPIs implemented [ 0.000000] GICv3: GICv3 features: 16 PPIs [ 0.000000] GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=0 [ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x09080000 [ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention. [ 0.000000] arch_timer: cp15 timer(s) running at 25.00MHz (virt). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns [ 0.000001] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns [ 0.008800] Switching to timer-based delay loop, resolution 40ns [ 0.015572] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=250000) [ 0.026957] CPU: Testing write buffer coherency: ok [ 0.032341] pid_max: default: 32768 minimum: 301 [ 0.045204] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.053257] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.065193] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [ 0.072501] Setting up static identity map for 0x80300000 - 0x80300060 [ 0.079864] rcu: Hierarchical SRCU implementation. [ 0.085135] rcu: Max phase no-delay instances is 1000. [ 0.091174] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level [ 0.100387] smp: Bringing up secondary CPUs ... [ 0.120477] GICv3: CPU1: found redistributor 1 region 0:0x090a0000 [ 0.120532] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [ 0.120674] smp: Brought up 1 node, 2 CPUs [ 0.138183] SMP: Total of 2 processors activated (100.00 BogoMIPS). [ 0.145082] CPU: All CPU(s) started in SVC mode. [ 0.150596] Memory: 141104K/260096K available (7784K kernel code, 600K rwdata, 2032K rodata, 55296K init, 221K bss, 118236K reserved, 0K cma-reserved) [ 0.169680] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.180561] futex hash table entries: 512 (order: 3, 32768 bytes, linear) [ 0.191974] pinctrl core: initialized pinctrl subsystem [ 0.199773] NET: Registered PF_NETLINK/PF_ROUTE protocol family [ 0.206583] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.214926] thermal_sys: Registered thermal governor 'step_wise' [ 0.215012] cpuidle: using governor menu [ 0.226890] debugfs: Directory '1fa20000.system-controller' with parent 'regmap' already present! [ 0.237756] /pcie@1fa91000: Fixed dependency cycle(s) with /pcie@1fa91000/interrupt-controller [ 0.247657] /pcie@1fa92000: Fixed dependency cycle(s) with /pcie@1fa92000/interrupt-controller [ 0.269211] SCSI subsystem initialized [ 0.273584] usbcore: registered new interface driver usbfs [ 0.279705] usbcore: registered new interface driver hub [ 0.285587] usbcore: registered new device driver usb [ 0.291316] Advanced Linux Sound Architecture Driver Initialized. [ 0.299281] clocksource: Switched to clocksource arch_sys_counter [ 0.312954] NET: Registered PF_INET protocol family [ 0.318462] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear) [ 0.327127] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear) [ 0.336376] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) [ 0.344913] TCP established hash table entries: 2048 (order: 1, 8192 bytes, linear) [ 0.353365] TCP bind hash table entries: 2048 (order: 3, 32768 bytes, linear) [ 0.361263] TCP: Hash tables configured (established 2048 bind 2048) [ 0.368687] MPTCP token hash table entries: 256 (order: 0, 4096 bytes, linear) [ 0.376923] UDP hash table entries: 256 (order: 1, 8192 bytes, linear) [ 0.384140] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear) [ 0.392288] NET: Registered PF_UNIX/PF_LOCAL protocol family [ 0.398541] PCI: CLS 0 bytes, default 64 [ 0.409452] workingset: timestamp_bits=14 max_order=16 bucket_order=2 [ 0.419079] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.425605] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.445398] mtk-pcie 1fa91000.pcie: host bridge /pcie@1fa91000 ranges: [ 0.452754] mtk-pcie 1fa91000.pcie: MEM 0x0020000000..0x0021ffffff -> 0x0020000000 [ 1.059292] mtk-pcie 1fa91000.pcie: Port0 link down [ 1.064956] mtk-pcie 1fa91000.pcie: PCI host bridge to bus 0000:00 [ 1.071819] pci_bus 0000:00: root bus resource [bus 00-ff] [ 1.077856] pci_bus 0000:00: root bus resource [mem 0x20000000-0x21ffffff] [ 1.086509] PCI: bus0: Fast back to back transfers enabled [ 1.092573] pci_bus 0000:00: resource 4 [mem 0x20000000-0x21ffffff] [ 1.099780] mtk-pcie 1fa92000.pcie: host bridge /pcie@1fa92000 ranges: [ 1.106981] mtk-pcie 1fa92000.pcie: MEM 0x0022000000..0x0023ffffff -> 0x0022000000 [ 1.637737] mtk-pcie 1fa92000.pcie: PCI host bridge to bus 0001:00 [ 1.644580] pci_bus 0001:00: root bus resource [bus 00-ff] [ 1.650642] pci_bus 0001:00: root bus resource [mem 0x22000000-0x23ffffff] [ 1.658546] pci 0001:00:01.0: [14c3:0811] type 01 class 0x060400 PCIe Root Port [ 1.666786] pci 0001:00:01.0: BAR 0: can't handle BAR larger than 4GB (size 0x200000000) [ 1.675686] pci 0001:00:01.0: BAR 0 [mem size 0x00000001 64bit pref disabled] [ 1.683606] pci 0001:00:01.0: PCI bridge to [bus 00] [ 1.689127] pci 0001:00:01.0: bridge window [mem 0x00000000-0x000fffff] [ 1.698885] PCI: bus0: Fast back to back transfers disabled [ 1.705067] pci 0001:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring [ 1.714573] pci 0001:01:00.0: [14c3:7915] type 00 class 0x000280 PCIe Endpoint [ 1.722735] pci 0001:01:00.0: BAR 0 [mem 0x00000000-0x000fffff 64bit pref] [ 1.730415] pci 0001:01:00.0: BAR 2 [mem 0x00000000-0x00003fff 64bit pref] [ 1.738066] pci 0001:01:00.0: BAR 4 [mem 0x00000000-0x00000fff 64bit pref] [ 1.746339] pci 0001:01:00.0: supports D1 D2 [ 1.751048] pci 0001:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold [ 1.758659] pci 0001:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0001:00:01.0 (capable of 4.000 Gb/s with 5.0 GT/s PCIe x1 link) [ 1.775697] PCI: bus1: Fast back to back transfers disabled [ 1.781867] pci_bus 0001:01: busn_res: [bus 01-ff] end is updated to 01 [ 1.789192] pci 0001:00:01.0: bridge window [mem 0x22000000-0x221fffff]: assigned [ 1.797432] pci 0001:00:01.0: BAR 0 [mem 0x22200000 64bit pref disabled]: assigned [ 1.805819] pci 0001:00:01.0: BAR 0: error updating (0x2220000c != 0x0000000c) [ 1.813813] pci 0001:01:00.0: BAR 0 [mem 0x22000000-0x220fffff 64bit pref]: assigned [ 1.822414] pci 0001:01:00.0: BAR 2 [mem 0x22100000-0x22103fff 64bit pref]: assigned [ 1.831017] pci 0001:01:00.0: BAR 4 [mem 0x22104000-0x22104fff 64bit pref]: assigned [ 1.839617] pci 0001:00:01.0: PCI bridge to [bus 01] [ 1.845101] pci 0001:00:01.0: bridge window [mem 0x22000000-0x221fffff] [ 1.852635] pci_bus 0001:00: resource 4 [mem 0x22000000-0x23ffffff] [ 1.859529] pci_bus 0001:01: resource 1 [mem 0x22000000-0x221fffff] [ 1.866634] pcieport 0001:00:01.0: enabling device (0140 -> 0142) [ 1.874201] pcieport 0001:00:01.0: PME: Signaling with IRQ 31 [ 1.882135] airoha_hsdma 1fa01800.hsdma: Airoha HSDMA driver registered [ 1.889947] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled [ 1.897975] printk: legacy console [ttyS0] disabled [ 1.903861] 1fbf0000.serial: ttyS0 at MMIO 0x1fbf0000 (irq = 33, base_baud = 115200) is a 16550 [ 1.913495] printk: legacy console [ttyS0] enabled [ 1.913495] printk: legacy console [ttyS0] enabled [ 1.923586] printk: legacy bootconsole [ns16550] disabled [ 1.923586] printk: legacy bootconsole [ns16550] disabled [ 1.937780] spi-nand spi0.0: ESMT SPI NAND was found. [ 1.942893] spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64 [ 1.958629] 6 fixed-partitions partitions found on MTD device spi0.0 [ 1.965050] Creating 6 MTD partitions on "spi0.0": [ 1.969885] 0x000000000000-0x000000080000 : "bootloader" [ 1.977227] 0x000000080000-0x000000120000 : "romfile" [ 1.984271] 0x0000000a0000-0x000000240000 : "misc" [ 1.992807] 0x0000001a0000-0x0000011a0000 : "kernel" [ 2.031875] 0x0000011a0000-0x000006000000 : "rootfs" [ 2.204975] mtd: setting mtd4 (rootfs) as root device [ 2.210434] mtdsplit: no squashfs found in "rootfs" [ 2.215354] 0x000003fe0000-0x000007fe0000 : "reserved_bmt" [ 2.373398] airoha-npu 1e900000.npu: L2C sram size: 0x00 [ 2.378733] airoha-npu 1e900000.npu: FPGA Stage: 1 [C0]core freq at 333000000 Hz [C0]timer_init: Timer clk is running at 32 Mhz [C0]wcid_counter_init:0 [C0]wcid_counter_init:1 [C0][NPU] ba_node_init... [C0]baNode_array_init [C0]counter_init:2 [C0][NPU] queue_mutex_init... [C0]qdma_init [C1]core1_main [C2]timer_isr Store Value 1e903000, val[C2]core2_main [ 2.792388] airoha-npu 1e900000.npu: Airoha NPU fw version: v0.1111 (0x457) [ 2.813813] airoha-usb-phy 1fad0000.phy: Frequency not detected, using default SR calibration. [ 2.827025] xhci-mtk 1fab0000.usb: xHCI Host Controller [ 2.832305] xhci-mtk 1fab0000.usb: new USB bus registered, assigned bus number 1 [ 2.843710] xhci-mtk 1fab0000.usb: hcc params 0x01400f98 hci version 0x110 quirks 0x0000000000200010 [ 2.852945] xhci-mtk 1fab0000.usb: irq 45, io mem 0x1fab0000 [ 2.858773] xhci-mtk 1fab0000.usb: xHCI Host Controller [ 2.864051] xhci-mtk 1fab0000.usb: new USB bus registered, assigned bus number 2 [ 2.871481] xhci-mtk 1fab0000.usb: Host supports USB 3.2 Enhanced SuperSpeed [ 2.879369] hub 1-0:1.0: USB hub found [ 2.883308] hub 1-0:1.0: 2 ports detected [ 2.888129] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM. [ 2.897014] hub 2-0:1.0: USB hub found [ 2.900925] hub 2-0:1.0: 1 port detected [ 2.905703] i2c-mt7621 1fbf8000.i2c0: clock 100 kHz [ 2.911048] airoha-thermal 1efbd000.thermal-sensor: EN7523: IC calibrated (pdid:3, pkg:3) [ 2.919362] airoha-thermal 1efbd000.thermal-sensor: EN7523: Init check code_30:32008, Slope:1750 [ 2.940591] en7523-audio 1fbe2200.audio-controller: mtk_afe_combine_sub_dai(), num of dai 2 [ 2.949472] debugfs: Directory '1fbe2200.audio-controller' with parent 'en7523-i2s' already present! [ 2.960543] NET: Registered PF_INET6 protocol family [ 2.967156] Segment Routing with IPv6 [ 2.970945] In-situ OAM (IOAM) with IPv6 [ 2.974967] NET: Registered PF_PACKET protocol family [ 2.980289] 8021q: 802.1Q VLAN Support v1.8 [ 2.984572] Registering SWP/SWPB emulation handler [ 3.055900] mt7530-mmio 1fb58000.switch: configuring for fixed/internal link mode [ 3.063670] mt7530-mmio 1fb58000.switch lan1 (uninitialized): PHY [mt7530-0:09] driver [Airoha EN7523 PHY] (irq=POLL) [ 3.075374] mt7530-mmio 1fb58000.switch lan2 (uninitialized): PHY [mt7530-0:0a] driver [Airoha EN7523 PHY] (irq=POLL) [ 3.086993] mt7530-mmio 1fb58000.switch lan3 (uninitialized): PHY [mt7530-0:0b] driver [Airoha EN7523 PHY] (irq=POLL) [ 3.098675] mt7530-mmio 1fb58000.switch wan (uninitialized): PHY [mt7530-0:0c] driver [Airoha EN7523 PHY] (irq=POLL) [ 3.110146] airoha_eth 1fb50000.ethernet eth0: entered promiscuous mode [ 3.116829] DSA: tree 0 setup [ 3.120133] mt7530-mmio 1fb58000.switch: Link is Up - 10Gbps/Full - flow control rx/tx [ 3.128827] clk: Disabling unused clocks [ 3.132818] PM: genpd: Disabling unused power domains [ 3.137881] ALSA device list: [ 3.140902] #0: en7523-i2s [ 3.199576] Freeing unused kernel image (initmem) memory: 55296K [ 3.205870] Run /init as init process [ 3.837654] init: Console is alive [ 3.841403] init: - watchdog - [ 3.851831] kmodloader: loading kernel modules from /etc/modules-boot.d/* [ 3.860799] gpio_button_hotplug: loading out-of-tree module taints kernel. [ 3.881843] kmodloader: done loading kernel modules from /etc/modules-boot.d/* [ 3.899763] init: - preinit - Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level [ 5.250916] random: procd: uninitialized urandom read (4 bytes read) [ 5.254671] procd: - early - [ 5.260462] procd: - watchdog - [ 5.799084] procd: - watchdog - [ 5.802572] procd: - ubus - [ 7.729267] random: crng init done [ 7.737455] procd: - init - Please press Enter to activate this console. [ 8.002266] kmodloader: loading kernel modules from /etc/modules.d/* [ 8.252680] i2c_dev: i2c /dev entries driver [ 8.268712] Loading modules backported from Linux version v6.18-0-g7d0a66e4b [ 8.275820] Backport generated by backports.git 4d44cef [ 8.354081] mt7915e 0001:01:00.0: enabling device (0140 -> 0142) [ 8.540072] mt7915e 0001:01:00.0: HW/SW Version: 0x8a108a10, Build Time: 20240429200716a [ 8.540072] [ 8.567183] mt7915e 0001:01:00.0: WM Firmware Version: ____000000, Build Time: 20240429200752 [ 8.567259] urngd: v1.0.2 started. [ 8.605472] mt7915e 0001:01:00.0: WA Firmware Version: DEV_000000, Build Time: 20240429200812 [ 8.743389] mt7915e 0001:01:00.0: registering led 'mt76-phy0' [ 8.824489] mt7915e 0001:01:00.0: registering led 'mt76-phy1' [ 8.951226] PPP generic driver version 2.4.2 [ 8.980055] NET: Registered PF_PPPOX protocol family [ 8.999628] kmodloader: done loading kernel modules from /etc/modules.d/* [ 19.492445] mt7530-mmio 1fb58000.switch lan1: configuring for phy/internal link mode [ 19.503424] br-lan: port 1(lan1) entered blocking state [ 19.508707] br-lan: port 1(lan1) entered disabled state [ 19.514103] mt7530-mmio 1fb58000.switch lan1: entered allmulticast mode [ 19.520799] airoha_eth 1fb50000.ethernet eth0: entered allmulticast mode [ 19.527833] mt7530-mmio 1fb58000.switch lan1: entered promiscuous mode [ 19.546703] mt7530-mmio 1fb58000.switch lan2: configuring for phy/internal link mode [ 19.556841] br-lan: port 2(lan2) entered blocking state [ 19.562178] br-lan: port 2(lan2) entered disabled state [ 19.567474] mt7530-mmio 1fb58000.switch lan2: entered allmulticast mode [ 19.574550] mt7530-mmio 1fb58000.switch lan2: entered promiscuous mode [ 19.599657] mt7530-mmio 1fb58000.switch lan3: configuring for phy/internal link mode [ 19.609144] br-lan: port 3(lan3) entered blocking state [ 19.614553] br-lan: port 3(lan3) entered disabled state [ 19.619923] mt7530-mmio 1fb58000.switch lan3: entered allmulticast mode [ 19.626979] mt7530-mmio 1fb58000.switch lan3: entered promiscuous mode [ 19.672216] mt7530-mmio 1fb58000.switch wan: configuring for phy/internal link mode [ 20.114482] br-lan: port 4(phy0-ap0) entered blocking state [ 20.120174] br-lan: port 4(phy0-ap0) entered disabled state [ 20.125815] mt7915e 0001:01:00.0 phy0-ap0: entered allmulticast mode [ 20.132541] mt7915e 0001:01:00.0 phy0-ap0: entered promiscuous mode [ 20.153025] mt7915e 0001:01:00.0 phy0-ap0: left allmulticast mode [ 20.159169] mt7915e 0001:01:00.0 phy0-ap0: left promiscuous mode [ 20.165397] br-lan: port 4(phy0-ap0) entered disabled state [ 20.265570] br-lan: port 4(phy0-ap0) entered blocking state [ 20.271310] br-lan: port 4(phy0-ap0) entered disabled state [ 20.276952] mt7915e 0001:01:00.0 phy0-ap0: entered allmulticast mode [ 20.283622] mt7915e 0001:01:00.0 phy0-ap0: entered promiscuous mode [ 20.710188] br-lan: port 5(phy1-ap0) entered blocking state [ 20.715836] br-lan: port 5(phy1-ap0) entered disabled state [ 20.721630] mt7915e 0001:01:00.0 phy1-ap0: entered allmulticast mode [ 20.728280] mt7915e 0001:01:00.0 phy1-ap0: entered promiscuous mode [ 20.790787] br-lan: port 5(phy1-ap0) entered blocking state [ 20.796396] br-lan: port 5(phy1-ap0) entered forwarding state [ 20.803849] mt7915e 0001:01:00.0 phy1-ap0: left allmulticast mode [ 20.810155] mt7915e 0001:01:00.0 phy1-ap0: left promiscuous mode [ 20.816406] br-lan: port 5(phy1-ap0) entered disabled state [ 20.859888] br-lan: port 5(phy1-ap0) entered blocking state [ 20.865530] br-lan: port 5(phy1-ap0) entered disabled state [ 20.871305] mt7915e 0001:01:00.0 phy1-ap0: entered allmulticast mode [ 20.878000] mt7915e 0001:01:00.0 phy1-ap0: entered promiscuous mode [ 23.680957] mt7530-mmio 1fb58000.switch lan1: Link is Up - 1Gbps/Full - flow control rx/tx [ 23.689334] br-lan: port 1(lan1) entered blocking state [ 23.694576] br-lan: port 1(lan1) entered forwarding state [ 24.224969] br-lan: port 5(phy1-ap0) entered blocking state [ 24.230605] br-lan: port 5(phy1-ap0) entered forwarding state [ 28.032662] br-lan: port 4(phy0-ap0) entered blocking state [ 28.038259] br-lan: port 4(phy0-ap0) entered forwarding state [ 34.240720] mt7530-mmio 1fb58000.switch wan: Link is Up - 1Gbps/Full - flow control rx [ 37.200762] mt7530-mmio 1fb58000.switch lan1: Link is Down [ 37.206378] br-lan: port 1(lan1) entered disabled state [ 39.282321] mt7530-mmio 1fb58000.switch lan1: Link is Up - 1Gbps/Full - flow control rx/tx [ 39.283311] br-lan: port 1(lan1) entered blocking state [ 39.295932] br-lan: port 1(lan1) entered forwarding state ```
Author
Owner

mt76 crashing

[    7.577597] mt7915e 0001:01:00.0: enabling device (0140 -> 0142)
[    7.698937] mt7915e 0001:01:00.0: attaching wed device 1 version 1
[    7.741737] airoha_wed1: error status=00080000
[    7.770020] urngd: v1.0.2 started.
[   12.798912] mt7915e 0001:01:00.0: Retry message 00000010 (seq 1)
[   17.838919] mt7915e 0001:01:00.0: Message 00000010 (seq 1) timeout
[   17.845144] mt7915e 0001:01:00.0: Could not release semaphore
[   17.848944] 8<--- cut here ---
[   17.850945] mt7915e 0001:01:00.0: Failed to get patch semaphore
[   17.853944] Unable to handle kernel NULL pointer dereference at virtual address 00000004 when write
[   17.868958] [00000004] *pgd=00000000
[   17.872563] Internal error: Oops: 817 [#1] SMP ARM
[   17.877358] Modules linked in: mt7915e(O+) mt76_connac_lib(O) mt76(O) mac80211(O) cfg80211(O) slhc nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c hwmon crc_ccitt compat(O) i2c_dev sha512_generic sha512_arm seqiv sha3_generic jitterentropy_rng drbg hmac geniv rng cmac leds_gpio xhci_plat_hcd ohci_platform ohci_hcd fsl_mph_dr_of ehci_platform ehci_fsl ehci_hcd gpio_button_hotplug(O) crc32c_generic
[   17.916588] CPU: 0 UID: 0 PID: 293 Comm: kworker/u8:1 Tainted: G           O       6.12.63 #0
[   17.925119] Tainted: [O]=OOT_MODULE
[   17.928606] Hardware name: Generic DT based system
[   17.933400] Workqueue: mt76 mt7915_mac_reset_work [mt7915e]
[   17.939023] PC is at __mt76_tx_complete_skb+0x500/0xabc [mt76]
[   17.944875] LR is at __mt76_tx_complete_skb+0x4e8/0xabc [mt76]
[   17.950724] pc : [<bf258ce8>]    lr : [<bf258cd0>]    psr: a0000013
[   17.956992] sp : cc181e88  ip : 00000000  fp : ccf918a0
[   17.962218] r10: ccf96c04  r9 : ccf918bc  r8 : ccf918b8
[   17.967442] r7 : cc181e88  r6 : 00000000  r5 : ccf918a0  r4 : ccf918a0
[   17.973970] r3 : cc181e88  r2 : 00000000  r1 : 00000000  r0 : ccf918b8
[   17.980499] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[   17.987637] Control: 10c5383d  Table: 8d14006a  DAC: 00000055
[   17.993381] Register r0 information: non-slab/vmalloc memory
[   17.999049] Register r1 information: NULL pointer
[   18.003754] Register r2 information: NULL pointer
[   18.008458] Register r3 information: non-slab/vmalloc memory
[   18.014119] Register r4 information: non-slab/vmalloc memory
[   18.019778] Register r5 information: non-slab/vmalloc memory
[   18.025438] Register r6 information: NULL pointer
[   18.030142] Register r7 information: non-slab/vmalloc memory
[   18.035802] Register r8 information: non-slab/vmalloc memory
[   18.041462] Register r9 information: non-slab/vmalloc memory
[   18.047122] Register r10 information: non-slab/vmalloc memory
[   18.052869] Register r11 information: non-slab/vmalloc memory
[   18.058615] Register r12 information: NULL pointer
[   18.063407] Process kworker/u8:1 (pid: 293, stack limit = 0x2b35db30)
[   18.069848] Stack: (0xcc181e88 to 0xcc182000)
[   18.074210] 1e80:                   cc181e88 cc181e88 ccf918a0 ccf918a0 00000000 ccf91dc4
[   18.082388] 1ea0: ccf91c04 00000000 ccf96c04 bf2592c0 00000000 ccf93234 00000000 bf2795fc
[   18.090564] 1ec0: ccf93c04 ccf99c04 ccf918ac 00000000 00000000 c0a187a4 c5010f00 ccf91e30
[   18.098741] 1ee0: 00000000 ccf94c04 ccf91e18 ccf939b4 74030188 00000000 00000000 ccf91dc4
[   18.106919] 1f00: c5011468 c50de900 ccf99c04 c4e81000 c0008600 01000000 c4e81005 c50de950
[   18.115096] 1f20: c4103d40 c0131e00 c5011468 c5010f00 c5010f00 c01327f8 c50de900 c50de900
[   18.123273] 1f40: ccf99c08 ccf99c04 c000861c c50de92c c50de900 c0008600 c0008620 c0132a5c
[   18.131450] 1f60: 61c88647 c5010f00 c006bec8 c00eda00 c5010f00 c01327f8 c50de900 c00ed980
[   18.139627] 1f80: c006bec8 00000000 00000000 c013ada0 c00eda00 c013acc8 00000000 00000000
[   18.147804] 1fa0: 00000000 00000000 00000000 c010013c 00000000 00000000 00000000 00000000
[   18.155980] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   18.164158] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[   18.172330] Call trace: 
[   18.172349]  __mt76_tx_complete_skb [mt76] from mt76_txq_schedule_all+0x10/0x48 [mt76]
[   18.182817]  mt76_txq_schedule_all [mt76] from mt7915_mac_reset_work+0xaac/0xd0c [mt7915e]
[   18.191146]  mt7915_mac_reset_work [mt7915e] from process_one_work+0x1a4/0x34c
[   18.198419]  process_one_work from worker_thread+0x264/0x444
[   18.204093]  worker_thread from kthread+0xd8/0xf4
[   18.208808]  kthread from ret_from_fork+0x14/0x38
[   18.213519] Exception stack(0xcc181fb0 to 0xcc181ff8)
[   18.218574] 1fa0:                                     00000000 00000000 00000000 00000000
[   18.226753] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   18.234929] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[   18.241546] Code: 0a000008 e595101c e5952020 e59d3000 (e581d004) 
[   18.247663] ---[ end trace 0000000000000000 ]---
[   18.252301] Kernel panic - not syncing: Fatal exception in interrupt
[   18.258719] Rebooting in 1 seconds..
mt76 crashing ``` [ 7.577597] mt7915e 0001:01:00.0: enabling device (0140 -> 0142) [ 7.698937] mt7915e 0001:01:00.0: attaching wed device 1 version 1 [ 7.741737] airoha_wed1: error status=00080000 [ 7.770020] urngd: v1.0.2 started. [ 12.798912] mt7915e 0001:01:00.0: Retry message 00000010 (seq 1) [ 17.838919] mt7915e 0001:01:00.0: Message 00000010 (seq 1) timeout [ 17.845144] mt7915e 0001:01:00.0: Could not release semaphore [ 17.848944] 8<--- cut here --- [ 17.850945] mt7915e 0001:01:00.0: Failed to get patch semaphore [ 17.853944] Unable to handle kernel NULL pointer dereference at virtual address 00000004 when write [ 17.868958] [00000004] *pgd=00000000 [ 17.872563] Internal error: Oops: 817 [#1] SMP ARM [ 17.877358] Modules linked in: mt7915e(O+) mt76_connac_lib(O) mt76(O) mac80211(O) cfg80211(O) slhc nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c hwmon crc_ccitt compat(O) i2c_dev sha512_generic sha512_arm seqiv sha3_generic jitterentropy_rng drbg hmac geniv rng cmac leds_gpio xhci_plat_hcd ohci_platform ohci_hcd fsl_mph_dr_of ehci_platform ehci_fsl ehci_hcd gpio_button_hotplug(O) crc32c_generic [ 17.916588] CPU: 0 UID: 0 PID: 293 Comm: kworker/u8:1 Tainted: G O 6.12.63 #0 [ 17.925119] Tainted: [O]=OOT_MODULE [ 17.928606] Hardware name: Generic DT based system [ 17.933400] Workqueue: mt76 mt7915_mac_reset_work [mt7915e] [ 17.939023] PC is at __mt76_tx_complete_skb+0x500/0xabc [mt76] [ 17.944875] LR is at __mt76_tx_complete_skb+0x4e8/0xabc [mt76] [ 17.950724] pc : [<bf258ce8>] lr : [<bf258cd0>] psr: a0000013 [ 17.956992] sp : cc181e88 ip : 00000000 fp : ccf918a0 [ 17.962218] r10: ccf96c04 r9 : ccf918bc r8 : ccf918b8 [ 17.967442] r7 : cc181e88 r6 : 00000000 r5 : ccf918a0 r4 : ccf918a0 [ 17.973970] r3 : cc181e88 r2 : 00000000 r1 : 00000000 r0 : ccf918b8 [ 17.980499] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 17.987637] Control: 10c5383d Table: 8d14006a DAC: 00000055 [ 17.993381] Register r0 information: non-slab/vmalloc memory [ 17.999049] Register r1 information: NULL pointer [ 18.003754] Register r2 information: NULL pointer [ 18.008458] Register r3 information: non-slab/vmalloc memory [ 18.014119] Register r4 information: non-slab/vmalloc memory [ 18.019778] Register r5 information: non-slab/vmalloc memory [ 18.025438] Register r6 information: NULL pointer [ 18.030142] Register r7 information: non-slab/vmalloc memory [ 18.035802] Register r8 information: non-slab/vmalloc memory [ 18.041462] Register r9 information: non-slab/vmalloc memory [ 18.047122] Register r10 information: non-slab/vmalloc memory [ 18.052869] Register r11 information: non-slab/vmalloc memory [ 18.058615] Register r12 information: NULL pointer [ 18.063407] Process kworker/u8:1 (pid: 293, stack limit = 0x2b35db30) [ 18.069848] Stack: (0xcc181e88 to 0xcc182000) [ 18.074210] 1e80: cc181e88 cc181e88 ccf918a0 ccf918a0 00000000 ccf91dc4 [ 18.082388] 1ea0: ccf91c04 00000000 ccf96c04 bf2592c0 00000000 ccf93234 00000000 bf2795fc [ 18.090564] 1ec0: ccf93c04 ccf99c04 ccf918ac 00000000 00000000 c0a187a4 c5010f00 ccf91e30 [ 18.098741] 1ee0: 00000000 ccf94c04 ccf91e18 ccf939b4 74030188 00000000 00000000 ccf91dc4 [ 18.106919] 1f00: c5011468 c50de900 ccf99c04 c4e81000 c0008600 01000000 c4e81005 c50de950 [ 18.115096] 1f20: c4103d40 c0131e00 c5011468 c5010f00 c5010f00 c01327f8 c50de900 c50de900 [ 18.123273] 1f40: ccf99c08 ccf99c04 c000861c c50de92c c50de900 c0008600 c0008620 c0132a5c [ 18.131450] 1f60: 61c88647 c5010f00 c006bec8 c00eda00 c5010f00 c01327f8 c50de900 c00ed980 [ 18.139627] 1f80: c006bec8 00000000 00000000 c013ada0 c00eda00 c013acc8 00000000 00000000 [ 18.147804] 1fa0: 00000000 00000000 00000000 c010013c 00000000 00000000 00000000 00000000 [ 18.155980] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 18.164158] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000 [ 18.172330] Call trace: [ 18.172349] __mt76_tx_complete_skb [mt76] from mt76_txq_schedule_all+0x10/0x48 [mt76] [ 18.182817] mt76_txq_schedule_all [mt76] from mt7915_mac_reset_work+0xaac/0xd0c [mt7915e] [ 18.191146] mt7915_mac_reset_work [mt7915e] from process_one_work+0x1a4/0x34c [ 18.198419] process_one_work from worker_thread+0x264/0x444 [ 18.204093] worker_thread from kthread+0xd8/0xf4 [ 18.208808] kthread from ret_from_fork+0x14/0x38 [ 18.213519] Exception stack(0xcc181fb0 to 0xcc181ff8) [ 18.218574] 1fa0: 00000000 00000000 00000000 00000000 [ 18.226753] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 18.234929] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 [ 18.241546] Code: 0a000008 e595101c e5952020 e59d3000 (e581d004) [ 18.247663] ---[ end trace 0000000000000000 ]--- [ 18.252301] Kernel panic - not syncing: Fatal exception in interrupt [ 18.258719] Rebooting in 1 seconds.. ```
Owner

[ 7.741737] airoha_wed1: error status=00080000

You need to look in the all the mt76 patches I uploaded to see what is needed for working WED support.

[ 7.741737] airoha_wed1: error status=00080000 You need to look in the all the mt76 patches I uploaded to see what is needed for working WED support.
Author
Owner

One question, what do I need to do to make the PPE return correct values to entries and bind?

One question, what do I need to do to make the PPE return correct values to `entries` and `bind`?
Owner

I looked at the register space for AN7581 and EN7523 and they are very similar. Can you instrument the code and print out the addresses that the code tries to read?

I looked at the register space for AN7581 and EN7523 and they are very similar. Can you instrument the code and print out the addresses that the code tries to read?
Author
Owner

get this with this changes:

diff --git a/drivers/net/ethernet/airoha/airoha_eth.c b/drivers/net/ethernet/airoha/airoha_eth.c
index e37830571..9151e4add 100644
--- a/drivers/net/ethernet/airoha/airoha_eth.c
+++ b/drivers/net/ethernet/airoha/airoha_eth.c
@@ -3462,8 +3462,8 @@ static struct airoha_qdma_eth_rx_msg1 en7523_qdma_eth_rxmsg = {
 	.l4_valid_mask = BIT(26),
 	.l4f_mask = BIT(25),
 	.sport_mask = GENMASK(24, 20),
-	.crsn_mask = GENMASK(19, 16),
-	.ppe_entry_mask = GENMASK(15, 0),
+	.crsn_mask = GENMASK(19, 15),
+	.ppe_entry_mask = GENMASK(14, 0),
 };
 
 static int airoha_en7523_get_src_port_id(struct airoha_gdm_port *port, int nbq)
@@ -3535,7 +3535,7 @@ static const struct airoha_eth_soc_data en7523_soc_data = {
 	.tx_ring = 8,
 	.num_ppe = 1,
 	.irq_banks = 2,
-	.ppe_sram_entries = 512,
+	.ppe_sram_entries = 16 * 1024,
 	.ppe_stats_entries = 4 * 1024,
 	.ppe_dram_entries = 16 * 1024,
 	.ppe_entries_size = 64,
diff --git a/drivers/net/ethernet/airoha/airoha_npu.c b/drivers/net/ethernet/airoha/airoha_npu.c
index 1e630231d..019bd6fa8 100644
--- a/drivers/net/ethernet/airoha/airoha_npu.c
+++ b/drivers/net/ethernet/airoha/airoha_npu.c
@@ -648,6 +648,8 @@ static void airoha_boot_core_v1(struct airoha_npu *npu) {
 		regmap_write(npu->regmap, REG_CR_BOOT_TRIGGER(npu->soc_data), boot_type);
 
 		mdelay(100);
+		if (core == 2)
+			break;
 	}
 
 	// Get NPU Version
diff --git a/drivers/net/ethernet/airoha/airoha_ppe.c b/drivers/net/ethernet/airoha/airoha_ppe.c
index cabd70d93..9e68690fb 100644
--- a/drivers/net/ethernet/airoha/airoha_ppe.c
+++ b/drivers/net/ethernet/airoha/airoha_ppe.c
@@ -613,6 +613,10 @@ airoha_ppe_foe_get_entry_locked(struct airoha_ppe *ppe, u32 hash)
 		u32 val;
 		int i;
 
+		dev_info(eth->dev, "Reg PPE_RAM_CTRL: 0x%x, PPE_SRAM_CTRL_ENTRY_MASK|PPE_SRAM_CTRL_REQ_MASK: 0x%lx\n",
+			REG_PPE_RAM_CTRL(ppe2),
+			(FIELD_PREP(PPE_SRAM_CTRL_ENTRY_MASK, hash) | PPE_SRAM_CTRL_REQ_MASK));
+
 		airoha_fe_wr(ppe->eth, REG_PPE_RAM_CTRL(ppe2),
 			     FIELD_PREP(PPE_SRAM_CTRL_ENTRY_MASK, hash) |
 			     PPE_SRAM_CTRL_REQ_MASK);
@@ -622,10 +626,11 @@ airoha_ppe_foe_get_entry_locked(struct airoha_ppe *ppe, u32 hash)
 					     REG_PPE_RAM_CTRL(ppe2)))
 			return NULL;
 
-		for (i = 0; i < PPE_ENTRY_SIZE(ppe->eth->soc) / PPE_ENTRY_SIZE(ppe->eth->soc);
-		     i++)
-			hwe[i] = airoha_fe_rr(eth,
-					      REG_PPE_RAM_ENTRY(ppe2, i));
+		for (i = 0; i < PPE_ENTRY_SIZE(ppe->eth->soc) / sizeof(u32); i++) {
+				dev_info(eth->dev, "REG_PPE_RAM_ENTRY: 0x%x", REG_PPE_RAM_ENTRY(ppe2, i));
+				hwe[i] = airoha_fe_rr(eth,
+							   REG_PPE_RAM_ENTRY(ppe2, i));
+			 }
 	}
 
 	return ppe->foe + hash * PPE_ENTRY_SIZE(ppe->eth->soc);
diff --git a/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c b/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c
index 0112c4115..e98fd703c 100644
--- a/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c
+++ b/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c
@@ -56,6 +56,9 @@ static int airoha_ppe_debugfs_foe_show(struct seq_file *m, void *private,
 	u32 ppe_num_entries = airoha_ppe_get_total_num_entries(ppe);
 	int i;
 
+	dev_info(ppe->eth->dev, "PPE Number entries: %d", ppe_num_entries);
+	ppe_num_entries /= 2;
+
 	for (i = 0; i < ppe_num_entries; i++) {
 		const char *state_str, *type_str = "UNKNOWN";
 		void *src_addr = NULL, *dest_addr = NULL;
get this with this changes: ```diff diff --git a/drivers/net/ethernet/airoha/airoha_eth.c b/drivers/net/ethernet/airoha/airoha_eth.c index e37830571..9151e4add 100644 --- a/drivers/net/ethernet/airoha/airoha_eth.c +++ b/drivers/net/ethernet/airoha/airoha_eth.c @@ -3462,8 +3462,8 @@ static struct airoha_qdma_eth_rx_msg1 en7523_qdma_eth_rxmsg = { .l4_valid_mask = BIT(26), .l4f_mask = BIT(25), .sport_mask = GENMASK(24, 20), - .crsn_mask = GENMASK(19, 16), - .ppe_entry_mask = GENMASK(15, 0), + .crsn_mask = GENMASK(19, 15), + .ppe_entry_mask = GENMASK(14, 0), }; static int airoha_en7523_get_src_port_id(struct airoha_gdm_port *port, int nbq) @@ -3535,7 +3535,7 @@ static const struct airoha_eth_soc_data en7523_soc_data = { .tx_ring = 8, .num_ppe = 1, .irq_banks = 2, - .ppe_sram_entries = 512, + .ppe_sram_entries = 16 * 1024, .ppe_stats_entries = 4 * 1024, .ppe_dram_entries = 16 * 1024, .ppe_entries_size = 64, diff --git a/drivers/net/ethernet/airoha/airoha_npu.c b/drivers/net/ethernet/airoha/airoha_npu.c index 1e630231d..019bd6fa8 100644 --- a/drivers/net/ethernet/airoha/airoha_npu.c +++ b/drivers/net/ethernet/airoha/airoha_npu.c @@ -648,6 +648,8 @@ static void airoha_boot_core_v1(struct airoha_npu *npu) { regmap_write(npu->regmap, REG_CR_BOOT_TRIGGER(npu->soc_data), boot_type); mdelay(100); + if (core == 2) + break; } // Get NPU Version diff --git a/drivers/net/ethernet/airoha/airoha_ppe.c b/drivers/net/ethernet/airoha/airoha_ppe.c index cabd70d93..9e68690fb 100644 --- a/drivers/net/ethernet/airoha/airoha_ppe.c +++ b/drivers/net/ethernet/airoha/airoha_ppe.c @@ -613,6 +613,10 @@ airoha_ppe_foe_get_entry_locked(struct airoha_ppe *ppe, u32 hash) u32 val; int i; + dev_info(eth->dev, "Reg PPE_RAM_CTRL: 0x%x, PPE_SRAM_CTRL_ENTRY_MASK|PPE_SRAM_CTRL_REQ_MASK: 0x%lx\n", + REG_PPE_RAM_CTRL(ppe2), + (FIELD_PREP(PPE_SRAM_CTRL_ENTRY_MASK, hash) | PPE_SRAM_CTRL_REQ_MASK)); + airoha_fe_wr(ppe->eth, REG_PPE_RAM_CTRL(ppe2), FIELD_PREP(PPE_SRAM_CTRL_ENTRY_MASK, hash) | PPE_SRAM_CTRL_REQ_MASK); @@ -622,10 +626,11 @@ airoha_ppe_foe_get_entry_locked(struct airoha_ppe *ppe, u32 hash) REG_PPE_RAM_CTRL(ppe2))) return NULL; - for (i = 0; i < PPE_ENTRY_SIZE(ppe->eth->soc) / PPE_ENTRY_SIZE(ppe->eth->soc); - i++) - hwe[i] = airoha_fe_rr(eth, - REG_PPE_RAM_ENTRY(ppe2, i)); + for (i = 0; i < PPE_ENTRY_SIZE(ppe->eth->soc) / sizeof(u32); i++) { + dev_info(eth->dev, "REG_PPE_RAM_ENTRY: 0x%x", REG_PPE_RAM_ENTRY(ppe2, i)); + hwe[i] = airoha_fe_rr(eth, + REG_PPE_RAM_ENTRY(ppe2, i)); + } } return ppe->foe + hash * PPE_ENTRY_SIZE(ppe->eth->soc); diff --git a/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c b/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c index 0112c4115..e98fd703c 100644 --- a/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c +++ b/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c @@ -56,6 +56,9 @@ static int airoha_ppe_debugfs_foe_show(struct seq_file *m, void *private, u32 ppe_num_entries = airoha_ppe_get_total_num_entries(ppe); int i; + dev_info(ppe->eth->dev, "PPE Number entries: %d", ppe_num_entries); + ppe_num_entries /= 2; + for (i = 0; i < ppe_num_entries; i++) { const char *state_str, *type_str = "UNKNOWN"; void *src_addr = NULL, *dest_addr = NULL; ```
Owner

There is no ppe2 on the EN7523.

There is no ppe2 on the EN7523.
Owner

Total amount of forwarding rules are 512 sram and 16k dram.

Total amount of forwarding rules are 512 sram and 16k dram.
Author
Owner

I've reverted some things here that were accidentally replaced, and I'll revert the information from the PPE

I've reverted some things here that were accidentally replaced, and I'll revert the information from the PPE
Author
Owner
diff --git a/drivers/net/ethernet/airoha/airoha_eth.c b/drivers/net/ethernet/airoha/airoha_eth.c
index e37830571..0beb2af31 100644
--- a/drivers/net/ethernet/airoha/airoha_eth.c
+++ b/drivers/net/ethernet/airoha/airoha_eth.c
@@ -3462,8 +3462,8 @@ static struct airoha_qdma_eth_rx_msg1 en7523_qdma_eth_rxmsg = {
 	.l4_valid_mask = BIT(26),
 	.l4f_mask = BIT(25),
 	.sport_mask = GENMASK(24, 20),
-	.crsn_mask = GENMASK(19, 16),
-	.ppe_entry_mask = GENMASK(15, 0),
+	.crsn_mask = GENMASK(19, 15),
+	.ppe_entry_mask = GENMASK(14, 0),
 };
 
 static int airoha_en7523_get_src_port_id(struct airoha_gdm_port *port, int nbq)
@@ -3495,11 +3495,11 @@ static const struct airoha_eth_soc_data en7581_soc_data = {
 	.max_packet_size = 2048,
 	.rx_ring = 32,
 	.tx_ring = 32,
-	.num_ppe = 2,
 	.irq_banks = 4,
+	.num_ppe = 2,
 	.ppe_sram_entries = 8 * 1024,
-	.ppe_stats_entries = 4 * 1024,
 	.ppe_dram_entries = 16 * 1024,
+	.ppe_stats_entries = 4 * 1024,
 	.ppe_entries_size = 80,
 	.eth_rx_msg1 = &default_qdma_eth_rxmsg,
 	.ops = {
@@ -3514,11 +3514,11 @@ static const struct airoha_eth_soc_data an7583_soc_data = {
 	.max_packet_size = 2048,
 	.rx_ring = 32,
 	.tx_ring = 32,
-	.num_ppe = 1,
 	.irq_banks = 4,
+	.num_ppe = 1,
 	.ppe_sram_entries = 8 * 1024,
-	.ppe_stats_entries = 4 * 1024,
 	.ppe_dram_entries = 16 * 1024,
+	.ppe_stats_entries = 4 * 1024,
 	.ppe_entries_size = 80,
 	.eth_rx_msg1 = &default_qdma_eth_rxmsg,
 	.ops = {
@@ -3533,12 +3533,12 @@ static const struct airoha_eth_soc_data en7523_soc_data = {
 	.max_packet_size = 16384,
 	.rx_ring = 16,
 	.tx_ring = 8,
-	.num_ppe = 1,
 	.irq_banks = 2,
+	.num_ppe = 1,
 	.ppe_sram_entries = 512,
-	.ppe_stats_entries = 4 * 1024,
 	.ppe_dram_entries = 16 * 1024,
-	.ppe_entries_size = 64,
+	.ppe_stats_entries = 4 * 1024,
+	.ppe_entries_size = 80,
 	.eth_rx_msg1 = &en7523_qdma_eth_rxmsg,
 	.ops = {
 		.get_src_port_id = airoha_en7523_get_src_port_id,
diff --git a/drivers/net/ethernet/airoha/airoha_eth.h b/drivers/net/ethernet/airoha/airoha_eth.h
index 33f58abd5..1734c1082 100644
--- a/drivers/net/ethernet/airoha/airoha_eth.h
+++ b/drivers/net/ethernet/airoha/airoha_eth.h
@@ -438,17 +438,13 @@ struct airoha_foe_ipv6 {
 };
 
 struct airoha_foe_entry {
+	u32 ib1;
 	union {
-		struct {
-			u32 ib1;
-			union {
-				struct airoha_foe_bridge bridge;
-				struct airoha_foe_ipv4 ipv4;
-				struct airoha_foe_ipv4_dslite dslite;
-				struct airoha_foe_ipv6 ipv6;
-				DECLARE_FLEX_ARRAY(u32, d);
-			};
-		};
+		struct airoha_foe_bridge bridge;
+		struct airoha_foe_ipv4 ipv4;
+		struct airoha_foe_ipv4_dslite dslite;
+		struct airoha_foe_ipv6 ipv6;
+		DECLARE_FLEX_ARRAY(u32, d);
 	};
 };
 
@@ -612,11 +608,11 @@ struct airoha_eth_soc_data {
 	int tx_ring, rx_ring;
 	int num_xsi_rsts;
 	int max_packet_size;
-	int num_ppe;
 	int irq_banks;
+	int num_ppe;
 	int ppe_sram_entries;
-	int ppe_stats_entries;
 	int ppe_dram_entries;
+	int ppe_stats_entries;
 	int ppe_entries_size;
 	struct airoha_qdma_eth_rx_msg1 *eth_rx_msg1;
 	struct {
diff --git a/drivers/net/ethernet/airoha/airoha_npu.c b/drivers/net/ethernet/airoha/airoha_npu.c
index 1e630231d..019bd6fa8 100644
--- a/drivers/net/ethernet/airoha/airoha_npu.c
+++ b/drivers/net/ethernet/airoha/airoha_npu.c
@@ -648,6 +648,8 @@ static void airoha_boot_core_v1(struct airoha_npu *npu) {
 		regmap_write(npu->regmap, REG_CR_BOOT_TRIGGER(npu->soc_data), boot_type);
 
 		mdelay(100);
+		if (core == 2)
+			break;
 	}
 
 	// Get NPU Version
diff --git a/drivers/net/ethernet/airoha/airoha_ppe.c b/drivers/net/ethernet/airoha/airoha_ppe.c
index cabd70d93..42a65ce48 100644
--- a/drivers/net/ethernet/airoha/airoha_ppe.c
+++ b/drivers/net/ethernet/airoha/airoha_ppe.c
@@ -277,7 +277,7 @@ static int airoha_ppe_foe_entry_prepare(struct airoha_eth *eth,
 	struct airoha_foe_mac_info_common *l2;
 	u8 smac_id = 0xf;
 
-	memset(hwe, 0, PPE_ENTRY_SIZE(eth->soc));
+	memset(hwe, 0, sizeof(*hwe));
 
 	val = FIELD_PREP(AIROHA_FOE_IB1_BIND_STATE, AIROHA_FOE_STATE_BIND) |
 	      FIELD_PREP(AIROHA_FOE_IB1_BIND_PACKET_TYPE, type) |
@@ -613,6 +613,10 @@ airoha_ppe_foe_get_entry_locked(struct airoha_ppe *ppe, u32 hash)
 		u32 val;
 		int i;
 
+		dev_info(eth->dev, "Reg PPE_RAM_CTRL: 0x%x, PPE_SRAM_CTRL_ENTRY_MASK|PPE_SRAM_CTRL_REQ_MASK: 0x%lx\n",
+			REG_PPE_RAM_CTRL(ppe2),
+			(FIELD_PREP(PPE_SRAM_CTRL_ENTRY_MASK, hash) | PPE_SRAM_CTRL_REQ_MASK));
+
 		airoha_fe_wr(ppe->eth, REG_PPE_RAM_CTRL(ppe2),
 			     FIELD_PREP(PPE_SRAM_CTRL_ENTRY_MASK, hash) |
 			     PPE_SRAM_CTRL_REQ_MASK);
@@ -622,10 +626,10 @@ airoha_ppe_foe_get_entry_locked(struct airoha_ppe *ppe, u32 hash)
 					     REG_PPE_RAM_CTRL(ppe2)))
 			return NULL;
 
-		for (i = 0; i < PPE_ENTRY_SIZE(ppe->eth->soc) / PPE_ENTRY_SIZE(ppe->eth->soc);
-		     i++)
-			hwe[i] = airoha_fe_rr(eth,
-					      REG_PPE_RAM_ENTRY(ppe2, i));
+		for (i = 0; i < PPE_ENTRY_SIZE(ppe->eth->soc) / sizeof(*hwe); i++) {
+				hwe[i] = airoha_fe_rr(eth,
+							   REG_PPE_RAM_ENTRY(ppe2, i));
+			 }
 	}
 
 	return ppe->foe + hash * PPE_ENTRY_SIZE(ppe->eth->soc);
@@ -662,12 +666,12 @@ static bool airoha_ppe_foe_compare_entry(struct airoha_flow_table_entry *e,
 
 static int airoha_ppe_foe_commit_sram_entry(struct airoha_ppe *ppe, u32 hash)
 {
-	struct airoha_foe_entry *hwe = ppe->foe + hash * PPE_ENTRY_SIZE(ppe->eth->soc);
+	struct airoha_foe_entry *hwe = ppe->foe + hash * sizeof(*hwe);
 	bool ppe2 = hash >= PPE_SRAM_NUM_ENTRIES(ppe->eth->soc);
 	u32 *ptr = (u32 *)hwe, val;
 	int i;
 
-	for (i = 0; i < PPE_ENTRY_SIZE(ppe->eth->soc) / sizeof(*ptr); i++)
+	for (i = 0; i < sizeof(*hwe) / sizeof(*ptr); i++)
 		airoha_fe_wr(ppe->eth, REG_PPE_RAM_ENTRY(ppe2, i), ptr[i]);
 
 	wmb();
@@ -686,13 +690,13 @@ static int airoha_ppe_foe_commit_entry(struct airoha_ppe *ppe,
 				       u32 hash, bool rx_wlan)
 {
 	u32 sram_num_entries = airoha_ppe_get_total_sram_num_entries(ppe);
-	struct airoha_foe_entry *hwe = ppe->foe + hash * PPE_ENTRY_SIZE(ppe->eth->soc);
+	struct airoha_foe_entry *hwe = ppe->foe + hash * sizeof(*hwe);
 	u32 ts = airoha_ppe_get_timestamp(ppe);
 	struct airoha_eth *eth = ppe->eth;
 	struct airoha_npu *npu;
 	int err = 0;
 
-	memcpy(&hwe->d, &e->d, PPE_ENTRY_SIZE(ppe->eth->soc) - sizeof(hwe->ib1));
+	memcpy(&hwe->d, &e->d, sizeof(*hwe) - sizeof(hwe->ib1));
 	wmb();
 
 	e->ib1 &= ~AIROHA_FOE_IB1_BIND_TIMESTAMP;
@@ -1304,7 +1308,7 @@ static int airoha_ppe_flush_sram_entries(struct airoha_ppe *ppe)
 	for (i = 0; i < sram_num_entries; i++) {
 		int err;
 
-		memset(&hwe[i], 0, PPE_ENTRY_SIZE(ppe->eth->soc));
+		memset(&hwe[i], 0, sizeof(*hwe));
 		err = airoha_ppe_foe_commit_sram_entry(ppe, i);
 		if (err)
 			break;
diff --git a/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c b/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c
index 0112c4115..9a4c63e90 100644
--- a/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c
+++ b/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c
@@ -56,6 +56,8 @@ static int airoha_ppe_debugfs_foe_show(struct seq_file *m, void *private,
 	u32 ppe_num_entries = airoha_ppe_get_total_num_entries(ppe);
 	int i;
 
+	dev_info(ppe->eth->dev, "PPE Number entries: %d", ppe_num_entries);
+
 	for (i = 0; i < ppe_num_entries; i++) {
 		const char *state_str, *type_str = "UNKNOWN";
 		void *src_addr = NULL, *dest_addr = NULL;
@@ -69,10 +71,13 @@ static int airoha_ppe_debugfs_foe_show(struct seq_file *m, void *private,
 		bool ipv6 = false;
 
 		hwe = airoha_ppe_foe_get_entry(ppe, i);
-		if (!hwe)
+		if (!hwe) {
+			dev_info(ppe->eth->dev, "Skiping %d", i);
 			continue;
+		}
 
 		state = FIELD_GET(AIROHA_FOE_IB1_BIND_STATE, hwe->ib1);
+		dev_info(ppe->eth->dev, "FOE %d: State 0x%x", i, state);
 		if (!state)
 			continue;
 
```diff diff --git a/drivers/net/ethernet/airoha/airoha_eth.c b/drivers/net/ethernet/airoha/airoha_eth.c index e37830571..0beb2af31 100644 --- a/drivers/net/ethernet/airoha/airoha_eth.c +++ b/drivers/net/ethernet/airoha/airoha_eth.c @@ -3462,8 +3462,8 @@ static struct airoha_qdma_eth_rx_msg1 en7523_qdma_eth_rxmsg = { .l4_valid_mask = BIT(26), .l4f_mask = BIT(25), .sport_mask = GENMASK(24, 20), - .crsn_mask = GENMASK(19, 16), - .ppe_entry_mask = GENMASK(15, 0), + .crsn_mask = GENMASK(19, 15), + .ppe_entry_mask = GENMASK(14, 0), }; static int airoha_en7523_get_src_port_id(struct airoha_gdm_port *port, int nbq) @@ -3495,11 +3495,11 @@ static const struct airoha_eth_soc_data en7581_soc_data = { .max_packet_size = 2048, .rx_ring = 32, .tx_ring = 32, - .num_ppe = 2, .irq_banks = 4, + .num_ppe = 2, .ppe_sram_entries = 8 * 1024, - .ppe_stats_entries = 4 * 1024, .ppe_dram_entries = 16 * 1024, + .ppe_stats_entries = 4 * 1024, .ppe_entries_size = 80, .eth_rx_msg1 = &default_qdma_eth_rxmsg, .ops = { @@ -3514,11 +3514,11 @@ static const struct airoha_eth_soc_data an7583_soc_data = { .max_packet_size = 2048, .rx_ring = 32, .tx_ring = 32, - .num_ppe = 1, .irq_banks = 4, + .num_ppe = 1, .ppe_sram_entries = 8 * 1024, - .ppe_stats_entries = 4 * 1024, .ppe_dram_entries = 16 * 1024, + .ppe_stats_entries = 4 * 1024, .ppe_entries_size = 80, .eth_rx_msg1 = &default_qdma_eth_rxmsg, .ops = { @@ -3533,12 +3533,12 @@ static const struct airoha_eth_soc_data en7523_soc_data = { .max_packet_size = 16384, .rx_ring = 16, .tx_ring = 8, - .num_ppe = 1, .irq_banks = 2, + .num_ppe = 1, .ppe_sram_entries = 512, - .ppe_stats_entries = 4 * 1024, .ppe_dram_entries = 16 * 1024, - .ppe_entries_size = 64, + .ppe_stats_entries = 4 * 1024, + .ppe_entries_size = 80, .eth_rx_msg1 = &en7523_qdma_eth_rxmsg, .ops = { .get_src_port_id = airoha_en7523_get_src_port_id, diff --git a/drivers/net/ethernet/airoha/airoha_eth.h b/drivers/net/ethernet/airoha/airoha_eth.h index 33f58abd5..1734c1082 100644 --- a/drivers/net/ethernet/airoha/airoha_eth.h +++ b/drivers/net/ethernet/airoha/airoha_eth.h @@ -438,17 +438,13 @@ struct airoha_foe_ipv6 { }; struct airoha_foe_entry { + u32 ib1; union { - struct { - u32 ib1; - union { - struct airoha_foe_bridge bridge; - struct airoha_foe_ipv4 ipv4; - struct airoha_foe_ipv4_dslite dslite; - struct airoha_foe_ipv6 ipv6; - DECLARE_FLEX_ARRAY(u32, d); - }; - }; + struct airoha_foe_bridge bridge; + struct airoha_foe_ipv4 ipv4; + struct airoha_foe_ipv4_dslite dslite; + struct airoha_foe_ipv6 ipv6; + DECLARE_FLEX_ARRAY(u32, d); }; }; @@ -612,11 +608,11 @@ struct airoha_eth_soc_data { int tx_ring, rx_ring; int num_xsi_rsts; int max_packet_size; - int num_ppe; int irq_banks; + int num_ppe; int ppe_sram_entries; - int ppe_stats_entries; int ppe_dram_entries; + int ppe_stats_entries; int ppe_entries_size; struct airoha_qdma_eth_rx_msg1 *eth_rx_msg1; struct { diff --git a/drivers/net/ethernet/airoha/airoha_npu.c b/drivers/net/ethernet/airoha/airoha_npu.c index 1e630231d..019bd6fa8 100644 --- a/drivers/net/ethernet/airoha/airoha_npu.c +++ b/drivers/net/ethernet/airoha/airoha_npu.c @@ -648,6 +648,8 @@ static void airoha_boot_core_v1(struct airoha_npu *npu) { regmap_write(npu->regmap, REG_CR_BOOT_TRIGGER(npu->soc_data), boot_type); mdelay(100); + if (core == 2) + break; } // Get NPU Version diff --git a/drivers/net/ethernet/airoha/airoha_ppe.c b/drivers/net/ethernet/airoha/airoha_ppe.c index cabd70d93..42a65ce48 100644 --- a/drivers/net/ethernet/airoha/airoha_ppe.c +++ b/drivers/net/ethernet/airoha/airoha_ppe.c @@ -277,7 +277,7 @@ static int airoha_ppe_foe_entry_prepare(struct airoha_eth *eth, struct airoha_foe_mac_info_common *l2; u8 smac_id = 0xf; - memset(hwe, 0, PPE_ENTRY_SIZE(eth->soc)); + memset(hwe, 0, sizeof(*hwe)); val = FIELD_PREP(AIROHA_FOE_IB1_BIND_STATE, AIROHA_FOE_STATE_BIND) | FIELD_PREP(AIROHA_FOE_IB1_BIND_PACKET_TYPE, type) | @@ -613,6 +613,10 @@ airoha_ppe_foe_get_entry_locked(struct airoha_ppe *ppe, u32 hash) u32 val; int i; + dev_info(eth->dev, "Reg PPE_RAM_CTRL: 0x%x, PPE_SRAM_CTRL_ENTRY_MASK|PPE_SRAM_CTRL_REQ_MASK: 0x%lx\n", + REG_PPE_RAM_CTRL(ppe2), + (FIELD_PREP(PPE_SRAM_CTRL_ENTRY_MASK, hash) | PPE_SRAM_CTRL_REQ_MASK)); + airoha_fe_wr(ppe->eth, REG_PPE_RAM_CTRL(ppe2), FIELD_PREP(PPE_SRAM_CTRL_ENTRY_MASK, hash) | PPE_SRAM_CTRL_REQ_MASK); @@ -622,10 +626,10 @@ airoha_ppe_foe_get_entry_locked(struct airoha_ppe *ppe, u32 hash) REG_PPE_RAM_CTRL(ppe2))) return NULL; - for (i = 0; i < PPE_ENTRY_SIZE(ppe->eth->soc) / PPE_ENTRY_SIZE(ppe->eth->soc); - i++) - hwe[i] = airoha_fe_rr(eth, - REG_PPE_RAM_ENTRY(ppe2, i)); + for (i = 0; i < PPE_ENTRY_SIZE(ppe->eth->soc) / sizeof(*hwe); i++) { + hwe[i] = airoha_fe_rr(eth, + REG_PPE_RAM_ENTRY(ppe2, i)); + } } return ppe->foe + hash * PPE_ENTRY_SIZE(ppe->eth->soc); @@ -662,12 +666,12 @@ static bool airoha_ppe_foe_compare_entry(struct airoha_flow_table_entry *e, static int airoha_ppe_foe_commit_sram_entry(struct airoha_ppe *ppe, u32 hash) { - struct airoha_foe_entry *hwe = ppe->foe + hash * PPE_ENTRY_SIZE(ppe->eth->soc); + struct airoha_foe_entry *hwe = ppe->foe + hash * sizeof(*hwe); bool ppe2 = hash >= PPE_SRAM_NUM_ENTRIES(ppe->eth->soc); u32 *ptr = (u32 *)hwe, val; int i; - for (i = 0; i < PPE_ENTRY_SIZE(ppe->eth->soc) / sizeof(*ptr); i++) + for (i = 0; i < sizeof(*hwe) / sizeof(*ptr); i++) airoha_fe_wr(ppe->eth, REG_PPE_RAM_ENTRY(ppe2, i), ptr[i]); wmb(); @@ -686,13 +690,13 @@ static int airoha_ppe_foe_commit_entry(struct airoha_ppe *ppe, u32 hash, bool rx_wlan) { u32 sram_num_entries = airoha_ppe_get_total_sram_num_entries(ppe); - struct airoha_foe_entry *hwe = ppe->foe + hash * PPE_ENTRY_SIZE(ppe->eth->soc); + struct airoha_foe_entry *hwe = ppe->foe + hash * sizeof(*hwe); u32 ts = airoha_ppe_get_timestamp(ppe); struct airoha_eth *eth = ppe->eth; struct airoha_npu *npu; int err = 0; - memcpy(&hwe->d, &e->d, PPE_ENTRY_SIZE(ppe->eth->soc) - sizeof(hwe->ib1)); + memcpy(&hwe->d, &e->d, sizeof(*hwe) - sizeof(hwe->ib1)); wmb(); e->ib1 &= ~AIROHA_FOE_IB1_BIND_TIMESTAMP; @@ -1304,7 +1308,7 @@ static int airoha_ppe_flush_sram_entries(struct airoha_ppe *ppe) for (i = 0; i < sram_num_entries; i++) { int err; - memset(&hwe[i], 0, PPE_ENTRY_SIZE(ppe->eth->soc)); + memset(&hwe[i], 0, sizeof(*hwe)); err = airoha_ppe_foe_commit_sram_entry(ppe, i); if (err) break; diff --git a/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c b/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c index 0112c4115..9a4c63e90 100644 --- a/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c +++ b/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c @@ -56,6 +56,8 @@ static int airoha_ppe_debugfs_foe_show(struct seq_file *m, void *private, u32 ppe_num_entries = airoha_ppe_get_total_num_entries(ppe); int i; + dev_info(ppe->eth->dev, "PPE Number entries: %d", ppe_num_entries); + for (i = 0; i < ppe_num_entries; i++) { const char *state_str, *type_str = "UNKNOWN"; void *src_addr = NULL, *dest_addr = NULL; @@ -69,10 +71,13 @@ static int airoha_ppe_debugfs_foe_show(struct seq_file *m, void *private, bool ipv6 = false; hwe = airoha_ppe_foe_get_entry(ppe, i); - if (!hwe) + if (!hwe) { + dev_info(ppe->eth->dev, "Skiping %d", i); continue; + } state = FIELD_GET(AIROHA_FOE_IB1_BIND_STATE, hwe->ib1); + dev_info(ppe->eth->dev, "FOE %d: State 0x%x", i, state); if (!state) continue; ```
Author
Owner

state return this

state return this
Author
Owner

@merbanan

revert the patchers I had applied to the npu, and today I'm having problems with the Ethernet where the whole system is freezing when I try to access a any website. I haven't tested reverting to last week's commits yet

view video in attachaments

@merbanan revert the patchers I had applied to the npu, and today I'm having problems with the Ethernet where the whole system is freezing when I try to access a any website. I haven't tested reverting to last week's commits yet view video in attachaments
Author
Owner

I added patch for calibration for switch and fix dts switch interrups (I misspelled interrupt, instead of interrupts)

[    3.821306] mt7530-mmio 1fb58000.switch: configuring for fixed/internal link mode
[    3.829158] mt7530-mmio 1fb58000.switch: Link is Up - 10Gbps/Full - flow control rx/tx
[    4.098322] Airoha AN7523 PHY mt7530-0:09: TX AMP SW calibration saturation.
[    4.234541] Airoha AN7523 PHY mt7530-0:09: TX AMP SW calibration saturation.
[    4.314108] Airoha AN7523 PHY mt7530-0:09: TX AMP SW calibration saturation.
[    4.861892] mt7530-mmio 1fb58000.switch lan1 (uninitialized): PHY [mt7530-0:09] driver [Airoha AN7523 PHY] (irq=50)
[    5.241600] Airoha AN7523 PHY mt7530-0:0a: TX AMP SW calibration saturation.
[    5.321450] Airoha AN7523 PHY mt7530-0:0a: TX AMP SW calibration saturation.
[    5.868005] mt7530-mmio 1fb58000.switch lan2 (uninitialized): PHY [mt7530-0:0a] driver [Airoha AN7523 PHY] (irq=51)
[    6.261618] Airoha AN7523 PHY mt7530-0:0b: TX AMP SW calibration saturation.
[    6.880926] mt7530-mmio 1fb58000.switch lan3 (uninitialized): PHY [mt7530-0:0b] driver [Airoha AN7523 PHY] (irq=52)
[    7.832048] mt7530-mmio 1fb58000.switch wan (uninitialized): PHY [mt7530-0:0c] driver [Airoha AN7523 PHY] (irq=53)
root@OpenWrt:~# cat /proc/interrupts 
           CPU0       CPU1       
 26:      42207      44178     GICv3  27 Level     arch_timer
 28:          0          0     GICv3  58 Level     1fbf0200.system-controller:pinctrl
 31:          0          0     dummy   0 Edge      PCIe PME
 32:          0          0     GICv3  95 Level     1fa01800.hsdma
 33:        972          0     GICv3  50 Level     ttyS0
 34:          1          0     GICv3  67 Level     1faa1000.rng
 35:        291          0     GICv3  69 Level     airoha_eth.0
 36:          0          0     GICv3  87 Level     airoha_eth.1
 37:          0          0     GICv3  70 Level     airoha_eth.4
 38:          0          0     GICv3  90 Level     airoha_eth.5
 39:          0          0     GICv3 157 Level     airoha-npu-mbox
 46:          0          0     GICv3  65 Level     xhci-hcd:usb1
 47:          0          0     GICv3  55 Level     1efbd000.thermal-sensor
 48:          0          0     GICv3  80 Level     en7523-afe
 49:          5          0     GICv3  63 Level     mt7530
 50:          3          0    mt7530   1 Edge      mt7530-0:09
 51:          0          0    mt7530   2 Edge      mt7530-0:0a
 52:          0          0    mt7530   3 Edge      mt7530-0:0b
 53:          2          0    mt7530   4 Edge      mt7530-0:0c
 54:        385          0  MTK PCIe MSI 134742016 Edge      mt7915e
IPI0:          0          0  CPU wakeup interrupts
IPI1:          0          0  Timer broadcast interrupts
IPI2:        884        987  Rescheduling interrupts
IPI3:       2366       2202  Function call interrupts
IPI4:          0          0  CPU stop interrupts
IPI5:          0          0  IRQ work interrupts
IPI6:          0          0  completion interrupts
Err:          0
I added patch for calibration for switch and fix dts switch interrups (I misspelled `interrupt`, instead of `interrupts`) ``` [ 3.821306] mt7530-mmio 1fb58000.switch: configuring for fixed/internal link mode [ 3.829158] mt7530-mmio 1fb58000.switch: Link is Up - 10Gbps/Full - flow control rx/tx [ 4.098322] Airoha AN7523 PHY mt7530-0:09: TX AMP SW calibration saturation. [ 4.234541] Airoha AN7523 PHY mt7530-0:09: TX AMP SW calibration saturation. [ 4.314108] Airoha AN7523 PHY mt7530-0:09: TX AMP SW calibration saturation. [ 4.861892] mt7530-mmio 1fb58000.switch lan1 (uninitialized): PHY [mt7530-0:09] driver [Airoha AN7523 PHY] (irq=50) [ 5.241600] Airoha AN7523 PHY mt7530-0:0a: TX AMP SW calibration saturation. [ 5.321450] Airoha AN7523 PHY mt7530-0:0a: TX AMP SW calibration saturation. [ 5.868005] mt7530-mmio 1fb58000.switch lan2 (uninitialized): PHY [mt7530-0:0a] driver [Airoha AN7523 PHY] (irq=51) [ 6.261618] Airoha AN7523 PHY mt7530-0:0b: TX AMP SW calibration saturation. [ 6.880926] mt7530-mmio 1fb58000.switch lan3 (uninitialized): PHY [mt7530-0:0b] driver [Airoha AN7523 PHY] (irq=52) [ 7.832048] mt7530-mmio 1fb58000.switch wan (uninitialized): PHY [mt7530-0:0c] driver [Airoha AN7523 PHY] (irq=53) ``` ``` root@OpenWrt:~# cat /proc/interrupts CPU0 CPU1 26: 42207 44178 GICv3 27 Level arch_timer 28: 0 0 GICv3 58 Level 1fbf0200.system-controller:pinctrl 31: 0 0 dummy 0 Edge PCIe PME 32: 0 0 GICv3 95 Level 1fa01800.hsdma 33: 972 0 GICv3 50 Level ttyS0 34: 1 0 GICv3 67 Level 1faa1000.rng 35: 291 0 GICv3 69 Level airoha_eth.0 36: 0 0 GICv3 87 Level airoha_eth.1 37: 0 0 GICv3 70 Level airoha_eth.4 38: 0 0 GICv3 90 Level airoha_eth.5 39: 0 0 GICv3 157 Level airoha-npu-mbox 46: 0 0 GICv3 65 Level xhci-hcd:usb1 47: 0 0 GICv3 55 Level 1efbd000.thermal-sensor 48: 0 0 GICv3 80 Level en7523-afe 49: 5 0 GICv3 63 Level mt7530 50: 3 0 mt7530 1 Edge mt7530-0:09 51: 0 0 mt7530 2 Edge mt7530-0:0a 52: 0 0 mt7530 3 Edge mt7530-0:0b 53: 2 0 mt7530 4 Edge mt7530-0:0c 54: 385 0 MTK PCIe MSI 134742016 Edge mt7915e IPI0: 0 0 CPU wakeup interrupts IPI1: 0 0 Timer broadcast interrupts IPI2: 884 987 Rescheduling interrupts IPI3: 2366 2202 Function call interrupts IPI4: 0 0 CPU stop interrupts IPI5: 0 0 IRQ work interrupts IPI6: 0 0 completion interrupts Err: 0 ```
Author
Owner

but now the leds are not blinking and the wan interface is not identifying the connection

but now the leds are not blinking and the wan interface is not identifying the connection
Owner

If you leave out the calibration part does that help?

If you leave out the calibration part does that help?
Author
Owner

I'll see now, first I'll go up to pr commit

I'll see now, first I'll go up to pr commit
Author
Owner

If you leave out the calibration part does that help?

Now there is no network traffic at all, but the LEDs are blinking again

> If you leave out the calibration part does that help? Now there is no network traffic at all, but the LEDs are blinking again
Owner
/* LED Config */
phy_write_mmd(phydev, MDIO_MMD_VEND1, 0x24, 0xc007);
phy_write_mmd(phydev, MDIO_MMD_VEND1, 0x25, 0x003f);

Those should not be needed and should be handled by the led configuration of the phy driver.

/* LED Config */ phy_write_mmd(phydev, MDIO_MMD_VEND1, 0x24, 0xc007); phy_write_mmd(phydev, MDIO_MMD_VEND1, 0x25, 0x003f); Those should not be needed and should be handled by the led configuration of the phy driver.
Owner

When I wrote a phy driver for AN7581 I often ended up in a non working state.

Start with just case REXT: and then add modes until it stops working to track down the parts that brakes the data link.

When I wrote a phy driver for AN7581 I often ended up in a non working state. Start with just case REXT: and then add modes until it stops working to track down the parts that brakes the data link.
Author
Owner

I will be locking this issue for new conversations, let's keep the conversations going in PR #9

I will be locking this issue for new conversations, let's keep the conversations going in PR #9
Sirherobrine23 locked and limited conversation to collaborators 2026-03-08 07:18:29 +00:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Blocks
#3 WDMA + WED
airoha_en7523/kernel
#5 XPON
airoha_en7523/kernel
#8 Serdes
airoha_en7523/kernel
Reference: airoha_en7523/kernel#2