Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12590 Discussions

Auto Negotiation FAILED : Nios II Simple Socket server

APaga1
Novice
1,578 Views

I have been trying to implement NIOS II simple socket server for Cyclone V GT from the reference design from the link: https://fpgacloud.intel.com/devstore/platform/16.0.0/Standard/nios-ii-simple-socket-server-ethernet-example-for-cvgt/

 

We are trying to use static IP instead of DHCP client where the ethernet port of FPGA is connected to the CPU port along with the JTAG. We are getting the following display on the NIOS console:

*****************************************************************************

InterNiche Portable TCP/IP, v3.1 

 

Copyright 1996-2008 by InterNiche Technologies. All rights reserved. 

altera_eth_tse_init 0

prep_tse_mac 0

Your Ethernet MAC address is 00:07:ed:ff:e2:d0

Static IP Address is 192.168.1.234

prepped 1 interface, initializing...

tse_mac_init 0

 speed : 1

 duplex : 1

 result : 5

 ALT_TSE_E_INVALID_SPEED by LG : 65536

List of PHY profiles supported (Total profiles = 5)...

Profile No. 0  :

PHY Name    : Marvell 88E1111

PHY OUI     : 0x005043

PHY Model Num. : 0x0c

PHY Rev. Num.  : 0x02

Status Register : 0x11

Speed Bit    : 14

Duplex Bit   : 13

Link Bit    : 10

 

Profile No. 1  :

PHY Name    : Marvell Quad PHY 88E1145

PHY OUI     : 0x005043

PHY Model Num. : 0x0d

PHY Rev. Num.  : 0x02

Status Register : 0x11

Speed Bit    : 14

Duplex Bit   : 13

Link Bit    : 10

 

Profile No. 2  :

PHY Name    : National DP83865

PHY OUI     : 0x080017

PHY Model Num. : 0x07

PHY Rev. Num.  : 0x0a

Status Register : 0x11

Speed Bit    : 3

Duplex Bit   : 1

Link Bit    : 2

 

Profile No. 3  :

PHY Name    : National DP83848C

PHY OUI     : 0x080017

PHY Model Num. : 0x09

PHY Rev. Num.  : 0x00

Status Register : 0x00

Speed Bit    : 0

Duplex Bit   : 0

Link Bit    : 0

 

Profile No. 4  :

PHY Name    : Intel PEF7071

PHY OUI     : 0x355969

PHY Model Num. : 0x00

PHY Rev. Num.  : 0x01

Status Register : 0x00

Speed Bit    : 0

Duplex Bit   : 0

Link Bit    : 0

 

INFO  : TSE MAC 0 found at address 0x08000800

INFO  : Multi Channel      = No

INFO  : MDIO Shared       = No

INFO  : MAC Type         = 10/100/1000 Ethernet MAC

INFO  : MAC Address       = 0x08000800

INFO  : MAC Device        = tse_mac_device[0]

INFO : I am here

 mac_group_count : 1

INFO  : PHY Marvell 88E1111 found at PHY address 0x00 of MAC Group[0]

INFO  : PHY OUI       = 0x005043

INFO  : PHY Model Number  = 0x0c

INFO  : PHY Revision Number = 0x2

INFO  : PHY[0.0] - Automatically mapped to tse_mac_device[0]

INFO  : PHY[0.0] - Advertisement of 1000 Base-T Full Duplex set to 1

Created "Inet main" task (Prio: 2)

INFO  : PHY[0.0] - Advertisement of 1000 Base-T Half Duplex set to 1

INFO  : PHY[0.0] - Advertisement of 100 Base-T4 set to 0

INFO  : PHY[0.0] - Advertisement of 100 Base-TX Full Duplex set to 0

INFO  : PHY[0.0] - Advertisement of 100 Base-TX Half Duplex set to 0

INFO  : PHY[0.0] - Advertisement of 10 Base-TX Full Duplex set to 0

INFO  : PHY[0.0] - Advertisement of 10 Base-TX Half Duplex set to 0

INFO  : PHY[0.0] - Restart Auto-Negotiation, checking PHY link...

INFO  : PHY[0.0] - Auto-Negotiation PASSED

INFO  : Applying additional PHY configuration of Marvell 88E1111

INFO  : Applying additional user PHY configuration

MARVELL : Mode changed to RGMII/Modified MII to Copper mode

MARVELL : Enable RGMII Timing Control

MARVELL : PHY reset

 

INFO  : PHY[0.0] - Restart Auto-Negotiation, checking PHY link...

WARNING : PHY[0.0] - Auto-Negotiation FAILED

INFO  : PHY[0.0] - Capability of PHY :

INFO  : 1000 Base-X Full Duplex = 0

INFO  : 1000 Base-X Half Duplex = 0

INFO  : 1000 Base-T Full Duplex = 1

INFO  : 1000 Base-T Half Duplex = 1

INFO  : 100 Base-T4       = 0

INFO  : 100 Base-X Full Duplex = 1

INFO  : 100 Base-X Half Duplex = 1

INFO  : 100 Base-T2 Full Duplex = 0

INFO  : 100 Base-T2 Half Duplex = 0

INFO  : 10 Base-T Full Duplex  = 1

INFO  : 10 Base-T Half Duplex  = 1

 

INFO  : PHY[0.0] - Link Partner Capability :

INFO  : 1000 Base-T Full Duplex = 0

INFO  : 1000 Base-T Half Duplex = 0

INFO  : 100 Base-T4       = 0

INFO  : 100 Base-TX Full Duplex = 1

INFO  : 100 Base-TX Half Duplex = 1

INFO  : 10 Base-TX Full Duplex = 1

INFO  : 10 Base-TX Half Duplex = 1

 

 

INFO  : PHY[0.0] - Checking link...

INFO  : PHY[0.0] - Link established

 

*******************************************************************************

The second Auto Negotiation is failing. We have tried to vary the speeds and do all sorts of experiments but in vain. Kindly Help!!

 

 

0 Kudos
8 Replies
Eliath_G_Intel
Employee
1,547 Views

Hi Avinash,

Thank you for reaching us to help you with this issue.

I'm Eliath Guzman and I'm going to help you with it.

I can see in the link of the reference design you are working with, use Quartus version 16.0.0 standard, is the one you're using, the same version or it is a newer version?

 

Regards,

-Eliath Guzman

 

0 Kudos
APaga1
Novice
1,547 Views

Hello Eliath,

So, Initially, we tried using the reference design for 16.0 in Quartus 16.0. We got many errors as shown in the screenshot. 16.0 errors.png

When we tried the same reference design in later versions of Quartus i.e. 17.1 and 18.1, some of the errors have been reduced and other errors have appeared related to SGDMA IP used in the ethernet system qsys. The ELF file was not generated. I am attaching the screenshot.17.1_problems.png

So, we got an assistance from a Field Applications Engineer from Intel, where he gave us a new project in which the SGDMA was removed and replaced by MSGDMA. By this, the ELF file was generated. But when we are trying to establish the communication, AUTO NEGOTIATION FAILED error is popping up. I am attaching a screenshot for this.Auto_Neg_1.pngAuto_neg_2.png

 

Even the reference design does not contain the required main sdc file i.e niosii_ethernet_standard_5CGTFD9E.sdc file to do the timing analysis. I feel that the design present in the website needs a major overhaul to make it working. Kindly help us. We are stuck with this issue for the past 2 months.

 

Regards,

Avinash

0 Kudos
Eliath_G_Intel
Employee
1,547 Views

Hi Avinash!

 

I have made an internal consult with my team and they told me that almost all of the errors your design is having are known as typical of the reference design you're using to work. Just as a comment, we asked the corresponding area to remove this design...

 

We do not have an example design for Cyclon V GT, but we have worked on one for Cyclone V E which I consider you could use as a base to build a project that matches your needs. Considering what you have mentioned before, this could be a faster solution.

I'm attaching the project, please take a look at it and do not hesitate to let me know any queries you may have.

 

Thanks,

-Eliath Guzman

 

0 Kudos
Eliath_G_Intel
Employee
1,547 Views

Hi Avinash!

Hoping you're doing well, I was wondering if the information and project I shared with you were useful to solve the issue.

 

Please let me know if you have any concerns that I can help you with or if I can push the case to close pending, after do this you'd have a period of 15 days to comment something and it will be automatically opened again.

 

Thanks,

-Eliath Guzman

0 Kudos
APaga1
Novice
1,546 Views

Hello Eliath,

                      Thank you for the fix that you have suggested regarding the name mismatch in the TSE_0. It worked. In the NIOS console, I was being asked to provide the 9 digit serial number present at the back of my board (refer to the screenshot). Is this normal? Because I did not come across this pop up when I was working with the reference design present in the website. Kindly guide us. @Eliath_G_Intel Screenshot (43).png 

0 Kudos
APaga1
Novice
1,539 Views

Hello Eliath, 

                      In one of the documents present in the website for NIOS II Simple socket server, it was mentioned that in case of issues related to MAC address, we can try typing "255255248".

Screenshot (44).png

I have typed that address and it seemed to be working. In fact, any non zero 9-digit address seems to be working. So It shows that the Simple socket server is listening in port no.30 as shown in the screenshot.

 

Screenshot (46).png

 

But now, when I am trying to open a Telnet server with the IP address 192.168.1.234 and port 30, the connection is not established. I've even tried with 192.168.1.1 but no success.Screenshot (45).png

Screenshot (47).png

 

Kindly help. 

 

Regards,

Avinash Paga

0 Kudos
Eliath_G_Intel
Employee
1,529 Views

Hello Avinash, 

We have two KDB's ( Knowledged Data Base) where you'll find the changes needed on the code to make the project work properly. The connection will be solved too.

Why my Nios® II Simple Socket Server design example fails to auto-negotiate at 1G speed

Why my Nios® II Simple Socket Server (RGMII) design example Ethernet link is down when run on Intel FPGA Development Kits with MARVELL PHY?

 

Please, apply these changes to your code and test again the connection with the host. 

One more thing, when executing the windows command prompt, try to do it as administrator and then make the corresponding test. 

Any questions or updates, please do not hesitate and let me know. @APaga1 

Regards, 

-Eliath Guzman 

0 Kudos
APaga1
Novice
1,495 Views

Hello Eliath @Eliath_G_Intel ,

                     Thank you for your support. We have observed that the auto negotiation is passing at 1G speed and the naming conventions of TSE are according to what it is suggested in the KDB that you have sent. But unfortunately, the ethernet link is still not up. We are getting the below message in the NIOS console at the end:

********************************************************************************************

Simple Socket Server starting up
[sss_task] Simple Socket Server listening on port 30
Created "simple socket server" task (Prio: 4)

********************************************************************************************

But still we could not establish a telnet session with IP: 192.168.1.234 and port 30. We are hardware engineers and we are finding it difficult to debug the software portion of the simple socket server. Can you please explain what can be a way to progress further? Thank You!

 

Warm Regards,

Avinash Paga

0 Kudos
Reply