ZHCAFQ4 August   2025 DRA821U , TDA4VH-Q1 , TDA4VM , TDA4VM-Q1

 

  1.   1
  2.   2
  3.   商标

简介

本以太网固件调试指南提供了一种结构化方法,用于在集成自定义电路板和实现自定义配置期间对以太网固件问题进行故障排查。本文概述了确保网络功能无缝工作的关键调试步骤、配置检查和诊断程序。

调试方法

检查调试日志

  • 分析以太网固件调试日志,查看是否存在任何错误消息和断言。

请参阅以下以太网固件 (ETHFW) 故障日志,这些日志对应不同的错误。

情况 1:配置的 CPSW MAC 端口接口与在 CTRL MMR 寄存器中选择的对应 MAC 端口的接口不匹配。

ETHFW Log:
CpswMacPort_open: MAC 5: MII mismatch with SoC setting
EnetMod_open: cpsw9g.macport5: Failed to open: -3 

修复:确保专门从电路板选择以太网端口的接口,并确保其与端口配置一致。

情况 2:串行器/解串器 PLL 锁定故障。

ETHFW Log:
CpswMacPort_setSgmiiInterface: MAC 8: SERDES PLL is not locked 
CpswMacPort_setSgmiiInterface
 Assertion at Line: 2287 in src/mod/cpsw_macport.c: false 

修复:确保通过串行接口配置的以太网端口与串行器/解串器配置中选择的串行器/解串器实例和通道(IP 实例)一致。

情况 3:gPTP 同步失败

ETHFW Log:
 Cpsw_ioctl: No PHY for MAC port 1
-1
ERR:cbase:Failed to get link info: -1
ERR:cbase:cbl_query_response:failed to get speed and duplex : tilld1
 INF:cbase:cbl_query_response:tilld1: link UP, speed=0, duplex=0 !!!! 

修复:确保映射到 gPTP 的 CPSW MAC 端口具有有效链路。如果采用 MAC 到 MAC 连接,请集成链接中共享的补丁。

情况 4:无法打开 PHY

ETHFW Log:
Cpsw_openPortLinkWithPhy: Port 8 : Failed to open PHY. 

修复:确保按照 TI PDK API 指南中的 PHY 集成指南,将 PHY 驱动程序添加到 ENET,并完成 MDIO 模式配置。

注: 如果用户无法解决 ETHFW 调试日志中出现的错误,可前往 TI E2E 论坛搜索相关信息。如果论坛中讨论过与所出现错误相关的任何问题,可应用其中建议的权变措施或修复方法。如果没有相关修复方法,可在 E2E 论坛中创建新主题,向 TI 寻求帮助

配置验证

  • 确保 RGMII/RMII 的焊盘设置(多路复用选择)与配置相匹配。请参阅 Sysconfig 工具以确认使用的引脚。
  • 从 SERDES_LN_CTRL 寄存器确认串行接口 (SGMII/QSGMII/USXGMII/XAUI/XFI) 的串行器/解串器通道。
  • 验证以太网固件应用中列出的 CPSW 端口和 gPTP 端口是否符合要求。
  • 检查静态 VLAN 和 MAC(共享/保留)配置是否具有正确的掩码(MAC 端口、虚拟端口)。
  • 确保 MAC 端口和 PHY 配置与系统连接、启用的 MAC 端口以及 PHY 地址/无效 PHY(MAC 到 MAC)、速度和双工模式保持一致。
  • 通过控制寄存器验证链路和自动协商配置。
    • SGMII 控制 (SGMII/XAUI)
    • 广播能力
  • 确认 ALE 和分类器设置匹配网络预期。
  • 确认串行器/解串器配置(通道映射、串行器/解串器时钟)。
    • SGMII/QSGMII 的串行器/解串器时钟频率为 100MHz,XAUI/USXGMII/XFI 的为 156.25MHz
    • 需要多链路时,应确保从串行器/解串器基准时钟和基准时钟 1 启用正确的时钟,并完成 PLL 映射。
  • 确保 PHY 支持 10Mbps 链路速度下的带内信令,否则通信无法正常进行。

接口验证

  • 从 ENET_CTRL 寄存器验证端口接口选择 (RGMII/RMII/SGMII/QSGMII/USXGMII/XAUI/XFI)。
  • 从 ENET_CTRL 寄存器检查 CPSW 端口的 RGMII 延迟选择。
  • 确保串行器/解串器实例配置为与连接保持一致。
  • 确保 MAC 端口配置下的 PHY 详情与连接保持一致。
  • 通过 SERDES_CLK_CTRL 寄存器验证串行器/解串器通道的 PLL 选择。
  • 确认串行器/解串器寄存器中的 PLL 锁定状态、IP 选择和时钟映射。
  • 从 RMGII/SGMII/XGMII 的状态寄存器验证链路/自动协商状态。

数据路径验证

  • 与硬件团队验证 CRC 正确性并调试 CPSW 错误统计信息。
  • 根据配置对照预期统计信息检查 ALE 计数器。
  • 监控主机和外部端口的发送/接收统计信息。
    • 主机端口接收增量等同于外部端口发送量(如果配置了 ALE)。
    • 外部端口接收增量等同于主机端口发送量(如果 ALE 配置为将数据包转发到主机端口)。

ALE 和分类器

  • 验证单播 MAC ALE 条目,确保数据包转发到指定端口号。
  • 确认多播和广播 ALE 端口掩码(第 0 位为主机端口,第 1 位及以后为外部端口)。
  • 确保已根据需要配置具有成员列表、已注册多播、未注册多播和未标记出口的 VLAN ALE 条目。
  • 使 ALE 和分类器设置与预期的网络行为保持一致。

PHY 调试

  • 确保 PHY 已退出复位状态。
  • 按照 PDK API 手册中指定的集成指南确认 PHY 驱动程序集成。
  • 读取 PHY 寄存器以获取链路/自动协商相关信息。
  • 检查 PHY 的发送/接收统计信息(如有)。
  • 根据 PHY 供应商验证 PHY 配置和状态。

根据配置调试任何网络问题时需检查的基础寄存器组。

与特定于 CPSW 端口的配置、链路控制和状态相关的寄存器

CTRLMMR 寄存器

表 1 与 ENET MAC 端口相关的 CTRLMMR 寄存器
寄存器名称 地址 说明
CTRL_MMR_ENETx_CTRL 0x00104044 + (x × 0x4) 用于检查为 CPSW MAC 端口 x 选择的功能模式
x:
CPSW MAC 端口号(0 至 7)
如为 RGMII 接口,检查 MAC 中是否启用了 RGMII 延迟。

请参阅“如何在 J7 器件上配置 RGMII 时钟延迟”,以获取与 RGMII 延迟相关的配置。

链路特定寄存器

表 2 CPSW 端口链路控制和状态寄存器
寄存器名称 偏移地址 说明
SGMII CTRL 0x110 + (x × 0x100) 对应 CPSW MAC 端口 x 的主模式和自动协商配置寄存器
x:CPSW MAC 端口号(0 至 7)
SGMII 状态 0x114 + (x × 0x100) 状态寄存器指示与 CPSW MAC 端口 x 对应的链路状态和串行器/解串器 PLL 锁定状态
x
:CPSW MAC 端口号(0 至 7)
SGMII 广播能力 0x118 + (x × 0x100) 设置与 CPSW MAC 端口 x 对应的速度模式、双工模式和链路状态的 SGMII 广播能力
x:CPSW MAC 端口号(0 至 7)
RGMII 状态 0x30 + (x × 0x4) 状态寄存器指示与 CPSW MAC 端口 x 对应的链路速度、双工模式和链路状态
x:CPSW MAC 端口号(0 至 7)
XGMII 链路寄存器 0x74 启用 XGMII 的端口的 XGMII 链路状态。
位 0:CPSW MAC 端口 1
位 1:CPSW MAC 端口 2。
CPSW MAC CTRL 0x22330 + (x × 0x1000) MAC 控制寄存器保存了 CPSW MAC 端口 x 的速度、双工模式、GMII/XGMII 使能和模式
x:CPSW MAC 端口号(0 至 7)

有关 ALE、CPSW 统计信息和控制寄存器的更多寄存器详情,请参阅 CPSW 寄存器规格

与串行器/解串器时钟选择、通道映射和配置相关的寄存器。

串行器/解串器 CTRLMMR 寄存器

表 3 与串行器/解串器相关的 CTRLMMR 寄存器
寄存器名称 地址 说明
CTRL_MMR_SERDESx_LNy_CTRL 0x00104080 + (x × 0x10) + (y × 0x04) 用于检查为串行器/解串器 x 通道 y 选择的功能模式
x:串行器/解串器实例
y:串行器/解串器通道编号
CTRL_MMR_SERDESx_CLKSEL 0x00108400 + (x × 0x10) 用于检查为串行器/解串器 x core_refclk 输入选择的时钟源
x:串行器/解串器实例,首选 MAIN_PLL3_HSDIV4_CLKOUT/MAIN_PLL2_HSDIV4_CLKOUT。
CTRL_MMR_SERDESx_CLK1SEL 0x00108404 + (x × 0x10) 用于检查为串行器/解串器 x core_refclk1 输入选择的时钟源
x:串行器/解串器实例,首选 MAIN_PLL3_HSDIV4_CLKOUT/MAIN_PLL2_HSDIV4_CLKOUT。

串行器/解串器配置寄存器

表 4 串行器/解串器通道配置和 PLL 映射寄存器
寄存器名称 偏移地址 说明
SERDES_TOP_CTRL 0x408 时钟模式配置
SERDES_RST 0x40C 基准时钟选择
LANECTLx 0x480 + (x × 0x40) 通道 x 配置
x:串行器/解串器通道编号
LANESTSx 0x48C + (x × 0x40) 通道 x 状态
x:串行器/解串器通道编号
PHY_PMA_CMN_REGISTER 0xE000 PLL 锁定状态

与特定于 CPSW 端口的配置、链路控制和链路状态相关的寄存器

注: 将串行器/解串器的基地址与上述偏移地址相加,即可访问寄存器,即串行器/解串器基地址 + 上述偏移地址
请参阅 SoC 的 TRM 以获取串行器/解串器实例的基地址。

结语

本指南作为以太网固件故障排查的综合资源,可确保顺利进行自定义电路板集成、配置管理和 SDK 迁移。执行以上系统性检查,可有效诊断和解决以太网相关问题。

参考资料