专栏底层软件uboot中的网卡驱动

uboot中的网卡驱动

已解决
幺零二四2022-11-25
86
4

Hi horizon:

我在调试uboot的以太网中遇到如下问题:

wait_for_bit_le32: Timeout (reg=0000000059111000 mask=1 wait_set=0), value:fffffffe

ethernet@59110000: EQOS_DMA_MODE_SWR stuck

在调用phy_connect时网卡驱动出现了问题。

ret = wait_for_bit_le32(&eqos->dma_regs->mode,

EQOS_DMA_MODE_SWR, false, 50, false);

if (ret) {

pr_err("%s: EQOS_DMA_MODE_SWR stuck\n", dev->name);

// goto err_stop_resets;

}

从代码来看在reset后网卡的mode寄存器应该被清除为0的。但是在我的环境下一直为1。我将上面这行代码注释掉之后发现网络也是通的。

所以可以帮我解惑下吗?非常感谢!

底层软件
+1
评论3
0/1000
  • 新手村
    Lv.4

    出现EQOS_DMA_MODE_SWR stuck的时候,表示对端未提供clock给J5 rx clock,考虑是不是对端提供的clock有个时间差。另外最好把日志也贴上来看下

    2022-11-25
    0
    1
    • 幺零二四回复新手村:

      好的 感谢。确实时phy 的clock没有输出。我们设计有点差别,phy的时钟是在驱动中使能的,不是来自系统时钟上电就有输出的

      2022-11-25
      1
  • 疯狂星期6
    Lv.1

    您好:

    请检查一下,对端是否已经正确输出了clk。

    2022-11-25
    0
    0
  • 费小财
    Lv.5

    您好,

    确认下用户是否修改了我们的驱动代码?

    phy那边是否有rx clk提供给网卡,可能是phy没有正常工作,导致无法给网卡提供rx clk,导致网卡软复位失败

    软复位可能不是必须的,上电默认就已经自动复位了

    2022-11-25
    0
    0