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/DP83867IR: DP83867IR phy Auto-Negotiation problem

Part Number: DP83867IR

Tool/software: Linux

Hi-

    when I am testing DP83867IR phy Auto-Negotiation function,I encounter some questions,such as following

    1. DP83867 connects PC with using 100M none crossover cable, PC(support 1000M/100M/10M) conifgs Auto-Negotiation, PC network interface displays net speed 100M,Duplex mode,but Device with DP83867 network interface  status still 1000M, Duplex mode,why Device network interface speed not become 100M?

    if manually configs PC netwoks speed 100M, after two seconds,Device (with DP83867) networks speed become 100M,  if Device (with DP83867) connect 100M Port ethernet Switch or router, Device ethernet port

    display speed 100M 

Thank you for your assistance,

  • Hi heng ye,

    Can you provide register values from the DP83867 when the DP83867 is connected to the PC in auto-negotiation. Also provide register values for when the DP8386 is connected to the PC with forced 100M configuration.

    I would like to see all registers from 0x0 to 0x1f.

    Best Regards,
  • Thanks Rob Rodrigues,
    when the DP83867 is connected to the PC in auto-negotiation. Also provide register values for when the DP8386 is connected to the PC with forced 100M configuration, between the two test ways registers form 0x0 to 0x1f values are the same,such as follow:

    phy register 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F

    value 0x1140 0x7949 0x2000 0xa231 0x1e1 0 0x64 0x2001 0x0 0x300 0 0 0 0 0 3000


    phy register 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F

    value 0 0x02 0x0 0x0 0x29C7 0 0 0x40 0x6150 0x4444 0x02 0 0 0 0x02 0

    Best Regards
  • Hi heng,

    From the registers we can see that the connected link partner is not sending auto-negotiation pulses to the DP83867. You can see this in register 0x5 and 0xA. 0x5 will have information from the PC with the PC's capabilities for 10M and 100M speeds. Register 0xA will have information on the PC's capabilities for 1000M mode.

    A few things can cause these problems, but most commonly it is because the speed is "fixed" on the PC. That means the PC is in a forced mode where auto-negotiation is disabled.

    Please verify the PC is in auto-negotiation mode and retest and post the results.

    Also if you can provide a schematic, it may be helpful.

    Last, do you have a TI FAE that you may be able to work with locally to help debug further?

    Best Regards,
  • Hi Mr Ye,

    This is TI sales Jack, I have sent mail to your QQ mail address. Could you pls reply me?

    Thanks

  • Thanks Rob Rodrigues,

        from 0x0 to 0x1f registers value, I got theses registers after linux net  Driver config  Dp83867,I also confirm PC support auto-negotiation, because I use another device with using Phy chip

    KSZ9031RNXIA  connect the same PC,also using the same wire support 100M. after auto-negotiation , device with KSZ9031RNXIA net display 100M  and PC also display 100M, between the two devices communication normal

       ok, i supply our designed  schematic such as figure 1, R43 and R44 resistance value also update 470,configure mode 1 , designed  schematic already send email  locally FAE,

       hope get your help, Can you supply about Dp83867IRRGZ  reference design.

    thanks again !

                                                                                  

    Best Regards,

         

     

  • Hi Tan,

    Can you also show me the magnetics/RJ45 connections on the schematic?

    RX_CTRL should be strapped to mode 3 as recommended in the datasheet. This can cause problems auto-negotiating as well, especially with a PC that supports EEE modes.

    Best Regards,
  • Hi Bob
    I find reference schematic in 1805.DP83867 schematic.pdf, RX_CTRL not strapped to mode 3. I will also RX_CTRL pin strap mode 3, but auto-negotiating still failed. PC network interface still displays net speed 100M,Duplex mode. about our magnetics/RJ45 connections on the schematic , I will supply Mr Tan.

    I use ethtool eth0 watching device network interfac status,such as displaying:
    Supported pause frame use: NO
    Supports auto-negotiation: YES

    Advertised pause frame use: NO
    Advertise auto-negotiation: YES

    Link partner advertised pause frame use: Symmetric Receive-only
    Link partner advertised auto-negotiation: Yes
    Speed : 1000Mb/s

    I use Dp83867 Driver with linux kernel 4.4.12, whether or not about dp83867 driver some bugs??
    thanks Bob

    Best Regard
  • Hi Rob,

    Also add another part of sch,please FYI.

    BTW, what's the "EEE modes" from PC side?

    magneticsRJ45 connections .docx

  •  Hi Rob

    firstly, I'm sorry for calling your Bob


     I find reference schematic in 1805.DP83867 schematic.pdf, RX_CTRL not strapped to mode 3. I will also RX_CTRL pin strap mode 3, but auto-negotiating still failed. PC network interface still displays net speed 100M,Duplex mode. about our magnetics/RJ45 connections on the schematic , I will supply Mr Tan.

    I use ethtool eth0 watching device network interfac status,such as displaying:
    Supported pause frame use: NO
    Supports auto-negotiation: YES

    Advertised pause frame use: NO
    Advertise auto-negotiation: YES

    Link partner advertised pause frame use: Symmetric Receive-only
    Link partner advertised auto-negotiation: Yes
    Speed : 1000Mb/s

    I use Dp83867 Driver with linux kernel 4.4.12, whether or not about dp83867 driver some bugs??
    thanks Rob

    Best Regard

  •  Hi Rob

      can you give me  your test Dp83867 Driver packet ?  

       thanks 

    Best Regard

  • Hi heng and Mr. Tan,

    I believe you are running into a problem called link speed optimization.  

    if you connect a 1000M PHY in auto-negotiation to another 1000M PHY in auto-negotiation, using a 100M cable (only 2 twisted pairs), you will get a link at 1000M.

    The PHY's on both ends need to detect the use of 100M cable and fall back to 100M speed.  The PC is doing this OK, as it shows 100M full duplex, but the 867 does not do this automatically.

    You must enable "Speed Optimization" mode in the DP83867 to detect 100M cable presence.

    The speed optimization feature is enabled using bit[9] = 1 in the register address 0x0014.

    Once this bit is set by your driver in Linux, then the DP83867 will detect 100M cable use and show the proper link speed of 100M.

    Best Regards,

  •  Hi Rob

     thanks again for your giving me  some ideas, I try to configure enable speed_opt_en(PHY address register 0x14, bit 9), but Auto-Negotiation still failed ?  please give some ideas again.

    maybe help me check giving your schematic or give me  about phy83867IR correct driver, thanks again



     Best Regard

  • Hi heng,

    With speed_opt_en, the link should toggle up/down 4 times before DP83867 drops to 100M. The link will actually toggle the amount of times set in speed_opt_attempt_cnt shown in the register.

    Is this link up/down happening? Do you see LED1 toggling?

    Finally, as it seems you have an issue with not receiving auto-negotiation, lets check your RBIAS pin, and your X_I frequency.

    RBIAS pin voltage should be approximately 1V. The frequency on X_I should be 25MHz +/-50ppm.
    Please let me know the results.

    Then try to write register 0x9 = 0x0. This will disable 867 from advertising 100M mode. This should make the link go into 100M on the 867. If this is not happening, then there is some bigger problem. Please let me know the results.

    Best Regards,
  • Hi Rob,

          thanks your reply

          according your some suggestions, with speed_opt_en, LED1 not toggling, but keep always lighting off . I also check RBIAS pin voltage,it's approximately 1V.

         register 0x9 value is 0, but DP83867IR  link not go into 100M, why??

  • Hi Rob,

    Could you advise who can provide Dp83867's Driver with linux kernel 4.4.12?

    Thanks!

  • Hi Rob and  experts  

             when I am using  DP83867IR phy Auto-Negotiation function,I encounter test cases,such as following

             DP83867 connects PC with using 100M none crossover cable, PC(support 1000M/100M/10M) conifgs Auto-Negotiation, PC network interface displays net speed 100M,Duplex mode,but Device with DP83867 network interface  status still 1000M, Duplex mode, Device network interface speed not become 100M, so communication with PC fail.

             so I want to confirm DP83867 phy whether support Auto-Negotiation, according 802.3 criterion,Auto-Negotiation  woks with switch Fast Link Pulse each other to decide best speed between each other?

      I hope to get some about DP83867 Auto-Negotiation test demo in AM335x platform 

          thanks again

  • supplementary:
    I use the same 100M net cable connect other net device(phy supporting 10M/100M/1000M) configuring Auto-Negotiation with the same PC(phy supporting 10M/100M/1000M) configuring Auto-Negotiation , linking is succeedful, all two net speeding Auto-Negotiation 100M, communication normal each other.
  • hi heng,

    this is a common problem that will be fixed by enabling link speed optimization. This is described in datasheet section 8.4.6.6

    Speed optimization is enabled by setting bit[9] in register 0x14 = 1. This can be done in your driver, or done in uboot mode using miitool command.

    Best Regards,