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/DP83848K: Ping doesn't work

Part Number: DP83848K
Other Parts Discussed in Thread: DP83848J

Tool/software: Linux

I have a custom board with imx6sx processor. why ping doesnt work from uboot?

  • Hi Akshay,

    Ping is a function of layer 3 which is on your imx6sx processor. You should discuss with technical support for that device.

    There is a short video which may help you determine where your problem is, but the video is designed for the AM Sitara processors. Most of the concepts are the same tho. training.ti.com/ethernet-link-status-linux

    Best Regards,
  • Hi Rob,

    Is there any board which are using DP83848 which make use of MII interface?

    Regards

    Akshay
  • Hi akshay,

    We have a TI reference design with DP83848K using RMII: www.ti.com/.../TIEP-SMART-ENERGY-GATEWAY

    Best Regards,
  • Hi Rob,

    I do need the MII interface itself. Can you provide me the board which using MII interface, so that I can compare with my board?

    Regards,

    Akshay

  • Akshay,

    We have the TIDA-207 reference design. Yet this is an Ethernet brick and doesn't show the connection directly to the MAC. Your MII TX/RX is in place, and the straps are correct for MII mode.

    www.ti.com/.../TIDA-00207

    Best,
  • Rob,

    I also have done the same configurations as in the schematics and I can ping loopback also. But I couldn't ping my pc's ipaddr from board. It is saying host unreachable. Why is it like that?

    Regards,

    Akshay
  • Hi Akshay,

    Please observe MDIO register 0x01 in DP83848J. If a link is present, as indicated by bit[2]. If bit[2] is set to 1, then the problem is with the configuration of Linux.

    If bit[2] is = 0, then the DP83848J does not have a valid link with the partner, and you should debug the DP83848J hardware.

    Please give me the value of register 0x01 when connected to the PC.

    Best Regards,
  • Hi Rob,

    As I am new to this field, can you tell me how to look into this 0x01 register.

    Regards

    Akshay

  • Akshay,

    If you watch this video, the presenter uses ethtool to identify if a link is up. training.ti.com/ethernet-link-status-linux

    If you want to access the PHY registers only, use phytool https://github.com/wkz/phytool

    Best,
  • Rob,

    These are the results

    In ethtool:

    upported ports: [ TP MII ]
            Supported link modes:   10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
            Supported pause frame use: Symmetric
            Supports auto-negotiation: Yes
            Advertised link modes:  10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
            Advertised pause frame use: Symmetric
            Advertised auto-negotiation: Yes
            Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                                 100baseT/Half 100baseT/Full
            Link partner advertised pause frame use: Symmetric Receive-only
            Link partner advertised auto-negotiation: Yes
            Speed: 100Mb/s
            Duplex: Full
            Port: MII
            PHYAD: 1
            Transceiver: external
            Auto-negotiation: on
            Supports Wake-on: g
            Wake-on: d
            Link detected: yes

    In mii dump:

    mii dump 1 0
    0.     (3100)                 -- PHY control register --
      (8000:0000) 0.15    =     0    reset
      (4000:0000) 0.14    =     0    loopback
      (2040:2000) 0. 6,13 =   b01    speed selection = 100 Mbps
      (1000:1000) 0.12    =     1    A/N enable
      (0800:0000) 0.11    =     0    power-down
      (0400:0000) 0.10    =     0    isolate
      (0200:0000) 0. 9    =     0    restart A/N
      (0100:0100) 0. 8    =     1    duplex = full
      (0080:0000) 0. 7    =     0    collision test enable
      (003f:0000) 0. 5- 0 =     0    (reserved)


    => mii dump 1 1
    1.     (786d)                 -- PHY status register --
      (8000:0000) 1.15    =     0    100BASE-T4 able
      (4000:4000) 1.14    =     1    100BASE-X  full duplex able
      (2000:2000) 1.13    =     1    100BASE-X  half duplex able
      (1000:1000) 1.12    =     1    10 Mbps    full duplex able
      (0800:0800) 1.11    =     1    10 Mbps    half duplex able
      (0400:0000) 1.10    =     0    100BASE-T2 full duplex able
      (0200:0000) 1. 9    =     0    100BASE-T2 half duplex able
      (0100:0000) 1. 8    =     0    extended status
      (0080:0000) 1. 7    =     0    (reserved)
      (0040:0040) 1. 6    =     1    MF preamble suppression
      (0020:0020) 1. 5    =     1    A/N complete
      (0010:0000) 1. 4    =     0    remote fault
      (0008:0008) 1. 3    =     1    A/N able
      (0004:0004) 1. 2    =     1    link status
      (0002:0000) 1. 1    =     0    jabber detect
      (0001:0001) 1. 0    =     1    extended capabilities

    Can u suggest the reason of pinging showing host unreachable in Linux and error frame in uboot?

    Regards,

    Akshay

  • Akshay,

    Your register 0x1bit[2] = 1 which means your link is up. Your PHY is operating correctly so you should consider why Linux is not working. I am not a Linux developer and can only help you with the hardware aspect.

    Please review the video I sent earlier showing what places to check with Linux. Otherwise, you should seek help from the company that supports your Linux distribution.

    Best Regards,
  • Rob,

    I was able to ping loopback. Does that mean Linux is working?

    Regards

    Akshay

  • Hi Akshay,

    If ping is working, your Ethernet interface is working.

    Best,
  • Rob,

    I was only able to ping by board ip address not the pc ip address.

    Regards

    Akshay 

  • Hi Akshay,

    You must bring this up with the company that supports your Linux distribution. You have shown the DP83848 has a link that is up. The configuration issue exists inside of Linux.

    Best Regards,