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/AM3352: DP83867 PHY configuration issue

Part Number: AM3352
Other Parts Discussed in Thread: TIDA-00204

Tool/software: Linux

Hi.

In our board used schematic (Scheamtic and PCB) from TIDA-00204 in case of RGMII PHY connections.

I read a lot of threads, but still can not confugre PHY in .dts file correctly (or, may be, trouble in somewhere else) and ethernet link not worked.

This is kernel log:

....

[    4.482862] libphy: Fixed MDIO Bus: probed
[    4.570438] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[    4.576600] davinci_mdio 4a101000.mdio: detected phy mask fffefffe
[    4.598556] libphy: 4a101000.mdio: probed
[    4.602910] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver TI DP83867
[    4.612643] davinci_mdio 4a101000.mdio: phy[16]: device 4a101000.mdio:10, driver TI DP83867
[    4.625478] cpsw 4a100000.ethernet: Detected MACID = 50:f1:4a:0b:83:c3
[    4.634173] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
.....
Configuring network interfaces...
[   17.639502] net eth0: initializing cpsw version 1.12 (0)
[   17.674958] net eth0: initialized cpsw ale version 1.4
[   17.680158] net eth0: ALE Table size 1024
[   17.705193] net eth0: phy "4a101000.mdio:00" not found on slave 0, err -19
[   17.714481] TI DP83867 4a101000.mdio:00: attached PHY driver [TI DP83867] (mii_bus:phy_addr=4a101000.mdio:00, irq=-1)
[   17.768872] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   17.776365] 8021q: adding VLAN 0 to HW filter on device eth0
udhcpc (v1.24.1) started
Sending discover...
[   19.841857] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   19.852736] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Sending discover...
Sending discover...
No lease, forking to background
done.


This is ifconfig response:

eth0      Link encap:Ethernet  HWaddr 50:f1:4a:0b:83:c3   
         inet6 addr: fe80::52f1:4aff:fe0b:83c3/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:71 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000  
         RX bytes:0 (0.0 B)  TX bytes:20330 (19.8 KiB)
         Interrupt:172  

lo        Link encap:Local Loopback   
         inet addr:127.0.0.1  Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING  MTU:65536  Metric:1
         RX packets:2 errors:0 dropped:0 overruns:0 frame:0
         TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1  
         RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)

Response of "ethtool -S eth0":

NIC statistics:
    Good Rx Frames: 0
    Broadcast Rx Frames: 0
    Multicast Rx Frames: 0
    Pause Rx Frames: 0
    Rx CRC Errors: 0
    Rx Align/Code Errors: 0
    Oversize Rx Frames: 0
    Rx Jabbers: 0
    Undersize (Short) Rx Frames: 0
    Rx Fragments: 0
    Rx Octets: 0
    Good Tx Frames: 126
    Broadcast Tx Frames: 110
    Multicast Tx Frames: 16
    Pause Tx Frames: 0
    Deferred Tx Frames: 0
    Collisions: 0
    Single Collision Tx Frames: 0
    Multiple Collision Tx Frames: 0
    Excessive Collisions: 0
    Late Collisions: 0
    Tx Underrun: 0
    Carrier Sense Errors: 0
    Tx Octets: 39372
    Rx + Tx 64 Octet Frames: 0
    Rx + Tx 65-127 Octet Frames: 16
    Rx + Tx 128-255 Octet Frames: 0
    Rx + Tx 256-511 Octet Frames: 110
    Rx + Tx 512-1023 Octet Frames: 0
    Rx + Tx 1024-Up Octet Frames: 0
    Net Octets: 39372
    Rx Start of Frame Overruns: 0
    Rx Middle of Frame Overruns: 0
    Rx DMA Overruns: 0
    Rx DMA chan 0: head_enqueue: 1
    Rx DMA chan 0: tail_enqueue: 127
    Rx DMA chan 0: pad_enqueue: 0
    Rx DMA chan 0: misqueued: 0
    Rx DMA chan 0: desc_alloc_fail: 0
    Rx DMA chan 0: pad_alloc_fail: 0
    Rx DMA chan 0: runt_receive_buf: 0
    Rx DMA chan 0: runt_transmit_bu: 0
    Rx DMA chan 0: empty_dequeue: 0
    Rx DMA chan 0: busy_dequeue: 0
    Rx DMA chan 0: good_dequeue: 0
    Rx DMA chan 0: requeue: 0
    Rx DMA chan 0: teardown_dequeue: 0
    Tx DMA chan 0: head_enqueue: 126
    Tx DMA chan 0: tail_enqueue: 0
    Tx DMA chan 0: pad_enqueue: 0
    Tx DMA chan 0: misqueued: 0
    Tx DMA chan 0: desc_alloc_fail: 0
    Tx DMA chan 0: pad_alloc_fail: 0
    Tx DMA chan 0: runt_receive_buf: 0
    Tx DMA chan 0: runt_transmit_bu: 0
    Tx DMA chan 0: empty_dequeue: 126
    Tx DMA chan 0: busy_dequeue: 0
    Tx DMA chan 0: good_dequeue: 126
    Tx DMA chan 0: requeue: 0
    Tx DMA chan 0: teardown_dequeue: 0


This is .dts piece:

&mac {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&cpsw_default>;
	pinctrl-1 = <&cpsw_sleep>;
	status = "okay";
};

&davinci_mdio {
	pinctrl-names = "default", "sleep";
	compatible = "ti,cpsw-mdio","ti,davinci_mdio";
	pinctrl-0 = <&davinci_mdio_default>;
	pinctrl-1 = <&davinci_mdio_sleep>;
	ti,rx-internal-delay = <DP83867_RGMIIDCTL_1_75_NS>;
	ti,tx-internal-delay = <DP83867_RGMIIDCTL_1_75_NS>;
	ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
	ti,min-output-impedance;
	status = "okay";
};

&cpsw_emac0 {
	phy_id = <&davinci_mdio>, <0>;
	phy-mode = "rgmii-txid";
};

&cpsw_emac1 {
	phy_id = <&davinci_mdio>, <0>;
	phy-mode = "rgmii-txid";
};


Link to tida schematic (used PHYs connections and DP83867 modes configs): http://www.ti.com/lit/df/tidrdr0a/tidrdr0a.pdf

Full .dts file: 

/*
 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */



/dts-v1/;

#include "am33xx.dtsi"
#include <dt-bindings/pwm/pwm.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/arm/sw_c100_am335x_pinmux.h>
#include <dt-bindings/net/ti-dp83867.h>

/ {
	model = "SW-C100";
	compatible = "ti,am33xx";

	chosen {
		stdout-path = &uart1;
		tick-timer = &timer2;
		};

	cpus {
		cpu@0 {
			cpu0-supply = <&vdd1_reg>;
		};
	};

	memory@80000000 {
		device_type = "memory";
		reg = <0x80000000 0x10000000>; /* 256 MB */
	};

	vbat: fixedregulator0 {
		compatible = "regulator-fixed";
		regulator-name = "vbat";
		regulator-min-microvolt = <15000000>;
		regulator-max-microvolt = <15000000>;
		regulator-always-on;
		regulator-boot-on;
	};

	leds {
		pinctrl-names = "default";
		pinctrl-0 = <&user_leds_s0>;

		compatible = "gpio-leds";

		led1 {
			label = "evmsk:green:heartbeat";
			gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
			default-state = "off";
		};

		led2 {
			label = "evmsk:green:mmc0";
			gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "mmc0";
			default-state = "off";
		};
	};

	gpio_buttons: gpio_buttons0 {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;

		switch1 {
			label = "button0";			// S3 GPIO_KEY1
			linux,code = <0x100>;
			gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>;
		};

		switch2 {
			label = "button1";
			linux,code = <0x101>;		// S2 GPIO_KEY2
			gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
		};

		switch3 {
			label = "button2";			// S4 GPIO_CASE_OPEN_CLOSE
			linux,code = <0x102>;
			gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
		};
	};
};

&am33xx_pinmux {
	pinctrl-names = "default";
	pinctrl-0 = <&oeta_pins>;

	ddr3_vtt_toggle: ddr3_vtt_toggle {
		pinctrl-single,pins = <
			AM33XX_IOPAD(PIN_USB0_DRVVBUS, (PIN_OUTPUT | MUX_MODE7))	/* AM33XX_IOPAD.gpio0_18 */
		>;
	};

	user_leds_s0: user_leds_s0 {
		pinctrl-single,pins = <
			AM33XX_IOPAD(PIN_GPMC_AD11, PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11, AVR220_LED0 */
			AM33XX_IOPAD(PIN_GPMC_AD10, PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10, AVR220_LED1 */
		>;
	};

	i2c0_pins: pinmux_i2c0_pins {
		pinctrl-single,pins = <
			AM33XX_IOPAD(PIN_I2C0_SDA, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c0_sda.i2c0_sda */
			AM33XX_IOPAD(PIN_I2C0_SCL, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c0_scl.i2c0_scl */
		>;
	};

	uart1_pins: pinmux_uart1_pins {
		pinctrl-single,pins = <
			AM33XX_IOPAD(PIN_UART1_RXD, PIN_INPUT_PULLUP | MUX_MODE0)	/* uart1_rxd.uart1_rxd */
			AM33XX_IOPAD(PIN_UART1_TXD, PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */
		>;
	};

	mmc1_pins: pinmux_mmc1_pins {
		pinctrl-single,pins = <
			AM33XX_IOPAD(PIN_MMC0_DAT3, (PIN_INPUT_PULLUP | MUX_MODE0))
			AM33XX_IOPAD(PIN_MMC0_DAT2, (PIN_INPUT_PULLUP | MUX_MODE0))
			AM33XX_IOPAD(PIN_MMC0_DAT1, (PIN_INPUT_PULLUP | MUX_MODE0))
			AM33XX_IOPAD(PIN_MMC0_DAT0, (PIN_INPUT_PULLUP | MUX_MODE0))
			AM33XX_IOPAD(PIN_MMC0_CMD, (PIN_INPUT_PULLUP | MUX_MODE0))
			AM33XX_IOPAD(PIN_MMC0_CLK, (PIN_INPUT_PULLUP | MUX_MODE0))
		>;
	};

	mmc2_pins: pinmux_mmc2_pins {
		pinctrl-single,pins = <
			AM33XX_IOPAD(PIN_GPMC_CSN1, (PIN_INPUT_PULLUP | MUX_MODE2)) /* gpmc_csn1.mmc1_clk */
			AM33XX_IOPAD(PIN_GPMC_CSN2, (PIN_INPUT_PULLUP | MUX_MODE2)) /* gpmc_csn2.mmc1_cmd */
			AM33XX_IOPAD(PIN_GPMC_AD0, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_ad0.mmc1_dat0 */
			AM33XX_IOPAD(PIN_GPMC_AD1, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_ad1.mmc1_dat1 */
			AM33XX_IOPAD(PIN_GPMC_AD2, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_ad2.mmc1_dat2 */
			AM33XX_IOPAD(PIN_GPMC_AD3, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_ad3.mmc1_dat3 */
			AM33XX_IOPAD(PIN_GPMC_AD4, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_ad4.mmc1_dat4 */
			AM33XX_IOPAD(PIN_GPMC_AD5, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_ad5.mmc1_dat5 */
			AM33XX_IOPAD(PIN_GPMC_AD6, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_ad6.mmc1_dat6 */
			AM33XX_IOPAD(PIN_GPMC_AD7, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_ad7.mmc1_dat7 */
		>;
	};


	cpsw_default: cpsw_default {
		pinctrl-single,pins = <
			/* Slave 1 */
			AM33XX_IOPAD(PIN_GMII1_TXCLK, PIN_OUTPUT_PULLDOWN | MUX_MODE2)	/* mii1_txclk.rgmii1_tclk */
			AM33XX_IOPAD(PIN_GMII1_TXD0, PIN_OUTPUT_PULLDOWN | MUX_MODE2)	/* mii1_txd0.rgmii1_td0 */
			AM33XX_IOPAD(PIN_GMII1_TXD1, PIN_OUTPUT_PULLDOWN | MUX_MODE2)	/* mii1_txd1.rgmii1_td1 */
			AM33XX_IOPAD(PIN_GMII1_TXD2, PIN_OUTPUT_PULLDOWN | MUX_MODE2)	/* mii1_txd2.rgmii1_td2 */
			AM33XX_IOPAD(PIN_GMII1_TXD3, PIN_OUTPUT_PULLDOWN | MUX_MODE2)	/* mii1_txd3.rgmii1_td3 */
			AM33XX_IOPAD(PIN_GMII1_TXEN, PIN_OUTPUT_PULLDOWN | MUX_MODE2)	/* mii1_txen.rgmii1_tctl */

			AM33XX_IOPAD(PIN_GMII1_RXCLK, PIN_INPUT_PULLDOWN | MUX_MODE2)	/* mii1_rxclk.rgmii1_rclk */
			AM33XX_IOPAD(PIN_GMII1_RXD0, PIN_INPUT_PULLDOWN | MUX_MODE2)	/* mii1_rxd0.rgmii1_rd0 */
			AM33XX_IOPAD(PIN_GMII1_RXD1, PIN_INPUT_PULLDOWN | MUX_MODE2)	/* mii1_rxd1.rgmii1_rd1 */
			AM33XX_IOPAD(PIN_GMII1_RXD2, PIN_INPUT_PULLDOWN | MUX_MODE2)	/* mii1_rxd2.rgmii1_rd2 */
			AM33XX_IOPAD(PIN_GMII1_RXD3, PIN_INPUT_PULLDOWN | MUX_MODE2)	/* mii1_rxd3.rgmii1_rd3 */
			AM33XX_IOPAD(PIN_GMII1_RXDV, PIN_INPUT_PULLDOWN | MUX_MODE2)	/* mii1_rxdv.rgmii1_rctl */

			/* Slave 2 */
			AM33XX_IOPAD(PIN_GPMC_A0, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
			AM33XX_IOPAD(PIN_GPMC_A1, PIN_INPUT_PULLDOWN | MUX_MODE2)
			AM33XX_IOPAD(PIN_GPMC_A2, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
			AM33XX_IOPAD(PIN_GPMC_A3, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
			AM33XX_IOPAD(PIN_GPMC_A4, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
			AM33XX_IOPAD(PIN_GPMC_A5, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
			AM33XX_IOPAD(PIN_GPMC_A6, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
			AM33XX_IOPAD(PIN_GPMC_A7, PIN_INPUT_PULLDOWN | MUX_MODE2)
			AM33XX_IOPAD(PIN_GPMC_A8, PIN_INPUT_PULLDOWN | MUX_MODE2)
			AM33XX_IOPAD(PIN_GPMC_A9, PIN_INPUT_PULLDOWN | MUX_MODE2)
			AM33XX_IOPAD(PIN_GPMC_A10, PIN_INPUT_PULLDOWN | MUX_MODE2)
			AM33XX_IOPAD(PIN_GPMC_A11, PIN_INPUT_PULLDOWN | MUX_MODE2)

		>;
	};

	cpsw_sleep: cpsw_sleep {
		pinctrl-single,pins = <
			/* Slave 1 reset value */
			AM33XX_IOPAD(PIN_GMII1_TXEN, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GMII1_RXDV, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GMII1_TXD3, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GMII1_TXD2, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GMII1_TXD1, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GMII1_TXD0, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GMII1_TXCLK, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GMII1_RXCLK, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GMII1_RXD3, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GMII1_RXD2, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GMII1_RXD1, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GMII1_RXD0, PIN_INPUT_PULLDOWN | MUX_MODE7)

			/* Slave 2 reset value*/
			AM33XX_IOPAD(PIN_GPMC_A0, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GPMC_A1, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GPMC_A2, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GPMC_A3, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GPMC_A4, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GPMC_A5, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GPMC_A6, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GPMC_A7, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GPMC_A8, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GPMC_A9, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GPMC_A10, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_GPMC_A11, PIN_INPUT_PULLDOWN | MUX_MODE7)
		>;
	};

	davinci_mdio_default: davinci_mdio_default {
		pinctrl-single,pins = <
			/* MDIO */
			AM33XX_IOPAD(PIN_MDIO_DATA, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)	/* mdio_data.mdio_data */
			AM33XX_IOPAD(PIN_MDIO_CLK, PIN_OUTPUT_PULLUP | MUX_MODE0)			/* mdio_clk.mdio_clk */
		>;
	};

	davinci_mdio_sleep: davinci_mdio_sleep {
		pinctrl-single,pins = <
			/* MDIO reset value */
			AM33XX_IOPAD(PIN_MDIO_DATA, PIN_INPUT_PULLDOWN | MUX_MODE7)
			AM33XX_IOPAD(PIN_MDIO_CLK, PIN_INPUT_PULLDOWN | MUX_MODE7)
		>;
	};

	oeta_pins: pinmux_oeta_pins {
		pinctrl-single,pins = <
			AM33XX_IOPAD(PIN_GPMC_AD9, PIN_OUTPUT_PULLDOWN | MUX_MODE7)
		>;
	};

};

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart1_pins>;

	status = "okay";
};

&mmc1 {												// SD Card
	vmmc-supply = <&vmmc_reg>;
	bus-width = <4>;
	pinctrl-names = "default";
	pinctrl-0 = <&mmc1_pins>;
	broken-cd;
	status = "okay";
};

&mmc2 {												// MMC FLASH NAND
	vmmc-supply = <&vmmc_reg>;
	ti,non-removable;
	broken-cd;
	pinctrl-names = "default";
	pinctrl-0 = <&mmc2_pins>;
	bus-width = <8>;
	min-frequency = <26000000>;
	max-frequency = <52000000>;
	status = "okay";
};

&i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_pins>;

	status = "okay";
	clock-frequency = <400000>;

	tps: tps@2d {
		reg = <0x2d>;
	};
};

#include "tps65910.dtsi"

&tps {
	vcc1-supply = <&vbat>;
	vcc2-supply = <&vbat>;
	vcc3-supply = <&vbat>;
	vcc4-supply = <&vbat>;
	vcc5-supply = <&vbat>;
	vcc6-supply = <&vbat>;
	vcc7-supply = <&vbat>;
	vccio-supply = <&vbat>;

	regulators {
		vrtc_reg: regulator@0 {
			regulator-boot-on;
			regulator-always-on;
		};

		vio_reg: regulator@1 {
			regulator-boot-on;
			regulator-always-on;
		};

		vdd1_reg: regulator@2 {
			/* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
			regulator-name = "vdd_mpu";
			regulator-min-microvolt = <912500>;
			regulator-max-microvolt = <1351500>;
			regulator-boot-on;
			regulator-always-on;
		};

		vdd2_reg: regulator@3 {
			/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
			regulator-name = "vdd_core";
			regulator-min-microvolt = <912500>;
			regulator-max-microvolt = <1150000>;
			regulator-boot-on;
			regulator-always-on;
		};

		vdd3_reg: regulator@4 {
			regulator-boot-on;
			regulator-always-on;
		};

		vdig1_reg: regulator@5 {
			regulator-boot-on;
			regulator-always-on;
		};

		vdig2_reg: regulator@6 {
			regulator-boot-on;
			regulator-always-on;
		};

		vpll_reg: regulator@7 {
			regulator-boot-on;
			regulator-always-on;
		};

		vdac_reg: regulator@8 {
			regulator-boot-on;
			regulator-always-on;
		};

		vaux1_reg: regulator@9 {
			regulator-boot-on;
			regulator-always-on;
		};

		vaux2_reg: regulator@10 {
			regulator-boot-on;
			regulator-always-on;
		};

		vaux33_reg: regulator@11 {
			regulator-boot-on;
			regulator-always-on;
		};

		vmmc_reg: regulator@12 {
			regulator-boot-on;
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <3300000>;
			regulator-always-on;
		};
	};
};


&gpio0 {
	ti,gpio-always-on;
	ti,no-reset-on-init;
};

&gpio1 {
	ti,gpio-always-on;
	ti,no-reset-on-init;
};

&gpio2 {
	ti,gpio-always-on;
	ti,no-reset-on-init;
};

&gpio3 {
	ti,gpio-always-on;
	ti,no-reset-on-init;
};


&sham {
	status = "okay";
};

&aes {
	status = "okay";
};

&sgx {
	status = "okay";
};

&usb {
	status = "okay";
};

&usb_ctrl_mod {
	status = "okay";
};

&usb1_phy {
	status = "okay";
};

&usb1 {
	status = "okay";
	dr_mode = "host";
};

&cppi41dma  {
	status = "okay";
};

&wkup_m3_ipc {
	ti,needs-vtt-toggle;
	ti,vtt-gpio-pin = <7>;
	ti,scale-data-fw = "am335x-evm-scale-data.bin";
};

&mac {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&cpsw_default>;
	pinctrl-1 = <&cpsw_sleep>;
	status = "okay";
};

&davinci_mdio {
	pinctrl-names = "default", "sleep";
	compatible = "ti,cpsw-mdio","ti,davinci_mdio";
	pinctrl-0 = <&davinci_mdio_default>;
	pinctrl-1 = <&davinci_mdio_sleep>;
	ti,rx-internal-delay = <DP83867_RGMIIDCTL_1_75_NS>;
	ti,tx-internal-delay = <DP83867_RGMIIDCTL_1_75_NS>;
	ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
	ti,min-output-impedance;
	status = "okay";
};

&cpsw_emac0 {
	phy_id = <&davinci_mdio>, <0>;
	phy-mode = "rgmii-txid";
};

&cpsw_emac1 {
	phy_id = <&davinci_mdio>, <0>;
	phy-mode = "rgmii-txid";
};

	//compatible = "ethernet-phy-ieee802.3-c22";

&pruss_soc_bus {
	status = "okay";

	pruss: pruss@4a300000 {
		status = "okay";

		pru0: pru@4a334000 {
			status = "okay";
		};

		pru1: pru@4a338000 {
			status = "okay";
		};
	};
};

Full kernel log: 

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.49-gc2eed4ada2 (ildar@irsu) (gcc version 6.2.0 (GCC) ) #2 PREEMPT Fri Oct 20 18:28:33 +07 2017
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt:Machine model: SW-C100
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 48 MiB at 0x8a800000
[    0.000000] Memory policy: Data cache writeback
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] AM335X ES2.1 (neon)
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 64960
[    0.000000] Kernel command line: console=ttyS1,115200n8 root=PARTUUID=10decebc-02 rw rootfstype=ext4 rootwait
[    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Memory: 189780K/262144K available (7168K kernel code, 424K rwdata, 2372K rodata, 1024K init, 8669K bss, 23212K reserved, 49152K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xd0800000 - 0xff800000   ( 752 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0800000   (8160 kB)
[    0.000000]       .init : 0xc0b00000 - 0xc0c00000   (1024 kB)
[    0.000000]       .data : 0xc0c00000 - 0xc0c6a278   ( 425 kB)
[    0.000000]        .bss : 0xc0c6a278 - 0xc14e16a4   (8670 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Running RCU self tests
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  RCU debugfs-based tracing is enabled.
[    0.000000]  RCU lockdep checking is enabled.
[    0.000000]  Build-time adjustment of leaf fanout to 32.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[    0.000021] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000052] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000115] OMAP clocksource: timer1 at 24000000 Hz
[    0.000357] clocksource_probe: no matching clocksources found
[    0.001133] Console: colour dummy device 80x30
[    0.001229] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.001244] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.001256] ... MAX_LOCK_DEPTH:          48
[    0.001267] ... MAX_LOCKDEP_KEYS:        8191
[    0.001278] ... CLASSHASH_SIZE:          4096
[    0.001289] ... MAX_LOCKDEP_ENTRIES:     32768
[    0.001300] ... MAX_LOCKDEP_CHAINS:      65536
[    0.001310] ... CHAINHASH_SIZE:          32768
[    0.001321]  memory used by lock dependency info: 5167 kB
[    0.001333]  per task-struct memory footprint: 1536 bytes
[    0.052104] Calibrating delay loop... 597.60 BogoMIPS (lpj=2988032)
[    0.167645] pid_max: default: 32768 minimum: 301
[    0.169007] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.169048] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.179417] CPU: Testing write buffer coherency: ok
[    0.182780] Setting up static identity map for 0x80100000 - 0x80100060
[    0.199427] EFI services will not be available.
[    0.206757] devtmpfs: initialized
[    0.543414] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    0.611810] DMA-API: preallocated 4096 debug entries
[    0.611847] DMA-API: debugging enabled by kernel config
[    0.639853] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.639991] futex hash table entries: 256 (order: 1, 11264 bytes)
[    0.645667] pinctrl core: initialized pinctrl subsystem
[    0.664611] NET: Registered protocol family 16
[    0.676005] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.766642] omap_hwmod: debugss: _wait_target_disable failed
[    0.867957] cpuidle: using governor ladder
[    0.897690] cpuidle: using governor menu
[    1.001876] OMAP GPIO hardware version 0.1
[    1.248955] No ATAGs?
[    1.248995] hw-breakpoint: debug architecture 0x4 unsupported.
[    1.561743] edma 49000000.edma: TI EDMA DMA engine driver
[    1.581911] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
[    1.583132] pps_core: LinuxPPS API ver. 1 registered
[    1.583154] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    1.583520] PTP clock support registered
[    1.583825] EDAC MC: Ver: 3.0.0
[    1.600463] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[    1.620320] clocksource: Switched to clocksource timer1
[    1.807466] NET: Registered protocol family 2
[    1.814743] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[    1.814882] TCP bind hash table entries: 2048 (order: 4, 73728 bytes)
[    1.816147] TCP: Hash tables configured (established 2048 bind 2048)
[    1.816780] UDP hash table entries: 256 (order: 2, 20480 bytes)
[    1.817170] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
[    1.819973] NET: Registered protocol family 1
[    1.826221] RPC: Registered named UNIX socket transport module.
[    1.826260] RPC: Registered udp transport module.
[    1.826277] RPC: Registered tcp transport module.
[    1.826292] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.832844] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[    1.869079] workingset: timestamp_bits=14 max_order=16 bucket_order=2
[    2.156260] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    2.186469] NFS: Registering the id_resolver key type
[    2.187089] Key type id_resolver registered
[    2.187116] Key type id_legacy registered
[    2.219536] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    2.219806] io scheduler noop registered
[    2.219830] io scheduler deadline registered
[    2.226426] io scheduler cfq registered (default)
[    2.254095] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[    2.550769] random: fast init done
[    3.392169] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[    3.468103] console [ttyS1] disabled
[    3.469081] 48022000.serial: ttyS1 at MMIO 0x48022000 (irq = 158, base_baud = 3000000) is a 8250
[    4.095120] console [ttyS1] enabled
[    4.116161] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
[    4.328253] brd: module loaded
[    4.455824] loop: module loaded
[    4.482862] libphy: Fixed MDIO Bus: probed
[    4.570438] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[    4.576600] davinci_mdio 4a101000.mdio: detected phy mask fffefffe
[    4.598556] libphy: 4a101000.mdio: probed
[    4.602910] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver TI DP83867
[    4.612643] davinci_mdio 4a101000.mdio: phy[16]: device 4a101000.mdio:10, driver TI DP83867
[    4.625478] cpsw 4a100000.ethernet: Detected MACID = 50:f1:4a:0b:83:c3
[    4.634173] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
[    4.666028] i2c /dev entries driver
[    4.687565] cpuidle: enable-method property 'ti,am3352' found operations
[    4.732543] ledtrig-cpu: registered to indicate activity on CPUs
[    4.756929] NET: Registered protocol family 10
[    4.774524] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    4.793914] NET: Registered protocol family 17
[    4.799802] 8021q: 802.1Q VLAN Support v1.8
[    4.805136] Key type dns_resolver registered
[    4.809816] omap_voltage_late_init: Voltage driver support not added
[    4.833394] kmemleak: Kernel memory leak detector initialized
[    4.841599] kmemleak: Automatic memory scanning thread started
[    4.962719] tps65910 0-002d: No interrupt support, no core IRQ
[    4.989412] vrtc: supplied by vbat
[    5.005093] vio: supplied by vbat
[    5.016573] vdd1: supplied by vbat
[    5.028845] vdd2: supplied by vbat
[    5.047695] vdig1: supplied by vbat
[    5.059244] vdig2: supplied by vbat
[    5.071189] vpll: supplied by vbat
[    5.082373] vdac: supplied by vbat
[    5.094732] vaux1: supplied by vbat
[    5.105971] vaux2: supplied by vbat
[    5.117705] vaux33: supplied by vbat
[    5.129355] vmmc: supplied by vbat
[    5.141988] vbb: supplied by vbat
[    5.157432] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[    5.325698] hctosys: unable to open rtc device (rtc0)
[    5.347738] Waiting for root device PARTUUID=10decebc-02...
[    5.386080] mmc0: host does not support reading read-only switch, assuming write-enable
[    5.398428] mmc0: new high speed SDHC card at address aaaa
[    5.405454] mmc1: new high speed MMC card at address 0001
[    5.433133] mmcblk0: mmc0:aaaa SL16G 14.8 GiB 
[    5.441109] mmcblk1: mmc1:0001 MMC04G 3.60 GiB 
[    5.451656] mmcblk1boot0: mmc1:0001 MMC04G partition 1 16.0 MiB
[    5.468290] mmcblk1boot1: mmc1:0001 MMC04G partition 2 16.0 MiB
[    5.476155]  mmcblk0: p1 p2
[    5.704684] EXT4-fs (mmcblk0p2): recovery complete
[    5.716680] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    5.725857] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    5.752636] devtmpfs: mounted
[    5.762097] Freeing unused kernel memory: 1024K
INIT: version 2.88 booting
Error opening /dev/fb0: No such file or directory
Starting udev
[   10.151821] udevd[111]: starting version 3.2
[   10.298348] udevd[112]: starting eudev-3.2
[   12.739674] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
hwclock: can't open '/dev/misc/rtc': No such file or directory
Fri Oct 20 12:15:56 UTC 2017
hwclock: can't open '/dev/misc/rtc': No such file or directory
INIT: Entering runlevel: 5
Configuring network interfaces... [   17.639502] net eth0: initializing cpsw version 1.12 (0)
[   17.674958] net eth0: initialized cpsw ale version 1.4
[   17.680158] net eth0: ALE Table size 1024
[   17.705193] net eth0: phy "4a101000.mdio:00" not found on slave 0, err -19
[   17.714481] TI DP83867 4a101000.mdio:00: attached PHY driver [TI DP83867] (mii_bus:phy_addr=4a101000.mdio:00, irq=-1)
[   17.768872] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   17.776365] 8021q: adding VLAN 0 to HW filter on device eth0
udhcpc (v1.24.1) started
Sending discover...
[   19.841857] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   19.852736] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Sending discover...
Sending discover...
No lease, forking to background
done.
Starting system message bus: dbus.
Starting OpenBSD Secure Shell server: sshd
done.
Starting rpcbind daemon...done.
starting statd: done
Starting atd: OK
hwclock: can't open '/dev/misc/rtc': No such file or directory
exportfs: can't open /etc/exports for reading
NFS daemon support not enabled in kernel
Starting system log daemon...0
Starting kernel log daemon...0
Starting crond: OK

Kernel sources patch (with thread https://e2e.ti.com/support/arm/sitara_arm/f/791/p/584221/2146292): 

diff a/drivers/net/phy/dp83867.c b/drivers/net/phy/dp83867.c
index df43cf8b65f..6688fc242a2 100644
--- a/drivers/net/phy/dp83867.c
+++ b/drivers/net/phy/dp83867.c
@@ -23,7 +23,7 @@
#include <dt-bindings/net/ti-dp83867.h>

#define DP83867_PHY_ID 0x2000a231
-#define DP83867_DEVADDR 0x1f
+#define DP83867_DEVADDR 0x00

#define MII_DP83867_PHYCTRL 0x10
#define MII_DP83867_MICR 0x12

Kernel config:  myboard-kernel-configs-fragments.cfg.txt

I will be grateful for any help.

Thanks!

  • The software team have been notified. They will respond here.
  • Thanks for posting the DTS file, console log and ethool results. Looking at the console log and the DTS file for the mac interfaces, one PHY is answering at address 0. You have two PHYs configured and they both have the same PHY address, one of these has to change. Each mac interface PHY must be unique on the MDIO bus. Please review your PHY addressing and reply if that fixes your problem.

    &cpsw_emac0 {

    phy_id = <&davinci_mdio>, <0>; <--- the <0> is the phy address....
    .......
    };



    &cpsw_emac1 {

    phy_id = <&davinci_mdio>, <0>; <---- each mac has its own phy and the phy address must be unique.
    ......
    };
  • Hi!
    Thank uoy for your answer.

    Yes, im tried it, but it also not worked:

    .dts piece:

    &mac {
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&cpsw_default>;
    	pinctrl-1 = <&cpsw_sleep>;
    	status = "okay";
    };
    
    &davinci_mdio {
    	pinctrl-names = "default", "sleep";
    	compatible = "ti,cpsw-mdio","ti,davinci_mdio";
    	pinctrl-0 = <&davinci_mdio_default>;
    	pinctrl-1 = <&davinci_mdio_sleep>;
    	ti,rx-internal-delay = <DP83867_RGMIIDCTL_1_75_NS>;
    	ti,tx-internal-delay = <DP83867_RGMIIDCTL_1_75_NS>;
    	ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
    	ti,min-output-impedance;
    	status = "okay";
    };
    
    &cpsw_emac0 {
    	phy_id = <&davinci_mdio>, <0>;
    	phy-mode = "rgmii-txid";
    };
    
    &cpsw_emac1 {
    	phy_id = <&davinci_mdio>, <16>;
    	phy-mode = "rgmii-txid";
    };

    Kernel log's piece:

    ...
    [    4.479416] libphy: Fixed MDIO Bus: probed
    [    4.569596] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    [    4.575757] davinci_mdio 4a101000.mdio: detected phy mask fffefffe
    [    4.597788] libphy: 4a101000.mdio: probed
    [    4.602136] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver TI DP83867
    [    4.611866] davinci_mdio 4a101000.mdio: phy[16]: device 4a101000.mdio:10, driver TI DP83867
    [    4.624684] cpsw 4a100000.ethernet: Detected MACID = 50:f1:4a:0b:83:c3
    [    4.633366] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
    ...
    [    4.755826] NET: Registered protocol family 10
    [    4.773567] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [    4.793033] NET: Registered protocol family 17
    [    4.798947] 8021q: 802.1Q VLAN Support v1.8
    [    4.804260] Key type dns_resolver registered
    ...
    Configuring network interfaces...
    [ 17.828904] net eth0: initializing cpsw version 1.12 (0)
    [ 17.866918] net eth0: initialized cpsw ale version 1.4
    [ 17.883355] net eth0: ALE Table size 1024
    [ 17.910551] net eth0: phy "4a101000.mdio:00" not found on slave 0, err -19
    [ 17.917966] net eth0: phy "4a101000.mdio:10" not found on slave 1, err -19
    [ 17.968467] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [ 17.975960] 8021q: adding VLAN 0 to HW filter on device eth0
    udhcpc (v1.24.1) started
    Sending discover...
    Sending discover...
    Sending discover...
    No lease, forking to background
    done.


    Also, after kernel bootlog line "Configuring network interfaces... " all LEDs on PHY turn off and after that I can start it only by "/etc/init.d/networking stop" and "/etc/init.d/networking start"

    Info about behavior with cpsw_emac1 "phy_id = <&davinci_mdio>, <16>;":

    ifconfig response:
    Before "/etc/init.d/networking" restart:

    eth0      Link encap:Ethernet  HWaddr 50:f1:4a:0b:83:c3   
             UP BROADCAST MULTICAST  MTU:1500  Metric:1
             RX packets:0 errors:0 dropped:0 overruns:0 frame:0
             TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
             collisions:0 txqueuelen:1000  
             RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
             Interrupt:172  

    lo        Link encap:Local Loopback   
             inet addr:127.0.0.1  Mask:255.0.0.0
             inet6 addr: ::1/128 Scope:Host
             UP LOOPBACK RUNNING  MTU:65536  Metric:1
             RX packets:2 errors:0 dropped:0 overruns:0 frame:0
             TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
             collisions:0 txqueuelen:1  
             RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)

    After "/etc/init.d/networking" restart:

    eth0      Link encap:Ethernet  HWaddr 50:f1:4a:0b:83:c3   
             inet6 addr: fe80::52f1:4aff:fe0b:83c3/64 Scope:Link
             UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
             RX packets:0 errors:0 dropped:0 overruns:0 frame:0
             TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
             collisions:0 txqueuelen:1000  
             RX bytes:0 (0.0 B)  TX bytes:1332 (1.3 KiB)
             Interrupt:172  

    lo        Link encap:Local Loopback   
             inet addr:127.0.0.1  Mask:255.0.0.0
             inet6 addr: ::1/128 Scope:Host
             UP LOOPBACK RUNNING  MTU:65536  Metric:1
             RX packets:2 errors:0 dropped:0 overruns:0 frame:0
             TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
             collisions:0 txqueuelen:1  
             RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)

    Response of "ethtool -S eth0":
    Before "/etc/init.d/networking" restart:

    NIC statistics:
        Good Rx Frames: 0
        Broadcast Rx Frames: 0
        Multicast Rx Frames: 0
        Pause Rx Frames: 0
        Rx CRC Errors: 0
        Rx Align/Code Errors: 0
        Oversize Rx Frames: 0
        Rx Jabbers: 0
        Undersize (Short) Rx Frames: 0
        Rx Fragments: 0
        Rx Octets: 0
        Good Tx Frames: 0
        Broadcast Tx Frames: 0
        Multicast Tx Frames: 0
        Pause Tx Frames: 0
        Deferred Tx Frames: 0
        Collisions: 0
        Single Collision Tx Frames: 0
        Multiple Collision Tx Frames: 0
        Excessive Collisions: 0
        Late Collisions: 0
        Tx Underrun: 0
        Carrier Sense Errors: 0
        Tx Octets: 0
        Rx + Tx 64 Octet Frames: 0
        Rx + Tx 65-127 Octet Frames: 0
        Rx + Tx 128-255 Octet Frames: 0
        Rx + Tx 256-511 Octet Frames: 0
        Rx + Tx 512-1023 Octet Frames: 0
        Rx + Tx 1024-Up Octet Frames: 0
        Net Octets: 0
        Rx Start of Frame Overruns: 0
        Rx Middle of Frame Overruns: 0
        Rx DMA Overruns: 0
        Rx DMA chan 0: head_enqueue: 1
        Rx DMA chan 0: tail_enqueue: 127
        Rx DMA chan 0: pad_enqueue: 0
        Rx DMA chan 0: misqueued: 0
        Rx DMA chan 0: desc_alloc_fail: 0
        Rx DMA chan 0: pad_alloc_fail: 0
        Rx DMA chan 0: runt_receive_buf: 0
        Rx DMA chan 0: runt_transmit_bu: 0
        Rx DMA chan 0: empty_dequeue: 0
        Rx DMA chan 0: busy_dequeue: 0
        Rx DMA chan 0: good_dequeue: 0
        Rx DMA chan 0: requeue: 0
        Rx DMA chan 0: teardown_dequeue: 0
        Tx DMA chan 0: head_enqueue: 0
        Tx DMA chan 0: tail_enqueue: 0
        Tx DMA chan 0: pad_enqueue: 0
        Tx DMA chan 0: misqueued: 0
        Tx DMA chan 0: desc_alloc_fail: 0
        Tx DMA chan 0: pad_alloc_fail: 0
        Tx DMA chan 0: runt_receive_buf: 0
        Tx DMA chan 0: runt_transmit_bu: 0
        Tx DMA chan 0: empty_dequeue: 0
        Tx DMA chan 0: busy_dequeue: 0
        Tx DMA chan 0: good_dequeue: 0
        Tx DMA chan 0: requeue: 0
        Tx DMA chan 0: teardown_dequeue: 0
    After "/etc/init.d/networking" restart:

    NIC statistics:
        Good Rx Frames: 0
        Broadcast Rx Frames: 0
        Multicast Rx Frames: 0
        Pause Rx Frames: 0
        Rx CRC Errors: 2
        Rx Align/Code Errors: 120
        Oversize Rx Frames: 0
        Rx Jabbers: 0
        Undersize (Short) Rx Frames: 0
        Rx Fragments: 0
        Rx Octets: 0
        Good Tx Frames: 14
        Broadcast Tx Frames: 5
        Multicast Tx Frames: 9
        Pause Tx Frames: 0
        Deferred Tx Frames: 0
        Collisions: 0
        Single Collision Tx Frames: 0
        Multiple Collision Tx Frames: 0
        Excessive Collisions: 0
        Late Collisions: 0
        Tx Underrun: 0
        Carrier Sense Errors: 0
        Tx Octets: 2484
        Rx + Tx 64 Octet Frames: 39
        Rx + Tx 65-127 Octet Frames: 42
        Rx + Tx 128-255 Octet Frames: 40
        Rx + Tx 256-511 Octet Frames: 11
        Rx + Tx 512-1023 Octet Frames: 4
        Rx + Tx 1024-Up Octet Frames: 0
        Net Octets: 20590
        Rx Start of Frame Overruns: 0
        Rx Middle of Frame Overruns: 0
        Rx DMA Overruns: 0
        Rx DMA chan 0: head_enqueue: 2
        Rx DMA chan 0: tail_enqueue: 254
        Rx DMA chan 0: pad_enqueue: 0
        Rx DMA chan 0: misqueued: 0
        Rx DMA chan 0: desc_alloc_fail: 0
        Rx DMA chan 0: pad_alloc_fail: 0
        Rx DMA chan 0: runt_receive_buf: 0
        Rx DMA chan 0: runt_transmit_bu: 0
        Rx DMA chan 0: empty_dequeue: 0
        Rx DMA chan 0: busy_dequeue: 0
        Rx DMA chan 0: good_dequeue: 1
        Rx DMA chan 0: requeue: 1
        Rx DMA chan 0: teardown_dequeue: 127
        Tx DMA chan 0: head_enqueue: 14
        Tx DMA chan 0: tail_enqueue: 0
        Tx DMA chan 0: pad_enqueue: 0
        Tx DMA chan 0: misqueued: 0
        Tx DMA chan 0: desc_alloc_fail: 0
        Tx DMA chan 0: pad_alloc_fail: 0
        Tx DMA chan 0: runt_receive_buf: 0
        Tx DMA chan 0: runt_transmit_bu: 0
        Tx DMA chan 0: empty_dequeue: 15
        Tx DMA chan 0: busy_dequeue: 0
        Tx DMA chan 0: good_dequeue: 14
        Tx DMA chan 0: requeue: 0
        Tx DMA chan 0: teardown_dequeue: 0

    Response of ethtool eth0:

    Before:

    Settings for eth0:
           Supports Wake-on: d
           Wake-on: d
           Current message level: 0x00000000 (0)
                                   
           Link detected: no

    After:

    Settings for eth0:
           Supported ports: [ TP MII ]
           Supported link modes:   10baseT/Half 10baseT/Full  
                                   100baseT/Half 100baseT/Full  
                                   1000baseT/Half 1000baseT/Full  
           Supported pause frame use: No
           Supports auto-negotiation: Yes
           Advertised link modes:  10baseT/Half 10baseT/Full  
                                   100baseT/Half 100baseT/Full  
                                   1000baseT/Half 1000baseT/Full  
           Advertised pause frame use: No
           Advertised auto-negotiation: Yes
           Link partner advertised link modes:  10baseT/Half 10baseT/Full  
                                                100baseT/Half 100baseT/Full  
           Link partner advertised pause frame use: Symmetric
           Link partner advertised auto-negotiation: Yes
           Speed: 100Mb/s
           Duplex: Full
           Port: MII
           PHYAD: 0
           Transceiver: external
           Auto-negotiation: on
           Supports Wake-on: d
           Wake-on: d
           Current message level: 0x00000000 (0)
                                   
           Link detected: yes


    Full Kernel log: 

    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 4.9.49-gc2eed4ada2 (ildar@irsu) (gcc version 6.2.0 (GCC) ) #2 PREEMPT Fri Oct 20 18:28:33 +07 2017
    [    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] OF: fdt:Machine model: SW-C100
    [    0.000000] efi: Getting EFI parameters from FDT:
    [    0.000000] efi: UEFI not found.
    [    0.000000] cma: Reserved 48 MiB at 0x8a800000
    [    0.000000] Memory policy: Data cache writeback
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM335X ES2.1 (neon)
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 64960
    [    0.000000] Kernel command line: console=ttyS1,115200n8 root=PARTUUID=10decebc-02 rw rootfstype=ext4 rootwait
    [    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
    [    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
    [    0.000000] Memory: 189780K/262144K available (7168K kernel code, 424K rwdata, 2372K rodata, 1024K init, 8669K bss, 23212K reserved, 49152K cma-reserved, 0K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    [    0.000000]     vmalloc : 0xd0800000 - 0xff800000   ( 752 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc0800000   (8160 kB)
    [    0.000000]       .init : 0xc0b00000 - 0xc0c00000   (1024 kB)
    [    0.000000]       .data : 0xc0c00000 - 0xc0c6a278   ( 425 kB)
    [    0.000000]        .bss : 0xc0c6a278 - 0xc14e16a4   (8670 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] Running RCU self tests
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000]  RCU debugfs-based tracing is enabled.
    [    0.000000]  RCU lockdep checking is enabled.
    [    0.000000]  Build-time adjustment of leaf fanout to 32.
    [    0.000000] NR_IRQS:16 nr_irqs:16 16
    [    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    [    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
    [    0.000022] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    [    0.000055] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [    0.000118] OMAP clocksource: timer1 at 24000000 Hz
    [    0.000355] clocksource_probe: no matching clocksources found
    [    0.001131] Console: colour dummy device 80x30
    [    0.001229] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
    [    0.001244] ... MAX_LOCKDEP_SUBCLASSES:  8
    [    0.001255] ... MAX_LOCK_DEPTH:          48
    [    0.001267] ... MAX_LOCKDEP_KEYS:        8191
    [    0.001278] ... CLASSHASH_SIZE:          4096
    [    0.001288] ... MAX_LOCKDEP_ENTRIES:     32768
    [    0.001299] ... MAX_LOCKDEP_CHAINS:      65536
    [    0.001309] ... CHAINHASH_SIZE:          32768
    [    0.001320]  memory used by lock dependency info: 5167 kB
    [    0.001332]  per task-struct memory footprint: 1536 bytes
    [    0.052172] Calibrating delay loop... 597.60 BogoMIPS (lpj=2988032)
    [    0.167655] pid_max: default: 32768 minimum: 301
    [    0.169017] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.169058] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.179399] CPU: Testing write buffer coherency: ok
    [    0.182750] Setting up static identity map for 0x80100000 - 0x80100060
    [    0.199224] EFI services will not be available.
    [    0.206537] devtmpfs: initialized
    [    0.541381] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [    0.609531] DMA-API: preallocated 4096 debug entries
    [    0.609568] DMA-API: debugging enabled by kernel config
    [    0.639867] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.639992] futex hash table entries: 256 (order: 1, 11264 bytes)
    [    0.645664] pinctrl core: initialized pinctrl subsystem
    [    0.664683] NET: Registered protocol family 16
    [    0.676087] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.766519] omap_hwmod: debugss: _wait_target_disable failed
    [    0.867941] cpuidle: using governor ladder
    [    0.897699] cpuidle: using governor menu
    [    1.001396] OMAP GPIO hardware version 0.1
    [    1.247525] No ATAGs?
    [    1.248384] hw-breakpoint: debug architecture 0x4 unsupported.
    [    1.561578] edma 49000000.edma: TI EDMA DMA engine driver
    [    1.581737] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
    [    1.582848] pps_core: LinuxPPS API ver. 1 registered
    [    1.582870] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    1.583221] PTP clock support registered
    [    1.583538] EDAC MC: Ver: 3.0.0
    [    1.600099] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    1.619777] clocksource: Switched to clocksource timer1
    [    1.806667] NET: Registered protocol family 2
    [    1.813819] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
    [    1.813957] TCP bind hash table entries: 2048 (order: 4, 73728 bytes)
    [    1.815222] TCP: Hash tables configured (established 2048 bind 2048)
    [    1.815864] UDP hash table entries: 256 (order: 2, 20480 bytes)
    [    1.816252] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
    [    1.819038] NET: Registered protocol family 1
    [    1.824804] RPC: Registered named UNIX socket transport module.
    [    1.824839] RPC: Registered udp transport module.
    [    1.824856] RPC: Registered tcp transport module.
    [    1.824872] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    1.831899] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
    [    1.867780] workingset: timestamp_bits=14 max_order=16 bucket_order=2
    [    2.155179] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    2.185364] NFS: Registering the id_resolver key type
    [    2.185990] Key type id_resolver registered
    [    2.186017] Key type id_legacy registered
    [    2.217794] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
    [    2.218067] io scheduler noop registered
    [    2.218090] io scheduler deadline registered
    [    2.225017] io scheduler cfq registered (default)
    [    2.262947] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
    [    2.550215] random: fast init done
    [    3.397900] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [    3.474276] console [ttyS1] disabled
    [    3.475228] 48022000.serial: ttyS1 at MMIO 0x48022000 (irq = 158, base_baud = 3000000) is a 8250
    [    4.100834] console [ttyS1] enabled
    [    4.121668] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
    [    4.335198] brd: module loaded
    [    4.462498] loop: module loaded
    [    4.488102] libphy: Fixed MDIO Bus: probed
    [    4.579898] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    [    4.586058] davinci_mdio 4a101000.mdio: detected phy mask fffefffe
    [    4.607893] libphy: 4a101000.mdio: probed
    [    4.612243] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver TI DP83867
    [    4.622010] davinci_mdio 4a101000.mdio: phy[16]: device 4a101000.mdio:10, driver TI DP83867
    [    4.634927] cpsw 4a100000.ethernet: Detected MACID = 50:f1:4a:0b:83:c3
    [    4.643602] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
    [    4.675487] i2c /dev entries driver
    [    4.696805] cpuidle: enable-method property 'ti,am3352' found operations
    [    4.741475] ledtrig-cpu: registered to indicate activity on CPUs
    [    4.765537] NET: Registered protocol family 10
    [    4.783146] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [    4.802567] NET: Registered protocol family 17
    [    4.808464] 8021q: 802.1Q VLAN Support v1.8
    [    4.813796] Key type dns_resolver registered
    [    4.818499] omap_voltage_late_init: Voltage driver support not added
    [    4.841832] kmemleak: Kernel memory leak detector initialized
    [    4.851061] kmemleak: Automatic memory scanning thread started
    [    4.972149] tps65910 0-002d: No interrupt support, no core IRQ
    [    4.998928] vrtc: supplied by vbat
    [    5.014587] vio: supplied by vbat
    [    5.026116] vdd1: supplied by vbat
    [    5.038379] vdd2: supplied by vbat
    [    5.057409] vdig1: supplied by vbat
    [    5.069015] vdig2: supplied by vbat
    [    5.081171] vpll: supplied by vbat
    [    5.092505] vdac: supplied by vbat
    [    5.104649] vaux1: supplied by vbat
    [    5.116079] vaux2: supplied by vbat
    [    5.127839] vaux33: supplied by vbat
    [    5.139431] vmmc: supplied by vbat
    [    5.151562] vbb: supplied by vbat
    [    5.166533] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
    [    5.325022] hctosys: unable to open rtc device (rtc0)
    [    5.347072] Waiting for root device PARTUUID=10decebc-02...
    [    5.385638] mmc0: host does not support reading read-only switch, assuming write-enable
    [    5.398141] mmc0: new high speed SDHC card at address aaaa
    [    5.405018] mmc1: new high speed MMC card at address 0001
    [    5.431132] mmcblk0: mmc0:aaaa SL16G 14.8 GiB 
    [    5.442027] mmcblk1: mmc1:0001 MMC04G 3.60 GiB 
    [    5.449758] mmcblk1boot0: mmc1:0001 MMC04G partition 1 16.0 MiB
    [    5.467048] mmcblk1boot1: mmc1:0001 MMC04G partition 2 16.0 MiB
    [    5.474662]  mmcblk0: p1 p2
    [    5.702187] EXT4-fs (mmcblk0p2): recovery complete
    [    5.713325] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    [    5.722168] VFS: Mounted root (ext4 filesystem) on device 179:2.
    [    5.748556] devtmpfs: mounted
    [    5.756439] Freeing unused kernel memory: 1024K
    INIT: version 2.88 booting
    Error opening /dev/fb0: No such file or directory
    Starting udev
    [   10.192282] udevd[111]: starting version 3.2
    [   10.349183] udevd[112]: starting eudev-3.2
    [   12.749323] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
    hwclock: can't open '/dev/misc/rtc': No such file or directory
    Fri Oct 20 12:09:33 UTC 2017
    hwclock: can't open '/dev/misc/rtc': No such file or directory
    INIT: Entering runlevel: 5
    Configuring network interfaces... 
    [   17.828904] net eth0: initializing cpsw version 1.12 (0)
    [   17.866918] net eth0: initialized cpsw ale version 1.4
    [   17.883355] net eth0: ALE Table size 1024
    [   17.910551] net eth0: phy "4a101000.mdio:00" not found on slave 0, err -19
    [   17.917966] net eth0: phy "4a101000.mdio:10" not found on slave 1, err -19
    [   17.968467] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [   17.975960] 8021q: adding VLAN 0 to HW filter on device eth0
    udhcpc (v1.24.1) started
    Sending discover...
    Sending discover...
    Sending discover...
    No lease, forking to background
    done.
    Starting system message bus: dbus.
    Starting OpenBSD Secure Shell server: sshd
    done.
    Starting rpcbind daemon...done.
    starting statd: done
    Starting atd: OK
    hwclock: can't open '/dev/misc/rtc': No such file or directory
    exportfs: can't open /etc/exports for reading
    NFS daemon support not enabled in kernel
    Starting system log daemon...0
    Starting kernel log daemon...0
    Starting crond: OK
    
    Poky (Yocto Project Reference Distro) 2.2.2 am335x-evm /dev/ttyS1

     

    Full consolelog: 

    am335x-evm login: root
    
    root@am335x-evm:~# ifconfig
    eth0      Link encap:Ethernet  HWaddr 50:f1:4a:0b:83:c3  
              UP BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
              Interrupt:172 
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:2 errors:0 dropped:0 overruns:0 frame:0
              TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1 
              RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)
    
    root@am335x-evm:~# ethtool -S eth0
    NIC statistics:
         Good Rx Frames: 0
         Broadcast Rx Frames: 0
         Multicast Rx Frames: 0
         Pause Rx Frames: 0
         Rx CRC Errors: 0
         Rx Align/Code Errors: 0
         Oversize Rx Frames: 0
         Rx Jabbers: 0
         Undersize (Short) Rx Frames: 0
         Rx Fragments: 0
         Rx Octets: 0
         Good Tx Frames: 0
         Broadcast Tx Frames: 0
         Multicast Tx Frames: 0
         Pause Tx Frames: 0
         Deferred Tx Frames: 0
         Collisions: 0
         Single Collision Tx Frames: 0
         Multiple Collision Tx Frames: 0
         Excessive Collisions: 0
         Late Collisions: 0
         Tx Underrun: 0
         Carrier Sense Errors: 0
         Tx Octets: 0
         Rx + Tx 64 Octet Frames: 0
         Rx + Tx 65-127 Octet Frames: 0
         Rx + Tx 128-255 Octet Frames: 0
         Rx + Tx 256-511 Octet Frames: 0
         Rx + Tx 512-1023 Octet Frames: 0
         Rx + Tx 1024-Up Octet Frames: 0
         Net Octets: 0
         Rx Start of Frame Overruns: 0
         Rx Middle of Frame Overruns: 0
         Rx DMA Overruns: 0
         Rx DMA chan 0: head_enqueue: 1
         Rx DMA chan 0: tail_enqueue: 127
         Rx DMA chan 0: pad_enqueue: 0
         Rx DMA chan 0: misqueued: 0
         Rx DMA chan 0: desc_alloc_fail: 0
         Rx DMA chan 0: pad_alloc_fail: 0
         Rx DMA chan 0: runt_receive_buf: 0
         Rx DMA chan 0: runt_transmit_bu: 0
         Rx DMA chan 0: empty_dequeue: 0
         Rx DMA chan 0: busy_dequeue: 0
         Rx DMA chan 0: good_dequeue: 0
         Rx DMA chan 0: requeue: 0
         Rx DMA chan 0: teardown_dequeue: 0
         Tx DMA chan 0: head_enqueue: 0
         Tx DMA chan 0: tail_enqueue: 0
         Tx DMA chan 0: pad_enqueue: 0
         Tx DMA chan 0: misqueued: 0
         Tx DMA chan 0: desc_alloc_fail: 0
         Tx DMA chan 0: pad_alloc_fail: 0
         Tx DMA chan 0: runt_receive_buf: 0
         Tx DMA chan 0: runt_transmit_bu: 0
         Tx DMA chan 0: empty_dequeue: 0
         Tx DMA chan 0: busy_dequeue: 0
         Tx DMA chan 0: good_dequeue: 0
         Tx DMA chan 0: requeue: 0
         Tx DMA chan 0: teardown_dequeue: 0
         
         
    root@am335x-evm:~# /etc/init.d/networking stop                                                                                                                                                   
    Deconfiguring network interfaces... done.
    root@am335x-evm:~# /etc/init.d/networking start     
    
    
    Configuring network interfaces... 
    [   95.524708] net eth0: initializing cpsw version 1.12 (0)
    [   95.531115] net eth0: initialized cpsw ale version 1.4
    [   95.536296] net eth0: ALE Table size 1024
    [   95.546302] TI DP83867 4a101000.mdio:00: attached PHY driver [TI DP83867] (mii_bus:phy_addr=4a101000.mdio:00, irq=-1)
    [   95.562811] TI DP83867 4a101000.mdio:10: attached PHY driver [TI DP83867] (mii_bus:phy_addr=4a101000.mdio:10, irq=-1)
    [   95.603072] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [   95.608988] 8021q: adding VLAN 0 to HW filter on device eth0
    udhcpc (v1.24.1) started
    Sending discover...
    [   96.641993] cpsw 4a100000.ethernet eth0: Link is Up - Unsupported (update phy.c)/Half - flow control off
    [   96.653862] cpsw 4a100000.ethernet eth0: Link is Down
    [   97.680746] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [   97.693718] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    Sending discover...
    Sending discover...
    No lease, forking to background
    done.
    
    
    root@am335x-evm:~# ifconfig                    
    eth0      Link encap:Ethernet  HWaddr 50:f1:4a:0b:83:c3  
              inet6 addr: fe80::52f1:4aff:fe0b:83c3/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 B)  TX bytes:1262 (1.2 KiB)
              Interrupt:172 
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:2 errors:0 dropped:0 overruns:0 frame:0
              TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1 
              RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)
    
    root@am335x-evm:~# ethtool -S eth0             
    NIC statistics:
         Good Rx Frames: 0
         Broadcast Rx Frames: 0
         Multicast Rx Frames: 0
         Pause Rx Frames: 0
         Rx CRC Errors: 1
         Rx Align/Code Errors: 70
         Oversize Rx Frames: 0
         Rx Jabbers: 0
         Undersize (Short) Rx Frames: 0
         Rx Fragments: 0
         Rx Octets: 0
         Good Tx Frames: 10
         Broadcast Tx Frames: 2
         Multicast Tx Frames: 8
         Pause Tx Frames: 0
         Deferred Tx Frames: 0
         Collisions: 0
         Single Collision Tx Frames: 0
         Multiple Collision Tx Frames: 0
         Excessive Collisions: 0
         Late Collisions: 0
         Tx Underrun: 0
         Carrier Sense Errors: 0
         Tx Octets: 1372
         Rx + Tx 64 Octet Frames: 26
         Rx + Tx 65-127 Octet Frames: 30
         Rx + Tx 128-255 Octet Frames: 18
         Rx + Tx 256-511 Octet Frames: 7
         Rx + Tx 512-1023 Octet Frames: 0
         Rx + Tx 1024-Up Octet Frames: 0
         Net Octets: 10377
         Rx Start of Frame Overruns: 0
         Rx Middle of Frame Overruns: 0
         Rx DMA Overruns: 0
         Rx DMA chan 0: head_enqueue: 2
         Rx DMA chan 0: tail_enqueue: 254
         Rx DMA chan 0: pad_enqueue: 0
         Rx DMA chan 0: misqueued: 0
         Rx DMA chan 0: desc_alloc_fail: 0
         Rx DMA chan 0: pad_alloc_fail: 0
         Rx DMA chan 0: runt_receive_buf: 0
         Rx DMA chan 0: runt_transmit_bu: 0
         Rx DMA chan 0: empty_dequeue: 0
         Rx DMA chan 0: busy_dequeue: 0
         Rx DMA chan 0: good_dequeue: 1
         Rx DMA chan 0: requeue: 1
         Rx DMA chan 0: teardown_dequeue: 127
         Tx DMA chan 0: head_enqueue: 10
         Tx DMA chan 0: tail_enqueue: 0
         Tx DMA chan 0: pad_enqueue: 0
         Tx DMA chan 0: misqueued: 0
         Tx DMA chan 0: desc_alloc_fail: 0
         Tx DMA chan 0: pad_alloc_fail: 0
         Tx DMA chan 0: runt_receive_buf: 0
         Tx DMA chan 0: runt_transmit_bu: 0
         Tx DMA chan 0: empty_dequeue: 11
         Tx DMA chan 0: busy_dequeue: 0
         Tx DMA chan 0: good_dequeue: 10
         Tx DMA chan 0: requeue: 0
         Tx DMA chan 0: teardown_dequeue: 0

     

    Thank You!

     


  • Also I was tried to set this configuration:

    &mac {
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&cpsw_default>;
    	pinctrl-1 = <&cpsw_sleep>;
    	dual_emac = <1>;
    	status = "okay";
    };
    
    &davinci_mdio {
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&davinci_mdio_default>;
    	pinctrl-1 = <&davinci_mdio_sleep>;
    	ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
    	ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>;
      ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
      ti,min-output-impedance;
    	status = "okay";
    };
    
    &cpsw_emac0 {
    	phy_id = <&davinci_mdio>, <0>;
    	phy-mode = "rgmii-txid";
    	dual_emac_res_vlan = <1>;
    };
    
    &cpsw_emac1 {
    	phy_id = <&davinci_mdio>, <16>;
    	phy-mode = "rgmii-txid";
    	dual_emac_res_vlan = <2>;
    };


    But effect was same: 

    After kernel bootlog line "Configuring network interfaces... " all LEDs on PHY turn off and after that I can start it only by "/etc/init.d/networking stop" and "/etc/init.d/networking start" and other posted above.

  • Hi,
    Thanks for posting the interface statistics. These numbers here are concerning that are listed in the statistics. These can typically indicate board level or timing issues unfortunately. The RX CRC errors indicate something between the PHY and MAC and the RX Code errors also point to the PHY seeing Symbol issues and is reporting to the MAC the packet is missing a nibble or more.

    Rx CRC Errors: 2
    Rx Align/Code Errors: 120

    I will need to discuss with a fellow team member because in the davinci MDIO structure you have set a timing delay the PHY mode is required to rgmii-txid for AM335x devices. This could be a double delay by adding delay to the PHY too. Is the link partner showing issues with RX also? The problem though you are seeing looks to be on the receive side on your board.

    Best Regards,
    Schuyler
  • Hi. Thank you for your answer

    I resolve the problem.

    It was a hardware+configuration problem.

    I change board (it was corrupted) and found a valid dts config file.

    Valid davinci_mdio device tree config for my "TIDA-like" board (delays may be wrong, because of now I operate only at 100Mb speed):

    &mac {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&cpsw_default>;
        pinctrl-1 = <&cpsw_sleep>;
        dual_emac;
        status = "okay";
    };
    
    &davinci_mdio {
        pinctrl-names = "default", "sleep";
        compatible = "ti,cpsw-mdio", "ti,davinci_mdio";
        pinctrl-0 = <&davinci_mdio_default>;
        pinctrl-1 = <&davinci_mdio_sleep>;
        status = "okay";
    
        dp83867_0: ethernet-phy@0 {
            reg = <0>;
            ti,rx-internal-delay = <DP83867_RGMIIDCTL_1_75_NS>;
            ti,tx-internal-delay = <DP83867_RGMIIDCTL_1_75_NS>;
            ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
            ti,min-output-impedance;
            ti,dp83867-rxctrl-strap-quirk;
        };
    
        dp83867_1: ethernet-phy@16 {
    reg = <16>; ti,rx-internal-delay = <DP83867_RGMIIDCTL_1_75_NS>; ti,tx-internal-delay = <DP83867_RGMIIDCTL_1_75_NS>; ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; ti,min-output-impedance; ti,dp83867-rxctrl-strap-quirk; }; }; &cpsw_emac0 { phy_id = <&davinci_mdio>, <0>; phy-mode = "rgmii-id"; dual_emac_res_vlan = <1>; }; &cpsw_emac1 { phy_id = <&davinci_mdio>, <16>; phy-mode = "rgmii-id"; dual_emac_res_vlan = <2>; };

  • Hi,

    The fellow team member is out of the office today, we will discuss the timing selections for the PHY.

    Our team does not support the TI PHY that you are using so we will not be able to comment on the actual PHY settings. The rgmii-id will probably need to be rgmii-txid as that is the only mode supported by the AM335x for Gbps speeds.

    My colleague will need to see trace length data for the layout between the MAC and the PHY I believe, I could be wrong though. If you have that information could you please attach it to the post?

    Regards,
    Schuyler
  • Thank you for your answer.

    Its interested, but both options "rgmii-txid" and "rgmii-rxid" not worked. Only "rgmii-id" provide a connection.

    Trase lengths:

    Wire Length, mm
    RGMII1_RXCLK 30.131
    RGMII1_RXCTRL 30.100
    RGMII1_RXD0 30.127
    RGMII1_RXD1 30.125
    RGMII1_RXD2 30.125
    RGMII1_RXD3 30.125
    RGMII1_TXCLK 29.966
    RGMII1_TXCTRL 30.767
    RGMII1_TXD0 30.029
    RGMII1_TXD1 29.938
    RGMII1_TXD2 29.932
    RGMII1_TXD3 29.972

    I was tested connection quality for 1Gbit speed and it have a problem: 

    Rx CRC Errors quantity is about 40 per minute (during file download)

    Rx Align/Code Errors quantity is about 35 per minute  (during file download)

    I was tried all availabled settings (connection was established with RX_DELAY value from 1.50ns to 3.75ns) and most "good" value is 3.25ns (Rx CRC Errors quantity is 25, Rx Align/Code Errors quantity is 30).

    Unfortunately, we havent oscilloscope which required with http://www.ti.com/lit/an/snla243/snla243.pdf and we cant measure RGMII Delay manually.

  • Hi,
    Thanks for posting the trace lengths. We will post a review of the trace lengths tomorrow, I apologize for the delay.
    Regards,
    Schuyler
  • Hello,

    If I understand correctly, you now have successful 10/100Mb connections but 1000Mb still exhibits CRC and code align issues.

    This points to a timing issue on the interface. Did you perform a timing analysis of the interface prior to PCB layout? Your traces are very short @ ~1" so it may not be possible to meet the MAC+PHY setup and hold for Gigabit operation.