Other Parts Discussed in Thread: TDA4VH
Hi TI Experts,
Customer is working on TDA4VH, with SDK version linux-j784s4-evm-08_06_00_12.
They are trying to use RMII interface(MCU_CPSW0) to connect with an external TI PHY (DP83822). The MCU_CPSW RMII_MHZ_50_CLK is from the external PHY to MCU_RMII1_REF_CLK pin.
Their connection flow is provided below.
MCU_RGMII1 PORT <--> External PHY(DP83822) <--> RJ45 connector <--> PC
We could see the link is up & the speed is 100Mb/s shown in the below picture.
However, when we ping to PC, cpsw driver report a crash, showing as below.
eth0 (am65-cpsw-nuss): transmit queue 0 timed out
We have found that there is a similar problem shown in the below thread.
We have followed the suggestions to configure the registers 0x46022330, 0x40f08050, & set IFCTL_A bit to 1.
But this still cannot solve customer's problem.
Customer's DTS for mcu cpsw2g is provided below.
@@ -143,6 +143,28 @@ }; }; +&wkup_pmx0 { + mcu_cpsw_pins_default: mcu-cpsw-pins-default { + pinctrl-single,pins = < + J784S4_WKUP_IOPAD(0x068, PIN_INPUT, 1) /* (C38) MCU_RGMII1_TX_CTL.MCU_RMII1_CRS_DV */ + J784S4_WKUP_IOPAD(0x094, PIN_INPUT, 1) /* (A35) MCU_RGMII1_RD0.MCU_RMII1_RXD0 */ + J784S4_WKUP_IOPAD(0x090, PIN_INPUT, 1) /* (B36) MCU_RGMII1_RD1.MCU_RMII1_RXD1 */ + J784S4_WKUP_IOPAD(0x06c, PIN_INPUT, 1) /* (C37) MCU_RGMII1_RX_CTL.MCU_RMII1_RX_ER */ + J784S4_WKUP_IOPAD(0x084, PIN_INPUT, 1) /* (B37) MCU_RGMII1_RXC.MCU_RMII1_REF_CLK */ + J784S4_WKUP_IOPAD(0x07c, PIN_OUTPUT, 1) /* (D37) MCU_RGMII1_TD0.MCU_RMII1_TXD0 */ + J784S4_WKUP_IOPAD(0x078, PIN_OUTPUT, 1) /* (D38) MCU_RGMII1_TD1.MCU_RMII1_TXD1 */ + J784S4_WKUP_IOPAD(0x080, PIN_OUTPUT, 1) /* (E36) MCU_RGMII1_TXC.MCU_RMII1_TX_EN */ + >; + }; + + mcu_mdio_pins_default: mcu-mdio-pins-default { + pinctrl-single,pins = < + J784S4_WKUP_IOPAD(0x09c, PIN_OUTPUT, 0) /* (A36) MCU_MDIO0_MDC */ + J784S4_WKUP_IOPAD(0x098, PIN_INPUT, 0) /* (B35) MCU_MDIO0_MDIO */ + >; + }; +}; + @@ -193,3 +215,26 @@ + +&mcu_cpsw { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&mcu_cpsw_pins_default>; +}; + +&davinci_mdio { + pinctrl-names = "default"; + pinctrl-0 = <&mcu_mdio_pins_default>; + + mcu_phy2: ethernet-phy@2 { + reg = <2>; + rx-internal-delay-ps = <1>; + tx-internal-delay-ps = <1>; + }; +}; + +&mcu_cpsw_port1 { + status = "okay"; + phy-mode = "rmii"; + phy-handle = <&mcu_phy2>; +};
Could you please provide some suggestions about this problem?
Kind Regards,
Kevin