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.

DM6467 U-Boot with MARVELL 88E1111 PHY Issue

Hello,

I've finally got U-Boot ported to the point where the it boots from flash via the UBL. The environment and serial console appear to be configured properly, BUT my Ethernet interface is not working yet. The EVM board has an ET1101C PHY and my board has a Marvell 88E1111 PHY.  The EVM board uses the GENERIC PHY driver in uboot/drivers/net/davinci_emac.c. I've left my port of u-boot to use the same GENERIC PHY driver for the Marvell 88E1111.

Now from the EVM board at the u-boot prompt, I can ping other computers successfully and load the kernel. On my board, the ping fails. I've verified that the IP address (ipaddr) and Ethernet address (ethaddr) are set properly in the environment and they are being passed successfully into the ethernet initialization functions, but it still does not work.

I'm just using the following default enviroment parameters:

#define CONFIG_ETHADDR   00:0e:99:02:b6:d4
#define CONFIG_IPADDR    192.168.1.152

Do I need a different driver for the Marvell 88E1111 PHY, other than the GENERIC driver? Does anyone have any ideas or some debug hints I should try?

 

I do have a link light for 10/100M blinking with activity and an LED flashing for RX traffic. I also see my TX LED flash when I send the ping command from u-boot, but the response is that the computer is not alive (ping failed).

Any help would be greatly appreciated!

Thanks,

Brent

  • An update on this issue. It appears to be a timing / impedance issue on our board. The boards come up, auto-negotiate a 100 Mb connection and then the PHY/ethernet works like 10% of the time. I went into the MII Register 0 (Basic Configuration Register) and turned off auto-negotiation and set the speed to 10Mb. Now the PHY/ethernet works 100% of the time.

    Here are the u-boot commands I used to make this change:

    u-boot > mii dump 0xa 0
    0.     (0040)                 -- PHY control register --
      (8000:0000) 0.15    =     0    reset
      (4000:0000) 0.14    =     0    loopback
      (2040:0040) 0. 6,13 =   b10    speed selection = 1000 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:0000) 0. 8    =     0    duplex = half
      (0080:0000) 0. 7    =     0    collision test enable
      (003f:0000) 0. 5- 0 =     0    (reserved)


    u-boot > mii write 0xa 0 00
    u-boot > mii dump 0xa 0
    0.     (0000)                 -- PHY control register --
      (8000:0000) 0.15    =     0    reset
      (4000:0000) 0.14    =     0    loopback
      (2040:0000) 0. 6,13 =   b00    speed selection = 10 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:0000) 0. 8    =     0    duplex = half
      (0080:0000) 0. 7    =     0    collision test enable
      (003f:0000) 0. 5- 0 =     0    (reserved)


    u-boot > ping 192.168.1.1
    + emac_close
    + emac_ch_teardown
    - emac_ch_teardown
    + emac_ch_teardown
    - emac_ch_teardown
    - emac_close
    + emac_open
    - emac_open
    Using DaVinci EMAC device
    + emac_close
    + emac_ch_teardown
    - emac_ch_teardown
    + emac_ch_teardown
    - emac_ch_teardown
    - emac_close
    host 192.168.1.1 is alive
    DM6467 EVM > ping 192.168.1.1

    So it the GENERIC PHY driver that u-boot defaults to, works with the Marvell 88E1111 PHY for anyone who is interested or having similar problems. Now I'm moving on to configuring and booting the Linux kernel...

  • We have the same problem on our board and how to solve ?
    Thanks.

  • Hi,

    We have the same problem here.

    We use a custom board with a Ti DM6467T and a Marvell Phy 88E1111. With some boards we have no trouble at all, but some times we have the same symptom that was previously described, in U-boot and in Linux. The U-boot used is a 2011-12 and the Linux used is the Ti 2.6.32 with patches for unionfs and squashfs-lzma.

    Does someone at Ti has found something on this? Is this some kind of timing error?

    Thanks in advance

    Marc