Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Altera_Forum
Honored Contributor I
1,812 Views

Auto-Negociation fails between two Ethernet Marvell PHYs (88E1111)

Hello, 

I need to connect two PCIe development board via the Ethernet Marvell PHYs (88E1111) in order to validate an UDP solution (I'm using the TSE core). The thing is, Auto-Negociation between the two PHYs cannot complete, whereas it works fine connecting the two boards to an Ethernet switch. 

The link speed as to be 1000 Mbps. For programming the PHYs, here are the steps I'm performing: 

1 - 

write 0x1A00 to PHY_0 register 9 (Manual Master, advertise 1000BASE-T full duplex) 

write 0x1200 to PHY_1 register 9 (Manual Slave, advertise 1000BASE-T full duplex) 

2 - 

write 0x1340 to PHY_0 and PHY_1 register 0 (1000 Mbps, full duplex, enable Auto-Negociation, restart Auto-Negociation) 

3 - 

Wait for Auto-Negociation to complete by checking the bit 5 of the status register (register 1). This bit is actually never asserted by either of the two PHYs. 

 

Is it possible to directly connect the two Marvell PHYs? Is there a way to skip Auto-Negociation for a 1000 Mbps solution? 

 

Thanks a lot 

Florian
0 Kudos
13 Replies
Altera_Forum
Honored Contributor I
275 Views

The only way to connect two links directly together is with a crossover. You can either use a crossover cable, or for the Marvell PHY, you can manually enable the crossover within the PHY. I can't remember which register this is inside the PHY. I'll have to look for it tomorrow. If you go back in time (say Quartus 7.1) you may find the old MAC driver which I think would enable the crossover in the PHY automatically if it couldn't negotiate. 

 

Jake
Altera_Forum
Honored Contributor I
275 Views

Thanks Jake it works better now! 

I set the register 16 (PHY specific Control Register) such that it "enables automatic crossover for all modes" in both PHYs, and the autonegiocation could complete. 

Thank you very much, 

Florian
Altera_Forum
Honored Contributor I
275 Views

can you please answer this simple question Marvel Alaska 88e1111 is software programmable? or hardware programmable only by changing low high states on its pin?

Altera_Forum
Honored Contributor I
275 Views

Yes, you can adjust its internal registers using the MDIO interface. You may take a look at the 88E1111 datasheet to see what settings can be adjusted.

Altera_Forum
Honored Contributor I
275 Views

Hi everyone, 

I am establishing ethernet connection between my PC and my custom board. 

I have fixed my PC for 100mbps & Full Duplex. 

I am using TSE & Marvell 88E1111 at my custom board side. 

Auto-negotiation in TSE is enabled. 

When TSE auto-negotiate with my PC, 100mbps & half duplex connection is established. 

 

I want to establish a connection of 100mbps & full duplex. 

 

How to turn-off auto-negotiation in TSE and establishing a connection of 100mpbs & Full Duplex
Altera_Forum
Honored Contributor I
275 Views

Please do not multipost your question. 

The auto-negotiation is done by the PHY chip, not the TSE IP. You can control the negotiation process through the PHY chip's MDIO registers. 

Negotiating a half duplex link is rather odd though... If you connect your PC to another one, does it negotiate a full duplex? Did you try to change the cable? The PHY chip should negotiate a full duplex link by default, if the other side supports it.
Altera_Forum
Honored Contributor I
275 Views

I have fixed my PC for 100mbps & Full Duplex. 

I checked changing ethernet cable and PC. 

When I connect to hub and auto-negotiation is enable 100mbps & Full duplex connection is established. But when I connect my custom board directly to PC via cross ethernet cable, 100mbps & Half duplex is established. 

I wish to have 100mbps & Full duplex connection establishment for my project. 

I want to disable auto-negotiation on my custom-board to avoid any uncertainity. 

I am using Triple-speed Ethernet MAC, Marvell 88E1111 Phy on my custom board.
Altera_Forum
Honored Contributor I
275 Views

Then you should be able to disable autonegotiation and force a certain mode by using the MDIO registers 0 and 4. But you will also have to disable autonegotiation on the PC and set its mode manually

Altera_Forum
Honored Contributor I
275 Views

@Daixiwen 

Thanks for the reply. 

I fixed my PC manually for 100mbps & Full Duplex mode. 

Now I have to fix 100mbps & Full Duplex mode on my custom board. 

Where can I find MDIO registers 0 and 4 ? 

How can I change MDIO registers 0 and 4 ? 

 

waiting for reply
Altera_Forum
Honored Contributor I
275 Views

Have a look at the Triple Speed Ethernet user manual, there is a register range that can be used to access the MDIO registers. 

You will need to tap into the driver, to access those registers after the PHY has been properly detected. The easiest is probably to go into the Marvel specific code and configure the registers there. 

The 88E1111 datasheet isn't publicly available, unfortunately, but the MDIO registers 0-7 are standard, so you can pick the datasheet of any other PHY chip to get a description of those registers.
Altera_Forum
Honored Contributor I
275 Views

@Daixiwen 

I am still unable to disable auto-negotiation. 

Please tell me how to do disable auto-negotiation and hot to set a particular mode of communication. 

 

(http://www.alteraforum.com/forum/member.php?u=4443)
Altera_Forum
Honored Contributor I
275 Views

What did you try to do so far? There are some macros in the tse registers header file that can be used to access the MDIO registers.

APaci1
Novice
275 Views

Hi! I see this post for my question, and I find it interesting. I want connect two TSE-PHY MICREL-Ethernet Ports on my custom card each other. I used a cross cable. PROBLEM IS that PHYs never goes up If i close both Ethernet ports.

 

Instead, If I connect one or other to PC NIC , it works fine (I send and transmit frames from PC to TSE and vice-versa) (100 Mbps, Auto MDI/MDI-X default enabled)

 

Why PHYs connected togheter are always LINK OFF?????

 

There is another manouvre to do to wakeup TSE-PHY???

 

Thanks to everyone knows this question!

 

 

 

 

Reply