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.

AM3359: DP83867 detected as generic PHY

Part Number: AM3359

Hello all,

                        We are working on a custom board based on AM3359 ICE V2.We have 3 phys connected,two DP83867s and one MAX24288.One DP83867 is connected to rgmii1 and the MAX and other DP83867 is connected to rgmii2.We intend to use only two of these at a time.But after booting DP83867 connected to rgmii is detected as GENERIC PHY and TI DP83867 is not being attached the phy.What could be the reason?

Boot log related to PHY detection:

[    1.048536] mdio_bus fixed-0: GPIO lookup for consumer reset
[    1.048546] mdio_bus fixed-0: using lookup tables for GPIO lookup
[    1.048555] mdio_bus fixed-0: lookup for GPIO reset failed
[    1.068337] mdio_bus 4a101000.mdio: GPIO lookup for consumer reset
[    1.068351] mdio_bus 4a101000.mdio: using device tree for GPIO lookup
[    1.068369] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/ethernet@4a100000/mdio@4a101000[0]'
[    1.068380] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/ethernet@4a100000/mdio@4a101000[0]'
[    1.068387] mdio_bus 4a101000.mdio: using lookup tables for GPIO lookup
[    1.068395] mdio_bus 4a101000.mdio: lookup for GPIO reset failed
[    1.125756] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6, bus freq 1000000
[    1.133461] libphy: 4a101000.mdio: probed
[    1.147632] max24287 4a101000.mdio:04: max24287: Detected phy_id 0x0ee0, revision 0x1
[    1.165996] max24287 4a101000.mdio:04: max24287: max24287_soft_reset
[    1.352847] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver unknown
[    1.360993] davinci_mdio 4a101000.mdio: phy[4]: device 4a101000.mdio:04, driver max24287
[   16.323448] max24287 4a101000.mdio:04: attached PHY driver [max24287] (mii_bus:phy_addr=4a101000.mdio:04, irq=POLL)
[   17.532927] Generic PHY 4a101000.mdio:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=4a101000.mdio:00, irq=POLL)

Device tree 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>;
        status = "okay";

        max24287: ethernet-phy@4 {
        reg = <4>;
    };

        dp83867_0: ethernet-phy@0 {
        reg = <0>;
        ti,rx-internal-delay = <DP83867_RGMIIDCTL_4_00_NS>;
        ti,tx-internal-delay = <DP83867_RGMIIDCTL_4_00_NS>;
        ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_8_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>, <4>;
        phy-mode = "rgmii-id";
        dual_emac_res_vlan = <2>;
};

  • Hi,

    Chinmay Pramod said:
    the MAX and other DP83867 is connected to rgmii2

    Please explain this. RGMII is a point to point connection. You cannot connect 2 PHYs to the same CPSW port.

  • Hi Biser,

                         We have disabled the second DP through hardware.We kept it as an optional phy.But our problem is that the Ti driver is not able to register the first DP83867 connected to rgmii1 .Its being detected as generic PHY instead of "TI DP83867".

  • OK, please complete this checklist and post the results here: processors.wiki.ti.com/index.php/Ethernet_Triage_Checklist_for_AM3x/4x/5x_CPSW

    Also post which Linux version you use.

  • HI Baiser,

    attaching the checklist

    dmesg | grep "mdio"
    [    1.048223] mdio_bus fixed-0: GPIO lookup for consumer reset
    [    1.048234] mdio_bus fixed-0: using lookup tables for GPIO lookup
    [    1.048242] mdio_bus fixed-0: lookup for GPIO reset failed
    [    1.068007] mdio_bus 4a101000.mdio: GPIO lookup for consumer reset
    [    1.068023] mdio_bus 4a101000.mdio: using device tree for GPIO lookup
    [    1.068040] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/ethernet@4a100000/mdio@4a101000[0]'
    [    1.068050] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/ethernet@4a100000/mdio@4a101000[0]'
    [    1.068057] mdio_bus 4a101000.mdio: using lookup tables for GPIO lookup
    [    1.068065] mdio_bus 4a101000.mdio: lookup for GPIO reset failed
    [    1.125710] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6, bus freq 1000000
    [    1.133416] libphy: 4a101000.mdio: probed
    [    1.147590] max24287 4a101000.mdio:04: max24287: Detected phy_id 0x0ee0, revision 0x1
    [    1.165959] max24287 4a101000.mdio:04: max24287: max24287_soft_reset
    [    1.352798] davinci_mdio 4a101000.mdio: phy[3]: device 4a101000.mdio:03, driver unknown
    [    1.360940] davinci_mdio 4a101000.mdio: phy[4]: device 4a101000.mdio:04, driver max24287
    [   16.276054] max24287 4a101000.mdio:04: attached PHY driver [max24287] (mii_bus:phy_addr=4a101000.mdio:04, irq=POLL)
    [   16.723777] Generic PHY 4a101000.mdio:03: attached PHY driver [Generic PHY] (mii_bus:phy_addr=4a101000.mdio:03, irq=POLL)
    [   17.930167] max24287 4a101000.mdio:04: max24287: NO LINK on RGMII side. check switch configuration and link
    [   20.228998] max24287 4a101000.mdio:04: max24287 Detected 1000BASE-X status. but link timer is for SGMII. Changing (0x40a0)

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

    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: 2
         Oversize Rx Frames: 0
         Rx Jabbers: 0
         Undersize (Short) Rx Frames: 0
         Rx Fragments: 0
         Rx Octets: 0
         Good Tx Frames: 56
         Broadcast Tx Frames: 14
         Multicast Tx Frames: 42
         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: 8668
         Rx + Tx 64 Octet Frames: 0
         Rx + Tx 65-127 Octet Frames: 44
         Rx + Tx 128-255 Octet Frames: 0
         Rx + Tx 256-511 Octet Frames: 14
         Rx + Tx 512-1023 Octet Frames: 0
         Rx + Tx 1024-Up Octet Frames: 0
         Net Octets: 8800
         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: 56
         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: 56
         Tx DMA chan 0: busy_dequeue: 0
         Tx DMA chan 0: good_dequeue: 56
         Tx DMA chan 0: requeue: 0
         Tx DMA chan 0: teardown_dequeue: 0

    Regards,

    Chinmay

  • Hi,

    I am currently out of the office returning on the 4th. Could you please attach a schematic of the networking section of how the phys are attached?  

    Best Regards,

    Schuyler

  • Hi Schuyler,

                             Input voltages were not meeting the specified minimum requirements.Now dp83867 being detected.