UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Contributor
Contributor
2,341 Views
Registered: ‎09-25-2007

Problem with Marvell M88E1111 PHY on ML505

Hello,

 

I'm trying to figure out if my marvell PHY is busted or if I'm doing something wrong.  I am able to transmit ethernet packets *from* my ML505 to the PC with no problems.  It works perfectly.  However, when I attempt to send _any_ type of packet whatsoever *to* the ML505 from my PC I see absolutely no data coming from the PHY.  Here is the debug data I have collected so far:

 

- Both PC and ML505 are set to fixed (i.e. no auto-negotiate) 100Mbps full-duplex mode.

 

- When I transmit the packets from my PC I have wireshark running on the appropriate interface to ensure that the packet is actually being sent from the PC and being sent to the board.

 

- When I transmit a packet from my PC to the ML505 the ethernet "RX" LED on the ML505 board blinks for each packet as expected.

 

- When I chipscope the marvell RX interface pins (i.e. phy_data_valid, phy_rx_data, phy_rx_er) I can see the phy_data_valid signal asserting high for exactly the same number of clock cycles as there are nibbles in the entire ethernet frame.  The phy_rx_er signal never asserts. However, the phy_rx_data bits are _always_ all zeros no matter what packet or data payload I send (this is the problem).  I know the phy_rx_clk is clocking because chipscope is being clocked by phy_rx_clk.

 

- If I alter the size of the packet that I am sending to the ML505 board I see the phy_data_valid signal assert for that different number of clock cycles for the new number of nibbles.

 

- I ensured that I am connected to the appropriate phy_rx_data bits [3:0] and not [7:4] (as the upper bits are only used for the gigabit data rate).

 

- I have a very small verilog always block in my design (which is clocked synchronous to the phy_rx_clk) that I used to output the 4-bit phy_rx_data value to the GPIO LEDs on the board if the phy_rx_data bits are _ever_ non-zero and to keep that value stuck on the LEDs so that I can see it.  I have never seen any of the LEDs light up following a reset - meaning the phy_rx_data bus never has anything on it but zeros.

 

- I have checked all of the jumpers on the board and according to the ML505 user manual I have properly configured the marvell PHY interface for 100M, full-duplex MII mode.

 

- I believe that my design constraints are correct...but even if they weren't and data was being clocked in somewhat out of phase (or whatever) I would expect that I would at least see _something_ other than all-zeros at some point in my debug efforts.  But I cannot get anything other than all-zeros on the phy_rx_data bus no matter what I try. :(

 

Does anyone have any ideas what I might be doing wrong? The only thing I can conlude at this point is that the marvell chip is partially broken.  It's just odd that I can transmit packets with no problems whatsoever but I can't receive....it's weird that one direction would be broken and the other direction working fine. I would more expect that either both or none would work - but it's certainly possible.

 

If anyone can help I would really appreciate it.

 

Thanks

-- Jonathon
Tags (1)
0 Kudos