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.

[参考译文] Linux/AM3354:Linux/AM3354:eth1上无接收

Guru**** 1955920 points
Other Parts Discussed in Thread: TLK110, AM3354
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/734471/linux-am3354-linux-am3354-no-receive-on-eth1

器件型号:AM3354
主题中讨论的其他器件:TLK110

工具/软件:Linux

您好!

我们有一个采用 AM3354和两个 TLK110 PHY 的设计。 Eth0工作正常。 ETH1 TX 路径也正常、但根本没有 Rx。

我们将 TI SDK 04.01与 Linux 内核4.14.12搭配使用。

cpsw_default:cpsw_default {
pinctrl-single,pins =<
/* Slave 1,RMII 模式*/
0x10c (PIN_INPUT 下拉| MUX_MODE1)/*(H17) gmii1_crs.rmii1_crs_dv *
/ 0x110 (PIN_INPUB_MODE1)* 0x114_MODIUx1*
(rm1_DR_1_Rm1*)
/*(K16) gmii1_txd1.rmii1_txd1 */
0x128 (PIN_OUTPUT 下拉| MUX_MODE1)/*(K17) gmii1_pulld0.rmii1_txmid0 */
0x13c (PIN_INPUT_PULLUX | MUX_1rmRxi0*
)
*(rmi1rmi1_rmi1rmi1rmnrmi0_rmi1rmc16_rm1rm1rm1rmi1rmi1*)
RMII 模式*/
0x40 (PIN_OUTPUT 下拉| MUX_MODE3)/*(R13) GPMC_a0.rmii2_txen */
0x50 (PIN_OUTPUT 下拉| MUX_MODE3)/*(R14) GPMC_A4.rmii2_txd1 */ 0x54_MODE3*


(0x54_MDIUT_UX_UX5_PUT)/0x64_MODE3*(0x54_MDIUT_UX_UX_PULLUX) /*(T16) GPMC_A10.rmii2_rxd1 */
0x6c (PIN_INPUT 下拉| MUX_MODE3)/*(V17) GPMC_A11.rmii2_rxd0 *
/ 0x74 (PIN_INPUT
下拉| MUX_MODE3)/*(UCC_A11.rmcol





= 0x100_rmctrl =默认值*= rmctrl 1;RMCC_100_1)/rmctrl = 0xmctrl 1 (默认值)/rmctrl 1)+ RMCC_1)+ RMCC_100_1)+ RMCC_1 + RMCC_1 (默认值+ RMCC_1)+ RMCC_1)+ RMCC_1 + RMCC_1 + RMCC1 + RMCC1 + RMCC1 + RMCC1 + RMCC1 + RMCC1 + RMCC1 + RMCC1

状态="正常";
DUAL_EMAC =<1>;
}

;达芬奇_MDIO{
pinctrl-names ="默认"、"睡眠";
pinctrl-0 =<&MDIO_default>;
pinctrl-1 =</MDIO_SLEEP>;
状态="正常";
};

&cpsw_emac0{
phy_id =<&Davinci_mdio>、<0>;
phy-mode ="RMII";
dual_emac_res_vlan =<1>;
};

&cpsw_emac1{
phy_id =<&Davinci_mdio>、<1>;
phy-mode ="RMII";
dual_emac_res_vlan =<2>;
};

phy_SEL{
RMII-clock-ext;
};

读取相关线程这看起来就像我们的问题、因为我们还将 引脚 U16用于信号 rmii2_crs_dv。

与此线程中的其他用户一样,我不知道在哪里可以找到 解决问题的函数 am33xx_select_rmii2_crs_dv()。

您能给我一个提示吗?您可以在哪里找到此函数、或者需要哪些步骤来解决此问题?

谢谢、此致、

Matt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您能否将链接附加到您所提及的帖子? 我也找不到该函数、您所引用的线程可能也在讨论已被弃用的代码等 目前据我所知、调用函数 wise 来设置接口不需要任何操作。 所有这些都应在 DTS 文件中处理。

    感谢您发布 DTS 文件的 EMAC 部分。 您描述的问题可能与时钟相关。 我必须就此与一位同事进行核实。

    此致、
    Schuyler
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    抱歉、我没有看到此帖子是基于您所提到的帖子。

    使用 barebox 提到的原始线程,与 u-boot 等效,用于解决问题。 理想情况下、无需在 U-Boot 中修复此问题、因为内核会重新初始化接口。 正如我之前提到的、我需要与一位同事进行核实。

    您还可以随附显示 EMAC 接口和 PHY 的原理图片段吗? 谢谢。

    此致、
    Schuyler
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    能否布置一个示波器捕获来查看 PHY 和 MAC 之间的 RX 线上是否有数据?
    此致、
    Schuyler
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Schuyler、您好、

    感谢您的快速回答!

    您有关光框的提示是让我向前看的信息! (我正在并行进行 google、我也发现了 barebox 作为替代引导加载程序。)

    在光框源中,我找到了相关帖子中提到的函数 am33xx_select_rmii2_crs_dv()。

    结果表明、唯一要做的就是设置 sma2寄存器(偏移量0x1320)中的位#0 (在 MODE3的 GPMC_A9引脚上选择 RMII2_CRS_DV)。

    将其集成到 U-Boot board_init()- board/ti/am335x/board.c 中的函数后,我的 eth1端口就像一个魅力!

    也许有一种更巧妙的方法来解决这个问题-请告诉我是否是这样。

    否则、从我的角度来看、问题已解决、可能会关闭该主题。

    出于完整性考虑、我附上 了原理图的片段。 遗憾的是、没有示波器捕获、因为我已经移除了焊接探针。

    再次感谢、致以诚挚的问候、

    Matt

x 出现错误。请重试或与管理员联系。