• 0
Sign in to follow this  
Dpv

GMII at 100/10Mbps not working (works fine at 1000Mbps)

Question

 

I am using Atlys board (Spartan-6). It has Marvell Alaska Tri-mode PHY (the 88E1111). I want to establish Ethernet connection (GMII- 10/100/1000 Mbps) which can dynamically switch between these speeds depending upon the type of network switch (10/100/1000 Mbps).  Currently I am trying Address swap example generated by the trimac 4.6 core and it works fine with 1000 Mbps switch. When I change the switch (100 Mbps this time), address swap example doesn't transmit back the packet. I am using Colasoft packet builder and Wireshark to send and check the packets. On observing further, I found that there is a Multiplexer which is deciding the clock for either 100 or 1000 Mbps mode. The select line of this MUX is 'speedis10100_int'. I tied this signal (speedis10100_int) to an LED and found that this select line is not changing on changing the Switch (1000 to 100 Mbps). I further tried driving this select line of MUX manually by a Slide switch. Then I can observe the clock (output of MUX) changing from 125 Mhz to 25 Mhz (when i slide the switch and change the network switch to 100mbps). But still the address swap example doesn't work at 100 Mbps. 

Inputs of the MUX are 1) 125 Mhz generated by clock generator and,

 2) mii_tx_clk (25 Mhz coming from PHY)

Thanks in advance.

Deepak Verma

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

I use the ATLYS Ethernet PHY all the time but I confess that I've never tried using it in 10/100 Mbsp operation. The Marvel 88E1111 is ubiquitous and unfortunately requires an NDA to read documentation about how to program it. Your problems could be related to register settings or perhaps failed timing paths. You don't mention a timing score for your routed design.

This is where your debugging skills need to serve you. I'd start with a couple of debug ILAs ( one for 125 MHz and one for 25 MHz ) operation to try and figure out if the clock switching logic is failing.

As you know the 88E1111 comes out of reset with its registers set to various modes depending on the state of a number of output pins. This information is freely available in the device data brief from Marvel. Are you resetting the PHY after switching from 1 G to 10/100? Have you tried putting the PHY into 10/100 before connecting to the switch? During debug I'd try to reduce the number of variables to a minimum. I'd start without using the switch and connect to a device with a known good 10/100 Ethernet port.

It may take a while and some effort but you will figure this out.

Edited by zygot

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this