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.

DP83825I: DP83825 problem on iMX6ULL

Prodigy 40 points

Replies: 6

Views: 105

Part Number: DP83825I

Dear experts,


We have a custom iMX6ULL board on an m2 form factor. It is plugged to a MAIN board which contains the DP83825IRMQR eth phy chip, the magnetics, and the eth port. The ethernet chip uses an external 25MHz oscillator for clock.


The problem we are having is that the network connection of the ethernet chip flaps (turns on / off)

    [  959.561827] TI DP83825S 2188000.ethernet-1:00: attached PHY driver [TI DP83825S] (mii_bus:phy_addr=2188000.ethernet-1:00, irq=POLL)
    [  961.624018] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [  961.624212] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    [ 1062.503554] fec 2188000.ethernet eth0: Link is Down
    [ 1063.543970] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [ 1089.543566] fec 2188000.ethernet eth0: Link is Down
    [ 1090.584208] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [ 1115.543529] fec 2188000.ethernet eth0: Link is Down
    [ 1116.583998] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [ 1172.743596] fec 2188000.ethernet eth0: Link is Down
    [ 1173.784015] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [ 1263.223543] fec 2188000.ethernet eth0: Link is Down
    [ 1264.263994] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [ 1295.463566] fec 2188000.ethernet eth0: Link is Down
    [ 1296.504006] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    root@localhost:~# 

Our u-boot version is

    VERSION = 2018
    PATCHLEVEL = 03
    SUBLEVEL =
    EXTRAVERSION =
    NAME =

and our Linux version is

    root@localhost:~# cat /etc/*release; uname -a
    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=16.04
    DISTRIB_CODENAME=xenial
    DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS"
    NAME="Ubuntu"
    VERSION="16.04.6 LTS (Xenial Xerus)"
    ID=ubuntu
    ID_LIKE=debian
    PRETTY_NAME="Ubuntu 16.04.6 LTS"
    VERSION_ID="16.04"
    HOME_URL="http://www.ubuntu.com/"
    SUPPORT_URL="http://help.ubuntu.com/"
    BUG_REPORT_URL="bugs.launchpad.net/.../"
    VERSION_CODENAME=xenial
    UBUNTU_CODENAME=xenial
    Linux localhost 5.4.3-dirty #3 SMP Sun Aug 16 10:01:41 PST 2020 armv7l armv7l armv7l GNU/Linux

The connection of the DP83825 to the MAIN board is (sorry for the overlapping texts)

and to the m2 connector


While the connection on the iMX6ULL m2 edge finger is


to the iMX6ULL chip


Our device tree script in u-boot is imx6ull-prox-sodimm.dts (attached)


    &fec1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_enet1>;
        phy-mode = "rmii";
        phy-handle = <&ethphy0>;
        /*phy-reset-gpios = <&gpio1 5 0>;*/
        status = "okay";

        mdio {
            #address-cells = <1>;
            #size-cells = <0>;

            ethphy0: ethernet-phy@0 {
                compatible = "ethernet-phy-ieee802.3-c22";
                reg = <0>;
                clocks = <&clks IMX6UL_CLK_ENET_REF>;
                /*clock-names = "rmii-ref";*/
                clock-names = "no_enet_out";
                assigned-clock-rates = <0>, <100000000>;
            };
        };
    };



            pinctrl_enet1: enet1grp {
                fsl,pins = <
                    MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00    0x000110B0
                    MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01    0x000110B0
                    MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN         0x000110B0
                    MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER         0x000110B0
                    MX6UL_PAD_ENET1_RX_DATA0__PWM1_OUT   0x110b0
                    /*MX6UL_PAD_ENET1_TX_CLK__ENET1_TX_CLK     0x40000001*/
                    MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1     0x40000001
                    MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00    0x000110B0
                    MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01    0x000110B0
                    MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN         0x000110B0
                    MX6UL_PAD_GPIO1_IO06__ENET1_MDIO           0x000110B0
                    MX6UL_PAD_GPIO1_IO07__ENET1_MDC            0x000110B0
                >;
            };


There is no driver yet for DP83825 in u-boot (as TI informed) so we are testing straight to Linux.

The DP83825 driver in Linux is dp83822.c (modified to include DP83825) (attached also).


Here are some of the logs in Linux


    root@localhost:~# ethtool eth0
    Settings for eth0:
            Supported 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: 0
            Transceiver: external
            Auto-negotiation: on
            Supports Wake-on: g
            Wake-on: d
            Link detected: yes
    root@localhost:~#

    root@localhost:~# ethtool -S eth0
    NIC statistics:
         tx_dropped: 0
         tx_packets: 17
         tx_broadcast: 7
         tx_multicast: 10
         tx_crc_errors: 0
         tx_undersize: 0
         tx_oversize: 0
         tx_fragment: 0
         tx_jabber: 0
         tx_collision: 0
         tx_64byte: 0
         tx_65to127byte: 10
         tx_128to255byte: 0
         tx_256to511byte: 7
         tx_512to1023byte: 0
         tx_1024to2047byte: 0
         tx_GTE2048byte: 0
         tx_octets: 3258
         IEEE_tx_drop: 0
         IEEE_tx_frame_ok: 17
         IEEE_tx_1col: 0
         IEEE_tx_mcol: 0
         IEEE_tx_def: 0
         IEEE_tx_lcol: 0
         IEEE_tx_excol: 0
         IEEE_tx_macerr: 0
         IEEE_tx_cserr: 0
         IEEE_tx_sqe: 0
         IEEE_tx_fdxfc: 0
         IEEE_tx_octets_ok: 3258
         rx_packets: 0
         rx_broadcast: 0
         rx_multicast: 0
         rx_crc_errors: 0
         rx_undersize: 0
         rx_oversize: 0
         rx_fragment: 0
         rx_jabber: 0
         rx_64byte: 0
         rx_65to127byte: 0
         rx_128to255byte: 0
         rx_256to511byte: 0
         rx_512to1023byte: 0
         rx_1024to2047byte: 0
         rx_GTE2048byte: 0
         rx_octets: 0
         IEEE_rx_drop: 0
         IEEE_rx_frame_ok: 0
         IEEE_rx_crc: 0
         IEEE_rx_align: 0
         IEEE_rx_macerr: 0
         IEEE_rx_fdxfc: 0
         IEEE_rx_octets_ok: 0
    root@localhost:~#


    /* When connection is up */
    root@localhost:~# ethtool -a eth0
    Pause parameters for eth0:
    Autonegotiate:  on
    RX:             off
    TX:             off
    RX negotiated:  on
    TX negotiated:  on

    root@localhost:~#

    root@localhost:~# ethtool -i eth0
    driver: fec
    version: Revision: 1.0
    firmware-version:
    expansion-rom-version:
    bus-info: eth0
    supports-statistics: yes
    supports-test: no
    supports-eeprom-access: no
    supports-register-dump: yes
    supports-priv-flags: no
    root@localhost:~#

    root@localhost:~# ethtool -d eth0
    Offset          Values
    ------          ------
    0x0000:         00 00 00 00 00 00 00 00 aa 00 80 0a 00 00 00 00
    0x0010:         00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
    0x0020:         00 00 00 00 12 01 00 f0 00 00 00 00 00 00 00 00
    0x0030:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0040:         6d 78 06 60 1a 00 00 00 00 00 00 00 00 00 00 00
    0x0050:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0060:         00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00
    0x0070:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0080:         00 00 00 00 24 01 c0 47 00 00 00 00 00 00 00 00
    0x0090:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x00a0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x00b0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x00c0:         00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00
    0x00d0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x00e0:         00 00 00 00 9d 44 ca 9a 08 88 4a b5 f0 ff 01 00
    0x00f0:         0e 08 80 cc ff ff ff ff ff ff ff ff 00 00 00 00
    0x0100:         0e 08 80 cc ff ff ff ff ff ff ff ff 00 00 00 00
    0x0110:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0120:         00 00 40 00 08 00 80 00 00 00 00 00 00 00 00 00
    0x0130:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0140:         00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00
    0x0150:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0160:         ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x0170:         ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
    0x0180:         00 80 00 8e 00 c0 00 8e c0 07 00 00 00 00 00 00
    0x0190:         10 00 00 00 84 00 00 00 08 00 00 00 08 00 00 00
    0x01a0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x01b0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x01c0:         00 00 00 00 86 00 00 00 ff ff ff ff ff ff ff ff
    0x01d0:         00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
    0x01e0:         ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x01f0:         ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00
    0x0200:         00 00 00 00 03 00 00 00 01 00 00 00 02 00 00 00
    0x0210:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0220:         00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00
    0x0230:         00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00
    0x0240:         00 00 00 00 16 02 00 00 00 00 00 00 03 00 00 00
    0x0250:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0260:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0270:         00 00 00 00 16 02 00 00 00 00 00 00 00 00 00 00
    0x0280:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0290:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x02a0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x02b0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x02c0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x02d0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x02e0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x02f0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0300:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0310:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    .
    . [up to]
    .
    0x3ff0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    root@localhost:~#

    /* When connection is down */

    root@localhost:~# ethtool -a eth0
    Pause parameters for eth0:
    Autonegotiate:  on
    RX:             off
    TX:             off

    root@localhost:~# dmesg | tail -50
    [   41.206908] kobject: 'vcsa5' ((ptrval)): kobject_uevent_env
    [   41.206983] kobject: 'vcsa5' ((ptrval)): fill_kobj_path: path = '/devices/virtual/vc/vcsa5'
    [   41.777350] kobject: 'vcs6' ((ptrval)): kobject_add_internal: parent: 'vc', set: 'devices'
    [   41.823704] kobject: 'vcs6' ((ptrval)): kobject_uevent_env
    [   41.823791] kobject: 'vcs6' ((ptrval)): fill_kobj_path: path = '/devices/virtual/vc/vcs6'
    [   41.826730] kobject: 'vcsu6' ((ptrval)): kobject_add_internal: parent: 'vc', set: 'devices'
    [   41.843530] kobject: 'vcsu6' ((ptrval)): kobject_uevent_env
    [   41.843618] kobject: 'vcsu6' ((ptrval)): fill_kobj_path: path = '/devices/virtual/vc/vcsu6'
    [   41.844077] kobject: 'vcsa6' ((ptrval)): kobject_add_internal: parent: 'vc', set: 'devices'
    [   41.850598] kobject: 'vcsa6' ((ptrval)): kobject_uevent_env
    [   41.850682] kobject: 'vcsa6' ((ptrval)): fill_kobj_path: path = '/devices/virtual/vc/vcsa6'
    [   42.189044] kobject: 'imx!sdma!sdma-imx6q.bin' ((ptrval)): kobject_uevent_env
    [   42.189149] kobject: 'imx!sdma!sdma-imx6q.bin' ((ptrval)): fill_kobj_path: path = '/devices/soc0/soc/2000000.aips-bus/20ec000.sdma/firmware/imx!sdma!sdma-imx6q.b'
    [   42.194998] kobject: 'firmware' ((ptrval)): kobject_cleanup, parent (ptrval)
    [   42.195063] kobject: 'firmware' ((ptrval)): calling ktype release
    [   42.195139] kobject: 'firmware': free name
    [   42.195191] kobject: 'imx!sdma!sdma-imx6q.bin' ((ptrval)): kobject_cleanup, parent (ptrval)
    [   42.195239] kobject: 'imx!sdma!sdma-imx6q.bin' ((ptrval)): calling ktype release
    [   42.195313] kobject: 'imx!sdma!sdma-imx6q.bin': free name
    [   42.195428] imx-sdma 20ec000.sdma: external firmware not found, using ROM firmware
    [   44.509952] FAT-fs (mmcblk0p2): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
    [   49.314371] TI DP83825S 2188000.ethernet-1:00: attached PHY driver [TI DP83825S] (mii_bus:phy_addr=2188000.ethernet-1:00, irq=POLL)
    [   49.338710] kobject: 'wakeup0' ((ptrval)): kobject_uevent_env
    [   49.338816] kobject: 'wakeup0' ((ptrval)): fill_kobj_path: path = '/devices/soc0/soc/2100000.aips-bus/2188000.ethernet/net/eth0/wakeup0'
    [   49.383916] kobject: 'wakeup0' ((ptrval)): kobject_cleanup, parent (ptrval)
    [   49.383974] kobject: 'wakeup0' ((ptrval)): calling ktype release
    [   49.384151] kobject: 'wakeup0': free name
    [   51.909389] new mount options do not match the existing superblock, will be ignored
    [   52.139015] kobject: '0:26' ((ptrval)): kobject_add_internal: parent: 'bdi', set: 'devices'
    [   52.140012] kobject: '0:26' ((ptrval)): kobject_uevent_env
    [   52.140100] kobject: '0:26' ((ptrval)): fill_kobj_path: path = '/devices/virtual/bdi/0:26'
    [   54.189303] new mount options do not match the existing superblock, will be ignored
    [   65.624226] random: crng init done
    [  915.625989] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [  915.627066] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    [  959.561827] TI DP83825S 2188000.ethernet-1:00: attached PHY driver [TI DP83825S] (mii_bus:phy_addr=2188000.ethernet-1:00, irq=POLL)
    [  961.624018] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [  961.624212] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    [ 1062.503554] fec 2188000.ethernet eth0: Link is Down
    [ 1063.543970] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [ 1089.543566] fec 2188000.ethernet eth0: Link is Down
    [ 1090.584208] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [ 1115.543529] fec 2188000.ethernet eth0: Link is Down
    [ 1116.583998] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [ 1172.743596] fec 2188000.ethernet eth0: Link is Down
    [ 1173.784015] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [ 1263.223543] fec 2188000.ethernet eth0: Link is Down
    [ 1264.263994] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [ 1295.463566] fec 2188000.ethernet eth0: Link is Down
    [ 1296.504006] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    root@localhost:~#

    root@localhost:~# cat /etc/*release; uname -a
    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=16.04
    DISTRIB_CODENAME=xenial
    DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS"
    NAME="Ubuntu"
    VERSION="16.04.6 LTS (Xenial Xerus)"
    ID=ubuntu
    ID_LIKE=debian
    PRETTY_NAME="Ubuntu 16.04.6 LTS"
    VERSION_ID="16.04"
    HOME_URL="http://www.ubuntu.com/"
    SUPPORT_URL="http://help.ubuntu.com/"
    BUG_REPORT_URL="bugs.launchpad.net/.../"
    VERSION_CODENAME=xenial
    UBUNTU_CODENAME=xenial
    Linux localhost 5.4.3-dirty #3 SMP Sun Aug 16 10:01:41 PST 2020 armv7l armv7l armv7l GNU/Linux
    root@localhost:~#


Thank you very much, experts.


Best regards,

Carlos

6 Replies

  • Hi Carlos,

    A few questions :

    1. Is link-partner also the similar board with 825 as phy? If not can you try it out with 825 itself to capture the link-partner dependency.

    2. Is it possible to probe "resetn" of the phy to see if controller is resetting the phy periodically ?

    --

    Regards,

    Vikram

  • In reply to Vikram Sharma99:

    Thank you for the response, Vikram.

    Reply in [CJ]

    1. Is link-partner also the similar board with 825 as phy? If not can you try it out with 825 itself to capture the link-partner dependency.

    [CJ] Link-partner is a ProLink router. Not sure how to accomplish the "try it out with 825 itself" instruction.

    2. Is it possible to probe "resetn" of the phy to see if controller is resetting the phy periodically ?

    [CJ] Will do and reply asap.

    Regards,

    Carlos

  • In reply to Carlos Jones:

    Hi Vikam,

    Update on #2

    2. Is it possible to probe "resetn" of the phy to see if controller is resetting the phy periodically ?

    [CJ] resetn pin is not asserted during the network link  down / up event

    Best regards,

    Carlos

  • In reply to Carlos Jones:

    Hi Carlos,

    If you have two of your boards with 825 then they should link-up if connected over cable and you may probe the link-status. (to rule out router dependency).

    Also I re-read your query and just want to clear up a doubt : are you using a 25 MHz external clock source or is it the crystal attached to the phy as shown in the schematic. Also what is the cable length between the board and router? 

    We can try a few software programming options for phy :

    Option 1 : write reg<0x001F> = x8000 in the problem case and check if link become stable.

    Option 2 : I am checking how to disable EEE to rule out anything to do with EEE.

    --

    Regards,

    Vikram

  • In reply to Vikram Sharma99:

    Hi Carlos,

    As mentioned earlier, we can try disabling EEE by writting reg<0x04D1>[0] = 0. By default it will be 1. Let me know your observations.

    --

    Regards,

    Vikram

  • In reply to Vikram Sharma99:

    Hi Vikram,

    Thank you for the suggestions. I will try it as soon as I can as I am away from the setup for a while.

    static int dp83825_phy_fixup(struct phy_device *dev)
    {
    	if (dev && dev->interface == PHY_INTERFACE_MODE_RMII) {
    		pr_info("dp83825 fix up for PHY_INTERFACE_MODE_RMII or PHY_INTERFACE_MODE_RGMII\n");
    
    		/* PHY Reset */
    		pr_info("dp83825 PHY RESET\n");
    		phy_write(dev, 0x1f, 0x8000);
    
    		/* Read BMCR */
    		pr_info("dp83825 Read BMCR: 0x%x\n", phy_read(dev, 0x0));
    		pr_info("dp83825 Read BMSR: 0x%x\n", phy_read(dev, 0x01));
    		pr_info("dp83825 Read PHYIDR1: 0x%x\n", phy_read(dev, 0x02));
    		pr_info("dp83825 Read PHYIDR2: 0x%x\n", phy_read(dev, 0x03));
    		
    		pr_info("dp83825 Write SOR1 : 0x0101 \n");
    		phy_write(dev, 0x467, 0x0101);
    
    		pr_info("dp83825 Read SOR1: 0x%x\n", phy_read(dev, 0x467));
    		pr_info("dp83825 Read EEECFG3_Register: 0x%x\n", phy_read(dev, 0x4D1));
    
    		pr_info("dp83825 Write EEECFG3_Register: 0x0\n");
    		phy_write(dev, 0x4D1, 0);
    		pr_info("dp83825 Read EEECFG3_Register: 0x%x\n", phy_read(dev, 0x4D1)); /* verify */
    		
    	} else if (dev && dev->interface == PHY_INTERFACE_MODE_MII) {
    		phy_write(dev, 0x1f, 0x8000);
    		pr_info("dp83825 fix up for PHY_INTERFACE_MODE_MII\n");
    	} else if (dev && dev->interface == PHY_INTERFACE_MODE_RGMII) {
    		phy_write(dev, 0x1f, 0x8000);
    		pr_info("dp83825 fix up for PHY_INTERFACE_MODE_RGMII\n");
    	} else {
    		pr_info("no fix up: dev && dev->interface %i", dev && dev->interface);
    	}
    	return 0;
    }

    Here is the relevant code in the DP83825 driver that is called every time I call "ifconfig eth0 up", I inserted the 1) reset and 2) disable EEE commands as suggested.

    Btw, the cable length is 6feet. I've yet to try the DP83825 <-> DP8325 connection test.

    Best regards,

    Carlos

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.