We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Showing results for 
Search instead for 
Did you mean: 
Visitor ipush
Registered: ‎01-23-2014

TI DP83867 auto-negotiation problem



I am developing a custom zynq board with Petalinux 2017.4 and with a TI DP83867 ethernet chip.I have created a petalinux project, add necessary information to system-user.dtsi and enabled the DP83867 driver during the linux kernel configuration. 

Petalinux detects phy successfully during boot and attaches DP83867 driver.

Then I try to connect my board to Windows 7 PC. After ethernet auto-negotiation process I get a message from petalinux "link up (1000/FULL)" , while PC says that network speed is 100 Mbps, so the board and PC can't receive messages from each other. I tried to read different phy registers after negotiation and found out that the PHY Status Register (0x11) has a value 0x7f02, so it means that speed selection bits are 01 = 100 Mbps. But why petalinux decide that speed should be 1000 Mbps?


Rarely the board after reboot prints "link up (100/FULL)" and began to work at 100 Mbps. Then everything works fine. But if I disconnect the ethernet cable and then connect it back, the board again prints "link up (1000/FULL)" and nothing works.


Could anyone give an advise is this problem connected with my board or with device tree configuration or may be with something else?


Thank you.


My device tree for DP83867

mdio {
        status = "okay";
        #address-cells = <1>;
        #size-cells = <0>;
        phy0: phy@0 {
            reg = <0>;
            device_type = "ethernet-phy";
            ti,rx-internal-delay = <0x8>; 
            ti,tx-internal-delay = <0xa>; 
            ti,fifo-depth = <0x01>;             
            status = "okay";


0 Kudos
1 Reply
Visitor baruchlerer
Registered: ‎05-10-2018

Re: TI DP83867 auto-negotiation problem


For now I fix this issue, with this patch I created.

This work around worked for me.

I'm still trying to understand the cause root for this problem.

I found out the Windows Laptop, send register 0x5 Next page bit (0x8000) disabled, and 0xA 1000FDX bit on, caused this issue.

Let me know if it helped you or you have better solution?

Good luck


0 Kudos