瑞芯微RK平台网络与高速接口排障指南|GMAC RGMII、DPDK与PCIe全链路

本文围绕瑞芯微RK3576平台(Purple Pi OH2开发板)的GMAC/RGMII、DPDK及PCIe全链路排障展开,提出四级诊断法:PHY物理层连通→速率协商→RGMII时序校准→数据面与性能优化。重点解析RGMII delayline配置、DPDK用户态绑定要点、PCIe Link状态判据(LTSSM码)、带宽瓶颈分析(Gen2 x1实测约500MB/s),并给出ethtool、lspci、iperf3等关键命令实测参考。

瑞芯微RK平台网络与高速接口排障一般分四级:PHY/物理先通(reset、MDIO、供电),再协商(ethtool 看 GMAC 速率、lspci看PCIe Link),再数据面(RGMII tx/rx delay、驱动绑定),最后性能(iperf3/DPDK、PCIe 带宽)。基于触觉智能RK3576开发板Purple Pi OH2的双千兆网口与与其M.2 PCIe实测,按 GMAC→DPDK→PCIe 逐层给命令。

mermaid-diagram

本板 gmac0/gmac1 双千兆(PHY走rgmii 模式),GMAC 驱动用RK3568系列 ops(dwmac-rk.c)。排障顺序:PHY 识别 → 协商速率 → delayline/时序 → 数据面 → 性能。

关注「触觉智能」CSDN,联系客服即可获取瑞芯微RK开发板/核心板相关资料,可对接技术支持团队,咨询项目选型与项目需求。

深圳触觉智能
深圳触觉智能科技有限公司专业从事嵌入式智能硬件和系统的研发、设计和生产,致力于为客户提供更快、更稳定、更优质的产品和服务。

关注触觉智能,可获赠RK3576开发板折扣。机会有限,先到先得!

图片

网口不通/协商不上/RGMII delayline

网口问题九成落在PHY识别与RGMII时序。本板gmac0配置(ido-evb7609-v1a.dtsi):

    &gmac0 {
        phy-mode = "rgmii";          /* RGMII 模式 */
        clock_in_out = "output";
        snps,reset-gpio = <&gpio2 RK_PD6 GPIO_ACTIVE_LOW>;
        snps,reset-delays-us = <0 20000 100000>;
        pinctrl-0 = <&eth0m0_miim &eth0m0_tx_bus2
                     &eth0m0_rx_bus2 &eth0m0_rgmii_clk
                     &eth0m0_rgmii_bus>;
        tx_delay = <0x1a>;   /* RGMII 发送延时 */
        rx_delay = <0x26>;   /* RGMII 接收延时 */
        phy-handle = <&rgmii_phy0>;
        status = "okay";
    };

    现象

    根因

    处理

    eth 起不来 / PHY 不识别

    PHY 复位/上电时序、MDIO 没通、phy-handle 错

    dmesg | grep -iE "phy|stmmac|eth0";查 snps,reset 与 MDIO

    协商不到千兆 / 只有百兆

    线缆/对端/PHY 能力

    ethtool eth0 看 link/speed

    通了但丢包/速率极低/偶发不通

    RGMII delayline/时序

    (tx_delay/rx_delay 不对)

    调 tx_delay/rx_delay(本板 0x1a/0x26),参考官方 GMAC_RGMII_Delayline 文档

    RGMII 是排障重点:MAC 与 PHY之间的信号延时靠 tx_delay/rx_delay补偿,值不对就出现"能ping通但吞吐崩/偶发断"。官方《GMAC_RGMII_Delayline》《GMAC_Mode_Configuration》文档给了调法与判定。

    图片

    网络性能与 DPDK

    普通内核网络栈跑满千兆没问题,但要更高吞吐/更低时延(或要绕过协议栈做定制转发),用 DPDK(external/dpdk/,RK 提供 GMAC DPDK 文档)。

    • 性能排查

      先用 iperf3 测内核栈吞吐、用官方性能分析看 CPU/中断/内存,确认瓶颈在哪(驱动中断、skb 分配、还是应用);

    • DPDK

      用户态轮询收包,绕开内核协议栈。常见问题:hugepage 没配、网卡没绑定到 DPDK(dpdk-devbind.py)、PMD 参数不对。官方 DPDK 文档(GMAC DPDK)给配置步骤。

    图片

    PCIe 链路 / NVMe / 扩展卡

    本板 &pcie0(2a200000,reset gpio4 RK_PB2,配 combphy0_ps)走 DWC 控制器(CONFIG_PCIE_DW_ROCKCHIP=y)。RK3576 有 pcie0/pcie1 两个控制器,均为 PCIe Gen2 x1(RC only、内部时钟、支持 MMU、ASPM ALL),且每个控制器可分配 MSI/MSI-X 总数仅 8 个(官方《PCIe 开发指南》1.6 / 2.4.4 / 11.8)。排障三步:Link 起没起 → 枚举到没 → 驱动绑定没。

    板上排查(adb 直连):先看 Link 是否拉起——官方判据(12.2):出现 "PCIe Link up" 且LTSSM的bit16/17=0x3、bit0~8≥0x11(典型 0x130011)才算成功;若反复 "PCIe Linking... LTSSM is 0xX" 则是 trainning 失败:

      # 1) Link 拉起没有:看到 "PCIe Link up" 才算成功(判据见下)
      adb shell dmesg | grep -iE "pcie|pci" | head
      #    实测(NVMe 已接入):
      #    rk-pcie 2a200000.pcie: PCIe Link up, LTSSM is 0x130011
      #    rk-pcie 2a200000.pcie: PCIe Gen.2 x1 link up
      # 2) 链路速率/宽度(官方 11.7:lspci -vvv 看 LinkSta;sysfs 更直接)
      adb shell lspci -vvv   # 该设备段找 LinkSta: Speed 5GT/s, Width x1
      adb shell cat /sys/bus/pci/devices/0000:01:00.0/current_link_speed /sys/bus/pci/devices/0000:01:00.0/current_link_width

      LTSSM 停在 0x00(S_DETECT_QUIET,未检到外设端接)或 0x03(误入兼容性测试模式)都说明外设没工作/信号异常(状态码全表见官方 13.1 附录)。trainning 失败按官方顺序排查:reset-gpios 是否配对 → 外设 3V3 供电是否有/够不够 → 复位信号与电源时序是否与外设 spec 冲突 → 最后定位信号完整性(眼图)。

      枚举与驱动绑定:lspci 看到 root port(bus 00)与其下游(bus 01)即枚举成功;lspci -k 看驱动、lsblk 看盘(认到 NVMe 盘 = 链路+枚举+驱动全通):

        # 3) 枚举:lspci 应见 root port(00) + 下游设备(01)
        adb shell lspci
        #    实测:00:00.0 Rockchip 3576 / 01:00.0 Silicon Motion SM2263EN/SM2263XT (rev03)
        # 4) 驱动绑定:Kernel driver in use: nvme
        adb shell lspci -k
        adb shell lsblk    # nvme0n1 = 认盘 = 全链路通
        #    实测:nvme0n1 953.9G,已自动挂载

        带宽预期要放对:触觉智能Purple Pi OH2的PCIe是Gen2 x1,实测协商 5.0 GT/s,dmesg 会提示 "4.000 Gb/s available PCIe bandwidth, limited by 5.0 GT/s PCIe x1 link"。NVMe 盘虽标称 Gen3 x4(dmesg "capable of 31.5 Gb/s"),实际只有 ~4 Gb/s(约500MB/s)上限——SSD 顺序读写落在400~500 MB/s 是正常的;若需高带宽需换Gen3平台(如RK3588的 pcie3x4/x2)。

        现象

        根因

        处理

        lspci 空 / dmesg 反复 "PCIe Linking... LTSSM is 0x0/0x3"

        Link/trainning 失败(外设没上电、信号异常)

        查 reset-gpios → 3V3 供电 → 复位/电源时序 → 信号完整性(官方 12.2)

        枚举时报 "phy init failed / lock failed ... refclk and power supply"

        dts 没开对应 phy,或 PHY 电源/输入时钟异常

        查 dts combphy 节点 status 与供电(官方 12.1)

        Link up 但 lspci 只有 root port、无下一级

        读下一级 vendor ID 非法(如 switch 固件加载慢)

        加打印确认非法 ID、按官方补丁/联系设备厂(官方 12.19)

        枚举成功但访问异常/概率性出错

        #PERST 复位时间不够

        dts 加 rockchip,perst-inactive-ms(官方 12.20)

        NVMe 长期工作后异常

        供电/温升/固件等

        对照官方 12.22 NVMe 专项排查

        lspci 有设备但 lsblk 无盘

        NVMe 驱动没绑定/被占用

        lspci -k 看 driver

        在线更换/重扫(官方 11.13):设备损坏更换或 BAR 空间变化后,可对下游设备先 remove 再对整条总线重扫(本板 NVMe 实测路径 0000:01:00.0):

          adb shell "echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove"   # 先移除旧设备
          adb shell "echo 1 > /sys/bus/pci/rescan"                       # 整条总线重扫
          # 换盘后 lsblk 重新认到 nvme0n1 即成功

          网络与高速接口排障四级:PHY/物理先通(reset、MDIO、供电)→协商(ethtool/lspci 看速率与枚举)→数据面(delayline/驱动绑定)→性能(iperf3/DPDK)。RGMII的tx/rx delay与 PCIe的Link 状态是最常踩的两处。

          图片

          RK3576板端实测记录

          以下在触觉智能RK3576开发板-Purple Pi OH2+ Debian Bookworm上通过 adb直连执行,命令参考如下:

          验证项

          命令(adb shell …)

          实测结果

          双千兆网口

          ip -br link

          eth0(未插线 DOWN)/ eth1(UP,协商 100M)

          协商速率

          ethtool eth1

          Speed: 100Mb/s、Link detected: yes(对端/线缆决定)

          PCIe Link

          dmesg | grep -i pcie

          接 NVMe 后:PCIe Link up, LTSSM is 0x130011, Gen.2 x1;此前无卡:Link Fail, LTSSM is 0x3

          PCIe 枚举

          lspci

          00:00.0 Rockchip 3576 + 01:00.0 SM2263EN/SM2263XT NVMe

          NVMe 认盘

          lsblk;cat /sys/bus/pci/devices/0000:01:00.0/current_link_speed

          nvme0n1 953.9G;链路 5.0 GT/s x1(盘能力 8.0 GT/s x4,被板限速)

          • 官方文档依据

            docs/cn/Common/GMAC/Rockchip_Developer_Guide_Linux_GMAC_CN.pdfdocs/cn/Common/GMAC/Rockchip_Developer_Guide_Linux_GMAC_RGMII_Delayline_CN.pdfdocs/cn/Common/GMAC/Rockchip_Developer_Guide_Linux_GMAC_Mode_Configuration_CN.pdfdocs/cn/Common/GMAC/Rockchip_Developer_Guide_Linux_GMAC_DPDK_CN.pdfdocs/cn/Linux/DPDK/Rockchip_Developer_Guide_Linux_DPDK_CN.pdfdocs/cn/Common/PCIe/Rockchip_Developer_Guide_PCIe_CN.pdfdocs/cn/Common/PCIe/Rockchip_Developer_Guide_PCIe_Performance_CN.pdf。
            • SDK 源码/配置依据

              kernel-6.1/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c(rk3568_ops)kernel-6.1/arch/arm64/boot/dts/rockchip/ido-evb7609-v1a.dtsi(gmac0/1 的 rgmii/tx_delay=0x1a/rx_delay=0x26/snps,reset、pcie0)kernel-6.1/arch/arm64/configs/rockchip_linux_rk3576_defconfig(CONFIG_PCIE_DW_ROCKCHIP=y、CONFIG_PCIE_ROCKCHIP_HOST=y)、external/dpdk/。

              Purple Pi OH2开发板,是触觉智能RK3576核心板SOM7609系列配套的评估开发板,搭载4核A72+4核A53+M0多核异构处理器,主频2.2GHz,集成6Tops算力 NPU,轻松应对AI推理、边缘计算与轻量级AI端侧学习。配套完善SDK、丰富资料与Demo,有助于项目前期快速开发验证。

              触觉智能SOM7609系列核心板尺寸仅40.5×40.5mm,专为空间受限场景打造。基于RK3576/RK3576J SoC,集成高性能GPU与VPU,支持4K视频编解码与多屏异显;提供PCIe、USB3.2、双路千兆以太网拓展、MIPI-DSI/CSI、eDP、CAN FD、UART等丰富接口,灵活扩展。支持Linux、Android、开源鸿蒙OpenHarmony等丰富系统,配套丰富软硬件资料与技术支持,助力产品快速落地。

              内容概要:本文详细阐述了基于自适应虚拟谐波阬的光储VSG并网电流谐波抑制模型,旨在通过Simulink仿真平台有效解决光伏发电与储能系统在并网过程中产生的谐波电流问题。该模型融合虚拟同步发电机(VSG)技术,创新性地引入自适应虚拟谐波阬控制策略,以动态调节谐波阻抗特性,从而显著提升系统对特定次谐波的抑制能力,改善并网电能质量。文档强调该模型已实现“完美复现”,具备高度的可验证性和工程参考价值,适用于高水平学术论文复现与实际工程项目的仿真验证。内容涵盖系统建模、控制算法设计、仿真搭建、动态性能分析及关键参数优化等全过程,突出理论与实践的紧密结合。; 适合人群:具备电力电子、新能源并网、自动控制等相关领域基础知识,熟悉Matlab/Simulink仿真环境,从事电力系统仿真、VSG控制策略研究、电能质量治理方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①开展光储系统并网谐波治理关键技术的研究与方案可行性验证;②支撑高水平科研论文的复现工作,包括模型重建、数据对比与结果分析;③为VSG控制与电能质量协同优化提供可靠的仿真测试平台,服务于新型电力系统中谐波抑制算法的开发与优化。; 阅读建议:建议读者结合提供的Simulink模型文件与文档中的技术要点进行同步操作,重点理解自适应虚拟谐波阬的控制逻辑、参数整定方法及其在VSG系统中的集成方式。应通过调整工况与参数进行多次仿真,观察系统动态响应,深化对自适应控制机制与谐波抑制物理机理的理解,并推荐参考相关文献以拓宽技术视野。
              评论
              成就一亿技术人!
              拼手气红包6.0元
              还能输入1000个字符
               
               条评论被折叠 查看
              添加红包

              请填写红包祝福语或标题

              个

              红包个数最小为10个

              元

              红包金额最低5元

              当前余额3.43元 前往充值 >
              需支付:10.00元
              成就一亿技术人!
              领取后你会自动成为博主和红包主的粉丝 规则
              hope_wisdom
              发出的红包

              打赏作者

              Industio_触觉智能

              你的鼓励将是我创作的最大动力

              ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
              扫码支付:¥1
              获取中
              扫码支付

              您的余额不足,请更换扫码支付或充值

              打赏作者

              实付元
              使用余额支付
              点击重新获取
              扫码支付
              钱包余额 0

              抵扣说明:

              1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
              2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

              余额充值