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.

[参考译文] AM623:在将 AM623与 DP83848连接时出现 Linux 驱动程序错误(RMII)

Guru**** 2481465 points
Other Parts Discussed in Thread: AM623

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1441264/am623-linux-driver-error-while-interfacing-am623-with-dp83848-rmii

器件型号:AM623

工具与软件:

您好!

我正在尝试将 AM623与 DP83848以太网 PHY 连接。 但在引导 Linux 时、它显示以下错误

[   3.282475] Davinci_MDIO 8000f00.MDIO:在手动模式下配置 MDIO
[   3.335653] Davinci_MDIO 8000f00.MDIO:Davinci MDIO 修订版9.7、总线频率1000000
[7.446063]   am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103端口: 3 quirks: 00000006.
[   7.459109] am65-cpsw-nuss 8000000.ethernet:/bus@f0000/ethernet@8000000/ethernet-ports/port@2 read phy-mode err -22
[7.486254]   am65-cpsw-nuss:80000.ethernet 探测器失败、错误为-22

下面添加了 Linux 器件树配置。

  main_mdio1_pins_default:main-mdio1-pins-default
    PINCTL-SINGLE、PINS =<
      AM62X_IOPAD (0x160、PIN_OUTPUT、0)/*(AD24/V17) MDIO0_MDC */
      AM62X_IOPAD (0x15c、PIN_INPUT、0)/*(AB22/U16) MDIO0_MDIO */
    >
  };

  MAIN_rmii1_PINS_DEFAULT:MAIN_mii1-DEFAULT-PINS
    PINCTL-SINGLE、PINS =<
      AM62X_IOPAD (0x0130、PIN_INPUT、1)/*(AE19) RGMII1_TXC.RMII1_CRS_DV */
      AM62X_IOPAD (0x0148、PIN_INPUT、1)/*(AD17) RGMII1_RXC.RMII1_REF_CLK */
      AM62X_IOPAD (0x014c、PIN_INPUT、1)/*(AB17) RGMII1_RD0.RMII1_RXD0 */
      AM62X_IOPAD (0x0150、PIN_INPUT、1)/*(AC17) RGMII1_RD1.RMII1_RXD1 */
      AM62X_IOPAD (0x0144、PIN_INPUT、1)/*(AE17) RGMII1_RX_CTL.RMII1_RX_ER */
      AM62X_IOPAD (0x0134、PIN_OUTPUT、1)/*(AE20) RGMII1_TD0.RMII1_TXD0 */
      AM62X_IOPAD (0x0138、PIN_OUTPUT、1)/*(AD20) RGMII1_TD1.RMII1_TXD1 */
      AM62X_IOPAD (0x012c、PIN_OUTPUT、1)/*(AD19) RGMII1_TX_CTL.RMII1_TX_EN */
      AM62X_IOPAD (0x0178、PIN_OUTPUT、7)/*(AC20) RGMII2_TD3.GPIO1_0 复位信号*/
      
    >
  };
cpsw3g (&C){
  pinctrl-names ="默认值"
  pinctrl-0 =<&MAIN_rmii1_PINS_DEFAULT>
  状态="正常"
};

cpsw_port1{
  PHY 模式="RMII"
  phy-handle =<&cpsw3g_phy1>
  状态="正常"
};

&cpsw3g_mdio
  状态="正常"
  pinctrl-names ="默认值"
  pinctrl-0 =<&MAIN_mdio1_PINS_DEFAULT>

  cpsw3g_py1:ethernet-phy@1
    reg =<1>
    
    TI、Rx-internal-delay =<0>
    TI、TX-内部延迟=<0>

    RESET-GPIO =<&MAIN_GPIO1 0 GPIO_ACTIVE_LOW>
    reset-assert-us =<25>
    reset-deassert-us =<60000>
    
    状态="正常"
  };
};

dp83848 phy 配置为"RMII" mod、地址为"1"。  GPIO 引脚"GPIO1_0" 用作 PHY 复位信号。

我已在 u-boot 器件树中应用了此相同的配置、并且工作正常、但在 Linux 中、引导时显示错误。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    HAI TI 团队、

    "如果有人能对这张票作出答复、我将不胜感激。"

    此致、

    -RJ

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我已经离开办公室的最后一个星期,并将到下一个星期。  

    错误22表示参数无效。

    本文档末尾有一个链接、要求提供有关您的评估板的信息、以帮助我们进行调试。 应在从 cpsw 驱动程序接收消息之前识别 PHY。 这可能表明 DTS 中与 PHY 相关的部分存在问题。  

    https://www.ti.com/lit/an/spradj8/spradj8.pdf

    此致、

    Schuyler

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您提供的信息。 它在器件树中禁用未使用的端口后工作。  

    我对于这种设置还有一个疑问。 目前、我使用外部振荡器作为时钟源、但我计划使用 CLKOUT0作为时钟源。 如何启用它? 如何使用器件树启用 CLKOUT0?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我目前只看到了引脚多路复用要求。 我将向开发团队核实是否通过在 CPSW DTS 节点中设置 RMII 接口模式来启用 CLKOUT0。

    我还需要一天或两天时间才能得到这个答案。  

    此致、

    Schuyler