Dear Team,
My customer is working on board bring-up and found network PING failed in kernel although there was no issue in uboot to have ping.
e.g. in uboot, there was no issue in their network and successfully get image through TFTP. But, after linux boot-up completed, network was disconnected and failed to do PING. their log is in below. They are using DP83848JSQ 10/100 ethernet PHY.
~~~~~~~~~~
Configuring network interfaces... [ 27.042394] net eth0: initializing cpsw version 1.12 (0)
[ 27.051511] libphy: PHY 4a101000.mdio:00 not found
[ 27.056370] net eth0: phy 4a101000.mdio:00 not found on slave 0
[ 27.063407] tlv320aic3x-codec 1-001b: Failed to get supply 'IOVDD': -517
[ 27.070206] tlv320aic3x-codec 1-001b: Failed to request supplies: -517
[ 27.077451] cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
[ 27.086375] cpu cpu0: cpu0 clock notifier not ready, retry
[ 27.092711] davinci_evm sound: ASoC: CODEC DAI tlv320aic3x-hifi not registered
[ 27.100028] davinci_evm sound: snd_soc_register_card failed (-517)
[ 27.107327] omap_hsmmc 48060000.mmc: Got CD GPIO
[ 27.151324] net eth0: phy found : id is : 0x20005c90
udhcpc (v1.23.1) started
Sending discover...
[ 29.151599] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
Sending discover...
Sending discover...
No lease, forking to background
~~~~~~~~~~~
They also found GMII_SEL register(0x44E10650) was '0x000000C5' in below.
So, they would like to check DTS file in below. Could you please check below and let me know your advice?
--- x:\works\temp\src\kernel_iot\arch\arm\boot\dts\am335x-evm.dts 2016-01-28 22:32:45.000000000 +-0900
+++ x:\works\kigw\src\kernel_iot\arch\arm\boot\dts\am335x-evm.dts 2016-02-01 23:10:24.000000000 +-0900
@@ -327,12 +327,38 @@
0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7)
>;
};
+
+ cpsw_kaon_kigw: cpsw_kaon_kigw {
+ pinctrl-single,pins = <
+ 0x10c ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (J18) gmii1_crs.rmii1_crs_dv */
+ 0x110 ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (K19) gmii1_rxer.rmii1_rxer */
+ 0x114 ( PIN_OUTPUT_PULLDOWN | MUX_MODE1 ) /* (K17) gmii1_txen.rmii1_txen */
+ 0x128 ( PIN_OUTPUT_PULLDOWN | MUX_MODE1 ) /* (L18) gmii1_txd0.rmii1_txd0 */
+ 0x124 ( PIN_OUTPUT_PULLDOWN | MUX_MODE1 ) /* (M18) gmii1_txd1.rmii1_txd1 */
+ 0x140 ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (P18) gmii1_rxd0.rmii1_rxd0 */
+ 0x13c ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (P19) gmii1_rxd1.rmii1_rxd1 */
+ 0x144 ( PIN_INPUT_PULLDOWN | MUX_MODE0 ) /* (K18) rmii1_refclk.rmii1_refclk */
+ >;
+ };
+
+ cpsw_kaon_kigw_sleep: cpsw_kaon_kigw_sleep {
+ pinctrl-single,pins = <
+ 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (J18) gmii1_crs.rmii1_crs_dv */
+ 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (K19) gmii1_rxer.rmii1_rxer */
+ 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (K17) gmii1_txen.rmii1_txen */
+ 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (L18) gmii1_txd0.rmii1_txd0 */
+ 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (M18) gmii1_txd1.rmii1_txd1 */
+ 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (P18) gmii1_rxd0.rmii1_rxd0 */
+ 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (P19) gmii1_rxd1.rmii1_rxd1 */
+ 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (K18) rmii1_refclk.rmii1_refclk */
+ >;
+ };
davinci_mdio_default: davinci_mdio_default {
pinctrl-single,pins = <
/* MDIO */
0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
@@ -802,32 +828,43 @@
};
};
};
&mac {
pinctrl-names = "default", "sleep";
+/* delete original GP-EVM Config.
pinctrl-0 = <&cpsw_default>;
pinctrl-1 = <&cpsw_sleep>;
+*/
+ /* for the KIGW config - RMII mode */
+ pinctrl-0 = <&cpsw_kaon_kigw>;
+ pinctrl-1 = <&cpsw_kaon_kigw_sleep>;
status = "okay";
};
&davinci_mdio {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&davinci_mdio_default>;
pinctrl-1 = <&davinci_mdio_sleep>;
status = "okay";
};
&cpsw_emac0 {
phy_id = <&davinci_mdio>, <0>;
- phy-mode = "rgmii-txid";
+ /* phy-mode = "rgmii-txid"; */
+ phy-mode = "rmii";
};
&cpsw_emac1 {
phy_id = <&davinci_mdio>, <1>;
- phy-mode = "rgmii-txid";
+ /* phy-mode = "rgmii-txid"; */
+ phy-mode = "rmii";
+};
+
+&phy_sel {
+ rmii-clock-ext;
};
&tscadc {
status = "okay";
tsc {
ti,wires = <4>;
|
Thanks and Best Regards,
SI.