This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM4376: Unable to ping from U-boot

Part Number: AM4376
Other Parts Discussed in Thread: TPS65218

Hi

I have am4376 custom board with

linux-4.4.41+gitAUTOINC+f9f6f0db2d-gf9f6f0db2d

u-boot-2016.05+gitAUTOINC+4db46a6bbd-g4db46a6bbd

using gmii as interface.

Made the below changes to device tree in u-boot.

but unable to ping

DEVICE TREE:

===========

&mac {
    slaves = <1>;
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&cpsw_default>;
    pinctrl-1 = <&cpsw_sleep>;
    status = "okay";
};

&davinci_mdio {
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&davinci_mdio_default>;
    pinctrl-1 = <&davinci_mdio_sleep>;
    status = "okay";
};

&cpsw_emac0 {
    phy_id = <&davinci_mdio>, <2>;
    phy-mode = "gmii";
};

&cpsw_emac1 {
  phy_id = <&davinci_mdio>, <3>;
    phy-mode = "gmii";
};

cpsw_default: cpsw_default {
        pinctrl-single,pins = <
         /* Slave 1 */
        0x108 ( PIN_INPUT | MUX_MODE0 ) /* (D16) mii1_col.gmii1_col */
        0x10c ( PIN_INPUT | MUX_MODE0 ) /* (B14) mii1_crs.gmii1_crs */
        0x110 ( PIN_INPUT | MUX_MODE0 ) /* (B13) mii1_rx_er.gmii1_rxer */
        0x114 ( PIN_OUTPUT | MUX_MODE0 ) /* (A13) mii1_tx_en.gmii1_txen */
        0x118 ( PIN_INPUT | MUX_MODE0 ) /* (A15) mii1_rx_dv.gmii1_rxdv */
        0x12c ( PIN_INPUT | MUX_MODE0 ) /* (D14) mii1_tx_clk.gmii1_txclk */
        0x130 ( PIN_INPUT | MUX_MODE0 ) /* (D13) mii1_rx_clk.gmii1_rxclk */
        0x128 ( PIN_OUTPUT | MUX_MODE0 ) /* (B15) mii1_txd0.gmii1_txd0 */
        0x124 ( PIN_OUTPUT | MUX_MODE0 ) /* (A14) mii1_txd1.gmii1_txd1 */
        0x120 ( PIN_OUTPUT | MUX_MODE0 ) /* (C13) mii1_txd2.gmii1_txd2 */
        0x11c ( PIN_OUTPUT | MUX_MODE0 ) /* (C16) mii1_txd3.gmii1_txd3 */
        0x140 ( PIN_INPUT | MUX_MODE0 ) /* (F17) mii1_rxd0.gmii1_rxd0 */
        0x13c ( PIN_INPUT | MUX_MODE0 ) /* (B16) mii1_rxd1.gmii1_rxd1 */
        0x138 ( PIN_INPUT | MUX_MODE0 ) /* (E16) mii1_rxd2.gmii1_rxd2 */
        0x134 ( PIN_INPUT | MUX_MODE0 ) /* (C14) mii1 */

        /* Slave 2*/
        0x78 ( PIN_INPUT | MUX_MODE1 ) /* (A3) gpmc_be1n.gmii2_col */
        0x84 ( PIN_INPUT | MUX_MODE8 ) /* (F10) gpmc_csn2.gmii2_crs */
        0x74 ( PIN_INPUT | MUX_MODE1 ) /* (B3) gpmc_wpn.gmii2_rxer */
        0x40 ( PIN_OUTPUT | MUX_MODE1 ) /* (C3) gpmc_a0.gmii2_txen */
        0x44 ( PIN_INPUT | MUX_MODE1 ) /* (C5) gpmc_a1.gmii2_rxdv */
        0x58 ( PIN_INPUT | MUX_MODE1 ) /* (E8) gpmc_a6.gmii2_txclk */
        0x5c ( PIN_INPUT | MUX_MODE1 ) /* (F6) gpmc_a7.gmii2_rxclk */
        0x54 ( PIN_OUTPUT | MUX_MODE1 ) /* (E7) gpmc_a5.gmii2_txd0 */
        0x50 ( PIN_OUTPUT | MUX_MODE1 ) /* (D7) gpmc_a4.gmii2_txd1 */
        0x4c ( PIN_OUTPUT | MUX_MODE1 ) /* (A4) gpmc_a3.gmii2_txd2 */
        0x48 ( PIN_OUTPUT | MUX_MODE1 ) /* (C6) gpmc_a2.gmii2_txd3 */
        0x6c ( PIN_INPUT | MUX_MODE1 ) /* (D8) gpmc_a11.gmii2_rxd0 */
        0x68 ( PIN_INPUT | MUX_MODE1 ) /* (G8) gpmc_a10.gmii2_rxd1 */
        0x64 ( PIN_INPUT | MUX_MODE1 ) /* (B4) gpmc_a9.gmii2_rxd2 */
        0x60 ( PIN_INPUT | MUX_MODE1 ) /* (F7) gpmc_a8.gmii2_rxd3 */
    >;

};

LOG :

=====

U-Boot SPL 2016.05-00319-g71499d6-dirty (Jun 29 2017 - 17:55:37)
Trying to boot from MMC1
SPL: Please implement spl_start_uboot() for your board
SPL: Direct Linux boot not active!
reading u-boot.img
reading u-boot.img
reading u-boot.img
No matching DT out of these options:
   am437x-gp-evm
   am437x-sk-evm
   am43x-epos-evm
   am437x-idk-evm
SPL: Please implement spl_start_uboot() for your board
SPL: Direct Linux boot not active!
Failed to mount ext2 filesystem...
spl_load_image_ext: ext4fs mount err - 0


U-Boot 2016.05-00319-g71499d6-dirty (Jun 29 2017 - 17:55:37 +0530)

CPU  : AM437X-GP rev 2.1
Model: TI AM437x GP EVM
DRAM:  512 MiB
PMIC:  TPS65218
MMC:   OMAP SD/MMC: 0
reading uboot.env

** Unable to read "uboot.env" from mmc0:1 **
Using default environment

Net:   
Warning: ethernet@4a100000 using MAC address from ROM
eth0: ethernet@4a100000
Hit any key to stop autoboot:  0
=>
=>
=>
=>
=> setenv ipaddr 192.168.1.68
=> ping 192.168.1.1
link up on port 0, speed 100, full duplex
Using ethernet@4a100000 device

ARP Retry count exceeded; starting again
ping failed; host 192.168.1.1 is not alive
=> mii info
PHY 0x02: OUI = 0x80017, Model = 0x0A, Rev = 0x02, 100baseT, FDX
PHY 0x03: OUI = 0x80017, Model = 0x0A, Rev = 0x02, 100baseT, FDX
=> mii info 2
PHY 0x02: OUI = 0x80017, Model = 0x0A, Rev = 0x02, 100baseT, FDX
=> mii
mii - MII utility commands

Usage:
mii device                            - list available devices
mii device <devname>                  - set current device
mii info   <addr>                     - display MII PHY info
mii read   <addr> <reg>               - read  MII PHY <addr> register <reg>
mii write  <addr> <reg> <data>        - write MII PHY <addr> register <reg>
mii modify <addr> <reg> <data> <mask> - modify MII PHY <addr> register <reg>
                                        updating bits identified in <mask>
mii dump   <addr> <reg>               - pretty-print <addr> <reg> (0-5 only)
Addr and/or reg may be ranges, e.g. 2-7.
=> mii device 2
No such device: 2
=> mii device
MII devices: 'ethernet@4a100000'
Current device: 'ethernet@4a100000'
=> mii dump
0.     (3100)                 -- PHY control register --
  (8000:0000) 0.15    =     0    reset
  (4000:0000) 0.14    =     0    loopback
  (2040:2000) 0. 6,13 =   b01    speed selection = 100 Mbps
  (1000:1000) 0.12    =     1    A/N enable
  (0800:0000) 0.11    =     0    power-down
  (0400:0000) 0.10    =     0    isolate
  (0200:0000) 0. 9    =     0    restart A/N
  (0100:0100) 0. 8    =     1    duplex = full
  (0080:0000) 0. 7    =     0    collision test enable
  (003f:0000) 0. 5- 0 =     0    (reserved)


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


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


=> mii dump 0
Error reading from the PHY addr=00 reg=00

=> mii dump 1
Error reading from the PHY addr=01 reg=00

please help to resolve the issue.

Thanks in advance

  • The software team have been notified. They will respond here.
  • Part Number: am4376

    Hi

    I have am4376 based custom board with gmii interface, able to send packets but not receiving any packets.

    could you please check my changes  and please tell me am I missing anything

    static struct module_pin_mux gmii1_pin_mux[] = {
        {OFFSET(mii1_txen), MODE(0)},           
        {OFFSET(mii1_rxdv), MODE(0) | RXACTIVE},    
        {OFFSET(mii1_txd3), MODE(0)},           
        {OFFSET(mii1_txd2), MODE(0)},           
        {OFFSET(mii1_txd1), MODE(0)},           
        {OFFSET(mii1_txd0), MODE(0)},           
        {OFFSET(mii1_txclk), MODE(0)},          
        {OFFSET(mii1_rxclk), MODE(0) | RXACTIVE},   
        {OFFSET(mii1_rxd3), MODE(0) | RXACTIVE},    
        {OFFSET(mii1_rxd2), MODE(0) | RXACTIVE},    
        {OFFSET(mii1_rxd1), MODE(0) | RXACTIVE},    
        {OFFSET(mii1_rxd0), MODE(0) | RXACTIVE},    
        {-1},
    };


    configure_module_pin_mux(gmii1_pin_mux);


    davinci_mdio_default: davinci_mdio_default {
            pinctrl-single,pins = <
                /* MDIO */
                0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)    /* mdio_data.mdio_data */
                0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0)           /* mdio_clk.mdio_clk */
            >;
        };

        davinci_mdio_sleep: davinci_mdio_sleep {
            pinctrl-single,pins = <
                /* MDIO reset value */
                0x148 (PIN_INPUT | PULL_DISABLE | MUX_MODE7)
                0x14c (PIN_INPUT | PULL_DISABLE | MUX_MODE7)
            >;
        };

     cpsw_default: cpsw_default {
            pinctrl-single,pins = <
             /* Slave 1 */
            0x108 ( PIN_INPUT | MUX_MODE0 ) /* (D16) mii1_col.gmii1_col */
            0x10c ( PIN_INPUT | MUX_MODE0 ) /* (B14) mii1_crs.gmii1_crs */
            0x110 ( PIN_INPUT | MUX_MODE0 ) /* (B13) mii1_rx_er.gmii1_rxer */
            0x114 ( PIN_OUTPUT | MUX_MODE0 ) /* (A13) mii1_tx_en.gmii1_txen */
            0x118 ( PIN_INPUT | MUX_MODE0 ) /* (A15) mii1_rx_dv.gmii1_rxdv */
            0x12c ( PIN_INPUT | MUX_MODE0 ) /* (D14) mii1_tx_clk.gmii1_txclk */
            0x130 ( PIN_INPUT | MUX_MODE0 ) /* (D13) mii1_rx_clk.gmii1_rxclk */
            0x128 ( PIN_OUTPUT | MUX_MODE0 ) /* (B15) mii1_txd0.gmii1_txd0 */
            0x124 ( PIN_OUTPUT | MUX_MODE0 ) /* (A14) mii1_txd1.gmii1_txd1 */
            0x120 ( PIN_OUTPUT | MUX_MODE0 ) /* (C13) mii1_txd2.gmii1_txd2 */
            0x11c ( PIN_OUTPUT | MUX_MODE0 ) /* (C16) mii1_txd3.gmii1_txd3 */
            0x140 ( PIN_INPUT | MUX_MODE0 ) /* (F17) mii1_rxd0.gmii1_rxd0 */
            0x13c ( PIN_INPUT | MUX_MODE0 ) /* (B16) mii1_rxd1.gmii1_rxd1 */
            0x138 ( PIN_INPUT | MUX_MODE0 ) /* (E16) mii1_rxd2.gmii1_rxd2 */
            0x134 ( PIN_INPUT | MUX_MODE0 ) /* (C14) mii1 */
        >;
    };

    cpsw_sleep: cpsw_sleep {
            pinctrl-single,pins = <
         
            /* Slave 1 reset value */
                0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7)
                0x10C (PIN_INPUT_PULLDOWN | MUX_MODE7)
                0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
                0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7)
                0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7)
                0x12C (PIN_INPUT_PULLDOWN | MUX_MODE7)
                0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7)
                0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7)
                0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7)
                0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7)
                0x11C (PIN_INPUT_PULLDOWN | MUX_MODE7)
                0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7)
                0x13C (PIN_INPUT_PULLDOWN | MUX_MODE7)    
                0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7)    
                0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7)    
            >;
        };


    &mac {
        slaves = <1>;
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&cpsw_default>;
        pinctrl-1 = <&cpsw_sleep>;
        status = "okay";
    };

    &davinci_mdio {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&davinci_mdio_default>;
        pinctrl-1 = <&davinci_mdio_sleep>;
        status = "okay";
    };

    &cpsw_emac0 {
        /*phy_id = <&davinci_mdio>, <0>; */
        phy_id = <&davinci_mdio>, <3>;
        /*  phy-mode = "rgmii"; */
        phy-mode = "mii";
    };

    =>
    => mii dump 0
    Error reading from the PHY addr=00 reg=00

    => mii dump 1
    Error reading from the PHY addr=01 reg=00

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


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


    => mii dump 4
    Error reading from the PHY addr=04 reg=00

    root@am437x-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
            Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                                 100baseT/Half 100baseT/Full
            Link partner advertised pause frame use: Symmetric Receive-only
            Link partner advertised auto-negotiation: Yes
            Speed: 100Mb/s
            Duplex: Full
            Port: MII
            PHYAD: 3
            Transceiver: external
            Auto-negotiation: on
            Supports Wake-on: d
            Wake-on: d
            Current message level: 0x00000000 (0)
                                   
            Link detected: yes
    root@am437x-evm:~#

    Please help to resolve the issue.

    Thanks in advance

     

  • Part Number: AM4376

    I have am4376 custom board.

    unable to get the ip.

    could you please help to resolve the issue.

    U-Boot SPL 2016.05-00319-g71499d6-dirty (Jul 03 2017 - 19:03:48)
    Trying to boot from MMC1
    SPL: Please implement spl_start_uboot() for your board
    SPL: Direct Linux boot not active!
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    No matching DT out of these options:
       am437x-gp-evm
       am437x-sk-evm
       am43x-epos-evm
       am437x-idk-evm
    SPL: Please implement spl_start_uboot() for your board
    SPL: Direct Linux boot not active!
    Failed to mount ext2 filesystem...
    spl_load_image_ext: ext4fs mount err - 0


    U-Boot 2016.05-00319-g71499d6-dirty (Jul 03 2017 - 19:03:48 +0530)

    CPU  : AM437X-GP rev 2.1
    Model: TI AM437x GP EVM
    DRAM:  512 MiB
    PMIC:  TPS65218
    MMC:   OMAP SD/MMC: 0
    reading uboot.env
    Net:   Could not get PHY for ethernet@4a100000: addr 0
    eth0: ethernet@4a100000
    Hit any key to stop autoboot:  0
    =>
    =>
    =>
    =>
    =>
    =>
    => mii dump 0
    Error reading from the PHY addr=00 reg=00

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


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


    => mii dump 1
    Error reading from the PHY addr=01 reg=00



    root@am437x-evm:~# ifconfig
    eth0      Link encap:Ethernet  HWaddr C4:BE:84:CB:12:32  
              inet6 addr: fe80::c6be:84ff:fecb:1232%132688/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:7291 (7.1 KiB)
              Interrupt:143

    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1%132688/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:403 errors:0 dropped:0 overruns:0 frame:0
              TX packets:403 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1
              RX bytes:30712 (29.9 KiB)  TX bytes:30712 (29.9 KiB)

    root@am437x-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
            Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                                 100baseT/Half 100baseT/Full
            Link partner advertised pause frame use: Symmetric Receive-only
            Link partner advertised auto-negotiation: Yes
            Speed: 100Mb/s
            Duplex: Full
            Port: MII
            PHYAD: 3
            Transceiver: external
            Auto-negotiation: on
            Supports Wake-on: d
            Wake-on: d
            Current message level: 0x00000000 (0)
                                   
            Link detected: yes
    root@am437x-evm:~#


    Device tree change :

    ================

    &cpsw_emac0 {
    /*  phy_id = <&davinci_mdio>, <0>;  */
        phy_id = <&davinci_mdio>, <3>;
        phy-mode = "rgmii";
    };

    U-boot : u-boot-2016.05+gitAUTOINC+4db46a6bbd-g4db46a6bbd

    linux : linux-4.4.41+gitAUTOINC+f9f6f0db2d-gf9f6f0db2d

    please check  any more  changes needed to get the ip address

    Thanks In advance.

  • Hello,

    1: Do you have a network manager in your system (for example connman) ? If yes by default the eth interface will have dhcp

    2: do you have dhclient installed ? If yes
    $> dhclient eth0
    above should get ip for eth0

    3: If none are present you need to set a static IP using ifconfig

    Cheers,
    --Prabhakar Lad