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.

DP83867IR: Not working in u-boot.

Part Number: DP83867IR
Other Parts Discussed in Thread: AM3352

Hello. experts.

I made a custom board with a am3352 processor.

I configured a dp83867irpap on MAC1 (not MAC0)  of the processor.

But, I could not see any messages printed out when I just put the ethernet cable into rj45 in u-boot, which is got from TI-SDK.

I just got message like:

I guess that accessing through MDIO interface is working well as I see the message shown in the picture.

First, I wonder if there is a wrong connection in my schematic.

6082.12 ETHERNET.pdf

Otherwise, could you let me know what kind of something I should check for?

I know some bootloader configuration should be done for the operation.

But, I don't ensure It is a software issues.. I'm trying to solve it now..

Really thank you for your help.

Best regards

  • Hi GukHyun,

    What is the intended speed of operation?

    Can you please let me know why Mirror mode is enabled and aneg is disabled on your custom board?

    Can you please share a block diagram/image of your connections?

    --
    Regards

  • Thank you for reply.

    I already attached a schematics pdf in first question. →  ETHERNET.pdf

    Do you need another document such as a block diagram/image? 

    How did you know the the mirror mode state or aneg state?

    From register picture I showed?

    I don't know the intended speed.. I just connected it in RGMII.

    Do you mean that I should configure something in registers or strap for speed of operation?

    Really thanks!!

  • Hi GukHyun,

    I was able to see that the mirror mode is enabled from the schematic.

    I couldn't completely understand how and where you have connected DP83867 and how you are reading the registers. A block diagram or a detailed explanation of connections will help.

    --
    Regards,
    Gokul.

  • Hi, Koraganji.

    Oh, I found the mirror mode in my schematic.

    Let me give some time to check if the mirror mode is a problem.

    Thank you.

  • Hi GukHyun,

    Please get back to me here when you see any other issue.

    --
    Regards,
    Gokul.

  • Hi Gokul,

    Thank you for your commnet.

    I configured a register (0x0031 [0]) to disable mirror mode in u-boot instead of modifying the circuit and it works.

    For a next step, when I connect ethernet cable from PC to the board, I checked establishing the auto-negotiation and linking up.

    After configuring the ipaddr and netmask, I tried to send ping to a PC, but it failed like:

    The view of wireshark is:

    The 0f:a3:be:e8:6c:d0 is am335x's mac address, I guess.

    I know that before sending PING packet, there should be a APR exchange for building MAC table.

    But the packet is not a ARP and it is not even clear protocol.

    Could you give me a help?

    In fact, I am not sure the issues are included in your interface team.

    Otherwise, please forward to processor team.. 

    Really thanks for your comment!!.

    Regards,

    LEE.

  • Hi Gokul,

    I had a little progress.

    In 100Mbps, I can check in wireshark that the board sends ARP packet and the PC replied for it.

    (I guess it may be an impedance matching issue. I will check it later..)

    But, I think the board cannot receive the ARP packet sent from PC.

     So, I wonder if there are some problems in my DTS file and board.c file.

    Please check it...

    I have one DP83867 PHY to EMAC1, and no PHY connected to EMAC0

    The one DP83867 PHY's phy address is 0, which is shown in schematic.

    &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>;
            status = "okay";
    
            ethphy0: ethernet-phy@1 {
                    reg = <0>;
            };
    
            ethphy1: ethernet-phy@0 {
                    reg = <0>;
            };
    };
    
    &cpsw_emac0 {
            phy-handle = <&ethphy0>;
            phy-mode = "rgmii-id";
            dual_emac_res_vlan = <1>;
    };
    
    &cpsw_emac1 { 
            phy-handle = <&ethphy1>;
            phy-mode = "rgmii-id";
            dual_emac_res_vlan = <2>;
    };

    struct cpsw_slave_data slave_data[] = {
            {
                    .slave_reg_ofs  = CPSW_SLAVE0_OFFSET,
                    .sliver_reg_ofs = CPSW_SLIVER0_OFFSET,
                    .phy_addr       = 1,
            },
            {
                    .slave_reg_ofs  = CPSW_SLAVE1_OFFSET,
                    .sliver_reg_ofs = CPSW_SLIVER1_OFFSET,
                    .phy_addr       = 0,
            },
    };

    In other hand, When I see the APR request in detail, the mac address was 30:e2:03:c6:06:a5.

    But, when I printed 'ethaddr' which is emac0's MAC and 'eth1addr' which is emac1's MAC, it is shown like:

    ethaddr=30:e2:83:c6:06:a5 

    eth1addr=30:e2:83:c6:06:a7

    I guess the emac0 sends ARP packet.

    I am confused..

    Really thanks..

    Regards, Lee

  • Hi Lee,

    This can be supports by our peers in the processors team. Please let me loop-in them.

    --
    Regards,
    Gokul.

  • Hi! The subject owner is currently out of the office. Please allow a couple of days for a response. Thanks.

  • Yes, I will wait.

    Thanks

  • Hi, I'm looping in my colleague on his input.

  • Hi, Is the work in progress???

    Thanks.