AM5718-HIREL: How to change the device tree and driver for AM5718-RGMII-DP83822 to switch from electrical transmission to optical transmission

Part Number: AM5718-HIREL
Other Parts Discussed in Thread: AM5718, TMDXIDK5718, DP83825I

Tool/software:

Hello experts: 

       I use TI's am5718 as the processor, SDK version: ti-processor-sdk-linux-am57xx-evm-04.03.00.05.I refer to the design of the TMDXIDK5718 development board and replace the Micrel KSZ9031 Gigabit PHY connected to one RGMII with TI DP83822 10/100 Mbps PHY. The phy addresses are 1.

And now we have a new project which need Optical communication.We have adapted the phy chip circuit into an optical conversion module on the circuit board.

What changes need to be made to the device tree and driver?

Before changing the optical port, there was no problem with circuit communication. The device tree section is as follows:

&mac {
status = "okay";
dual_emac;
};

&cpsw_emac0 {
phy_id = <&davinci_mdio>, <1>;
phy-mode = "rgmii-id";
dual_emac_res_vlan = <1>;
};

&cpsw_emac1 {
phy_id = <&davinci_mdio>, <2>;
phy-mode = "rgmii-id";
dual_emac_res_vlan = <2>;
};

&davinci_mdio{
dp83822_0: ethernet-phy@0 {
reset-gpios = <&gpio5 17 GPIO_ACTIVE_LOW>;
reset-delay-us = <20>;
reg = <1>;
interrupt-parent = <&gpio5>;
interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
};
ksz9031_1: ethernet-phy@1 {
reset-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
reset-delay-us = <20>;
reg = <2>;
interrupt-parent = <&gpio5>;
interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
};
};

  • Hi Jiabin,

    Referring to latest version of DP83822 driver and device tree bindings, we should only need to add two entries to device tree to enable fiber function:

    https://github.com/TexasInstruments/ti-ethernet-software/blob/main/linux_drivers/dp83822.c

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/Documentation/devicetree/bindings/net/ti,dp83822.yaml?h=ti-linux-5.10.y

    Please add to 822 device tree entry:

    ti,fiber-mode = <1>;      // enable fiber 
    ti,link-loss-low = <1>; // set signal detect to active low, assuming SFP module is active low

    Thank you,
    Evan

  • Hi Evan,

           Thank you for your reply.

           But there seems to be some problem with my circuit. I found a DP83822 troubleshooting issue on the TI website, please refer to the attachment. On page 11, it is mentioned to use loopback testing for circuit self-test.
           It mentions using Mac to generate and check data packets. I would like to ask how to generate and check data packets using Mac.
       There is also a line inside(page 11):

          030B 3380//This helps PRBS LOCK
           Is 030B a register? DP83822 doesn't have a register for this address, does it?
    I hope you can help me answer this. Thank you again.zhcadi8.pdf

  • Hi Jiabin,

    Could you please clarify the circuit problem you have observed?

    For loopback self-test, it is challenging to generate packets from MAC-side due to link failure with loopback enabled. Instead, you can enable PHY PRBS generator for MAC-side loopback test:

    1. Enable analog loopback (MAC-side) on PHY, and enable PRBS generator to send packets to MAC
      1. Register 0x16 = 0x5108
    2. Check MAC packet statistics to verify data received without error
      1. ethtool -s <eth port>tcpdump, or Wireshark

    Register 0x30B is an internal register used to improve performance for PRBS, the register description is not public.

    I can help advise other tests to validate signal chain if more details regarding the communication issue are shared. Please let me know if you can communicate between MAC <-> PHY or PHY <-> PHY, and if register dump information is available.

    Thank you,
    Evan

  • Hi Evan,

           Thank you for your reply.

    Before troubleshooting the circuit, I would like to confirm if the AM5718 configuration is correct.
    As mentioned earlier I use TI's am5718 as the processor, SDK version: ti-processor-sdk-linux-am57xx-evm-04.03.00.05.
    The device tree configuration dr7.dtsi and Ethernet related parts have not changed:
    mac: ethernet@48484000 {
    compatible = "ti,dra7-cpsw","ti,cpsw";
    ti,hwmods = "gmac";
    clocks = <&gmac_main_clk>, <&gmac_rft_clk_mux>;
    clock-names = "fck", "cpts";
    cpdma_channels = <8>;
    ale_entries = <1024>;
    bd_ram_size = <0x2000>;
    mac_control = <0x20>;
    slaves = <2>;
    active_slave = <0>;
    cpts_clock_mult = <0x784CFE14>;
    cpts_clock_shift = <29>;
    reg = <0x48484000 0x1000
    0x48485200 0x2E00>;
    #address-cells = <1>;
    #size-cells = <1>;
    /*
    * Do not allow gating of cpsw clock as workaround
    * for errata i877. Keeping internal clock disabled
    * causes the device switching characteristics
    * to degrade over time and eventually fail to meet
    * the data manual delay time/skew specs.
    */
    ti,no-idle;
    /*
    * rx_thresh_pend
    * rx_pend
    * tx_pend
    * misc_pend
    */
    interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
    <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
    <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
    <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>;
    ranges;
    syscon = <&scm_conf>;
    status = "disabled";
    davinci_mdio: mdio@48485000 {
    compatible = "ti,cpsw-mdio","ti,davinci_mdio";
    #address-cells = <1>;
    #size-cells = <0>;
    ti,hwmods = "davinci_mdio";
    bus_freq = <1000000>;
    reg = <0x48485000 0x100>;
    };
    cpsw_emac0: slave@48480200 {
    /* Filled in by U-Boot */
    mac-address = [ 00 00 00 00 00 00 ];
    };
    cpsw_emac1: slave@48480300 {
    /* Filled in by U-Boot */
    mac-address = [ 00 00 00 00 00 00 ];
    };
    phy_sel: cpsw-phy-sel@4a002554 {
    compatible = "ti,dra7xx-cpsw-phy-sel";
    reg= <0x4a002554 0x4>;
    reg-names = "gmii-sel";
    };
    };

    Add the following content to the device tree file am571x-idk.dts I have changed.(EMAC0 is connected to DP83822, for optical transmission):
    /*ADD IN 2025-07-18*/
    &mac {
    status = "okay";
    dual_emac;
    };
    &cpsw_emac0 {
    phy_id = <&davinci_mdio>, <1>;
    phy-mode = "rgmii-id";
    dual_emac_res_vlan = <1>;
    };

    &cpsw_emac1 {
    phy_id = <&davinci_mdio>, <2>;
    phy-mode = "rgmii-id";
    dual_emac_res_vlan = <2>;
    };
    &davinci_mdio{
    dp83822_0: ethernet-phy@0 {
    reset-gpios = <&gpio5 17 GPIO_ACTIVE_LOW>;
    reset-delay-us = <20>;
    reg = <1>;
    ti,fiber-mode = <1>; // enable fiber
    ti,link-loss-low = <1>; // set signal detect to active low, assuming SFP module is active low
    interrupt-parent = <&gpio5>;
    interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
    };
    ksz9031_1: ethernet-phy@1 {
    reset-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
    reset-delay-us = <20>;
    reg = <2>;
    interrupt-parent = <&gpio5>;
    interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
    };
    };
    /*END ADD*/

    The following information was found in the startup log:

    Search for printing information(TI DP83822 10/100 Mbps PHY) in SDK as follows:

    It can be seen that the driver of this phy chip is dp83848.c
    However, upon reading the information on dp83848, it was found that it does not support optical transmission or RGMII.
    So I want to confirm if I can use this driver to adapt to the DP83822 chip for optical port transmission? Do we still need the DP83822 driver to achieve optical transmission?
    If it's the latter, the dp83822.c you gave me last time is not working well, I put it in the SDK directory: /ti-processor-sdk-linux-am57xx-evm-04.03.00.05/board-support/linux-4.9.69+gitAUTOINC+9ce43c71ae-g9ce43c71ae/drivers/net/phy/
    After changing the Makefile in the directory, the compilation failed. Is this issue caused by the need to change other content or a mismatch with the SDK version? Please help me.
    Thank you very much.

  • Hi Jiabin,

    DP83848 driver cannot be used to enable fiber on DP83822. This compilation error is due to SDK Linux version mismatch with DP83822 driver - we do not have DP83822 driver compatible with 4.9 at this time. If your system is restricted to v4.9, backporting DP83822 driver for compatibility is required. Please share the compilation error log in this case.

    There are two options to enable DP83822 fiber function on v4.9:

    1) Modifying DP83848 driver for compatibility with DP83822 register map. This will avoid needing to compile and import a new driver, but will take time to modify the driver's register map and initialization logic.

    2) Importing DP83822 driver and modifying for compatibility with v4.9. For this, driver register init logic won't need to change, but driver function definitions / structure will need to backport for v4.9 compatibility.

    Please let me know your preference.

    Thank you,
    Evan 

  • Hi Evan,

           Thank you for your reply.

           We expect to choose the second option.“2) Importing DP83822 driver and modifying for compatibility with v4.9. For this, driver register init logic won't need to change, but driver function definitions / structure will need to backport for v4.9 compatibility.”

           The compilation error log:

    cys@cys-virtual-machine:~/ti-processor-sdk-linux-am57xx-evm-04.03.00.05/board-support/linux-4.9.69+gitAUTOINC+9ce43c71ae-g9ce43c71ae$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage
    scripts/kconfig/conf --silentoldconfig Kconfig
    CHK include/config/kernel.release
    CHK include/generated/uapi/linux/version.h
    CHK include/generated/utsrelease.h
    CHK include/generated/bounds.h
    CHK include/generated/timeconst.h
    CHK include/generated/asm-offsets.h
    CALL scripts/checksyscalls.sh
    CHK include/generated/compile.h
    GZIP kernel/config_data.gz
    CHK kernel/config_data.h
    UPD kernel/config_data.h
    CC kernel/configs.o
    LD kernel/built-in.o
    CC drivers/cpufreq/cpufreq_powersave.o
    CC drivers/cpufreq/cpufreq_ondemand.o
    LD drivers/cpufreq/built-in.o
    DTC drivers/gpu/drm/tilcdc/tilcdc_slave_compat.dtb
    DTB drivers/gpu/drm/tilcdc/tilcdc_slave_compat.dtb.S
    AS drivers/gpu/drm/tilcdc/tilcdc_slave_compat.dtb.o
    LD drivers/gpu/drm/tilcdc/built-in.o
    rm drivers/gpu/drm/tilcdc/tilcdc_slave_compat.dtb drivers/gpu/drm/tilcdc/tilcdc_slave_compat.dtb.S
    LD drivers/gpu/drm/built-in.o
    LD drivers/gpu/built-in.o
    CC drivers/net/phy/dp83822.o
    drivers/net/phy/dp83822.c: In function 'dp83822_set_wol':
    drivers/net/phy/dp83822.c:179:10: error: implicit declaration of function 'phy_clear_bits_mmd' [-Werror=implicit-function-declaration]
    return phy_clear_bits_mmd(phydev, DP83822_DEVADDR,
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c: In function 'dp83822_handle_interrupt':
    drivers/net/phy/dp83822.c:307:3: error: implicit declaration of function 'phy_error' [-Werror=implicit-function-declaration]
    phy_error(phydev);
    ^~~~~~~~~
    drivers/net/phy/dp83822.c:324:2: error: too few arguments to function 'phy_trigger_machine'
    phy_trigger_machine(phydev);
    ^~~~~~~~~~~~~~~~~~~
    In file included from ./include/net/dsa.h:19:0,
    from ./include/linux/netdevice.h:44,
    from ./include/linux/etherdevice.h:26,
    from drivers/net/phy/dp83822.c:8:
    ./include/linux/phy.h:812:6: note: declared here
    void phy_trigger_machine(struct phy_device *phydev, bool sync);
    ^~~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c: In function 'dp83822_config_init':
    drivers/net/phy/dp83822.c:392:18: error: implicit declaration of function 'phy_get_internal_delay' [-Werror=implicit-function-declaration]
    rx_int_delay = phy_get_internal_delay(phydev, dev, NULL, 0,
    ^~~~~~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:408:10: error: implicit declaration of function 'phy_set_bits_mmd' [-Werror=implicit-function-declaration]
    err = phy_set_bits_mmd(phydev, DP83822_DEVADDR,
    ^~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:422:9: error: implicit declaration of function 'phy_modify' [-Werror=implicit-function-declaration]
    err = phy_modify(phydev, MII_DP83822_CTRL_2,
    ^~~~~~~~~~
    drivers/net/phy/dp83822.c:428:3: error: implicit declaration of function 'linkmode_and' [-Werror=implicit-function-declaration]
    linkmode_and(phydev->advertising, phydev->advertising,
    ^~~~~~~~~~~~
    drivers/net/phy/dp83822.c:431:3: error: implicit declaration of function 'linkmode_set_bit' [-Werror=implicit-function-declaration]
    linkmode_set_bit(ETHTOOL_LINK_MODE_FIBRE_BIT,
    ^~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:435:20: error: 'ETHTOOL_LINK_MODE_100baseFX_Full_BIT' undeclared (first use in this function)
    linkmode_set_bit(ETHTOOL_LINK_MODE_100baseFX_Full_BIT,
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:435:20: note: each undeclared identifier is reported only once for each function it appears in
    drivers/net/phy/dp83822.c:437:20: error: 'ETHTOOL_LINK_MODE_100baseFX_Half_BIT' undeclared (first use in this function)
    linkmode_set_bit(ETHTOOL_LINK_MODE_100baseFX_Half_BIT,
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:455:3: error: implicit declaration of function 'linkmode_clear_bit' [-Werror=implicit-function-declaration]
    linkmode_clear_bit(ETHTOOL_LINK_MODE_Autoneg_BIT,
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:461:9: error: implicit declaration of function 'phy_modify_changed' [-Werror=implicit-function-declaration]
    err = phy_modify_changed(phydev, MII_ADVERTISE,
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c: In function 'dp83822_probe':
    drivers/net/phy/dp83822.c:567:9: error: 'struct phy_device' has no member named 'port'
    phydev->port = PORT_FIBRE;
    ^~
    drivers/net/phy/dp83822.c: At top level:
    drivers/net/phy/dp83822.c:600:3: error: implicit declaration of function 'PHY_ID_MATCH_MODEL' [-Werror=implicit-function-declaration]
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:631:2: note: in expansion of macro 'DP83822_PHY_DRIVER'
    DP83822_PHY_DRIVER(DP83822_PHY_ID, "TI DP83822"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:600:3: error: initializer element is not constant
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:631:2: note: in expansion of macro 'DP83822_PHY_DRIVER'
    DP83822_PHY_DRIVER(DP83822_PHY_ID, "TI DP83822"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:600:3: note: (near initialization for 'dp83822_driver[0].mdiodrv.driver.name')
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:631:2: note: in expansion of macro 'DP83822_PHY_DRIVER'
    DP83822_PHY_DRIVER(DP83822_PHY_ID, "TI DP83822"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:610:3: error: unknown field 'handle_interrupt' specified in initializer
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:631:2: note: in expansion of macro 'DP83822_PHY_DRIVER'
    DP83822_PHY_DRIVER(DP83822_PHY_ID, "TI DP83822"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:610:23: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:631:2: note: in expansion of macro 'DP83822_PHY_DRIVER'
    DP83822_PHY_DRIVER(DP83822_PHY_ID, "TI DP83822"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:610:23: note: (near initialization for 'dp83822_driver[0].did_interrupt')
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:631:2: note: in expansion of macro 'DP83822_PHY_DRIVER'
    DP83822_PHY_DRIVER(DP83822_PHY_ID, "TI DP83822"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:599:2: warning: missing braces around initializer [-Wmissing-braces]
    { \
    ^
    drivers/net/phy/dp83822.c:631:2: note: in expansion of macro 'DP83822_PHY_DRIVER'
    DP83822_PHY_DRIVER(DP83822_PHY_ID, "TI DP83822"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:599:2: note: (near initialization for 'dp83822_driver[0]')
    { \
    ^
    drivers/net/phy/dp83822.c:631:2: note: in expansion of macro 'DP83822_PHY_DRIVER'
    DP83822_PHY_DRIVER(DP83822_PHY_ID, "TI DP83822"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:617:3: error: initializer element is not constant
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:632:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825I_PHY_ID, "TI DP83825I"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:617:3: note: (near initialization for 'dp83822_driver[1].mdiodrv.driver.name')
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:632:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825I_PHY_ID, "TI DP83825I"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:3: error: unknown field 'handle_interrupt' specified in initializer
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:632:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825I_PHY_ID, "TI DP83825I"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:23: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:632:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825I_PHY_ID, "TI DP83825I"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:23: note: (near initialization for 'dp83822_driver[1].did_interrupt')
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:632:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825I_PHY_ID, "TI DP83825I"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:616:2: warning: missing braces around initializer [-Wmissing-braces]
    { \
    ^
    drivers/net/phy/dp83822.c:632:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825I_PHY_ID, "TI DP83825I"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:616:2: note: (near initialization for 'dp83822_driver[1]')
    { \
    ^
    drivers/net/phy/dp83822.c:632:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825I_PHY_ID, "TI DP83825I"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:617:3: error: initializer element is not constant
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:633:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826C_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:617:3: note: (near initialization for 'dp83822_driver[2].mdiodrv.driver.name')
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:633:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826C_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:3: error: unknown field 'handle_interrupt' specified in initializer
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:633:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826C_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:23: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:633:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826C_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:23: note: (near initialization for 'dp83822_driver[2].did_interrupt')
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:633:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826C_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:616:2: warning: missing braces around initializer [-Wmissing-braces]
    { \
    ^
    drivers/net/phy/dp83822.c:633:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826C_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:616:2: note: (near initialization for 'dp83822_driver[2]')
    { \
    ^
    drivers/net/phy/dp83822.c:633:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826C_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:617:3: error: initializer element is not constant
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:634:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826REVB_E_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:617:3: note: (near initialization for 'dp83822_driver[3].mdiodrv.driver.name')
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:634:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826REVB_E_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:3: error: unknown field 'handle_interrupt' specified in initializer
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:634:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826REVB_E_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:23: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:634:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826REVB_E_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:23: note: (near initialization for 'dp83822_driver[3].did_interrupt')
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:634:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826REVB_E_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:616:2: warning: missing braces around initializer [-Wmissing-braces]
    { \
    ^
    drivers/net/phy/dp83822.c:634:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826REVB_E_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:616:2: note: (near initialization for 'dp83822_driver[3]')
    { \
    ^
    drivers/net/phy/dp83822.c:634:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826REVB_E_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:617:3: error: initializer element is not constant
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:635:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826REVB_B_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:617:3: note: (near initialization for 'dp83822_driver[4].mdiodrv.driver.name')
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:635:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826REVB_B_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:3: error: unknown field 'handle_interrupt' specified in initializer
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:635:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826REVB_B_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:23: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:635:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826REVB_B_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:23: note: (near initialization for 'dp83822_driver[4].did_interrupt')
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:635:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826REVB_B_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:616:2: warning: missing braces around initializer [-Wmissing-braces]
    { \
    ^
    drivers/net/phy/dp83822.c:635:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826REVB_B_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:616:2: note: (near initialization for 'dp83822_driver[4]')
    { \
    ^
    drivers/net/phy/dp83822.c:635:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826REVB_B_PHY_ID, "TI DP83826C"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:617:3: error: initializer element is not constant
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:636:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826NC_PHY_ID, "TI DP83826NC"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:617:3: note: (near initialization for 'dp83822_driver[5].mdiodrv.driver.name')
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:636:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826NC_PHY_ID, "TI DP83826NC"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:3: error: unknown field 'handle_interrupt' specified in initializer
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:636:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826NC_PHY_ID, "TI DP83826NC"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:23: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:636:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826NC_PHY_ID, "TI DP83826NC"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:23: note: (near initialization for 'dp83822_driver[5].did_interrupt')
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:636:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826NC_PHY_ID, "TI DP83826NC"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:616:2: warning: missing braces around initializer [-Wmissing-braces]
    { \
    ^
    drivers/net/phy/dp83822.c:636:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826NC_PHY_ID, "TI DP83826NC"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:616:2: note: (near initialization for 'dp83822_driver[5]')
    { \
    ^
    drivers/net/phy/dp83822.c:636:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83826NC_PHY_ID, "TI DP83826NC"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:617:3: error: initializer element is not constant
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:637:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825S_PHY_ID, "TI DP83825S"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:617:3: note: (near initialization for 'dp83822_driver[6].mdiodrv.driver.name')
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:637:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825S_PHY_ID, "TI DP83825S"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:3: error: unknown field 'handle_interrupt' specified in initializer
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:637:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825S_PHY_ID, "TI DP83825S"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:23: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:637:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825S_PHY_ID, "TI DP83825S"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:23: note: (near initialization for 'dp83822_driver[6].did_interrupt')
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:637:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825S_PHY_ID, "TI DP83825S"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:616:2: warning: missing braces around initializer [-Wmissing-braces]
    { \
    ^
    drivers/net/phy/dp83822.c:637:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825S_PHY_ID, "TI DP83825S"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:616:2: note: (near initialization for 'dp83822_driver[6]')
    { \
    ^
    drivers/net/phy/dp83822.c:637:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825S_PHY_ID, "TI DP83825S"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:617:3: error: initializer element is not constant
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:638:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825CM_PHY_ID, "TI DP83825M"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:617:3: note: (near initialization for 'dp83822_driver[7].mdiodrv.driver.name')
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:638:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825CM_PHY_ID, "TI DP83825M"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:3: error: unknown field 'handle_interrupt' specified in initializer
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:638:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825CM_PHY_ID, "TI DP83825M"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:23: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:638:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825CM_PHY_ID, "TI DP83825M"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:23: note: (near initialization for 'dp83822_driver[7].did_interrupt')
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:638:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825CM_PHY_ID, "TI DP83825M"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:616:2: warning: missing braces around initializer [-Wmissing-braces]
    { \
    ^
    drivers/net/phy/dp83822.c:638:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825CM_PHY_ID, "TI DP83825M"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:616:2: note: (near initialization for 'dp83822_driver[7]')
    { \
    ^
    drivers/net/phy/dp83822.c:638:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825CM_PHY_ID, "TI DP83825M"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:617:3: error: initializer element is not constant
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:639:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825CS_PHY_ID, "TI DP83825CS"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:617:3: note: (near initialization for 'dp83822_driver[8].mdiodrv.driver.name')
    PHY_ID_MATCH_MODEL(_id), \
    ^
    drivers/net/phy/dp83822.c:639:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825CS_PHY_ID, "TI DP83825CS"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:3: error: unknown field 'handle_interrupt' specified in initializer
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:639:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825CS_PHY_ID, "TI DP83825CS"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:23: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:639:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825CS_PHY_ID, "TI DP83825CS"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:625:23: note: (near initialization for 'dp83822_driver[8].did_interrupt')
    .handle_interrupt = dp83822_handle_interrupt, \
    ^
    drivers/net/phy/dp83822.c:639:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825CS_PHY_ID, "TI DP83825CS"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:616:2: warning: missing braces around initializer [-Wmissing-braces]
    { \
    ^
    drivers/net/phy/dp83822.c:639:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825CS_PHY_ID, "TI DP83825CS"),
    ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83822.c:616:2: note: (near initialization for 'dp83822_driver[8]')
    { \
    ^
    drivers/net/phy/dp83822.c:639:2: note: in expansion of macro 'DP8382X_PHY_DRIVER'
    DP8382X_PHY_DRIVER(DP83825CS_PHY_ID, "TI DP83825CS"),
    ^~~~~~~~~~~~~~~~~~
    cc1: some warnings being treated as errors
    scripts/Makefile.build:293: recipe for target 'drivers/net/phy/dp83822.o' failed
    make[3]: *** [drivers/net/phy/dp83822.o] Error 1
    scripts/Makefile.build:544: recipe for target 'drivers/net/phy' failed
    make[2]: *** [drivers/net/phy] Error 2
    scripts/Makefile.build:544: recipe for target 'drivers/net' failed
    make[1]: *** [drivers/net] Error 2
    Makefile:991: recipe for target 'drivers' failed
    make: *** [drivers] Error 2
    cys@cys-virtual-machine:~/ti-processor-sdk-linux-am57xx-evm-04.03.00.05/board-support/linux-4.9.69+gitAUTOINC+9ce43c71ae-g9ce43c71ae$

    Thank you very much.

  • Hi Jiabin,

    Thank you for sharing the log.
    It will take some time to backport and test this driver on v4.9 for release - at least 2 weeks depending on urgency.

    Thank you,
    Evan

  • Hi Evan,

           Thank you for your reply.

    Your work will help us solve major problems, thank you very much.
    If there is any need for testing data related to the board, please send me a message and I will provide it to you as soon as possible.

    Thanks again.

  • Hi Jiabin,

    Of course, glad to help. Please reach out to me at e-mayhew@ti.com for updates as integration progresses.

    Thank you,
    Evan

  • Hi Jiabin,

    Please let me know if you have any questions or feedback about the v4.9 driver shared over email.

    Thank you,
    Evan

  • Hi Evan,

    Thank you for your hard work.

    I added this driver to the directory:/ home/cys/ti-processor-sdk-linux-am57xx-evm-04.03.00.05/board-support/linux-4.9.69+gitAUTOINC+9ce43c71ae-g9ce43c71ae/drivers/net/phy
    I annotated the content related to dp83822 in dp83848.c and recompiled the zImage kernel.
    After plugging in the fiber optic cable, I found that the network was in 10M half duplex mode. I added 'max speed=<100>' to the device tree; full-duplex;
    As follows:

    &davinci_mdio{
    dp83822_0: ethernet-phy@0 {
    reset-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
    reset-delay-us = <20>;
    reg = <1>;
    max-speed = <100>;
    full-duplex;
    ti,fiber-mode = <1>; // enable fiber
    ti,link-loss-low = <1>; // set signal detect to active low, assuming SFP module is active low
    interrupt-parent = <&gpio5>;
    interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
    };
    ksz9031_1: ethernet-phy@1 {
    reset-gpios = <&gpio5 17 GPIO_ACTIVE_LOW>;
    reset-delay-us = <20>;
    reg = <2>;
    interrupt-parent = <&gpio5>;
    interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
    };
    };
    Recompile the device tree and start, still in 10M half duplex mode.

    root@am57xx-evm:~# ethtool eth0
    Settings for eth0:
    Supported ports: [ TP MII ]
    Supported link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Advertised link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Speed: 10Mb/s
    Duplex: Half
    Port: MII
    PHYAD: 1
    Transceiver: external
    Auto-negotiation: on
    Supports Wake-on: d
    Wake-on: d
    Current message level: 0x00000000 (0)

    Link detected: no
    root@am57xx-evm:~#

    Is this a device tree configuration issue?

  • Hi Jiabin,

    This version of the driver shared does not have support for ethtool, link speed / status needs to be verified through register access. Could you please share:
    1) Result of communication test to link partner
    2) PHY register dump

    Thank you,
    Evan

  • Hi Evan,

    Thank you for your reply.

    1.Because in the development of optical modules, this unique optical port network device is connected to the other end through a switch's regular electrical port, displaying 100Mbps full duplex.

    2.I don't know how to get PHY register dump. Is it in the startup log? The attachment is the startup log.

    Thank you,
    Jiabin
    U-Boot SPL -00458-g32d3fcd-dirty (Jul 30 2025 - 19:02:12)
    DRA722-GP ES2.0
    Trying to boot from MMC1
    *** Warning - bad CRC, using default environment
    
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    
    
    U-Boot V0.010.010.00  (Jul 30 2025 - 19:02:12 +0800)
    
    CPU  : DRA722-GP ES2.0
    Model: TI AM5718 IDK
    Board: AM571x IDK, For JRU REV 
    DRAM:  1 GiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    SF: Detected s25fl256s_64k with page size 256 Bytes, erase size 64 KiB, total 32 MiB, mapped at 5c000000
    *** Warning - bad CRC, using default environment
    
    Warning: fastboot.board_rev: unknown board revision
    ** First descriptor is NOT a primary desc on 1:1 **
    GUID Partition Table Header signature is wrong: 0x37315245 != 0x5452415020494645
    part_get_info_efi: *** ERROR: Invalid GPT ***
    GUID Partition Table Header signature is wrong: 0x37315245 != 0x5452415020494645
    part_get_info_efi: *** ERROR: Invalid Backup GPT ***
    SCSI:  SATA link 0 timeout.
    AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
    flags: 64bit ncq stag pm led clo only pmp pio slum part ccc apst 
    scanning bus for devices...
    Found 0 device(s).
    Net:   Could not get PHY for ethernet@48484000: addr 0
    
    Warning: ethernet@48484000 using MAC address from ROM
    eth0: ethernet@48484000
    Hit any key to stop autoboot:  0 
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading boot.scr
    ** Unable to read file boot.scr **
    reading uEnv.txt
    1490 bytes read in 3 ms (484.4 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc0 ...
    Running uenvcmd ...
    reading .psdk_setup
    1 bytes read in 3 ms (0 Bytes/s)
    Already setup.
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    3762008 bytes read in 175 ms (20.5 MiB/s)
    101980 bytes read in 15 ms (6.5 MiB/s)
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 8ffe4000, end 8ffffe5b ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 4.9.69-g9ce43c71ae (cys@cys-virtual-machine) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #107 SMP PREEMPT Sat Aug 16 12:09:12 CST 2025
    [    0.000000] CPU: ARMv7 Processor [412fc0f2] revision 2 (ARMv7), cr=30c5387d
    [    0.000000] CPU: div instructions available: patching division code
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
    [    0.000000] OF: fdt:Machine model: TI AM5718 IDK
    [    0.000000] efi: Getting EFI parameters from FDT:
    [    0.000000] efi: UEFI not found.
    [    0.000000] Reserved memory: created CMA memory pool at 0x0000000095800000, size 56 MiB
    [    0.000000] OF: reserved mem: initialized node ipu2_cma@95800000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created CMA memory pool at 0x0000000099000000, size 64 MiB
    [    0.000000] OF: reserved mem: initialized node dsp1_cma@99000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created CMA memory pool at 0x000000009d000000, size 32 MiB
    [    0.000000] OF: reserved mem: initialized node ipu1_cma@9d000000, compatible id shared-dma-pool
    [    0.000000] cma: Reserved 24 MiB at 0x00000000be400000
    [    0.000000] Memory policy: Data cache writealloc
    [    0.000000] OMAP4: Map 0x00000000bfd00000 to fe600000 for dram barrier
    [    0.000000] DRA722 ES2.0
    [    0.000000] percpu: Embedded 13 pages/cpu @ef646000 s22028 r8192 d23028 u53248
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 210496
    [    0.000000] Kernel command line: console=ttyO2,115200n8 root=PARTUUID=481579e3-02 rw rootfstype=ext4 rootwait
    [    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
    [    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
    [    0.000000] Memory: 644576K/848896K available (8192K kernel code, 317K rwdata, 2436K rodata, 2048K init, 304K bss, 24096K reserved, 180224K cma-reserved, 234496K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    [    0.000000]     vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc0a00000   (10208 kB)
    [    0.000000]       .init : 0xc0e00000 - 0xc1000000   (2048 kB)
    [    0.000000]       .data : 0xc1000000 - 0xc104f4c8   ( 318 kB)
    [    0.000000]        .bss : 0xc1051000 - 0xc109d170   ( 305 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000]  Build-time adjustment of leaf fanout to 32.
    [    0.000000]  RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
    [    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=1
    [    0.000000] NR_IRQS:16 nr_irqs:16 16
    [    0.000000] OMAP clockevent source: timer1 at 32786 Hz
    [    0.000000] arm_arch_timer: Architected cp15 timer(s) running at 6.14MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x16af5adb9, max_idle_ns: 440795202250 ns
    [    0.000005] sched_clock: 56 bits at 6MHz, resolution 162ns, wraps every 4398046511023ns
    [    0.000016] Switching to timer-based delay loop, resolution 162ns
    [    0.000321] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
    [    0.000329] OMAP clocksource: 32k_counter at 32768 Hz
    [    0.000748] Console: colour dummy device 80x30
    [    0.000765] WARNING: Your 'console=ttyO2' has been replaced by 'ttyS2'
    [    0.000771] This ensures that you still see kernel messages. Please
    [    0.000777] update your kernel commandline.
    [    0.000792] Calibrating delay loop (skipped), value calculated using timer frequency.. 12.29 BogoMIPS (lpj=61475)
    [    0.000806] pid_max: default: 32768 minimum: 301
    [    0.000908] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.000917] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.001536] CPU: Testing write buffer coherency: ok
    [    0.001741] /cpus/cpu@0 missing clock-frequency property
    [    0.001754] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
    [    0.001769] Setting up static identity map for 0x80200000 - 0x80200060
    [    0.080033] EFI services will not be available.
    [    0.099919] Brought up 1 CPUs
    [    0.099930] SMP: Total of 1 processors activated (12.29 BogoMIPS).
    [    0.099937] CPU: All CPU(s) started in HYP mode.
    [    0.099943] CPU: Virtualization extensions available.
    [    0.100320] devtmpfs: initialized
    [    0.130077] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
    [    0.130326] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.130343] futex hash table entries: 256 (order: 2, 16384 bytes)
    [    0.133705] pinctrl core: initialized pinctrl subsystem
    [    0.134563] NET: Registered protocol family 16
    [    0.135428] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.136410] omap_hwmod: l3_main_2 using broken dt data from ocp
    [    0.242406] omap_hwmod: dcan2: _wait_target_disable failed
    [    0.360277] cpuidle: using governor ladder
    [    0.390303] cpuidle: using governor menu
    [    0.399905] OMAP GPIO hardware version 0.1
    [    0.415017] irq: no irq domain found for /ocp/l4@4a000000/scm@2000/pinmux@1400 !
    [    0.438819] No ATAGs?
    [    0.438839] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
    [    0.438848] hw-breakpoint: maximum watchpoint size is 8 bytes.
    [    0.439254] omap4_sram_init:Unable to allocate sram needed to handle errata I688
    [    0.439265] omap4_sram_init:Unable to get sram pool needed to handle errata I688
    [    0.439819] OMAP DMA hardware revision 0.0
    [    0.520937] omap-dma-engine 4a056000.dma-controller: OMAP DMA engine driver (LinkedList1/2/3 supported)
    [    0.522256] edma 43300000.edma: memcpy is disabled
    [    0.526999] edma 43300000.edma: TI EDMA DMA engine driver
    [    0.528088] vtt_fixed: supplied by V3_3D
    [    0.530971] omap-iommu 40d01000.mmu: 40d01000.mmu registered
    [    0.531148] omap-iommu 40d02000.mmu: 40d02000.mmu registered
    [    0.531313] omap-iommu 58882000.mmu: 58882000.mmu registered
    [    0.531467] omap-iommu 55082000.mmu: 55082000.mmu registered
    [    0.534080] palmas 0-0058: Irq flag is 0x00000008
    [    0.562852] palmas 0-0058: Muxing GPIO 2f, PWM 0, LED 0
    [    0.565800] SMPS3: supplied by VMAIN
    [    0.568964] SMPS6: supplied by VMAIN
    [    0.570349] SMPS7: supplied by VMAIN
    [    0.571750] SMPS8: supplied by VMAIN
    [    0.572987] SMPS9: supplied by VMAIN
    [    0.573674] LDO1: supplied by VMAIN5V5
    [    0.581407] LDO2: supplied by VMAIN5V5
    [    0.581803] random: fast init done
    [    0.591265] LDO3: supplied by VMAIN
    [    0.601295] LDO4: supplied by VMAIN
    [    0.613381] LDO9: supplied by VMAIN
    [    0.621387] LDOLN: supplied by VMAIN
    [    0.631403] LDOUSB: supplied by VMAIN5V5
    [    0.643407] omap_i2c 48070000.i2c: bus 0 rev0.12 at 400 kHz
    [    0.644016] omap_i2c 48072000.i2c: bus 1 rev0.12 at 100 kHz
    [    0.644443] omap_i2c 4807a000.i2c: bus 3 rev0.12 at 100 kHz
    [    0.644957] omap_i2c 4807c000.i2c: bus 4 rev0.12 at 100 kHz
    [    0.645117] media: Linux media interface: v0.10
    [    0.645165] Linux video capture interface: v2.00
    [    0.645199] pps_core: LinuxPPS API ver. 1 registered
    [    0.645206] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.645226] PTP clock support registered
    [    0.645257] EDAC MC: Ver: 3.0.0
    [    0.651513] omap-mailbox 4883c000.mailbox: omap mailbox rev 0x400
    [    0.651805] omap-mailbox 4883e000.mailbox: omap mailbox rev 0x400
    [    0.652091] omap-mailbox 48840000.mailbox: omap mailbox rev 0x400
    [    0.652290] omap-mailbox 48842000.mailbox: omap mailbox rev 0x400
    [    0.652606] Advanced Linux Sound Architecture Driver Initialized.
    [    0.660926] clocksource: Switched to clocksource arch_sys_counter
    [    0.670559] NET: Registered protocol family 2
    [    0.671113] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
    [    0.671176] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
    [    0.671301] TCP: Hash tables configured (established 8192 bind 8192)
    [    0.671351] UDP hash table entries: 512 (order: 2, 16384 bytes)
    [    0.671382] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
    [    0.671511] NET: Registered protocol family 1
    [    0.691920] RPC: Registered named UNIX socket transport module.
    [    0.691930] RPC: Registered udp transport module.
    [    0.691937] RPC: Registered tcp transport module.
    [    0.691943] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.692894] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
    [    0.705553] workingset: timestamp_bits=14 max_order=18 bucket_order=4
    [    0.712943] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.723687] NFS: Registering the id_resolver key type
    [    0.723708] Key type id_resolver registered
    [    0.723716] Key type id_legacy registered
    [    0.723757] ntfs: driver 2.1.32 [Flags: R/O].
    [    0.725168] bounce: pool size: 64 pages
    [    0.725317] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
    [    0.725327] io scheduler noop registered
    [    0.725335] io scheduler deadline registered
    [    0.725470] io scheduler cfq registered (default)
    [    0.730483] pinctrl-single 4a003400.pinmux: 282 pins at pa fc003400 size 1128
    [    0.730553] pinctrl-single 4a002e8c.pinmux: please update dts to use #pinctrl-cells = <1>
    [    0.730631] pinctrl-single 4a002e8c.pinmux: initialized with no interrupts
    [    0.730642] pinctrl-single 4a002e8c.pinmux: 1 pins at pa fc002e8c size 4
    [    0.799292] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [    0.802674] 4806a000.serial: ttyS0 at MMIO 0x4806a000 (irq = 299, base_baud = 3000000) is a 8250
    [    0.803652] 48020000.serial: ttyS2 at MMIO 0x48020000 (irq = 300, base_baud = 3000000) is a 8250
    [    1.711248] console [ttyS2] enabled
    [    1.715616] 48424000.serial: ttyS8 at MMIO 0x48424000 (irq = 301, base_baud = 3000000) is a 8250
    [    1.725308] 4ae2b000.serial: ttyS9 at MMIO 0x4ae2b000 (irq = 302, base_baud = 3000000) is a 8250
    [    1.735989] omap_rng 48090000.rng: OMAP Random Number Generator ver. 20
    [    1.742783] [drm] Initialized
    [    1.918191] brd: module loaded
    [    2.006594] loop: module loaded
    [    2.016116] m25p80 spi0.0: s25fl256s1 (32768 Kbytes)
    [    2.021207] 7 ofpart partitions found on MTD device spi0.0
    [    2.026717] Creating 7 MTD partitions on "spi0.0":
    [    2.031545] 0x000000000000-0x000000040000 : "QSPI.SPL"
    [    2.047687] 0x000000040000-0x000000140000 : "QSPI.u-boot"
    [    2.064069] 0x000000140000-0x0000001c0000 : "QSPI.u-boot-spl-os"
    [    2.081146] 0x0000001c0000-0x0000001d0000 : "QSPI.u-boot-env"
    [    2.097842] 0x0000001d0000-0x0000001e0000 : "QSPI.u-boot-env.backup1"
    [    2.115265] 0x0000001e0000-0x0000009e0000 : "QSPI.kernel"
    [    2.131649] 0x0000009e0000-0x000002000000 : "QSPI.file-system"
    [    2.149032] libphy: Fixed MDIO Bus: probed
    [    2.210962] davinci_mdio 48485000.mdio: davinci mdio revision 1.6
    [    2.217089] libphy: 48485000.mdio: probed
    [    2.234316] davinci_mdio 48485000.mdio: phy[1]: device 48485000.mdio:01, driver TI DP83822 10/100 Mbps PHY
    [    2.244726] cpsw 48484000.ethernet: Detected MACID = 64:8c:bb:5d:cd:de
    [    2.251491] cpsw 48484000.ethernet: device node lookup for pps timer failed
    [    2.258520] cpsw 48484000.ethernet: cpts: overflow check period 500 (jiffies)
    [    2.266729] cpsw 48484000.ethernet: cpsw: Detected MACID = 64:8c:bb:5d:cd:df
    [    2.275309] mousedev: PS/2 mouse device common for all mice
    [    2.281251] i2c /dev entries driver
    [    2.292415] omap_hsmmc 4809c000.mmc: Got CD GPIO
    [    2.361363] omap_hsmmc 480b4000.mmc: no pinctrl state for sdr25 mode
    [    2.367743] omap_hsmmc 480b4000.mmc: no pinctrl state for sdr12 mode
    [    2.442594] ledtrig-cpu: registered to indicate activity on CPUs
    [    2.461979] NET: Registered protocol family 10
    [    2.481298] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [    2.487626] NET: Registered protocol family 17
    [    2.501079] Key type dns_resolver registered
    [    2.505452] omap_voltage_late_init: Voltage driver support not added
    [    2.530999] Power Management for TI OMAP4+ devices.
    [    2.536085] Registering SWP/SWPB emulation handler
    [    2.557425] dmm 4e000000.dmm: workaround for errata i878 in use
    [    2.574801] dmm 4e000000.dmm: initialized all PAT entries
    [    2.592918] hctosys: unable to open rtc device (rtc0)
    [    2.598526] fixed-supply: disabling
    [    2.604242] ldousb: disabling
    [    2.607493] ALSA device list:
    [    2.610484]   No soundcards found.
    [    2.614463] Waiting for root device PARTUUID=481579e3-02...
    [    2.668559] mmc0: host does not support reading read-only switch, assuming write-enable
    [    2.677453] mmc1: Enabling HPI failed
    [    2.681153] mmc1: new high speed MMC card at address 0001
    [    2.697167] mmcblk1: mmc1:0001 M MOR 128 MiB 
    [    2.704234] mmc0: new ultra high speed SDR104 SDHC card at address 0001
    [    2.711848] mmcblk1boot0: mmc1:0001 M MOR partition 1 2.00 MiB
    [    2.721184] mmcblk0: mmc0:0001 SD32G 29.1 GiB 
    [    2.726504]  mmcblk0: p1 p2
    [    2.729544] mmcblk1boot1: mmc1:0001 M MOR partition 2 2.00 MiB
    [    3.145540] EXT4-fs (mmcblk0p2): recovery complete
    [    3.151369] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    [    3.159519] VFS: Mounted root (ext4 filesystem) on device 179:34.
    [    3.167792] devtmpfs: mounted
    [    3.171716] Freeing unused kernel memory: 2048K
    [    3.287517] systemd[1]: System time before build time, advancing clock.
    [    3.307744] systemd[1]: systemd 230 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN)
    [    3.326329] systemd[1]: Detected architecture arm.
    
    Welcome to Arago 2017.12!
    
    [    3.361744] systemd[1]: Set hostname to <am57xx-evm>.
    [    3.643883] systemd[1]: Created slice User and Session Slice.
    [  OK  ] Created slice User and Session Slice.
    [    3.671160] systemd[1]: Listening on Syslog Socket.
    [  OK  ] Listening on Syslog Socket.
    [    3.701169] systemd[1]: Listening on Journal Socket.
    [  OK  ] Listening on Journal Socket.
    [    3.731421] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    [  OK  ] Started Dispatch Password Requests to Console Directory Watch.
    [    3.795787] systemd[1]: Reached target Remote File Systems.
    [  OK  ] Reached target Remote File Systems.
    [    3.831039] systemd[1]: Reached target Swap.
    [  OK  ] Reached target Swap.
    [    3.861129] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
    [  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
    [  OK  ] Listening on Process Core Dump Socket.
    [  OK  ] Listening on Journal Socket (/dev/log).
    [  OK  ] Listening on Network Service Netlink Socket.
    [  OK  ] Listening on udev Control Socket.
    [  OK  ] Listening on udev Kernel Socket.
    [  OK  ] Started Forward Password Requests to Wall Directory Watch.
    [  OK  ] Reached target Paths.
    [  OK  ] Created slice System Slice.
             Mounting Temporary Directory...
             Mounting Debug File System...
             Starting Journal Service...
    [  OK  ] Reached target Slices.
             Starting Setup Virtual Console...
    [  OK  ] Created slice system-serial\x2dgetty.slice.
             Starting Load Kernel Modules...
    [    4.322311] cmemk: loading out-of-tree module taints kernel.
    [    4.328806] CMEMK module: reference Linux version 4.9.69
             [    4.338396] cmemk initialized
    Starting Remount Root and Kernel File Systems...
    [    4.363835] cryptodev: driver 1.8 loaded.
             Mounting POSIX Message Queue File System...
    [    4.388179] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
    [    4.405631] usbcore: registered new interface driver usbfs
    [    4.405691] usbcore: registered new interface driver hub
    [    4.406692] usbcore: registered new device driver usb
             [    4.432510] usbcore: registered new interface driver usbserial
    Starting alignment.service...
    [    4.458048] usbcore: registered new interface driver ftdi_sio
    [    4.467388] usbserial: USB Serial support registered for FTDI USB Serial Device
             Starting Create Static Device Nodes in /dev...
    [  OK  ] Created slice system-getty.slice.
    [  OK  ] Mounted Debug File System.
    [  OK  ] Mounted POSIX Message Queue File System.
    [  OK  ] Mounted Temporary Directory.
    [  OK  ] Started Journal Service.
    [  OK  ] Started Setup Virtual Console.
    [  OK  ] Started Load Kernel Modules.
    [  OK  ] Started Remount Root and Kernel File Systems.
    [  OK  ] Started alignment.service.
    [  OK  ] Started Create Static Device Nodes in /dev.
             Starting udev Kernel Device Manager...
    [  OK  ] Reached target Local File Systems (Pre).
             Mounting /media/ram...
             Mounting /var/volatile...
             Starting udev Coldplug all Devices...
             Mounting Configuration File System...
             Starting Apply Kernel Variables...
             Starting Flush Journal to Persistent Storage...
    [  OK  ] Mounted Configuration File System.
    [  OK  ] Mounted /var/volatile.
    [  OK  ] Mounted /media/ram.
    [  OK  ] Started udev Kernel Device Manager.
    [  OK  ] Started Apply Kernel Variables.
    [    5.255382] systemd-journald[111]: Received request to flush runtime journal from PID 1
             Starting Load/Save Random Seed...
    [  OK  ] Reached target Local File Systems.
    [  OK  ] Started Flush Journal to Persistent Storage.
    [  OK  ] Started Load/Save Random Seed.
             Starting Create Volatile Files and Directories...
    [  OK  ] Started Create Volatile Files and Directories.
             Starting Update UTMP about System Boot/Shutdown...
             Starting Network Time Synchronization...
    [  OK  ] Started Update UTMP about System Boot/Shutdown.
    [  OK  ] Started Network Time Synchronization.
    [  OK  ] Reached target System Time Synchronized.
    [  OK  ] Started udev Coldplug all Devices.
    [  OK  ] Reached target System Initialization.
    [  OK  ] Listening on D-Bus System Message Bus Socket.
    [  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
    [  OK  ] Listening on RPCbind Server Activation Socket.
    [  OK  ] Started Daily Cleanup of Temporary Directories.
    [  OK  ] Reached target Timers.
    [  OK  ] Listening on dropbear.socket.
    [  OK  ] Reached target Sockets.
    [  OK  ] Reached target Basic System.
             Starting TI MultiCore Tools Daemon...
    [  OK  ] Started Job spooling tools.
    [  OK  ] Started Periodic Command Scheduler.
             Starting Avahi mDNS/DNS-SD Stack...
    [    6.294158] omap-des 480a5000.des: OMAP DES hw accel rev: 2.2
    [  OK  ] Started Kernel Logging Service.
    [    6.337112] omap-des 480a5000.des: will run requests pump with realtime priority
    [  OK  ] Started System Logging Service.
    [    6.479083] adxl34x 4-0053: no IRQ?
    [    6.526873] CAN device driver interface
    [    6.536592] c_can_platform 48480000.can: c_can_platform device registered (regs=fa480000, irq=357)
             Starting Login Service...
             Starting Telephony service...
             Starting Print notice about GPLv3 packages...
             Starting uim-sysfs.service...
    [  OK  ] Started D-Bus System Message Bus.
    [    6.870201] vpe 489d0000.vpe: loading firmware vpdma-1b8.bin
    [    6.987551] vpe 489d0000.vpe: Device registered as /dev/video0
    [    7.005388] blk_update_request: I/O error, dev mmcblk1boot0, sector 3968
    [    7.005513] blk_update_request: I/O error, dev mmcblk1boot0, sector 3968
    [    7.005517] Buffer I/O error on dev mmcblk1boot0, logical block 496, async page read
    [    7.008921] blk_update_request: I/O error, dev mmcblk1boot1, sector 3968
    [    7.009045] blk_update_request: I/O error, dev mmcblk1boot1, sector 3968
    [    7.009050] Buffer I/O error on dev mmcblk1boot1, logical block 496, async page read
    [    7.226933] Bluetooth: Core ver 2.22
    [    7.226969] NET: Registered protocol family 31
    [    7.226971] Bluetooth: HCI device and connection manager initialized
    [    7.226980] Bluetooth: HCI socket layer initialized
    [    7.226987] Bluetooth: L2CAP socket layer initialized
    [    7.227006] Bluetooth: SCO socket layer initialized
    [    7.428879] SCSI subsystem initialized
    [    7.537592] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [    7.561939] ahci 4a140000.sata: SSS flag set, parallel bus scan disabled
    [    7.561958] ahci 4a140000.sata: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode
    [    7.561964] ahci 4a140000.sata: flags: 64bit ncq sntf stag pm led clo only pmp pio slum part ccc apst 
    [    7.800333] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
    [  OK  ] Started Avahi mDNS/DNS-SD Stack.
    [  OK  ] Started Telephony service.
             Starting Network Service...
    [    8.485717] scsi host0: ahci
    [    8.488867] ata1: SATA max UDMA/133 mmio [mem 0x4a140000-0x4a1410ff] port 0x100 irq 350
    [  OK  ] Started TI MultiCore Tools Daemon.
    [  OK  ] Found device /dev/ttyS2.
    [    8.591425] omap-aes 4b500000.aes: OMAP AES hw accel rev: 3.3
    [    8.635362] omap-aes 4b500000.aes: will run requests pump with realtime priority
    [    8.681719] net eth1: initializing cpsw version 1.15 (0)
    [    8.681725] cpsw 48484000.ethernet: initialized cpsw ale version 1.4
    [    8.681728] cpsw 48484000.ethernet: ALE Table size 1024
    [    8.698054] libphy: PHY 48485000.mdio:02 not found
    [    8.698061] net eth1: phy "48485000.mdio:02" not found on slave 1, err -19
    [    8.742356] cpts ptp bc clkid 0
    [    8.755032] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
    [    8.773759] net eth0: initializing cpsw version 1.15 (0)
    [    8.921077] ata1: SATA link down (SStatus 0 SControl 300)
    [    8.938412] TI DP83822 10/100 Mbps PHY 48485000.mdio:01: attached PHY driver [TI DP83822 10/100 Mbps PHY] (mii_bus:phy_addr=48485000.mdio:01, irq=168)
    [    8.970960] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [  OK  ] Started Network Service.
    [    9.319412] omap-aes 4b700000.aes: OMAP AES hw accel rev: 3.3
    [    9.369785] omap-aes 4b700000.aes: will run requests pump with realtime priority
    [    9.432590] ti-pruss 4b200000.pruss: creating PRU cores and other child platform devices
    [  OK  ] Started Login Service.
    [  OK  ] Reached target Network.
    [    9.525092] remoteproc remoteproc0: 4b234000.pru0 is available
             Starting Simple Network Management Protocol (SNMP) Daemon....
    [    9.576148] pru-rproc 4b234000.pru0: PRU rproc node /ocp/pruss_soc_bus@4b226000/pruss@4b200000/pru@4b234000 probed successfully
    [  OK  ] Started strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf.
             Starting Permit User Sessions...
             Starting Enable and configure wl18xx bluetooth stack...
    [    9.761683] remoteproc remoteproc1: 4b238000.pru1 is available
             Starting Lightning Fast Webserver With Light System Requirements[    9.822198] pru-rproc 4b238000.pru1: PRU rproc node /ocp/pruss_soc_bus@4b226000/pruss@4b200000/pru@4b238000 probed successfully
    ...
             Starting Network Name Resolution...
             Starting Wait for Network to be Configured...
    [  OK  ] Started Permit User Sessions.
    [   10.041015] davinci_mdio 4b232400.mdio: davinci mdio revision 1.6
    [   10.047139] libphy: 4b232400.mdio: probed
    [   10.094241] NET: Registered protocol family 15
    [  OK  ] Started Enable and configure wl18xx bluetooth stack.
    [  OK  ] Started Lightning Fast Webserver With Light System Requirements.
    [  OK  ] Started Network Name Resolution.
    [   10.323291] davinci_mdio 4b232400.mdio: timed out waiting for user access
    [  OK  ] Started Getty on tty1.
    [  OK  ] Started Serial Getty on ttyS2.
    [  OK  ] Reached target Login Prompts.
             Starting Synchronize System and HW clocks...
    [   10.442683] davinci_mdio 4b232400.mdio: timed out waiting for user access
    [   10.518655] random: crng init done
    [FAILED] Failed to start Synchronize System and HW c[   10.577323] omap-sham 4b101000.sham: hw accel on OMAP rev 4.3
    locks.
    See 'systemctl status sync-clocks.service' for details.
    [  OK  ] Started Simple Network Management Protocol (SNMP) Daemon..
    [   10.586661] Initializing XFRM netlink socket
    [  OK  ] Started uim-sysfs.service.
             Starting rc.pvr.service...
    [   10.801936] omap-rproc 58820000.ipu: assigned reserved memory node ipu1_cma@9d000000
    [   10.809804] remoteproc remoteproc2: 58820000.ipu is available
    [   10.958938] [drm] Initialized pvr 1.14.3699939 20110701 on minor 0
    [   11.015156] ti-pruss 4b280000.pruss: creating PRU cores and other child platform devices
    [   11.111540] PVR_K: UM DDK-(3699939) and KM DDK-(3699939) match. [ OK ]
    [   11.125124] remoteproc remoteproc3: 4b2b4000.pru0 is available
    [   11.125168] pru-rproc 4b2b4000.pru0: PRU rproc node /ocp/pruss_soc_bus@4b2a6000/pruss@4b280000/pru@4b2b4000 probed successfully
    [   11.125794] remoteproc remoteproc4: 4b2b8000.pru1 is available
    [   11.125828] pru-rproc 4b2b8000.pru1: PRU rproc node /ocp/pruss_soc_bus@4b2a6000/pruss@4b280000/pru@4b2b8000 probed successfully
    [   11.126498] remoteproc remoteproc2: powering up 58820000.ipu
    [   11.126506] remoteproc remoteproc2: Booting fw image dra7-ipu1-fw.xem4, size 4699456
    [   11.126607] omap-iommu 58882000.mmu: 58882000.mmu: version 2.1
    [   11.182716] davinci_mdio 4b2b2400.mdio: davinci mdio revision 1.6
    [   11.182720] libphy: 4b2b2400.mdio: probed
    [   11.229345] prueth pruss2_eth: pruss MC Mask 0:0:0:0:0:0
    [   11.229583] prueth pruss2_eth: port 1: using random MAC addr: ce:0a:b1:1a:b5:f8
    [   11.241136] virtio_rpmsg_bus virtio0: rpmsg host is online
    [   11.241152] remoteproc remoteproc2: registered virtio0 (type 7)
    [   11.241156] remoteproc remoteproc2: remote processor 58820000.ipu is now up
    [   11.254342] davinci_mdio 4b2b2400.mdio: phy[0]: device 4b2b2400.mdio:00, driver TI TLK10X 10/100 Mbps PHY
    [   11.254347] davinci_mdio 4b2b2400.mdio: phy[1]: device 4b2b2400.mdio:01, driver TI TLK10X 10/100 Mbps PHY
    [   11.255203] omap-rproc 55020000.ipu: assigned reserved memory node ipu2_cma@95800000
    [   11.255279] remoteproc remoteproc5: 55020000.ipu is available
    ***************************************************************
    ***************************************************************
    NOTICE: This file system contains the following GPLv3 packages:
            autoconf
            binutils-dev
            binutils
            bison-dev
            bison
            cifs-utils
            cpio
            cpp-symlinks
            cpp
            dosfstools
            findutils
            g++-symlinks
            g++
            gawk-dev
            gawk
            gcc-symlinks
            gcc
            gdb
            gdbc6x
            gdbserver
            glmark2
            gstreamer1.0-libav
            gzip
            hidapi
            libcairo-perf-utils
            libgmp10
            libidn11
            libmavconn
            l[   11.546619] prueth pruss2_eth: pruss MC Mask 0:0:0:0:0:0
    ibmpc3
            libmpfr4
            libreadline-dev
            libreadline6
            m4-dev
            m4
            make
            mavlink
            mavros-extras
            mavros-msgs
            mavros
            nettle
            parted
            socketcan-interface
            swig-dev
            swig
            which
    
    If you do not wish to distribute GPLv3 components please remove
    the above packages prior to distribution.  This can be done using
    the opkg remove command.  i.e.:
        opkg remove <package>
    Where <package> is the name printed in the list above
    
    NOTE: If the package is a dependency of another package you
          will be notified of the dependent packages.  You should
          use the --force-removal-of-dependent-packages option to
          also rem[   11.546805] prueth pruss2_eth: port 1: using random MAC addr: ce:6a:be:09:0c:51
    ove the dependent packages as well
    ***************************************************************
    ***************************************************************
    [   11.546960] virtio_rpmsg_bus virtio0: creating channel rpmsg-client-sample addr 0x32
    [   11.547084] virtio_rpmsg_bus virtio0: creating channel rpmsg-client-sample addr 0x33
    [   11.547168] virtio_rpmsg_bus virtio0: creating channel rpmsg-omx addr 0x3c
    [   11.547252] virtio_rpmsg_bus virtio0: creating channel rpmsg-rpc addr 0x65
    [   11.624714] remoteproc remoteproc5: powering up 55020000.ipu
    [   11.624724] remoteproc remoteproc5: Booting fw image dra7-ipu2-fw.xem4, size 3738980
    [   11.624796] omap-iommu 55082000.mmu: 55082000.mmu: version 2.1
    [   11.642645] prueth pruss2_eth: port 2: using random MAC addr: da:7b:5c:ee:45:44
    [   11.742102] prueth pruss2_eth: request for sync latch pins failed: -19
    [   11.744385] prueth pruss2_eth: TI PRU ethernet (type 0) driver initialized
    [   12.185864] virtio_rpmsg_bus virtio1: rpmsg host is online
    [   12.185888] remoteproc remoteproc5: registered virtio1 (type 7)
    [   12.185893] remoteproc remoteproc5: remote processor 55020000.ipu is now up
    [   12.388387] virtio_rpmsg_bus virtio1: creating channel rpmsg-rpc addr 0x65
    [   12.388515] virtio_rpmsg_bus virtio1: creating channel rpmsg-rpc addr 0x66
    [   12.988463] rpmsg_rpc virtio0.rpmsg-rpc.-1.101: probing service rpc_example_2 with src 1024 dst 101
    [   12.988649] rpmsg_rpc virtio1.rpmsg-rpc.-1.101: probing service dce-callback with src 1024 dst 101
    [   12.988787] rpmsg_rpc virtio1.rpmsg-rpc.-1.102: probing service rpmsg-dce with src 1025 dst 102
    [   13.051579] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
    [   13.051598] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
    [   13.112747] rpmsg_rpc virtio0.rpmsg-rpc.-1.101: published functions = 8
    [   13.112778] rpmsg_rpc virtio1.rpmsg-rpc.-1.101: published functions = 4
    [   13.112796] rpmsg_rpc virtio1.rpmsg-rpc.-1.102: published functions = 9
    [   13.113118] xhci-hcd xhci-hcd.0.auto: hcc params 0x0220f04c hci version 0x100 quirks 0x02010010
    [   13.113166] xhci-hcd xhci-hcd.0.auto: irq 435, io mem 0x48890000
    [   13.114202] hub 1-0:1.0: USB hub found
    [   13.114418] hub 1-0:1.0: 1 port detected
    [   13.114665] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
    [   13.114677] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
    [   13.114733] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
    [   13.115206] hub 2-0:1.0: USB hub found
    [   13.115227] hub 2-0:1.0: 1 port detected
    [   13.116005] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
    [   13.116022] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 3
    [   13.116231] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220f04c hci version 0x100 quirks 0x02010010
    [   13.116261] xhci-hcd xhci-hcd.1.auto: irq 436, io mem 0x488d0000
    [   13.117231] hub 3-0:1.0: USB hub found
    [   13.117255] hub 3-0:1.0: 1 port detected
    [   13.117480] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
    [   13.117490] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 4
    [   13.117541] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
    [   13.118492] remoteproc remoteproc4: powering up 4b2b8000.pru1
    [   13.119037] hub 4-0:1.0: USB hub found
    [   13.119061] hub 4-0:1.0: 1 port detected
    [   13.120137] remoteproc remoteproc4: Booting fw image ti-pruss/am57xx-pru1-prueth-fw.elf, size 5060
    [   13.120250] ti-pruss 4b280000.pruss: configured system_events = 0x0060000000a00000 intr_channels = 0x0000012a host_intr = 0x0000022a
    [   13.120255] remoteproc remoteproc4: remote processor 4b2b8000.pru1 is now up
    [   13.120273] net eth3: started
    [   13.121623] IPv6: ADDRCONF(NETDEV_UP): eth3: link is not ready
    [   13.151090] remoteproc remoteproc3: powering up 4b2b4000.pru0
    [   13.151902] remoteproc remoteproc3: Booting fw image ti-pruss/am57xx-pru0-prueth-fw.elf, size 5028
    [   13.152017] ti-pruss 4b280000.pruss: configured system_events = 0x0000060000500000 intr_channels = 0x00000095 host_intr = 0x00000115
    [   13.152022] remoteproc remoteproc3: remote processor 4b2b4000.pru0 is now up
    [   13.152041] net eth2: started
    [   13.153195] IPv6: ADDRCONF(NETDEV_UP): eth2: link is not ready
    [  OK  ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
    [  OK  ] Started Print notice about GPLv3 packages.
    [  OK  ] Started rc.pvr.service.
             Starting weston.service...
    [  OK  ] Started weston.service.
             Starting tiipclad-daemon.service...
             Starting telnetd.service...
    [  OK  ] Started tiipclad-daemon.service.
    [  OK  ] Started telnetd.service.
             Starting thttpd.service...
    [  OK  ] Started thttpd.service.
             Starting rng-tools.service...
    [  OK  ] Started rng-tools.service.
    
     _____                    _____           _         _   
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
                  |___|                    |___|            
    
    Arago Project http://arago-project.org am57xx-evm ttyS2
    
    Arago 2017.12 am57xx-evm ttyS2
    
    am57xx-evm login: root (automatic login)
    
    root@am57xx-evm:~# 
  • Hi Jiabin,

    Sorry for the late reply, I was OoO on travel.
    I will share feedback early next week.

    Thank you,
    Evan

  • Hi Evan,

           Thank you for your reply.

    I am looking forward to your reply.

  • Hi Jiabin,

    1.Because in the development of optical modules, this unique optical port network device is connected to the other end through a switch's regular electrical port, displaying 100Mbps full duplex.

    The communication is working as expected when viewing status from the link partner?

    2.I don't know how to get PHY register dump. Is it in the startup log? The attachment is the startup log.

    It is not in startup log - please see this FAQ for guide on register access:

    https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1164499/faq-how-to-read-and-write-ethernet-phy-registers-using-a-linux-terminal?tisearch=e2e-sitesearch&keymatch=how%20to%20access%20registers%20using%20linux#

    Thank you,
    Evan

  • Hi Evan,

           Thank you for your reply.

    1.Because my computer's Ethernet is an electrical port and the board is an optical port, I tested the communication using a switch. All my computer looks normal, and the communication performance can reach 93Mbps when tested with iperf. It seems normal, but I don't know if the iperf testing mechanism is consistent with normal practicality.


    2. Please refer to the attachment for the phy register dump of the board.

    root@am57xx-evm:~# ifconfig
    eth0      Link encap:Ethernet  HWaddr 64:8C:BB:5B:F6:3E  
              UP BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
              Interrupt:98 
    
    eth1      Link encap:Ethernet  HWaddr 64:8C:BB:5B:F6:3F  
              UP BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1%763860/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:1600 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1600 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1 
              RX bytes:121600 (118.7 KiB)  TX bytes:121600 (118.7 KiB)
    
    root@am57xx-evm:~# eth[  364.857674] cpsw 48484000.ethernet eth0: Link is Down
    [  365.135124] cpsw 48484000.ethernet eth0: Link is Up - 10Mbps/Half - flow control off
    [  365.142933] cpsw 48484000.ethernet eth0: Link is Up - 10Mbps/Half - flow control off
    [  365.153326] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    [  365.171624] cpsw 48484000.ethernet eth0: Link is Down
    [  365.176707] cpsw 48484000.ethernet eth0: Link is Down
    [  365.380119] cpsw 48484000.ethernet eth0: Link is Up - 10Mbps/Half - flow control off
    [  365.387923] cpsw 48484000.ethernet eth0: Link is Up - 10Mbps/Half - flow control off
    [  373.803325] cpsw 48484000.ethernet eth0: Link is Down
    [  373.808409] cpsw 48484000.ethernet eth0: Link is Down
    [  374.416861] cpsw 48484000.ethernet eth0: Link is Up - 10Mbps/Half - flow control off
    [  374.424669] cpsw 48484000.ethernet eth0: Link is Up - 10Mbps/Half - flow control off
    
    -sh: eth: command not found
    root@am57xx-evm:~# 
    root@am57xx-evm:~# 
    root@am57xx-evm:~# 
    root@am57xx-evm:~# 
    root@am57xx-evm:~# 
    root@am57xx-evm:~# 
    root@am57xx-evm:~# ethtool eth0
    Settings for eth0:
            Supported ports: [ TP MII ]
            Supported link modes:   10baseT/Half 10baseT/Full 
                                    100baseT/Half 100baseT/Full 
            Supported pause frame use: No
            Supports auto-negotiation: Yes
            Advertised link modes:  10baseT/Half 10baseT/Full 
                                    100baseT/Half 100baseT/Full 
            Advertised pause frame use: No
            Advertised auto-negotiation: Yes
            Speed: 10Mb/s
            Duplex: Half
            Port: MII
            PHYAD: 1
            Transceiver: external
            Auto-negotiation: on
            Supports Wake-on: d
            Wake-on: d
            Current message level: 0x00000000 (0)
                                   
            Link detected: yes
    root@am57xx-evm:~# cd mytest/
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0000
    read phy addr: 0x1  reg: 0x0  value : 0x3100
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0001
    read phy addr: 0x1  reg: 0x1  value : 0x784d
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0002
    read phy addr: 0x1  reg: 0x2  value : 0x2000
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0003
    read phy addr: 0x1  reg: 0x3  value : 0xa240
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0004
    read phy addr: 0x1  reg: 0x4  value : 0x1e1
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0005
    read phy addr: 0x1  reg: 0x5  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0006
    read phy addr: 0x1  reg: 0x6  value : 0x4
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0007
    read phy addr: 0x1  reg: 0x7  value : 0x2001
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0008
    read phy addr: 0x1  reg: 0x8  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0009
    read phy addr: 0x1  reg: 0x9  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000a
    read phy addr: 0x1  reg: 0xa  value : 0x4100
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000b
    read phy addr: 0x1  reg: 0xb  value : 0x1000
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000c
    read phy addr: 0x1  reg: 0xc  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d
    read phy addr: 0x1  reg: 0xd  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000f
    read phy addr: 0x1  reg: 0xf  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0010
    read phy addr: 0x1  reg: 0x10  value : 0x885
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0011
    read phy addr: 0x1  reg: 0x11  value : 0x10b
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0012
    read phy addr: 0x1  reg: 0x12  value : 0xa23c
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0013
    read phy addr: 0x1  reg: 0x13  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0014
    read phy addr: 0x1  reg: 0x14  value : 0xff
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0015
    read phy addr: 0x1  reg: 0x15  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0016
    read phy addr: 0x1  reg: 0x16  value : 0x100
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0017
    read phy addr: 0x1  reg: 0x17  value : 0x249
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0018
    read phy addr: 0x1  reg: 0x18  value : 0x400
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x0019
    read phy addr: 0x1  reg: 0x19  value : 0x8021
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x001a
    read phy addr: 0x1  reg: 0x1a  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x001b
    read phy addr: 0x1  reg: 0x1b  value : 0x7d
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x001c
    read phy addr: 0x1  reg: 0x1c  value : 0x5ee
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x001d
    read phy addr: 0x1  reg: 0x1d  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x001e
    read phy addr: 0x1  reg: 0x1e  value : 0x2
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x001f
    read phy addr: 0x1  reg: 0x1f  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0025
    write phy addr: 0x1  reg: 0xe  value : 0x25
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e       
    read phy addr: 0x1  reg: 0xe  value : 0x200
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0027
    write phy addr: 0x1  reg: 0xe  value : 0x27
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x003e
    write phy addr: 0x1  reg: 0xe  value : 0x3e
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x003f
    write phy addr: 0x1  reg: 0xe  value : 0x3f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0xb4ff
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0040
    write phy addr: 0x1  reg: 0xe  value : 0x40
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0xc11d
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0042
    write phy addr: 0x1  reg: 0xe  value : 0x42
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0101
    write phy addr: 0x1  reg: 0xe  value : 0x101
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x2002
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0106
    write phy addr: 0x1  reg: 0xe  value : 0x106
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0xb0bb
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0107
    write phy addr: 0x1  reg: 0xe  value : 0x107
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x605
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x010f
    write phy addr: 0x1  reg: 0xe  value : 0x10f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x300
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0111
    write phy addr: 0x1  reg: 0xe  value : 0x111
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x6003
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0114
    write phy addr: 0x1  reg: 0xe  value : 0x114
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x400a
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0121
    write phy addr: 0x1  reg: 0xe  value : 0x121
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x199a
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0116
    write phy addr: 0x1  reg: 0xe  value : 0x116
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x14a
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0122
    write phy addr: 0x1  reg: 0xe  value : 0x122
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x1027
    
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0042
    write phy addr: 0x1  reg: 0xe  value : 0x42
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0101
    write phy addr: 0x1  reg: 0xe  value : 0x101
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x2002
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0106
    write phy addr: 0x1  reg: 0xe  value : 0x106
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0xb0bb
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0107
    write phy addr: 0x1  reg: 0xe  value : 0x107
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x605
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x010f
    write phy addr: 0x1  reg: 0xe  value : 0x10f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x300
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0111
    write phy addr: 0x1  reg: 0xe  value : 0x111
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x6003
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0114
    write phy addr: 0x1  reg: 0xe  value : 0x114
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x400a
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0121
    write phy addr: 0x1  reg: 0xe  value : 0x121
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x199a
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0116
    write phy addr: 0x1  reg: 0xe  value : 0x116
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x14a
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0122
    write phy addr: 0x1  reg: 0xe  value : 0x122
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x1027
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0123
    write phy addr: 0x1  reg: 0xe  value : 0x123
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x51c
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0126
    write phy addr: 0x1  reg: 0xe  value : 0x126
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x461b
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0129
    write phy addr: 0x1  reg: 0xe  value : 0x129
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0xf
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0130
    write phy addr: 0x1  reg: 0xe  value : 0x130
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x4750
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0155
    write phy addr: 0x1  reg: 0xe  value : 0x155
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x1
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0170
    write phy addr: 0x1  reg: 0xe  value : 0x170
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0xe52
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0171
    write phy addr: 0x1  reg: 0xe  value : 0x171
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0xc85c
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0173
    write phy addr: 0x1  reg: 0xe  value : 0x173
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0xff1e
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0177
    write phy addr: 0x1  reg: 0xe  value : 0x177
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x189b
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0180
    write phy addr: 0x1  reg: 0xe  value : 0x180
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0181
    write phy addr: 0x1  reg: 0xe  value : 0x181
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0182
    write phy addr: 0x1  reg: 0xe  value : 0x182
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0183
    write phy addr: 0x1  reg: 0xe  value : 0x183
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0184
    write phy addr: 0x1  reg: 0xe  value : 0x184
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0185
    write phy addr: 0x1  reg: 0xe  value : 0x185
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0186
    write phy addr: 0x1  reg: 0xe  value : 0x186
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0187
    write phy addr: 0x1  reg: 0xe  value : 0x187
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0188
    write phy addr: 0x1  reg: 0xe  value : 0x188
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0189
    write phy addr: 0x1  reg: 0xe  value : 0x189
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x018a
    write phy addr: 0x1  reg: 0xe  value : 0x18a
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x021d
    write phy addr: 0x1  reg: 0xe  value : 0x21d
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x600
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0403
    write phy addr: 0x1  reg: 0xe  value : 0x403
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x9fcf
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0404
    write phy addr: 0x1  reg: 0xe  value : 0x404
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x20
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x040d
    write phy addr: 0x1  reg: 0xe  value : 0x40d
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x8
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0410
    write phy addr: 0x1  reg: 0xe  value : 0x410
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x2000
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0416
    write phy addr: 0x1  reg: 0xe  value : 0x416
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x870
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0418
    write phy addr: 0x1  reg: 0xe  value : 0x418
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x041f
    write phy addr: 0x1  reg: 0xe  value : 0x41f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0421
    write phy addr: 0x1  reg: 0xe  value : 0x421
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x7
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0428
    write phy addr: 0x1  reg: 0xe  value : 0x428
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0450
    write phy addr: 0x1  reg: 0xe  value : 0x450
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0xf41
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0456
    write phy addr: 0x1  reg: 0xe  value : 0x456
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x8
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0460
    write phy addr: 0x1  reg: 0xe  value : 0x460
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x551
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0461
    write phy addr: 0x1  reg: 0xe  value : 0x461
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x410
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0462
    write phy addr: 0x1  reg: 0xe  value : 0x462
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x1
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0463
    write phy addr: 0x1  reg: 0xe  value : 0x463
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0465
    write phy addr: 0x1  reg: 0xe  value : 0x465
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0xff00
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0468
    write phy addr: 0x1  reg: 0xe  value : 0x468
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x0469
    write phy addr: 0x1  reg: 0xe  value : 0x469
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x440
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04a0
    write phy addr: 0x1  reg: 0xe  value : 0x4a0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x1000
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04a1
    write phy addr: 0x1  reg: 0xe  value : 0x4a1
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04a2
    write phy addr: 0x1  reg: 0xe  value : 0x4a2
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04a3
    write phy addr: 0x1  reg: 0xe  value : 0x4a3
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04a4
    write phy addr: 0x1  reg: 0xe  value : 0x4a4
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04a5
    write phy addr: 0x1  reg: 0xe  value : 0x4a5
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04a6
    write phy addr: 0x1  reg: 0xe  value : 0x4a6
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04a7
    write phy addr: 0x1  reg: 0xe  value : 0x4a7
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04a8
    write phy addr: 0x1  reg: 0xe  value : 0x4a8
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04a9
    write phy addr: 0x1  reg: 0xe  value : 0x4a9
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04aa
    write phy addr: 0x1  reg: 0xe  value : 0x4aa
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04ab
    write phy addr: 0x1  reg: 0xe  value : 0x4ab
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04ac
    write phy addr: 0x1  reg: 0xe  value : 0x4ac
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04ad
    write phy addr: 0x1  reg: 0xe  value : 0x4ad
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04ae
    write phy addr: 0x1  reg: 0xe  value : 0x4ae
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04af
    write phy addr: 0x1  reg: 0xe  value : 0x4af
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04b0
    write phy addr: 0x1  reg: 0xe  value : 0x4b0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04b1
    write phy addr: 0x1  reg: 0xe  value : 0x4b1
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04b2
    write phy addr: 0x1  reg: 0xe  value : 0x4b2
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04b3
    write phy addr: 0x1  reg: 0xe  value : 0x4b3
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04b4
    write phy addr: 0x1  reg: 0xe  value : 0x4b4
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04b5
    write phy addr: 0x1  reg: 0xe  value : 0x4b5
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04b6
    write phy addr: 0x1  reg: 0xe  value : 0x4b6
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04b7
    write phy addr: 0x1  reg: 0xe  value : 0x4b7
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04b8
    write phy addr: 0x1  reg: 0xe  value : 0x4b8
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04b9
    write phy addr: 0x1  reg: 0xe  value : 0x4b9
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04ba
    write phy addr: 0x1  reg: 0xe  value : 0x4ba
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04bb
    write phy addr: 0x1  reg: 0xe  value : 0x4bb
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04bc
    write phy addr: 0x1  reg: 0xe  value : 0x4bc
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04bd
    write phy addr: 0x1  reg: 0xe  value : 0x4bd
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04be
    write phy addr: 0x1  reg: 0xe  value : 0x4be
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04bf
    write phy addr: 0x1  reg: 0xe  value : 0x4bf
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04c0
    write phy addr: 0x1  reg: 0xe  value : 0x4c0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04c1
    write phy addr: 0x1  reg: 0xe  value : 0x4c1
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04c2
    write phy addr: 0x1  reg: 0xe  value : 0x4c2
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04c3
    write phy addr: 0x1  reg: 0xe  value : 0x4c3
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04c4
    write phy addr: 0x1  reg: 0xe  value : 0x4c4
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04c5
    write phy addr: 0x1  reg: 0xe  value : 0x4c5
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04c6
    write phy addr: 0x1  reg: 0xe  value : 0x4c6
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04c7
    write phy addr: 0x1  reg: 0xe  value : 0x4c7
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04c8
    write phy addr: 0x1  reg: 0xe  value : 0x4c8
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04c9
    write phy addr: 0x1  reg: 0xe  value : 0x4c9
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04ca
    write phy addr: 0x1  reg: 0xe  value : 0x4ca
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04cb
    write phy addr: 0x1  reg: 0xe  value : 0x4cb
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04cc
    write phy addr: 0x1  reg: 0xe  value : 0x4cc
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0xc
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04d0
    write phy addr: 0x1  reg: 0xe  value : 0x4d0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x302
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04d1
    write phy addr: 0x1  reg: 0xe  value : 0x4d1
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x18b
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04d4
    write phy addr: 0x1  reg: 0xe  value : 0x4d4
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x7220
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04d5
    write phy addr: 0x1  reg: 0xe  value : 0x4d5
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0xfbc1
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x04d6
    write phy addr: 0x1  reg: 0xe  value : 0x4d6
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x1c1
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x3000
    write phy addr: 0x1  reg: 0xe  value : 0x3000
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x3100
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x3001
    write phy addr: 0x1  reg: 0xe  value : 0x3001
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x784d
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x3014
    write phy addr: 0x1  reg: 0xe  value : 0x3014
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x3016
    write phy addr: 0x1  reg: 0xe  value : 0x3016
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x100
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x703c
    write phy addr: 0x1  reg: 0xe  value : 0x703c
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x001f
    write phy addr: 0x1  reg: 0xd  value : 0x1f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e 0x703d
    write phy addr: 0x1  reg: 0xe  value : 0x703d
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000d 0x401f
    write phy addr: 0x1  reg: 0xd  value : 0x401f
    
    root@am57xx-evm:~/mytest# ./ethnetphy_t0 eth0 0x000e
    read phy addr: 0x1  reg: 0xe  value : 0x0
    
    
    

    Because the board is for optical communication, I expect to directly fix Ethernet to 100Mbps full duplex working mode through drivers.

    Thank you,

    Jiabin

  • Hi Jiabin,

    If iperf and ping test are passing without issue, the PHY configuration and link are valid.

    My understanding of remaining issues:

    1) Ethtool does not report correct status of PHY. This will not affect functional test, but is only useful as a status check for debug. Please let me know if this is a system requirement, as it will take additional time to implement in driver.

    2) PHY requires straps rather than DTS -> driver configuration to enter fiber mode. Is strap configuration acceptable? If not, I can look to integrate into driver depending on priority.

    Thank you,
    Evan

  • Hi Evan,

           Thank you for your reply.

    1.Correctly reportinging the status of PHY is a system requirement, and I hope you can  help implement it.

    Thank you again.

  • Understood. Please expect an updated driver over email next week.

    Thank you,
    Evan

  • Hi Evan,

          I have sent you an email inquiring about the progress of changing dp83822,and you will reply to me, will you?

    Jiabin

  • Hi Jiabin,

    Please expect my response soon.

    Thank you,
    Evan

  • Please expect my response soon.

    Hi Evan,

          Thank you for your reply.

          You can reply here or reply to my email. Thank you again.

    Jiabin