MityARM-335x Ethernet Communication

Added by Anonymous over 9 years ago

I am trying to get the TI StarterWare Enet_Echo example to run on the MityARM-335x Development Kit. To accomplish this, I'm doing the following:

1. Use the the supplied SD card to boot the system and stay in u-boot (this initializes the pinmux registers and other SOM functions: PMIC, DDR etc.)
2. Using a JTAG debugger and Code Composer, compile, download, run and debug the StarterWare enet_echo examples originally targeted for the evm3359 and evmsk3359 development boards.
a. The evm3359 has a 10/100/1000 RGMII phy (address 0) connected to emac 1. This code was modified to change the phy address to 1 and the emac port to 2.
b. The evmsk3359 has dual 10/100 RGMII phys (address 0 and 1) connected to emac 1 and 2 respectively.
The pinmux initialization in the code was removed to leave the u-boot defined settings and a Static IP address was assigned.
3. Use a serial port terminal to monitor printf messages from the program
4. Use Wireshark to monitor network traffic.

In both cases above I observe the following:
The program detects a phy at address 1.
The phy auto-negotiates a link at 10/100.
The program broadcasts a gratuitous-arp message with the IP address.
Then nothing.

When I try to ping the IP address, I don't get any responses.

I've placed breakpoints on both the transmit and receive interrupts and I see a transmit interrupt when the arp message gets sent but I don't see any receive interrupts.

The fact that I communicate with the phy and broadcast an arp message leads me to believe that the low level AM3359 pinmux, clock module and power domain settings are correct. I see you've ported StarterWare to your AMR9 based produsts and was hoping you had some insight here.

In the data sheet for the VSC8601 phy used on the development board, there is a fair amount of errata. The StarterWare code just does basic phy auto-negotiation type initialization. Is there any special phy based initialization that needs to occur?

Any ideas why the receive protion of the interface would not work?

Replies (1)

RE: MityARM-335x Ethernet Communication - Added by Anonymous over 9 years ago

Found the problem. The problem was related to the errata on the Vitesse VSC8601 Ethernet phy used on the development board. The phy violates some RGMII interface clock specs if the RX clock skew in the phy is set to 0 (which it is following reset). After digging through the linux and u-boot code, I found that the RX clock skew is set to '11'b (2 ns) in the phy initialization function.

    Go to top
    Add picture from clipboard (Maximum size: 600 MB)