This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

am335x新版本SDK u-boot网口ping不通



参考am335x_evm做了一块板子,使用ti-sdk-am335x-evm-05.05.00.00-Linux-x86-Install,网络可以Ping通,使用tftp也可以正常下载文件,我这边使用的芯片是ar8033。

但是目前想使用新的Linux内核版本,所以下载了ti-processor-sdk-linux-am335x-evm-04.03.00.05-Linux-x86-Install.bin。进入u-boot后,ping不通主机:

=> ping 192.168.0.35
link up on port 0, speed 1000, full duplex
Using cpsw device

ARP Retry count exceeded; starting again
ping failed; host 192.168.0.35 is not alive

针对网络部分,我在board/ti/am335x/mux.c中,强制执行了:configure_module_pin_mux(rgmii1_pin_mux);

另外,我也跟踪了网络部分的调用函数,没看出什么问题:

board_init_r
  initr_net
    eth_initialize
      eth_common_init
        phy_init
        phy_atheros_init
      board_eth_init
        writel((RGMII_MODE_ENABLE | RGMII_INT_DELAY), &cdev->miisel);
        cpsw_slaves[0].phy_if = cpsw_slaves[1].phy_if = PHY_INTERFACE_MODE_RGMII;
        cpsw_register(&cpsw_data);
          ar8031_config

想请问下,在u-boot命令行ping不通是还有那些部分没有修改到吗?

  • 请参考这个。
    https://e2echina.ti.com/question_answer/dsp_arm/sitara_arm/f/25/t/45981
    确认一下GMII_SEL, PINMUX,PHY_ID都正确配置了吗?特别是GMII_SEL和PINMUX,用寄存器回读的方法看一下生效值是不是正确的。

  • 谢谢你的回答。我参考你提供的链接,把GMII_SEL寄存器中rgmii1_idmode位清零,然后网络就可以ping通了。为什么在int board_eth_init(bd_t *bis)函数里面,会把rgmii1_idmode位置1:writel((RGMII_MODE_ENABLE | RGMII_INT_DELAY), &cdev->miisel);这一位有什么特殊的含义吗?