1 DMA Initialization Failed
如果 GMAC 的驱动开机 log 上出现打印: DMA engine initialization failed ,可以认为是 GMAC
的工作时钟出问题了。先测量时钟引脚是否有时钟,时钟频率以及幅度等指标是否正常,主要确认以下
几个方面:
IOMUX 出错,检查时钟脚寄存器值是否正确
时钟方向以及配置与硬件不匹配,参考本文第四章节的时钟设置
检查 clock tree 和 CRU 寄存器,确认时钟频率大小和时钟是否有使能
2 PHY 初始化失败
如果 GMAC 的驱动开机 log 上出现打印:No PHY found 或者 Cannot attach to PHY,表示找不到 PHY。
驱动会通过 MDIO 先读取 PHY 的 ID,可以测量 MDC 和 MDIO 波形,波形是否正常,该总线类似于
I2C,MDC 频率要求是小于 2.5M。一般来说,找不到 PHY 有以下几个原因:
检查 MDC/MDIO IOMUX 寄存器值是否正确
PHY 供电是否正常
Reset IO 配置不正确
Reset IO 时序不满足 PHY datasheet 要求,不同 PHY 的时序要求不一致,具体配置参考本文 DTS 章
节
测试 MDIO/MDC 波形是否异常,其中 MDC 时钟频率要求小于 2.5M
3 Link 问题
如果出现了 Link 问题,有个排除法,即将 MDC/MDIO 与主控断开,与电脑直连,查看电脑端是否有同
样的问题,以此排除软件上的干扰,那么需要重点排查下硬件上的影响,先测试 TXN/P 以及 RXN/P 是
否有 Link 波形。
如果不断出现 Link up/Link down,可能原因 PHY 收到了错误的数据,
EEE 模式下,发送的波形在 delayline 配置错误的情况下可能会导致不断 link up/down
供给 PHY 的时钟不对也会导致该问题

文章详细分析了GMAC驱动中DMAInitializationFailed、PHY初始化失败、Link问题、数据不通(包括TX和RX)以及TXqueue0timeout等问题的原因,涉及时钟设置、IOMUX配置、PHY状态检查和MDIO/MDC信号测试等内容。
最低0.47元/天 解锁文章
1705

被折叠的 条评论
为什么被折叠?



