Forum Discussion
Altera_Forum
Honored Contributor
16 years agosimple socket server connection established, but cannot ping/telnet
hello guys,
I got a problem with simple socket server problem. I post similiar thread in dev kit forum, but no answer until now. I am thinking maybe I could get help from here. Thank you in advance. My situation is here: hardware: cIII 120 develop board software: QII 9.1 sp2, Nios II 9.1 sp2 What i have done: 1. copy the C:\altera\91\nios2eds\examples\verilog\niosII_cycl oneIII_3c120\triple_speed_ethernet_design to my project fold and open with QII 2. open sopc builder and run generate 3. back to QII and compile to generate sof (time limited version) 4. open nios eclipse ide, create a new project with simple socket server template 5. to avoid troulbe, modife get_mac_addr() as: ****************************************** int get_mac_addr(NET net, unsigned char mac_addr[6]) { mac_addr[0]=0xB7; mac_addr[1]=0xA7; mac_addr[2]=0xED; mac_addr[3]=0xFF; mac_addr[4]=0xFF; mac_addr[5]=0xFF; return 0; // return (get_board_mac_addr(mac_addr)); } ****************************************** 6. I disable DHCP in wizard and I use cross cable to connect board and PC directly. 7. run app as "Nios II hardware" what I got: =============== Software License Reminder ================ This software project uses an unlicensed version of the NicheStack TCP/IP Network Stack - Nios II Edition. If you want to ship resulting object code in your product, you must purchase a license for this software from Altera. For information go to: "http://www.altera.com/nichestack" ================================================== === InterNiche Portable TCP/IP, v3.1 Copyright 1996-2008 by InterNiche Technologies. All rights reserved. prep_tse_mac 0 Static IP Address is 192.168.1.234 prepped 1 interface, initializing... [tse_mac_init] INFO : TSE MAC 0 found at address 0x08004000 INFO : PHY Marvell 88E1111 found at PHY address 0x12 of MAC Group[0] INFO : PHY[0.0] - Automatically mapped to tse_mac_device[0] INFO : PHY[0.0] - Restart Auto-Negotiation, checking PHY link... INFO : PHY[0.0] - Auto-Negotiation PASSED INFO : PHY[0.0] - Checking link... INFO : PHY[0.0] - Link established INFO : PHY[0.0] - Speed = 100, Duplex = Full OK, x=1, CMD_CONFIG=0x00000000 MAC post-initialization: CMD_CONFIG=0x04000203 [tse_sgdma_read_init] RX descriptor chain desc (1 depth) created mctest init called IP address of et1 : 192.168.1.234 Created "Inet main" task (Prio: 2) Created "clock tick" task (Prio: 3) Simple Socket Server starting up [sss_task] Simple Socket Server listening on port 30 Created "simple socket server" task (Prio: 4) Everything looks smooth, but I cannot ping, telnet or whatever else. When I ping, the RX light is flashing, but TX light not.43 Replies
- Altera_Forum
Honored Contributor
The output log shows that apparently everything is ok:
- application is running - ethernet link is established and nios is aware of it - tcp/ip stack has started and is operating - server ip address has been assigned - your application has started too and it is waiting a connection A few basic (and maybe silly) questions: - is your client (PC) configured with the correct subnet - is your application still running or is it stuck somewhere? - have you already made any debug? I mean, has the server application returned from the select() call? - Altera_Forum
Honored Contributor
--- Quote Start --- The output log shows that apparently everything is ok: - application is running - ethernet link is established and nios is aware of it - tcp/ip stack has started and is operating - server ip address has been assigned - your application has started too and it is waiting a connection A few basic (and maybe silly) questions: - is your client (PC) configured with the correct subnet - is your application still running or is it stuck somewhere? - have you already made any debug? I mean, has the server application returned from the select() call? --- Quote End --- hi SIELASER, thank you so much for reply. my client PC is configred as: static IP: 192.168.1.235 subnet: 255.255.255.0 Default gateway: 192.168.1.1 Board is configred as:# define IPADDR0 192# define IPADDR1 168# define IPADDR2 1# define IPADDR3 234# define GWADDR0 192# define GWADDR1 168# define GWADDR2 1# define GWADDR3 1# define MSKADDR0 255# define MSKADDR1 255# define MSKADDR2 255# define MSKADDR3 0 I used cross cable to connect them directly. I did 1. load sof to board(it is a timelimited file recated by QII) 2. from IDE, load server application by "run as Nios II hardware" after load and print info to IDE, the server is waitting there. Then I try to ping from pc command line, by ping 192.168.1.234 I found the RX light blink sometime, but TX is quiet. the server looks still waitting, nothing happen. after a while, ping is failed No, I didn't do any debug, no return from select() call, the sever is just waitting (http://www.alteraforum.com/forum/member.php?u=30040) - Altera_Forum
Honored Contributor
This shows that everything is ok up to the phy level.
So you don't have any problem with ethernet link or cable. The problem can be due to the MAC, the sgdma or even the tcp stack. This is strange if you simply rebuilt a ready made reference design, without any change (this is what I think you did; is it correct?) I use a different dev board so I don't know if there is any hardware issue with yours. The only suggestion I can now think is that you can exclude tcp stack and check if raw ethernet frames are received: in the tse driver there is a function where all ethernet data is passing through. Unfortunately I can't remember its name; try locating arp_recv (or something like that), place a breakpoint in debug mode and then go backward until you find a function which filters some data. If you possibly find that no raw frame is received you have a problem with mac or sgdma configuration. One last idea: I see now that you are using a time limited version of sof file. Maybe you are using the OpenCore tse? In this case you should keep the connection with the programmer open or the tse core will stop working: don't close the reminder message box which appears after fpga configuration Regards - Altera_Forum
Honored Contributor
I have the same problem with you,dubuging server weeks but without any result,have you find the selution ?
--- Quote Start --- hi SIELASER, thank you so much for reply. my client PC is configred as: static IP: 192.168.1.235 subnet: 255.255.255.0 Default gateway: 192.168.1.1 Board is configred as:# define IPADDR0 192# define IPADDR1 168# define IPADDR2 1# define IPADDR3 234# define GWADDR0 192# define GWADDR1 168# define GWADDR2 1# define GWADDR3 1# define MSKADDR0 255# define MSKADDR1 255# define MSKADDR2 255# define MSKADDR3 0 I used cross cable to connect them directly. I did 1. load sof to board(it is a timelimited file recated by QII) 2. from IDE, load server application by "run as Nios II hardware" after load and print info to IDE, the server is waitting there. Then I try to ping from pc command line, by ping 192.168.1.234 I found the RX light blink sometime, but TX is quiet. the server looks still waitting, nothing happen. after a while, ping is failed No, I didn't do any debug, no return from select() call, the sever is just waitting --- Quote End --- - Altera_Forum
Honored Contributor
maybe you forgot to enable the GMII interface.
try to add following code in the ins_tse_mac.c marvell_cfg_gmii(tse[iface].mi.base); - Altera_Forum
Honored Contributor
I have the same problem! :confused:
Has anyone found a solution? - Altera_Forum
Honored Contributor
I had the same problem using the board DMB3c40. I have a project with the next settings:
QuartusII 8.0 sp1 NIOS EDS 8.0 NIOS FAST TSE_MAC 10_100 simple_sockect_server sending video by using UDP sockets To solve this problem I had to change the setting Speed in my NIC card: I set: speed=100Mbits full duplex instead of 'autonegotiation' After this data were sent - Altera_Forum
Honored Contributor
I am having the same problem using the Cyclone III Starter Board (3c25) and the HSMC-NET Daughter card.
If I run the demo batch file (which installs the .sof and .elf file that came with the daughter card) then I can connect to the socket as shown in the tutorial. However if I compile the project myself (SOPC, then Quartus, then NIOS II EDS), it connects in the same way and the output on the NIOS console is identical, but I get no response when pinging the IP address and I cannot connect to the socket. I have tried this using Quartus and Nios versions 8, 9.1 and 10. Same results every time. Help please!!!! - Altera_Forum
Honored Contributor
try Quartus 9.0 & IDE
if it doesnt work, try to add your own .sdc file to constraint tx & rx clk. - Altera_Forum
Honored Contributor
Ok thanks. I'll download it and give it a shot.
Please be more specific with what I should do with the .sdc file? I'm quite new to the timing constraint side of things. Forgot to add to my original post: I contacted Terasic about this issue, and told them how I went about Generating system in SOPC Builder, Compiling in Quartus 10 and then using Nios EDS 10. They said they tried the same thing and it worked perfectly for them. Really strange.