cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
1,415 Views
Registered: ‎06-29-2018

ZYNQ7020 ps ksz9031 can not work in 1000Mbps

Hi,
         In my custmer Zynq 7020 board, The KSZ9031 can not work in 1000Mbps mode.But in 1000Mbps mode, the link up status can be detected, the data switching is not work. Fristly,the cable with 100Mpbs switch is used to connect the board, the 100Mbps is link up,and PING also can be executed correctlly. Secondly ,the cable with 1000Mpbs switch is used to connect the board, the link up status is coming out, and the 125Mbps clock can also be detected,but PING can not be executed, and data switching break;
         The result is confusing me. I can't tell where the problem is. MAC<->PHY or PHY<->Rj45 ? Please help .
My enviroment is as follows.
                 The kernel verison is 2017.1.
                 Etherent phy is KSZ9031 RNX rgmii mode.
                The Rj45 is made as 1000Mbps mode.

Tags (3)
0 Kudos
7 Replies
Highlighted
Adventurer
Adventurer
1,406 Views
Registered: ‎05-23-2018

Monitor the Registers of the PHY to see if the link goes down. I don't think this is very likely if the pcb and cable are in proper condition.

 

Have you set up the RGMII correctly? How do you add the delay between clock and data?

 

The delay can usually be added through either the I/ODELAYs (your Zynq only has IDELAY), through a PLL, through a long PCB-Trace for the clock, or through a delay-setting in the PHY. The last one is usually the easiest one to get right.

 

How is the Phy attached - MIO or EMIO-Pins. 

0 Kudos
Highlighted
1,393 Views
Registered: ‎06-29-2018

Hi,
I don not think the KS9031 registers is wrong. Please help check it. I have up it.The KSZ9031 can link up in 1000Mbps , but the data excharge failed. The ksz9031 is connected to MIO-pins. I think the rgmii mode is set up RGMII correctly, because the in 100mbps mode the net is work very well.I do not add any IDELAYs , may be I check it fristly.

0 Kudos
Highlighted
1,390 Views
Registered: ‎06-29-2018

Hi,
I have check the RGMII mode. There is only one mode (RGMII) in MIO-pins.
0 Kudos
Highlighted
Adventurer
Adventurer
1,383 Views
Registered: ‎05-23-2018

Did you add the Delay of 2ns on the clock-lines on the pcb? If not, then the only option left is to enable the delays in the PHY (if supported).

 

On 100Mbps, that bus is only running at 25MHz and the setup/hold-time is a lot more loose.

0 Kudos
Highlighted
1,340 Views
Registered: ‎06-29-2018

Hi,
There is a news. Please help me analyse. In 1000Mbs mode, I make a app of RAW_SOCKET to recv from eth0. It is strange that the app can recv the net packets from outside. But is can not send any packets to outside. It pussled me. I can not understand it. Why TX is bad, but RX is OK? I have checked the RJ45 and lanes. It is nothing unusual.
0 Kudos
Highlighted
1,339 Views
Registered: ‎06-29-2018

There is a news. Please help me analyse.In 1000Mbps mode, I make a app of RAW_SOCKET recv from eth0. It is strange that the app can recv the net packets from outside. But it can not send any packets to outside.It pussled me. I can not understand. Why TX is bad, but RX is OK? I have checked the RJ45 and lanes. It is nothing unusual.
0 Kudos
Highlighted
Adventurer
Adventurer
1,331 Views
Registered: ‎05-23-2018

Did you measure the RXD-Bits relative to the RXC and the TXD-Bits relative to the TXC? You should have a delay of 2ns between both rising and filling edge of the clock and any transition of the data.

 

If there is no delay, you need to use the internal delay in the PHY. If the Phy cannot do that, you have a problem and might need a new revision of your pcb that adds these delays on the traces.

0 Kudos